Natuurlijk, als kind had ik misschien een Ferrari-poster aan de muur, maar mijn fascinatie voor Ferrari begon in 1990 met het Bburago Ferrari F40-model ( cod 3032). Enkele jaren later was er internet en alles evolueerde in de daaropvolgende 25 jaar naar (wat nu is) dacorsa.com. Dit bericht zal (in nogal technisch) detail alle verschillende incarnaties van de website en database samenvatten.
De Shell Ferrari Historic Challenge was in zijn hoogtijdagen, dus tijdens een bezoek aan de Spa Ferrari Days was er een overvloed aan klassieke raceauto’s, waarvan sommige met een indrukwekkende afkomst. Het concept van het bijhouden van chassisnummers werd al snel logisch en ik begon ervoor te zorgen dat elke foto die ik maakte werd voorzien van een annotatie met het chassisnummer van de specifieke auto.
Een of twee jaar eerder, toen internet mainstream werd in Nederland, ontdekte ik deze fansite voor Emanuele Pirro die ook informatie over Ferrari’s publiceerde, waarbij elke afbeelding geannoteerd was met de chassisinformatie. Op de een of andere manier kwam ik in contact met de webmaster van deze website (die later een vintage Ferrari-verzamelaar bleek te zijn) en een paar jaar lang kon ik foto’s en informatie naar hun Ferrari-sectie die uiteindelijk werd gescheiden van pirro.com en maranello.cc heette.
versie 1: StudioLine statische websitegenerator
De hoofdsponsor van maranello.cc maakte software om websites te publiceren met de naam Studioline, waarbij hij een compleet andere benadering gebruikte dan Microsoft Frontpage. Ik kreeg een bètaversie van de software en maakte de eerste versie van dacorsa.net, waarmee ik mijn bijdragen op andere websites en tijdschriften publiceerde.
Ten tweede was 1999 ook het jaar waarin ik kennis maakte met deze internationale groep mensen genaamd ‘Telaio’ die zich echt bezighielden met het registreren van chassisnummers van Ferrari’s, en ik had het geluk dat ik me bij hen mocht aansluiten. En tot slot heb ik, als onderdeel van een opdracht voor mijn professionele opleiding, een database gemodelleerd in Microsoft Access.
De website en database zouden een langlevende interesse blijken te zijn, onderhouden en gereïncarneerd voor de komende 25 jaar.
versie 2: editthispage.com online blogserver
De afbeelding hierboven toont een screenshot van de tweede versie van dacorsa.net, gemaakt en gehost op editthispage.com van Radio Userland. Professioneel raakte ik geïnteresseerd in de onderwerpen waar Dave Winer en Adam Curry aan werkten; outliners, RSS (en wat later podcasting zou worden) in het bijzonder. Dave heeft Radio Userland gemaakt, waarbij een website feitelijk werd gedefinieerd als een op tekst gebaseerde schets (inhoud) tegen een sjabloon dat lay-out en kleur toevoegt. Het concept van het rechtstreeks op internet bewerken van een webpagina was in die tijd behoorlijk spectaculair. Verder las ik dit online boek van Philip Greenspun genaamd ‘ Philip and Alex’s Guide to Web Publishing’ (Alex is uiteraard Philip’s Dog) met veel fascinerende ideeën over Sites die in werkelijkheid databases zijn.
versie 3: phpNuke online portal
Overdag werkte ik met grote en dure contentmanagementsystemen en portalen, dus toen open-sourcesoftware met vergelijkbare (zij het kleinschalige) mogelijkheden mainstream werd, kon ik de drang om het uit te proberen niet weerstaan en maakte ik een nieuwe versie van dacorsa.net. Deze keer ontwikkeld in de programmeertaal PHP met behulp van PHP Nuke en gehost op een gedeelde virtuele server. De afbeelding hierboven toont de PHP Nuke-versie van dacorsa.net, waar het typische portal-uiterlijk van PHP Nuke gemakkelijk kan worden herkend.
versie 4: online Typo3 contentmanagementsysteem
PHP Nuke was een leuke oefening, maar de inhoud van dacorsa.net groeide snel en alles werd opgeslagen in een ongestructureerde database, wat behoorlijk slecht aanvoelde (voor een software-ingenieur kon het andere mensen niets schelen). Een nieuw open-sourceproject viel op, genaamd Typo3 Content Management System, zeer professionele en capabele software die gemakkelijk te vergelijken was met de grote en dure bedrijfs-CMS-systemen waarmee we overdag werkten.
Er kon een sjabloon vanaf nul worden opgebouwd, er was een scripttaal en bovenal kun je een database modelleren voor je eigen gegevens. Dit was een mooie en professionele architectuur en het begin van iets veel belangrijkers (voor mij). Ik heb chassis-informatie en resultaten verzameld van alle evenementen die ik heb bijgewoond, maar deze werd meestal opgeslagen in afzonderlijke lijsten en gedeeltelijk in de (offline) database gemodelleerd in Microsoft Access een paar jaar eerder. Nu wordt de database, gestart in 1999, met Typo3 het ‘single point of entry’ en is zelfs ‘altijd online’.
online Typo3 contentmanagementsysteem
Gewoon een (uitgebreid) nieuw frontend-ontwerp voor de bestaande Typo3 online CMS stack.
versie 7: online Joomla contentmanagementsysteem
Er verschijnt steeds nieuwe open-sourcesoftware op internet en na het maken van een aantal andere websites met Mambo en Joomla CMS voelde het tijd om dacorsa.net over te zetten naar deze modernere software. Mijn aangepaste Joomla implementatie van dacorsa.net behield mijn speciale SQL-database die inmiddels behoorlijk groot was geworden. Na vele jaren geduldig wachten op een kans, kon ik eindelijk de domeinnaam .com verwerven, dus de site bleef voortleven als ** dacorsa.com**.
Om de inhoud van de hele database veilig te houden, werd een offline ‘origin’-database (opnieuw) geïntroduceerd (bijna dagelijks onderhouden) en werden regelmatig, maar willekeurige, snapshots naar de online database gekopieerd. Release 7 verving de vorige release van maart 2005 na bijna 6 jaar dienst.
versie 8: aangepaste offline PHP statische sitegenerator
Deze maand werd een volledig nieuwe build van dacorsa.com uitgebracht, ter vervanging van de versie van februari 2011 na bijna 5 jaar dienst. Deze nieuwe incarnatie zou ruim tien jaar online blijven.
De database was steeds complexer geworden waardoor het lastig werd om er (goedkope) hosting voor te vinden. Bovendien stond er behoorlijk wat informatie in die niet voor publicatie bedoeld was. Het online hebben van de database wordt dus een beveiligingsprobleem. Last but not least werd Joomla zo populair dat ik vrijwel dagelijks te maken kreeg met aanvallen op de website.
De release van 2016 zag een nieuwe (toen nog een beetje controversiële) benadering van een statische html-site. Ik heb speciaal gemaakte PHP-software gemaakt die een statische HTML-momentopname van de website genereerde, die letterlijk overal kan worden gehost en het aanvallen van deze bestanden heeft geen zin.
versie 9: aangepaste offline Java-generator + Angular single page-applicatie
Ergens in 2020 begon ik te werken aan een nieuwe generator (dit keer geschreven in Java tegen de offline database en de set met hoge resolutie scans die gerelateerd zijn aan de objecten in de database. Deze complexe Java-generator maakt momentopnamen van de database in JSON bestanden en converteert de scans met hoge resolutie naar een meer web-vriendelijke versie daarvan (evenement-posters en boekomslagen meestal) afbeeldingen. Zowel de afbeeldings- als de JSON-bestanden zijn statische exports, waardoor de meeste informatie in de database buiten risico blijft en het hosten goedkoop en gemakkelijk blijft. Er is een Angular) frontend-applicatie toegevoegd voor modern gedrag en look-and-feel, ter vervanging van de versie van januari 2016 na bijna vijf jaar dienst.
aangepaste offline Java-generator + Hugo statische sitegenerator
De applicatie Angular was een brug te ver voor wat eigenlijk slechts een heel fraai databaserapport is. Er was te veel tijd en aandacht nodig om de stack draaiende te houden en de codering fris te houden, tijd die ik liever aan de inhoud besteedde. Daarom ben ik sinds ongeveer 2016 begonnen met het consolideren van een groot aantal scripts die in de database zijn geschreven en heb ik deze opnieuw verwerkt in een aanpak in vier stappen. Bij elke stap zou ik de tussenliggende (inhoudelijke) situatie moeten kunnen debuggen. Bovendien zou een mogelijke toekomstige refactoring de veranderingen in eerdere fasen tot een minimum moeten beperken. (In theorie ben ik al een tijdje bezig met software-engineering, om beter te weten).
Maar hoe dan ook, zo zit het in elkaar:
Dat is dagelijks onderhoud; meestal gedaan in DataGrip door JetBrains. Handmatige gegevensinvoer, SQL-query, importeren van allerlei gegevensbestanden enz. Er zijn enkele scripts die afbeeldingen uploaden en converteren, sommige rapporten en validaties en back-upscripts. En de database zelf natuurlijk. Enkele cijfers op het moment dat ik dit schrijf:
Het doel van deze stap, volledig geïmplementeerd in SQL-scripting, is het maken van een momentopname van de database (hierboven beschreven), gedenormaliseerd en die alleen de gepubliceerde records bevat. De hele database bevat ook informatie die niet klaar is voor publicatie of zelfs geblokkeerd is om ooit openbaar te worden gepubliceerd.
Het doel van deze stap is om een soort publicatie uit de database te genereren met behulp van veel op maat geschreven Java-programma’s. Het resultaat van deze stap is een soort generieke publicatie; hoofdstukken en pagina’s zijn beschikbaar als markdown documenten, en afbeeldingen zijn opgemaakt klaar voor publicatie. Theoretisch kan deze tussen-publicatie nog steeds een boek worden in plaats van een website.
Voor het renderen begon ik deze slimme software te gebruiken genaamd Hugo. Dit open-sourceproject startte in 2013 en is uitermate nuttig voor het renderen van statische HTML-websites, het verzorgen van templates, indexen, sitemaps etc. Hugo zelf (en de Hugo-sjablonen voor dacorsa.com) zijn geschreven in GO wat verbazingwekkend SNEL is.
Het weergegeven resultaat wordt een paar keer per maand via FTP verzonden naar de webhosting service en gepresenteerd als dacorsa.com