The technology of learn-orienteering.org

This is the technology page of learn-orienteering.org, devoted to developing the technology that is needed to make these pages run.

First, let me state my own background: I started writing web pages in the fall of 1994, just around the days where Netscape made their first browser available. I started with making a few small pages, and also started begun to host stuff other people had made, but couldn't put out themselves. Soon, everybody could put things on the web, so it was apparent soon that just making things available was not a big point. I also started launching many projects, things that I thought would be neat to have, but soon found that it is better to focus the efforts on a few projects.

The compass pages was something I made mostly in 1997, in one big effort. That is, I made an upgrade with some auxillary material later. I have a few parallell projects, all linked from my personal homepage, but they have all run into the same problems.

Mostly, I have learned by looking at the pages of others, but suddenly, I found that I wanted to read the actual standards, and it was a big eye-opener. What I found was that the quality of the stuff out there, including that made by highly paid professionals, was of very, very bad quality. Also, just a small fraction of the potential of the standards have ever been realized. Most don't know what they are missing. Also, I have found that the commercial tools on the market (e.g. FrontPage) are quite simply inadequate for making web pages. As strange as it may sound, that is the situation. It should be noted here that my own pages don't at this point live up to my high standards.

I started to participate a bit in foras that dealt with the development of these standards. It is very interesting, but I had to stop, when it took too much of my time. I have also developed many ideas as to I would like browsers to be, and that is very different from what we have today.

So, I have many years of experience, and have been following the development of the standards very closely. I have, however, no formal training at all. I have a few computer science courses, but all about scientific computing. Nevertheless, I think I know what I'm doing.

When I said that I soon found that only putting things on the web for people wasn't something I would spend time on, then I certainly didn't mean that I would put only my own content on the web, to the contrary. However, what is important is fostering an environment where people can cooperate most easily. This is the challenge.

The things people make needs to be done in such a way that it code is of high quality, and maintained in a context, so that it isn't just a bunch of loose sheets flying around. However, lacking tools to write good code, it is always the person who writes the code who becomes the narrow bottleneck, and in many projects, that person has been me. I know what it is like, and a huge effort must be made to remove that bottleneck. Untill that bottleneck has been removed, we can't create new content.

How to accomplish this? First, there are many cooperative projects out there, and I am myself involved in a few, and I can see the same problem everywhere. Many places, the real problem have not been found and analyzed, and so content creation is still very slow.

I think it is important that the pages can be read by anyone, I believe that the whole essence of the web is that anyone can access content in any way they want, so accessibility is a very important design principle. When I start talking about fancy new technologies, it is not because I want to exclude those who haven't got the latest browser. On the contrary, they will find a much better home at pages I make than on most other places on the web.

I think a major part of the solution will be to write an XML DTD specifically for this project. It must be written so that it is flexible, but still so that it is completely clear to our content creators what kind of structures fit into what constructs. Conversion from XML to e.g. HTML is trivial, so no backwards compatibility is lost.

With a good DTD, I hope that tools exist or will soon come into existance, that will read the DTD and allow content creators to fill in their content in a way that doesn't break with good quality code.

However, these are just initial remarks, and will be subject to discussion, when I get everything up and running...