Newsletter #3
Dit is issue #3 van een semi wekelijkse email die ik wat mensen stuurde om wat irritatie af te reageren. Gelijkenis met waargebeurde situaties en bestaande personen zijn opzettelijk en correct. (Als je de hitte niet aan kunt, verlaat dan de keuken).
Echt waar!
Op www.ziekenhuis.nl, staat midden-boven een dropdown, met daarin ziekenhuizen. Als je downdropt en dan een ziekenhuis selecteerd ga je meteen naar de website van dat ziekenhuis. Dat kost €750,- per jaar.
Bij vrijwel alle websites die zeelandnet beheerd worden dingen zoals stylesheets gecached. Elke keer als ik iets aanpas moet ik daarom een part-time systeembeheerder emailen en vragen of hij de cache kan flushen. Dat kan ik met een druk op de knop!
, pocht hij dan.
Een van de redacteuren stelt tweewekelijks verschillende ziekenhuizen op de hoogte van hun bezoekersaantallen. Dit is geen rapport dat hij stuurt per email, dat is geen website die zo'n ziekenhuis zelf kan bekijken. Hij belt mensen bij een ziekenhuis op, en zegt dan dingen als Jullie hadden afgelopen maand 119 bezoekers per dag.
Als de persoon aan de andere kant dat wil weten, is hij ook niet te beroerd om even de top tien pagina's van zijn scherm op te lezen.
Zeven Mei, 2001
Op de website ziekenhuis.nl staat een vraag en antwoord rubriek. Deze rubriek werkt als volgt. Je stelt via een formulier een vraag die dan wel of niet beantwoord wordt door een ter zake kundige. Deze persoon doe dit via een ander formuliertje waar hij/zij kan kiezen uit een van de openstaande vragen. Aan mij de taak om dit na te maken. Het origineel is namelijk een kopie van Het Script der Verdoemden, en dus een beetje tricky qua onderhoud. Waarom is HSdV gekopieerd en aangepast om twee formulieren te verwerken zul je afvragen, maar ik raad je aan jezelf dat niet teveel af te vragen). Alles gaat redelijk voorspoedig, en al snel heb ik een tabelletje met alle tot nu niet beantwoorde vragen. Heel veel tot nu toe niet beantwoorde vragen zelfs. In het origineel zijn het er maar drie. Niemand die weet wat dat zou kunnen zijn. Ik doorloop het script eens, maar wordt al snel afgeleid door monsters in de schaduwen en de resten van Tempels van het Kwaad. Na uren speuren door slecht verlichte gangen waar de uitscheidingen van naamloze Wezens langs de muren druipen tref ik in een alkoof mijn antwoord.
$query="SELECT nummer,datum,postcode,tekst
FROM site_medicijngids_vena
WHERE v.antwoord1 IS NULL AND datum >= '2001-05-07 00:00:00'";
Voordat ik het artefact nader heb kunnen onderzoeken wordt ik aangevallen door print "<font size='-2'>$datum</font>"; statements en ben ik gedwongen mezelf strategisch terug te trekken. Besmeurd met vuil en bloed kom ik uit de krochten gelopen, mijn ogen afschermend tegen het licht.
Is er een speciale reden dat er geen vragen getoond worden van voor 2001-05-07?
Pardon?
Is er een speciale reden dat er geen vragen getoond worden van voor 2001-05-07?
Ik begrijp geloof ik niet helemaal wat je bedoelt.
Dat weet ik wel zeker. Er worden geen vragen getoond, van voor 2001-05-07 en ik wil graag weten waarom.
Dat was vanwege de reden dat we toen zo'n aantal vragen in het systeem hadden lopen dat het ondoenbaar was om deze allemaal aan te vullen, en toen is er besloten opnieuw te beginnen na die datum.
Dus ik kan ze gewoon allemaal verwijderen?
Nee, want het geeft ons wel een goede indicatie wat voor soort vragen er veel worden gesteld.
Met lood in mijn hart breng ik dus nu de Runen van Waarschuwing en Commentaar aan om het Kwaad te binden.
redirect
Er zijn in WebWereld allerhande redenen om iemand te redirecten. Dit is dus de normaalste zaak van de wereld. Sterker nog: het is zelfs HTTP/1.0! Ook op de site waar een collega aan werkte. Helaas ging dat niet meer goed, en hij kreeg ook steeds de "Headers already sent" melding te zien. Dat kwam natuurlijk omdat ik de headers weer aangezet had om javascript popup/selfclose windows die cookies zetten te vermijden. Ik werd er dus onmiddelijk bijgeroepen. Er ging eerst een half uurtje voorbij waarin ik hem vroeg wat een functie zou moeten doen, bij gebrek aan commentaar, uitleg en duidelijke namen. Daarna worstelden we ons door allerlei geinclude libraries en werd mij uitgelegd waar functies als LatLonMiles voor nodig zijn. Om het maar even uit te leggen, daarmee kan je dus afstanden tussen een punt van een imagemap gebaseerd op latitude/longitude coordinaten en een ander coordinaat gebaseerd op een postcode uitrekenen zodat je dichtsbijzijnde foo kunt vinden voor een vacaturebank. Het enige wat je verder nog hoeft te weten is hoe je van een postcode naar een coordinaat komt, en dat gaat zo:
ob_start("ob_gzhandler");
$command="/usr/bin/wget -O - http://www.zoekplaats.nl/zoekplaats/cgi/waar.pl?actie=postcode&zoek=$postcode";
$buffer=passthru($command);
## nothing worked for me until I added this next line.
exec("exit(0)");
$thetext = ob_get_contents();
ob_end_clean();
Nouja anyway, dat wordt allemaal niet gebruikt want er is op die site geen vacaturebank.
Het redirecten dus. Eindelijk vond ik de wrapper die dat doet:
function redirect_to($url) {
print '<SCRIPT LANGUAGE="JavaScript"><!--
location.replace("' . $url . '");
--></SCRIPT>';
exit;
}
Pardon? Hoort daar niet iets te staan van header("Location: $url");? Wat is dit voor onzin? En dit werkt?? Het is vast weer 'even een snelle' oplossing omdat er tijd tekort was. Zelfs te kort tijd om even de TFMte Readen. Op flink nijdige toon vraag ik welke hersendode baviaan dit verzonnen heeft. De randdebiele designer met delusions of programmer antwoord dat dat de vorige programmeur was die hier aan heeft gewerkt. Beide weten we echter dat hij het was.
Zuiver uit nieuwschierigheid zoek ik even snel hoevaak dit gebruikt wordt, dan weet ik ook gelijk hoeveel troep er breekt als ik het aan zou passen.
35 stuks. Weet je wat, rot maar lekker op met je redirect. Ik ga naar huis.
Conflict op de werkvloer
Mijn manager, die weet waar hij mee bezig is, heeft zo langzamerhand wel een beetje genoeg van die designer met delusions of programmer. (Die laatste wordt overigens binnenkort ontslagen). Iedereen hoorde met een glimlach op de lippen de volgende woordenwisseling aan:
Gast, waarom werkt het niet?
Dat weet ik niet, maar ik denk dat het aan X, Y, Z en Foo ligt, misschien wel aan Bar.
Zoek het eens bij jezelf, het kan toch niet alleen altijd bij andere mensen liggen?
Maar het ligt altijd aan andere mensen.
Ik ben een beetje moe van het steeds maar excuses van je horen.
Je luistert niet naar me!
Ik luister niet naar je, omdat er alleen maar onzin uit je mond komt.
dirtytrick_rewrite.php
Was het bestand wat ik op maandagochtend te zien kreeg toen ik wanhopig op zoek was naar een template met een menu erin. Ik kan het niet laten om er even in te kijken. Het commentaar bovenaan de file luidt:
#dit gaat over het decoderen van gecodeerde url's
#met behulp van mednet_encode() - waarbij de url
#random wordt verhaspeld tot iets geheel onbegrijpelijks
#tegen leeghalen van een site
Waarna er een enorme reeks code volgt in de trant van:
$regel=array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
if ($pos > 15) $pos = $pos - 16;
if ($pos < 0) $pos = $pos + 16;
function encode( $str )
{
...
$return_str = bin2hex($newdata);
return $return_str;
}
function decode( $str )
{
...
$return_str = hex2bin($newdata);
return $return_str;
}
En meer van dat fraais.
Ook tref ik van de hand van dezelfde 'Programmer' (Wiebe de Wolf) commentaar als:
#tja...
#een stukje code dat slaat op een constructie die ik gebruik
#in case listgroepmedi (niet helemaal netjes)
#maakt van $type=listgroepmedi250 $type=listgroepmedi en $groep_id=250
---
#simpel en straightforward
---
#haalt geen arrays van links op
---
#lijkt me duidelijk
---
#lijkt me ook duidelijk
---
#listdoc
#listdoc doet wat het zegt
---
#zoek
#zoek zoekt!
---
#newdoc
#een nieuw document
---
#listindicatie
#lijst met indicaties
#vraag me af of deze nog zo expliciet gebruikt wordt
---
#listgroepbekijk
#listgroepbekijk is volgens mij overbodig geworden
---
#uitvoerend script
---
#editmedicijngroep
#aangeroepen door script dat al niet meer bestaat
#kan denk ik weg
---
En de allerbeste:
#geen commentaar
Misschien dat het idee achter comments hem nog niet helemaal duidelijk was.