The DHP; How we make it
| ||
Contents
Hardware & SoftwareHardwareThe information you are now reading and all other pages from our server are coming to you from a Silicon Graphics Challenge-S workstation.
The Challenge has a 200 Mhz R4400 CPU, contains 64 MB of
memory, 3 GB of harddisk, and two ethernet cards.
With this machine, we are able to make sure that the Dutch Home Page
will be accessible all the time (unless something funny happens
to our network). The machine runs IRIX 5.3 with the Indigo Magic
desktop. A joy to use.....
SoftwareWe are using the Netsite Communications Server version 1.1 from Netscape Communications which is very easy to install and maintain. All setup actions and maintenance are done through your favorite WWW-browser.v0.0: One Map VersionThe date of birth of the Dutch Home Page lies around November 1993. At that time, about 10 World-Wide-Web (WWW) servers (mostly universities) were active in the Netherlands. It seemed like a nice idea to keep track of the Dutch WWW-activities on a map of the country (as several other countries were doing by that time as well). This first map started to fill up during 1994 and by the second half of that year, measures had to be taken to keep the map functional. The first measure was to reduce the character size on the map.v0.1: Four Maps VersionBy the beginning of 1995, the number of sites had grown to such a number that, if we wanted to keep the geographically oriented interface, the map had to be split up into smaller parts or into several maps showing sites within the same category. The first option was choosen and the main map was split up into four parts.v0.2: Four Maps with City MapsFrom that time, the Internet and WWW has developed extremely rapid. This is reflected in the number of new sites which applied for a place on the map. One final measure was taken to enlarge the capacity of the page by setting up seperate pages for the four main cities Amsterdam, Rotterdam, Den Haag, and Utrecht. But the page's implementation could not grow any further.V1.0: First Automated VersionAfter three generations of pages, the demand for an automized way of drawing maps reached the level that we couldn't avoid it anymore; with three new sites a day, which takes about one hour to draw, and with again flooding pages, we had to take the big step to redefine the set-up of the pages.The Requirements for a New Set-UpWe decided to redesign the pages with the following targets:
ImplementationThere are many obstacles to overcome when switching from manual to automatic production of pages. Currently, about 15,000 lines of C-code are needed to produce the pages, and 3,500 for the database management.Graphics ToolsWe decided to draw the sites on the background of a satellite image. A click on some location on the small image on the main page, is linked to a page which displays the sites in that region.Unfortunatelly, some regions are very crowded with sites, other are near to empty. Some cities, especially Amsterdam, do contain so many sites that they would never fit on any region-map. Those sites have their own page, just displaying a long list of all sites in that specific city. Happily, just before we started with the development of these pages, we found the tool gd1.1.1. This library is capable of manipulating gif images. This library was extended with modules to
Drawing ImagesThe hardest problem is drawing the sites and city-names on the images. As any good Computer-Scientist can tell you, this is an NP-complete algorithm. The implementation is not perfect yet, but basically works as follows.At first, the location of the dots, representing the exact location of a city, and the border symbols are occupied. One city- or site-name should write over it. Then all sites are drawn, one after the other. When a site is drawn, it tries to take one of the many predefined shapes. A shape is
If this does not result in a shape for the city, the selection is tried a bit harder: for each shape, a few conflicts with neighbour cities are tolerated. These neighbours are pushed softly, one after the other, to select one of the other predefined shapes. If they all succeed, the new shapes are taken. If one of the neighbours fails, they are all put back to the shape they had before the pushing started.
If this still does not produce a shape for the city, the neighbours are
pushed harder: all neighbours have to try to form a new shape, even if they
have to push some of their neighbours to achieve that. Only when this
process is fully successful, the new situation is taken, otherwise the
shape is refused.
This algorithm produces rather quickly an acceptable result, although manual
drawing by humans produces a much better result.
EditionsEditions had to be introduced to avoid problems with caching displayers.For instance, NetScape caches the gif-files of regions, but not the related map-files (those are not transmitted at all). When new pages are produced, both the gifs and the maps are updated. Without precaution, the old region gif-file, which was cached on the user's machine, is used with the new map-file. To ensure that gif and map are used in the correct combination, editions were introduced: the paths to gif and map contain the date of production. The gif is reloaded when the page which contains it is reloaded, and the old maps stays available for a few weeks. Transition between editions are not disturbing the use of the DHP: without editions, there could appear some problems during the update of the pages.
For the DHP managers, it is easy to return to a former situation, when the
newest edition shows problems.
Next to the satellite image, a drawn image of the country is used. This map is useful when the whole country has to be displayed on large: the satellite image would be too large.
The drawn-image sometimes has insufficient space to draw all sites. For this,
a drawn map with
an enlarge area is available.
For this upgrade, we had to collect extra data from all sites already registered in the former verion of these pages. In addition to the information we had, all sites had to be checked for language and classified for categories of interest. v2.0: First Full RedesignThe continuously growing number of sites stresses all limits of the capacity of pages. With this, also the amount of time spent to update the databases gets unacceptable for volunteers; the DHP screemed for a new construction with more capacity to ensure continuity.Changed RequirementsTo improve the quality and capacity of the pages, the following requirements and targets were added:
New ImplementationMajor changes had to be made for the new implementation: about 90% of the code had to be rewritten to implement the new layout and to seperate English from Dutch language.Currently under development; when more details are known, this chapter will be extented. v2.1: New Search Facilities(11 Feb 1997) Major software changes took place in version 2.1 to be able to provide extended search possibilities. More possibilities will follow.The number of sites grows exponentially, which means a continuous effort to give all te sites a place on maps and in lists. Although this is automated, manual intervention is often required. For this version we decided to limit the geographical display to city-names only (so no sites on the maps anymore). The geographical maps are considerably reduced in size. List of changes:
v2.2: Speed-up and Category changes(10 March 1997) The code is now using shared-List of changes:
v2.3: New category structure(28 August 1997) The main change is a full redesign of the categories. All sites got a visit to establish their purpose.List of changes:
v2.4: Geographical pages remadeThe pages with sites geographically displayed were overfull, such that they needed to be split-up.List of changes:
CreditsCurrently, the DHP is being maintained and developed by the `Stichting The Dutch Home Page', which depends on the support of a few companies. |