De iCal Roostertool is niet meer, een terugblik

Feb 13, 2011   //   by Ruud Greven   //   Blog  //  5 Comments

Tja, mensen, zoals iedereen die ‘m gebruikte al gemerkt heeft is de iCal roostertool niet meer beschikbaar. Hij rapporteert nu nog netjes terug dat ie offline is, volgende week haal ik de hele site offline en is dus definitief niet meer te benaderen. Tijd voor een terugblik:

De iCal roostertool is ontstaan uit de behoefte om mijn lesrooster van Saxion in Google Calendar te krijgen. Het handmatig invoeren was lastig en tijdrovend en ik kwam tot het wijze inzicht dat dit makkelijker zou kunnen. Omdat ik toen geen idee had wie de roostersite van Saxion bouwde en ook niet de indruk had dat ik wel toegang zou krijgen tot de roosterdatabase ben ik alternatieven gaan zoeken. De oplossing vond ik in het geautomatiseerd parsen van de HTML van http://roosters.saxion.nl en dan de juiste informatie te pakken en die op een juiste manier in een iCal formaat te gieten. En zo geschiedde het…

Ik stuitte op Bennu, een aftands oude iCal library voor PHP die mij zou moeten helpen iCal te genereren. iCal is eigenlijk een gruwelijk simpel formaat (zie hier een voorbeeld) en het opbouwen ervan had ik ook zelf wel kunnen verzinnen. Het HTML Parsen was een kleine ramp, de HTML was waanzinnig beroerd opgebouwd en moeilijk te parsen. Met veel gepruts kwam er iets werkends uit voor mij. De lol was dat het in PHP geschreven was en ik het dus gewoon kon gebruiken als “online agenda” in Google Calendar, wat zoveel betekent dat ie zichzelf update en je er eigenlijk geen werk mee hebt. Ik had het op een gegeven moment zover dat ie bij elke aanroep naar de tool voor 6 weken je rooster teruggaf. Google Calendar roept automatisch elke 4 uur de URL op.

Toen ik het voor mij werkend had gekregen had ik snel de eerste collega aan mijn bureau staan die vroeg hoe ik dat gedaan had. Wat huiverig voor de consequenties heb ik dat niet al te hard rondgeroepen in het begin, omdat er mogelijk wel fouten in zaten en men bij Saxion ineens wel de nodige requests van mijn server zou zien verschijnen. Uiteindelijk toch maar de tool beschikbaar gesteld aan een paar collega’s binnen mijn team en al snel gebruikten steeds meer collega’s het.

Toen er op een dag een mailtje binnenkwam van Saxion systeembeheer die zich afvroegen waarom mijn server (via een reverse lookup kwamen ze op ruudgreven.nl uit) zoveel requests naar de roostersite deed heb ik het verhaal uitgelegd. Blijkbaar was mijn server aan het buggen geslagen want er kwamen duizenden requests per minuut binnen, dat kon niet goed zijn. Getriggerd door deze opmerking heb ik caching ingebouwd waardoor het aantal requests naar http://roosters.saxion.nl dramatisch verminderd werden. Om dit inzichtelijk te maken logde ik de verzoeken ook in een database. De systeembeheerders van Saxion vonden het eigenlijk wel een goed idee en vonden het prima dat ik zo’n dienst aan bood. Mooi, had ik eindelijk een soort informele toestemming.

Min of meer op hetzelfde moment heb ik het ding uitgebreid met klasseroosters. In het begin kon iedereen van Saxion de tool gebruiken, maar dit heb ik vrij snel bewust ingeperkt om te voorkomen dat ik enorm veel requests zou krijgen en ik allerlei mailtjes zou krijgen van mensen die het niet begrepen. In de eerste instantie had ik ‘m zo gemaakt dat ie alleen CII klassen pakte, later ook TKT klassen. Dit was dus bewust zo ingebouwd, uiteraard kon ie alle klassen gewoon doen (dat was zelfs makkelijker).

Na de bemoeienis van het IC (Systeembeheer van Saxion) ben ik wel regelmatig aan het pushen geweest om het toch vooral binnen Saxion voor elkaar te krijgen dat de roosters in iCal formaat aangeboden zouden worden. Na 2 jaar is dat nu eindelijk online verschenen en is daarmee mijn tool overbodig. Sterker nog, mijn tool kon niet meer werken omdat ook de HTML veranderd is en ik daardoor het hele parsegebeuren zou moeten aanpassen. Dat lijkt makkelijk, maar is een kriem vanwege de vele smerige hacks erin om uit die HTML te vissen wat ik nodig had. Kortom: Tool offline en doorverwijzen naar de Saxion oplossing was de enige oplossing. Dat heb ik dus gedaan.

En nu kijk ik weemoedig terug op bijna 3 jaar iCal roostertool.Hij is niet meer, wat rest zijn enkele statistieken (van precies een jaar, de rest ervoor heb ik toendertijd weggegooid).

De statistieken
Alle onderstaande gegevens gelden over de periode van 2 februari 2010 tot 2 februari 2011(de dag dat de tool offline ging).

  • In een jaar tijd kreeg de site 316.628 requests. Dat zijn er dus gemiddeld zo’n 867 per dag. Waarbij valt op te merken dat veruit de meeste requests van de Google Calendar servers kwamen. Deze vroegen zo om de 4 uur allerlei roosters op.
  • Er werden 185 verschillende roosters opgehaald afgelopen jaar, waarvan 33 docentroosters en dus 152 klassenroosters.
  • Er kwamen verzoeken vanaf 4676 verschillende IP adressen. Waarvan 150 verschillende Saxion adressen (145.76.nogwat) en slechts 18 UT adressen (van bijvoorbeeld campusbewoners. Dit aantal IP adressen verbaast me enigzins, omdat de meeste toch vanaf Google Calendar servers komen en zoveel verschillende IP’s hebben die niet. Waarschijnlijk hebben er heel veel mensen eenmalig vanaf hun PC op ‘t linkje geklikt om er vervolgens achter te komend dat ze geen iCal hadden.
  • Er zijn in dat jaar 82.078 requests naar de Saxion roostersite geweest. Dat lijkt veel, maar je moet je realiseren dat elke keer als ik het rooster ophaalde ik 6 requests naar de Saxion site deed (voor 6 weken). Ik cachde de roosters twee dagen. Als ik dat niet zou doen zou ik dus 316.628 * 6 requests naar Saxion hebben gedaan.

5 Comments

  • ruudgreven

    Voor de trouwe gebruikers van de door mij gemaakte iCal tool, die niet meer is ;-(. Een terugblik: http://blog.vanruud.nl/2011/02/13/de-ica...
    via Twitoaster

    • vongole1

      @ruudgreven zag hem toevallig deze week op de vernieuwde site staan ;) werk jij ook aan de roosters/beta? Zoekfunctie zou handig zijn
      via Twitoaster

      • ruudgreven

        @vongole1 nee, daar werk ik niet aan. Ze hebben mijn code oa gebruikt, maar meer ook niet. Zo’n featurerequest kan per mail naar servicedesk
        via Twitoaster

        • vongole1

          @ruudgreven is beetje dood vrees ik. Laatste tweet al heel oud.
          via Twitoaster

  • Leuk om te lezen.
    Heb deze tool voor 1,5 jaar gebruikt, en ben er zo blij mee geweest.
    De Saxion-versie ervan werkt ook zeer prettig.

    Dus bedankt voor alle code & gepush bij het IC! :D

Leave a comment

Kalender

February 2011
M T W T F S S
« Jan   Mar »
 123456
78910111213
14151617181920
21222324252627
28  

Recente reacties