Ynhâld fan ’e Boeklog – techniek-side

© eamelje.net 2001-2019. Alle rechten voorbehouden. All rights reserved

 

Error 28

Zeker. Boeklog.info ligt eruit. Maar niets dat ik daaraan doen kan. De fout ligt bij de domeinhost, die moet tijdelijke bestanden wissen die de MySQL-database achter de website heeft aangemaakt, of zoiets.

Yes, I noticed. Boeklog.info doesn’t work like it should do. Nothing I can do about it. The domain host has to flush the temporary files made by the MySQL database that runs the whole site, or something like that.


Boeklog xviii: bij zo ongeveer de 300ste boekbespreking

Grote voordeel van mijn boeklog boven dit weblog is dat het gericht over éen ding gaat. Ik heb weer eens een boek gelezen, en geef daar mijn impressies over weer. Zolang ik maar regelmatig blijf lezen, is daar nooit gebrek aan stof om over te schrijven.

Op eamelje.net is dat moeilijker. Hier zijn er maar weinig automatismen. Misschien wel te weinig.

Probleem met het boeklog is dan weer dat er meer met die website mogelijk is dan ik eigenlijk kan. Zo’n verzameling thumbnails van ingescande voorkantjes levert een heel aantrekkelijk beeld op, en zou een manier kunnen zijn om mijn archieven online beter te ontsluiten. Bijvoorbeeld. Omdat het bij mijn boeklog toch al zelden om de actualiteit gaat, maar meer om wat ik allemaal gelezen heb.

Maar zo’n interface maken, vergt meer kennis van PHP dan ik bezit, en veel meer tijd ook dan waarover ik vrijelijk beschikken kan.

De nerd in mij vindt dat erg.


Boeklog xix

Mijn boeklog ziet er vanaf nu wat anders uit. Maar nog grotere veranderingen zijn onder de motorkap aangebracht, al werkt nog niet alles naar mijn zin.

Zo is er nu eindelijk, op verzoek, ook een alfabetische titelindex. Wat mij nog niet zint, is dat die er meestal meer dan tien tellen over doet om überhaupt te reageren.

En, door de structuur van de database achter de website lukt het me nog steeds niet goed een alfabetische index met schrijversnamen te genereren. Enfin.


Boeklog xx

Door een tip van Ronald over tag-software is het me eindelijk gelukt een alfabetische lijst met de auteurs op mijn boeklog aan te maken.

Daardoor weet ik nu 283 schrijvers behandeld te hebben. Gerrit Komrij [16] het vaakst, gevolgd door Ethel Portnoy [9] en Rudy Kousbroek [9].

Omdat ik software van Engelstaligen gebruik, is er nu wel weer de ergernis dat die klinkers met accenten behandelt als vreemde tekens. Britta Böhler komt in de lijst na F.J.J. Buytendijk. Maar goed, perfect wordt het toch nooit. En ergernis alleen helpt niet.

En waar ik ook de pest over in heb, is dat ik altijd al velden aan de berichten toevoegde met de voornaam en achternaam van de schrijver. Dat is nu te zien in de titels van de berichten op archief– en categorie-pagina’s. Maar om éen of andere reden wilde die data buiten dat soort pagina’s niet netjes met me meespelen. Dus was gisteravond nogal wat dom typwerk van mij gevraagd.

Enfin. Dit moet het de komende 20 maanden dan maar weer doen, lijkt me.


Naschriften van een nerd | de achterkant van het gelijk

Veel jubilea zijn er alleen maar omdat een gebeurtenis veel later betekenis kreeg. Laatst werd gevierd dat het wereldwijde web vijftien jaar bestond. Maar vijftien jaar geleden was het www helemaal niet interessant, en veertien jaar geleden ook niet. Ik gopherde toen nog overal heen, en postte weleens iets op usenet. Natuurlijk was er e-mail, en met telnet was ook van alles te vinden, maar daarmee hield het internet wel op toen.

Met de populariteit van het www ontstonden er wel steeds meer mogelijkheden om zelf een website te publiceren.

Ook ik heb dat gedaan. Ik heb zelfs nog les gegeven over hoe dat moet, met die opmaaktaal html. Toen dat hele html nog niet zo gek veel kon trouwens.

Interessanter was tien jaar geleden al wat een webserver allemaal kon met scripts. Maar zelf scripts schrijven, had ik geen zin in. En steeds weer met html webpagina’s aanmaken, bleef me te omslachtig.

De misschien wel belangrijkste reden dat ik vijf jaar geleden met dit weblog begon, was dat er ineens gratis scripts beschikbaar kwamen om snel berichtjes te plaatsen online .

Greymatter heette het eerste CMS dat ik gebruikte, en een groot probleem ervan was dat van alles op de server helemaal herbouwd werd als ik een berichtje had gepost. Dat duurde me al gauw te lang. En het proces ging ook weleen mis.

Maar andere weblog-software had weer andere problemen. Dit weblog heeft sinds Greymatter nog op Movable Type en Nucleus gedraaid. Maar beide hadden zo hun eigenaardigheden die me niet bevielen. Dat trage herbouwen na ieder bericht bleef bij Movable Type, en Nucleus was me te zeer geschreven voor blind aan techniek verslaafde geeks.

Het duurde tot b2cafelog en de opvolger WordPress beschikbaar kwamen dat ik eindelijk software vond die me toestond mijn weblog ook onder de pagina naar mijn zin te kneden .

En WordPress is de afgelopen jaren steeds populairder geworden, wat betekent dat er ook steeds meer mensen extra toepassingen voor bedenken. Op mijn boeklog maak ik inmiddels dankbaar gebruik van de inventiviteit van anderen.

Maar, deze vakantie heb ik wel gemerkt dat WordPress 2.0.4 heel anders in elkaar zit dan WordPress 1.2.2, waar dit weblog nog op draait. Mijn boeklog was onder de motorkap nog wel aardig op te voeren. Voor eamelje.net moest ik dat maar niet doen. Er zijn te veel berichten met links naar onderliggende video- en audiospelers die bij een upgrade allemaal veranderd moeten worden, en meer van dat soort nutteloos werk.

Na vijf jaar heeft eamelje.net in elk geval technisch dan toch zijn definitieve vorm gevonden.

Uiterlijk, en inhoudelijk kan er nog van alles veranderen.


Naschriften van een nerd | als alles ineens weg lijkt te zijn

Groot chagrijn was er hier gisteren even, toen de server met mijn websites erop crashte, en die na een herstart nogal verminkt terugkeerden online.

De laatste twee maanden aan postjes waren ineens weg.

Dat zijn nogal veel woorden om uit Google te kopiëren en weer terug te plakken. Maar goed, van de database achter boeklog wordt iedere dag automatisch een backup gemaakt. Alleen kon ik daar niet bij, omdat al die backups op dezelfde ontoegankelijke server stonden als van waaraf de website gehost wordt.

Bovendien controleer ik nooit of die backups werkelijk wel alle tekst bevatten die ik op mijn weblogs had gezet.

Dus postte ik hier gisteren maar even deze woorden, in het speciale stijlkenmerk gereserveerd voor ernstige storingen:

De domeinhost heeft twee maanden berichten hier en op boeklog zoekgemaakt.

Woorden schieten tekort.
 

Maar door die storingsmelding te plaatsen, ontdekte ik dat er misschien weleens minder aan de hand kon zijn dan gevreesd. Dat berichtje had dezelfde datum als het meest recente uit de schijnbaar verminkte database. Misschien stond ergens een server daar ineens op een verkeerde dag.

Dit bleek inderdaad zo te zijn. En de helpdesk van de host was me daar iets te gemakkelijk over. Als ik niets gemeld had, was het hen nooit iets opgevallen.

Enfin, inmiddels heb ik voorzieningen getroffen om dagelijks backups te maken van al mijn websites, en die dan naar mijn PC thuis toe te schrijven. De inhoud daarvan wordt al automatisch naar elders gekopieerd, vanuit het thans door mij gehuldigde principe dat elke harde schijf ieder moment kapot kan gaan.

Ik merkte toch wel even nogal zwaar gehecht te zijn aan mijn weblogs, als notitieblok.


Naschriften van een nerd | problemen met de host 2

Vandaag was het op mijn weblogs weer ruim een uur twee maanden terug.

Waarom heet het als dit met een server gebeurt een stomme fout van de host, terwijl het in het echte leven na een grove blunder zo’n wensdroom kan zijn om de tijd terug te willen zetten?

De excuses komen nu in de vorm van geld, dat is elk geval iets. Maar zoals met zoveel dienstverleners, eigenlijk zou ik van de host niet moeten merken dat die bestaat.

En de dollar staat laag. Ik moest mijn risico’s maar eens spreiden.

 


Verslag van de slag | dag 3

De botnets blijven dom hun reclame sturen naar de commentaarvelden op dit weblog, zelfs al kan er niets meer worden geplaatst. Ook vandaag zijn mijn websites hierdoor moeilijk te bereiken, en bij tijden helemaal niet. Helaas.

Ik ben daar nog steeds niet heel vrolijk onder. Maar gelukkig al wel wat minder emotioneel dan gisteren, toen de schone taak op mij wachtte de database achter dit weblog uit te wieden van ongewenst spul.

Ter illustratie: normaal neemt de tekst aan postjes ongeveer evenveel ruimte in aan megabytes, als de reacties die u zo vriendelijk bent geweest te plaatsen. Door de massale aanvallen van maandag en dinsdagochtend was het volume aan reacties al drie keer zo groot geworden.

Ik ga wel door, natuurlijk ga ik door. Daarvoor zijn er te veel onderwerpen om over te schrijven. Maar ik hoop dat deze stormen snel overwaaien. En misschien moet ik het idee maar opgeven zelf de controle over bijna alles te willen hebben.

Maar wat ben ik blij dat er geen commentaarmogelijkheden zijn op mijn boeklog.

En wat is mijn haat toegenomen tegen het domme tuig dat anderen het idee verkoopt dat ze hun website hoger op Google geplaatst kunnen krijgen.

Of die sukkels die hun computer laten kraken.

Of het Microsoft dat zijn computersystemen zo lek maakt.

Of al die onnozelaars die weleens iets via een spammail kopen, en daarmee die hele cirkel aan computermisdaad hebben veroorzaakt. Als het niet loonde, werd het niet gedaan.


Bij het 800ste boeklogje | innerlijkheden

Er veranderde overigens wel iets meer aan boeklog afgelopen weekend dan die kleine facelift. Als de metafoor doorgetrokken wordt dat het weblog een wezen is, veranderde er zelfs vrij weinig aan het uiterlijk. In plaats daarvan werd wel het skelet vervangen, en de bloedsomloop. Het hart. De longen. Allemaal om wat meer bewegingsvrijheid te hebben, en een grotere immuniteit te krijgen tegen ziektes van buitenaf.

Een voorname wijziging is ook dat de al eens opgevraagde teksten nu in cache worden gezet. Zodat voor een volgende bezoeker niet alle informatie uit de database hoeft te worden gerukt.

Want, dat is het merkwaardige aan een website als deze, of boeklog. Fysiek zijn er maar een paar pagina’s, en dat zijn ook nog sjablonen, waar dynamisch tekst kan instromen. De pagina die u ziet, bestaat alleen zo in uw browser.

Maar door de cache van boeklog, ben ik ineens gaan zien, hoe veel pagina’s dat log theoretisch heeft. Er staan ruim 800 besprekinkje online, er is een kleine drie jaar aan maandoverzichten, er zijn ruim 40 overzichten van de categorieën. Maar elke auteur heeft ook zijn eigen pagina, goed beschouwd, dus dat zijn er dan nog eens ruim 470 extra.

Door de cache van boeklog zie ik ineens ook wat me in de statistieken eigenlijk nooit zo opviel. Bijna alles van die website is nog in vol gebruik. Ruim 90% van alle bezoekers daar komt via Google, Yahoo!, of Live, maar die zoeken haast allemaal op iets anders.

Bijna niets op boeklog verstoft, en dat is een onverwacht prettige gedachte.


Boeklog — aanpassingen aan de website

Het 900-ste boeklogje verschijnt binnenkort. En als ik maar rustig door blijf lezen, komt ergens in juni het 1000-ste online. Jubilea te over dit jaar, voor wie van de dwang van het ronde getal geniet.

Toch heb ik een probleem met boeklog. En dit is dat de som steeds belangrijker wordt als de delen. Met een enkel boeklogje is het simpel zo dat ik mijn dag kan hebben, of niet. Er zullen eens uitschieters naar boven zijn, maar er komen zeker minder gelukte besprekinkjes voor. De echte waarde zit hem dan ook in de verzameling.

Maar voor weblogs geldt dan weer dat die zo goed zijn als hun laatste stukje — tenzij de maker teren kan op een in het verleden verworven populariteit. Weblogs gaan om het nu, niet om zo goed mogelijk te ontsluiten wat er in het archief staat aan moois.

Boeklog is alleen tegelijk zowel een webdagboek over wat ik gelezen heb, als een steeds nuttiger wordend databaseje. En ik wil wel van dat weblogachtige af, terwijl het nodig blijft om aan te geven dat de website vrijwel elke dag ververst wordt. En ik wil wel meer nadruk leggen op de onderliggende verzameling, maar dit aspect gaat in de presentatie nogal gauw overheersen.

Dus ben ik al een half jaar aan het experimenteren met een andere vormgeving. Dat is te lang. Dat kost me te veel tijd.

En goed, dat experiment heeft me veel nieuwe kennis opgeleverd. Ik kan nu een voorpagina maken met alleen de scans van de voorkanten van de boeken, in elk gewenst formaat. Alleen zullen nieuwe bezoekers boeklog dan waarschijnlijk niet herkennen als dagboek.

Het enige mooie aan het huidige ontwerp is dat alle archiefinformatie zo prettig uit het zicht is weggewerkt. Zo leeg zou het nieuwe ontwerp ook moeten zijn, om het te kunnen vullen met andere verwijzende elementen.

Op dit moment lukt het me niet daar een evenwicht in te vinden. Ik vind ook geen voorbeelden online van een vergelijkbare aanpak. Het is altijd óf weblog, óf krant — en dus erg druk —, óf database. Daarom blijft het huidige ontwerp voorlopig nog maar even gehandhaafd, zij het met wat minieme aanpassingen.

En o ja, vanaf boeklog 900 wordt het mogelijk om daar direct te reageren.


Boeklog — aanpassingen aan de website | 2

Dus heb ik toch maar de voorpagina van boeklog aangepast. Al was het maar om dat zo lang gewenste overzicht van boekenkaftjes te kunnen tonen; automatisch gegenereerd; met titels en hyperlinks.

Natuurlijk levert iedere aanpassing zijn eigen problemen op. De Wet van behoud van ellende bestaat.

Maar enfin, tallozen lossen liever een Sudoku op, ter ontspanning. Dat is ook raar.


Boeklog — aanpassingen aan de website | 3

Visueel gepresenteerde informatie werkt anders dan tekst. Beeld wordt anders geïnterpreteerd. Dat is een wet, maar toch éen die ik telkens opnieuw ontdekken moet.

Presenteer de aanbevolen boeken maar eens eerst op kaft, en meteen valt op: wat zijn het er veel. 76 momenteel, ofwel ruim 8% van al het gelezene. En 76 kaften is oneindig veel meer dan 76 regels met titels, of die eindeloze toiletrol [dixit Achille van den Branden] waarin alle boeklogjes onder elkaar worden geplaatst. Zelfs al passen de kaften totaal niet bij elkaar.

Verder valt me op: er is maar een deeltje Privé-domein onder de favorieten. Toch is dit de enige reeks boeken met een speciale ruimte op mijn planken.

En er worden drie deeltje van John McPhee aanbevolen, misschien moet ik die man gewoon maar ‘hors catégorie’ plaatsen.

Valt me ook nog mee hoeveel romans, of novelles, er onder de favorieten staan. Al is het tal verhalenbundels groter. Enfin.

Overige opmerkingen [to do]:
in Opera

  • werkt alles zoals behoort;

in Firefox

  • splitst de hyperlink in de titel raar, als ik het scheidingsteken tussen boektitel en naam laat oproepen door de functie die de auteursnaam ophaalt;
  • al zou dat dan weer een nuttige functie hebben als ik eens uitvond hoe alleen de link naar de tag met de auteursnaam aan te roepen, en niet de getagde auteursnaam zelf;

in IE:

  • als de website maar leesbaar blijft in IE 6, zo zou ik mijn gedachten over die browser nog het vriendelijkst kunnen samenvatten;
  • IE 7 toont de banner rechts, met de aankondiging van mijn De Swaan-project, niet als aanclickbaar;
  • IE 7 doet raar met de uitlijning van de post-knop, onder de commentaren, behalve als die knop helemaal links staat;
  • IE 7 maakt het tot nu toe onmogelijk fatsoenlijk titel en schrijversnaam te tonen in een mouse-over, de boekkaften zijn nu alleen aan te clicken;

Boeklog — aanpassingen aan de website | 4

Internet Explorer blijft me pesten, met de meest onnozele ongerijmdheden, bij alle gewenste veranderingen aan de website.

Nu weer doet een standaardfunctie als de ordered list, of de unordered list, vervelend bij het renderen van de pagina. Springt zo’n tekst in, in plaats van gewoon links uit te blijven lijnen.

Voor het overige wordt de database nu werkelijk op alle mogelijke manieren ontsloten, en kan er technisch nauwelijks nog winst geboekt worden.

De problemen blijven hem zitten in de vormgeving, in de mouseovers met boektitels & schrijversnamen etc.. Hoewel ik de wervende banner rechts nu ook aanclickbaar heb gekregen in Microsoft’s zo ellendige IE.


Boeklog — aanpassingen aan de website | 4

Boeklog begon als logboek, maar is inmiddels veel meer een verzameling en database geworden. Daardoor stel ik er eisen aan, die oorspronkelijk helemaal niet voorzien waren. Daarom ook moet ik achteraf nog allerlei aanpassingen plegen, die behoorlijk wat tijd kunnen kosten.

Nu ja, het is geen aangenomen werk. Ik doe kalm aan. Als het bij het duizendste boeklogje allemaal klaar is, lijkt me dat vroeg genoeg.

Zo ben ik op het moment bezig de manier te veranderen waarop de plaatjes met de kaften worden aangeroepen. In plaats van die plaatjes in de tekst te zetten, gaan ze tot de metadata van die tekst behoren. Dat geeft me oneindig veel meer mogelijkheden om de visuele presentatie te verbeteren.

Punt is alleen dat het tamelijk veel en nogal onnozel werk is om van elk boeklogje de metadata aan te passen. Automatiseren lukt bijna niet, dus komt het aan op hersendood handwerk. Maar enfin, 2006 is bijna gedaan, en dan wacht 2005 nog.

Nu ja.

Wel leer ik steeds beter te begrijpen hoe WordPress nu precies werkt, en daarmee ook wat de nadelen van het systeem zijn. Zo ergerde ik me er altijd aan dat het woord ‘category’ in de URL meekwam, bij het aanroepen van een overzichtspagina. Trots was ik dat het me lukte deze gewoonte uit te schakelen. Om er natuurlijk een paar dagen later achter te komen dat dit veel simpeler kon. WordPress heeft dermate veel gebruikers dat alles al eens uitgevonden is.
 
 


Overwegingen | 34 [extra nerdige editie]

  1. Die plugin’s om .odf-bestanden in te voeren in Word zijn onvoorspelbaar in hun gedrag, en daarmee onbruikbaar;
  2. En met de uitvoer is het al niet beter;
  3. Is het dus gewoon afwachten tot OpenOffice.org 3 dat vreselijke nieuwe Microsoft-formaat ondersteunt, om daar geen problemen mee te hebben;
  4. Het is wat merkwaardig dat het beste programma om teksten open te peuteren, in welke formaat dan ook, op dit moment alleen via de browser te gebruiken is, en GoogleDocs heet;
     
  5. Boeklog kan waarschijnlijk zonder problemen verhuizen naar WordPress 2.5, zo gauw als dat CSM officieel is uitgebracht. Die kennis heeft deze Paas dan toch maar opgeleverd;
  6. Boeklog leunt nogal zwaar op het gebruik van tags, maar sinds WordPress versie 2.3 is het beheer van die tags totaal veranderd. En in dit geval niet ten goede;
  7. Er is geen beheer meer mogelijk namelijk;
  8. Versie 2.5 maakt het tag-beheer iets aangenamer. En doordat het gebruik van tags beter in het CMS geïntegreerd is, kan ik er ook meer mee, bijvoorbeeld in de vormgeving van de auteurspagina’s;
  9. Bovendien wordt het door de verbeterde XMLRPC steeds interessanter om op WordPress te posten vanaf externe applicaties. Weliswaar begint mijn geliefde w.Bloggar daarbij nu wat beperkingen te tonen, dit komt ook omdat ScribeFire en zelfs Live Writer bruikbaarder alternatieven vormen;
  10. En nee, webloggen vanuit Word 2007 is dat niet;
     
  11. Prioriteit: een uitgebreid klembord vinden voor Windows, dat én standaardteksten kan opslaan, én leuk met Microsoft Word meespeelt;
  12. Dat is: zodat Word er niet steevast uitklapt;

Boeklog — aanpassingen aan de website | 5

Onder het mom: het zal niemand opvallen, maar ik beleef er toch enig plezier aan, heb ik opnieuw een minieme aanpassing aan mijn boeklog gepleegd. Voortaan wordt bij een zoekopdracht ook meteen het kaft getoond van het boek waarnaar verwezen wordt.

Bovendien staat de zoekterm nu ook nog eens herhaald boven de resultaten. Valt een typfout in de opdracht bijvoorbeeld beter op.

En ja, het tonen van de kaftjes bij de zoekresultaten kan alleen, omdat die informatie inmiddels als metadata aan elk boeklogje is toegevoegd. Ik heb ook een overzichtpagina gemaakt, met alle kaftjes, maar die heeft verder geen enkel nut. Ook al ziet zo’n verzameling er misschien indrukwekkend uit, het duurt eenvoudigweg alleen al nutteloos lang om alle 940 plaatjes van dit moment in te laten laden.


Function.session-start

Zoals vaker opgemerkt, het kan maar op vijf verschillende niveaus fundamenteel misgaan met een website als deze. De server kan bediening weigeren, of de database heeft ineens krampen door te volle buffers, de scripttaal PHP kan plots zwijgen, en dan is er nog het stylesheet, en de HTML.

Van al deze factoren heb ik nog net invloed op stylesheet, en HTML. Als er op andere niveaus iets misgaat, is daar voor mij niets tot bijna niets aan te doen.

Dus waarom hedenochtend mijn boeklog ineens stelselmatig het PHP-commando function.session-start wilde uitvoeren? Geen idee.

Waarom dit commando in de header stond? Mij onbekend. Al zal ik het er ongetwijfeld zelf ooit hebben geplaatst.

Enfin, ik heb dat ene commando dan maar weggehaald. En alles lijkt weer normaal te werken. Maar waarom boeklog jaren zonder problemen draaide met dat commando in de header, en nu ineens niet meer? Raadsels zijn het, die me net niet genoeg boeien om uit te zoeken.


Overwegingen | 1214 technische editie

Murphy’s Law kent vele lokale varianten;
En dan zijn er nog mensen, zoals ik, die menen dat Murphy een onvergeeflijke optimist was;

Boeklog draait vanaf gisteravond op de nieuwste versie van WordPress. Joechhei. Dat vroeg een krankzinnige intellectuele inspanning, die als voornaamste resultaat heeft dat de website er precies hetzelfde uitziet als voorheen;
Het zijn dan ook slechts het hart en de longen die vervangen werden. Plus het hele geheugen, en de aansturing daarvan. Alle moeite is gedaan om een veiliger site te krijgen. En éen bovendien die zo standaard is dat de nieuwste maatregelen tegen hackers automatisch te installeren zijn;

Om zo standaard als mogelijk te worden, moest ik twaalf verschillende hacks schrijven. Vooral omdat het interne systeem dat WordPress nu heeft om met ‘tags’ om te gaan ontstellend veel primitiever is als de externe oplossing die ik gebruikte;

Voordeel is nu wel dat ik nu ook weer andermans oplossingen gebruiken kan om de functionaliteit van de website te vergroten;

Zo had ik binnen een half uur ook een versie van boeklog gereed die geoptimaliseerd was voor kleine schermen, zoals een telefoon;
Enige nadeel van die oplossing: als een pagina al eens opgevraagd was door een bezoeker van de gewone website, kreeg de mobiele beller die ook te zien, inclusief de bijhorend lange laadtijd — omdat caching van opdrachten voor alles blijft gaan;
En mijn idee was nu net om makkelijk de lijst met auteurs of boektitels bij de hand te hebben, als ik weer eens in een boekwinkel stond;
Dat zijn twee van de meest opgevraagde pagina’s, die altijd in cache staan;

Dus nu moet ik onderzoeken wat prettiger werkt: een mobiele versie van boeklog op een apart adres; met mogelijk het probleem dat Google het vervelend vindt dat dezelfde teksten twee keer online staan;
En Google brengt haast alle bezoek binnen — daar moet ik vriendelijk voor blijven;
Of dat de standaard-installatie van boeklog volstaat, als daar enkel die twee indexpagina’s aan worden toegevoegd speciaal voor mobiele bezoekers;

Enfin. Wordt het eindelijk weer eens interessant om aan uiterlijke veranderingen van de website te denken;
En zo gaat het leven voorbij;


Straf

Google heeft mij straf gegeven, en ik weet niet waarom. Sinds vrijdag is boeklog vrijwel onvindbaar via de zoekmachine, en krijgt mijn website alleen nog bezoek van het vaste publiek.

Weet ik eindelijk hoe groot dat is.

Niet dat ik boeklog schrijf voor de kijkcijfers. Advertentie-inkomsten zijn er niet, dus die kan ik ook niet verliezen.

Het voelt alleen wel als een straf. Een onterechte straf. Ik zie bij mijn beste weten niet in wat ik verkeerd zou hebben gedaan. En toch is boeklog alleen nog vindbaar voor de enkeling die zeker drie zoektermen gebruikt. Van minstens enige honderden bezoekers per dag, in de rustige tijden, is de stroom die via Google op boeklog aangeland plots gestokt.

Dit is meer mensen overkomen. Zo leert het machtige Google mij dan weer, door naar hun klachten te verwijzen. Voorlopig speelt het bedrijf stommetje, om commentaar gevraagd.


Straf 2

Er wordt zo langzamerhand iets meer duidelijk over het waarom van de straf van Google — die boeklog ineens vrijwel onvindbaar maakte, waardoor de bezoekersaantallen plots nogal drastisch daalden anderhalve week terug.

  • Al op 9 februari heeft iets of iemand illegale content op de server geplaatst, in de root van boeklog.info. Jammer genoeg kwamen deze html-pagina’s en de bijbehorende plaatjes in een directory terecht die ik zelf ooit had aangemaakt, waardoor niet opviel dat de inhoud daarvan veranderd was;
  • Vanaf dat moment was boeklog dus voorzien van allerhande extra statische pagina’s, met allerlei verwijzingen; waarschijnlijk om iemands pageranking bij Google te vergroten;
  • Opvallend genoeg was die illegale iets of iemand Nederlands, of in dienst van iets Nederlands;
  • Hoe dat spul op de server geplaatst kan zijn, is nog altijd onduidelijk. Vermoedelijk werd gebruik gemaakt van een lek in het CMS van Boeklog, waardoor cross-scripting mogelijk werd. Dat CMS heb ik stomtoevallig, zonder van de besmetting te weten, later op 9 februari aangepast aan de nieuwste versie;
  • Sindsdien merkten de Google robots dat een aantal bestemmingen online ineens wel heel populair werden, en vooral dat de verwijzingen naar deze website[s] allemaal hetzelfde waren, en daarmee waarschijnlijk illegaal. Dus werden zowel bestemming[en] als verwijzers gestraft, met verwijdering;
  • Maar vanwege boeklog’s goede status elders, neemt Google de website langzamerhand weer in genade in, waardoor ook de bezoekersaantallen weer naar hun vroegere hoogten groeien.

Boeklog was dus gehackt. Onderzocht wordt nog of er meer geplaatst is dan alleen wat statische html-pagina’s en plaatjeboel. Hiermee is dus éen raadsel opgelost, wat op zich prettig is. Zij het dat ik niet heel vrolijk wordt van het antwoord.


Auteurs A-Z

Een te verwaarlozen stap voor de mensheid, maar een grote sprong voorwaarts voor éen man. Ik begin inmiddels zo veel van de scripttaal PHP te begrijpen, en arrays, dat het betrekkelijk weinig moeite kostte die ellenlange lijst met auteurs op boeklog automatisch op beginletter te splitsen.

Of om boven die lijst een menuutje aan te maken waarmee snel naar de gewenste letter te springen is.

Is de volgende stap om elke beginletter een eigen pagina te geven, als het bij te veel letters lang omlaag scrollen wordt. Dat kost nu ook geen moeite meer. Maar dat scrollen blijft dan toch, tenzij ik met kolommen ga werken, wat het overzicht weer niet ten goede komt.

Enfin.

Geen website is ooit af.


What’s in a name…

Merkwaardige overwegingen moet een mens soms maken… Elke pagina van mijn weblogs heeft een titel, en doorgaans doet die er niet zo toe. Behalve dan dat die titel ook is wat zoekmachines prominent tonen als een zoekopdracht naar mijn logs verwijst.

Dus was het voor boeklog wel handig als naast de titel van het besproken boek ook de auteursnaam getoond werd in de titel van de webpagina; en daarmee op Google en de concurrenten. Maar dan wel weer zo dat ik flexibel met de combinatie van auteursnaam en boektitel kan omgaan.

Zou ik die twee gegevens vast tot éen titel maken, maakte dat bijvoorbeeld een alfabetische lijst van boektitels onmogelijk; of op zijn minst onhandig om aan te maken.

Kostte het, gezien de hoeveelheid vaste codes in WordPress, nog moeite ook om de paginatitel automatisch te genereren naar mijn zin.

Ben ik er nog niet uit, welk scheidingsteken te gebruiken, tussen auteursnaam en boektitel. Wordt het, om bij het boeklogje van vandaag te blijven:

Jean-Paul Franssens. Zuiderkerkhof 1
Jean-Paul Franssens, Zuiderkerkhof 1
Jean-Paul Franssens - Zuiderkerkhof 1
Jean-Paul Franssens — Zuiderkerkhof 1
Jean-Paul Franssens • Zuiderkerkhof 1
Jean-Paul Franssens: Zuiderkerkhof 1

Enfin, ik gebruik deze aanpassing ook om te kijken hoe Google boeklog indexeert — of ook de gegevens over oudere boeklogjes worden aangepast. Blijkbaar heb ik weer straf of zo, want onder veel zoektermen die traditioneel nogal wat verkeer opleverden, is boeklog nu niet eens meer te vinden.


Eng

Begin dit jaar werd de server gehackt, waarop eamelje.net en boeklog gehost worden. Waarbij de snoodaards html-pagina’s met porno in een onderliggende directory dumpten, en ook nog een javascript toevoegden aan de sjablonen voor opmaak — waardoor bezoekers ineens allerhande reclame werd voortgezet.

Dat is leerzaam, alleen niet op een prettige manier, maar ik dacht mijn zaakjes goed voor elkaar te hebben. Terwijl me nu blijkt dat tot vorige week al de webpagina’s op boeklog nog reclame toonden. De Google Cache biedt het stille bewijs.

Alleen heb ik niets veranderd sinds vorige week. Dus ontgaat me waarom die pagina’s nu wel schoon zouden zijn…


Eng | 3

Wat enige uren aan onwillige inspanning aan kennis hebben opgeleverd:

  • boeklog is ergens tussen 26 oktober 2009 en 21 november opnieuw gehackt, via WordPress, of een WordPress-plugin – dus of door cross-scripting, of door een MySQL-hack;
  • de MySQL-database werd daarbij niet aangetast;
  • wel zijn er verschillende scripts op de server geplaatst;
  • het belangrijkste script is minstens drie keer versleuteld, waardoor ik niet kan lezen wat het doet. Omdat het script gebruik moet maken van standaardfuncties van de Apache webserver, kom ik daar misschien nog weleens achter;
  • in elk geval leverde dit script als resultaat op dat onderaan elke webpagina reclame werd geplaatst;
  • mijnheer Lundmark, met zijn webadvertentiebureautje, mag van mij snel heel erg naar aan zijn einde komen;
  • gelukkig maar dat het bij reclame is gebleven;
  • maar verdere diskwalificatie van boeklog door Google zal wel niet uitblijven;

En gaat over tot de orde van de dag.


Queries

De techniek achter boeklog en eamelje.net blijkt telkens weer kwetsbaar voor hackers. Daarom heb ik een planning gemaakt om mijn websites bomzeker te maken. Onderdeel hiervan is om alle externe plugins te vervangen door keiharde zelfgebakken code.

Extra voordeel hiervan is dat ik dan tenminste functies beschrijf die me nuttig lijken, en niet toevallig wat eigenschappen benut van software die iemand anders in elkaar heeft geknutseld.

Zo heb ik de meest nutteloze pagina van boeklog, met de titels van alle boeken, in verrassend weinig tijd, behoorlijk kunnen stroomlijnen. Waar de plugin die ik gebruikte het ongelooflijke aantal van 3062 queries naar de database verstuurde om de lijst op te stellen, is dit nu sterk gereduceerd. Laadt de pagina tenminste ook weer binnen een mensenleven in.

Blijft staan dat zo’n titeloverzicht een zware pagina oplevert; heel snel inladen zal nooit lukken. Uitgeprint op A4’tjes zou het ding in de huidige een-koloms vormgeving ook al zo 45 pagina’s tellen. Dat is veul.


Eng | 4

Ondanks al mijn inspanningen is boeklog opnieuw gehackt. En het enge is dat ik ditmaal niet kan zien waardoor er nog weer eens onzichtbaar reclame in de webpagina’s is aangebracht. Roep ik zo’n pagina op, is die reclame er niet. Komt een Google-robot langs, is die er wel. Tussen beide versies zal een script iets doen, maar dat script is onvindbaar.


Eng | 6

Boeklog pauzeert, en trekt prompt aanzienlijk meer bezoekers dan gebruikelijk sinds de hack dit voorjaar, en de daarop volgende diskwalificatie door Google. Die straf is blijkbaar opgeheven.


Boeklog, versie 3.60

Ik had gehoopt 2010 te openen met versie 4 van boeklog. Alleen lukt me lukt dat niet meer, voor 1 januari. De nieuwe layout moet wachten.

Deze dagen heb ik besteed aan het verstevigen van zo veel mogelijk zwakke plekken van mijn weblogs. Dit vereiste onder meer dat ik plug-ins verving door eigen code. En dat bleek werkelijk stomvervelend en daardoor tijdrovend werk te zijn. Waardoor de lust me even vergaan is nu nog langer te prutsen.

Ik wist zulks ook wel.

Programmeurs vallen volgens mij grofweg uiteen in drie groepen.

De eerste maakt iets uit meestal helemaal niets, en ontleent daaraan prestige en arbeidsvreugde. De tweede groep pakt iets dat er al is, en doet dit in eigen code na; en als dit werkt, volstaat dat wel. En de derde groep pakt ook het liefst iets dat er al is, maar versimpelt dit dan zo ver mogelijk als kan; waarbij die code toch dezelfde functionaliteit moet houden.

Verreweg de meeste programmeurs die ik heb gekend, horen bij de tweede groep. En alleen de echt consciëntieuzen onder hen horen bij de derde. Maar zulke ambachtelijke kwaliteit levert vrijwel nergens waardering op, dus zijn dergelijke lieden alleen daarom al schaars.

Ik val karakterologisch gezien onder de eerste groep. Maar ik ben tegelijk ook lui, en ontbeer oefening en daarmee routine.

In eigen code namaken wat er al is, ligt me dus niet. Daar zit geen enkele beloning in.

Dus moest ik kunstmatig beloningen inbouwen. Zo kost het nu slechts 12 queries aan de databases om de lijst met alle titels aan te roepen op boeklog. In plaats van de 3062 die een plugin ooit eiste. Hoi hoi.

Maar de beveiliging verbeteren van iets is werkelijk te abstract een doel om vreugde aan te ontlenen.

Dan had nog een troost kunnen zijn om mijn weblogs mooier te maken. Maar die inspanning vergt een energie die ik nu niet meer heb. In plaats daarvan heb ik, mede op verzoek, wat kleine wijzigingen doorgevoerd.

Zo is de voorpagina nu weer minder abstract, en meer weblogachtig dan voorheen. Vanwege de diskwalificatie door Google wordt de homepage tegenwoordig ook weer gebruikt door bezoekers; die de vorige versie van de voorpagina lang niet altijd begrepen.

Het moet alleen allemaal nog eens helemaal anders.


Taxonomieën en ander gedoe

Weblogs hebben inmiddels prachtige mogelijkheden om eenvoudig en snel tekst online te zetten. Maar weblogs zijn er aanzienlijk minder goed in om bezoekers te tonen wat eerder al eens werd geplaatst.

Vanouds waren geschreven weblogjes al in te delen naar categorie. Dat werkt heel aardig, tot er een paar honderd postjes zijn of meer, en het archief van zo’n categorie een lange onoverzichtelijke lijst wordt.

Daarop is uitgevonden om categorieën hiërarchisch te maken. En daar maak ik bijvoorbeeld op boeklog ook gebruik van. De categorie met boeken over politiek, valt daar, net als de boeken over economie, onder de moedercategorie ‘maatschappij’.

Nog weer later wordt bedacht dat weblogjes handig van trefwoorden zijn te voorzien; de zogeheten ‘tags’. Ook dit werkt goed, zolang het aantal tags beperkt blijft, en daar enige structuur in blijft. Het systeem werkt bijvoorbeeld al niet als meer dan éen iemand een weblog bijhoudt, en iedereen zijn eigen tags verzint.

Op boeklog zijn alleen de schrijversnamen ‘tags’, wat het mogelijk maakt om eenvoudig een alfabetische lijst met opgenomen auteurs te genereren.

Alleen wilde ik mijn boeklogjes ook kunnen ‘taggen’ met andere trefwoorden dan de schrijversnaam alleen. En daartoe heb ik me moeten verdiepen in de mogelijkheden die WordPress verder biedt tot ‘taxonomy’.

Op zich is de inzet daarvan niet heel moeilijk. Al geldt die eenvoud vooral het gemak waarmee metadata aan postje is toe te voegen. Punt is alleen dat, anders dan bij het gebruik van categorieën of tags, je alle code zelf moet schrijven om de opgeslagen informatie weer elegant uit de database te kunnen peuren. Standaard zijn er vrijwel geen functies vastgelegd.

Dus houd ik het voorlopig simpel. Boeklog krijgt nu ook een twintigtal dossiers, waarin boeklogjes zijn opgenomen die tezamen, over langere tijd, een onderwerp uitdiepen.

Al zijn er daarnaast nu al dossiers bij die niets meer doen dan zaken bij elkaar harken die bij elkaar horen.

Kan ik daarnaast later alsnog besluiten om alle boeklogjes op Dewey-code te ontsluiten. Of op uitgever, of op jaartal.

Niet dat iemand daar behoefte aan heeft. Maar het kan. En ik weet nu hoe. En dat is mooi.


Taxonomieën en ander gedoe | 2

Op verzoek wat uitleg over het gebruik van eigengemaakte taxonomieën in WordPress.

Standaard zijn er twee methoden ontstaan om metadata aan een post toe te voegen op een weblog, naast de gebruikelijk ordening op datum, dus zo ook met WordPress. Zo’n tekst kan bij een categorie worden ingedeeld, of gelabeld worden met trefwoorden, de zogeheten ‘tags’.

Dit werkt op zich best, behalve als een weblog ouder wordt, en groter, en dan blijkt dat er weinig systeem zit in de gebruikte trefwoorden; zodat het voor bezoekers bijvoorbeeld moeilijk wordt om te zien of een bepaalde tag ooit gebruikt is.

WordPress heeft sinds een paar versies van de software terug daarom het hele metadata-systeem omgegooid. Het is nu vrij eenvoudig mogelijk naast de bestaande reeksen aan categorieën en trefwoorden daar nog éen of meer naast te zetten. Een probleem is wel dat deze mogelijkheden nog vrij slecht gedocumenteerd zijn.

Het enige wat er nodig is om de extra metadata over een tekst in de database te kunnen zetten, is het toevoegen van enkele regels code, aan de functions.php die het theme gebruikt — dat is de set aan sjablonen die WordPress gebruikt voor het uiterlijk van de website.

De functie die ik op boeklog gebruik, ziet er zo uit:
add_action( 'init', 'create_my_taxonomies', 0 );
 
function create_my_taxonomies() {
register_taxonomy( 'dossier', 'post', array( 'hierarchical' => false, 'label' => 'Dossier', 'query_var' => true, 'rewrite' => true ) );
}

Daarbij verdient de register_taxonomy regel misschien enige toelichting:
register_taxonomy( 'dossier', 'post', array( 'hierarchical' => false, 'label' => 'Dossier', 'query_var' => true, 'rewrite' => true ) );
Hierbij is in het eerste woord ‘dossier’ de naam vastgelegd die in de URL gebruikt gaat worden, omdat ‘rewrite’=> true. De aanduiding ‘label’ => ‘Dossier’ legt dan weer vast hoe het extra veld in de backoffice heet, en het scherm om deze nieuwe reeks aan trefwoorden te beheren.

Want, met dat ‘dossier’ heb ik een extra stel tags toegevoegd aan de website. Dat wordt vastgelegd door de parameter: array( ‘hierarchical’ => false

Was de parameter: array( ‘hierarchical’ => true, dan had ik een nieuwe serie categorieën aangemaakt, die onafhankelijk functioneren van de bestaande categorieën.

Het is met dezelfde techniek heel eenvoudig om nieuwe reeksen aan metadata te te voegen. Stel ik zou boeklog ook per recensie willen bijhouden wie een boek heeft uitgegeven, om later met die data te kunnen spelen, dan vraagt dat slechts een regel code extra, in de functions.php
add_action( 'init', 'create_my_taxonomies', 0 );
 
function create_my_taxonomies() {
register_taxonomy( 'dossier', 'post', array( 'hierarchical' => false, 'label' => 'Dossier', 'query_var' => true, 'rewrite' => true ) );
register_taxonomy( 'uitgever', 'post', array( 'hierarchical' => false, 'label' => 'Uitgever', 'query_var' => true, 'rewrite' => true ) );
}

Maar, hoe al die metadata dan weer uit de database gepeuterd kan worden, is ingewikkelder. Ook al vanwege het gebrek aan documentatie.

[wordt daarom vervolgd]


Fatal error

Het gebruik van computertechnologie dwingt een mens tot een overgave aan schijnbaar hogere machten. Wat de ene dag nog perfect werkt, kan het volgende moment onherstelbaar kapot lijken.

Heb ik daarbij nog de fout gemaakt ook om mijn eigen code te willen kloppen. Juist omdat de scripts van anderen nooit precies de mogelijkheden boden die ik zocht, of een veel te zware belasting op de server legden.

Punt daarbij is dat ik al heel blij ben zo ongeveer te snappen welke elementen een script moet bevatten. De belangrijkste delen van de code zijn vervolgens wel bij elkaar te goochelen. Dit is het internettijdperk. Vergelijkbare problemen zijn door anderen al lang eens naar tevredenheid opgelost.

Maar gisteravond, of misschien al eerder, ik kijk niet alle dagen, hield de gesorteerde pagina met alle boektitels van boeklog er ineens mee op. Een luizige 71 bytes kon niet meer worden weggeschreven naar een cache, die het een volgende bezoeker mogelijk moet maken om dezelfde informatie zonder inspanning voorgeschoteld te krijgen.

Geen van de standaardoplossingen die Google, of de WordPress fora voorstelden, brachten soelaas.

Een grove hack uit de php-bibliotheek werkte wel. Als de algemene instellingen van de server niet toestaan dat een script wordt uitgevoerd, dan is zo’n script apart te voorzien van een uitzonderingsbepaling, waarin meer geheugenruimte wordt geëist.
ini_set('memory_limit', '96M');
En zo, uiteindelijk, kostte het me tien minuten om een oplossing te vinden voor een probleem dat onverwacht opdook; op een moment dat ik betere dingen te doen had.

En opnieuw werd mijn kennis uitgebreid door pure noodzaak. Zoals ik al te veel kennis opdeed over computertechnologie omdat het nodig bleek een probleem op te lossen.

Wie almaar struikelt, komt natuurlijk ook vooruit.


Onderhoudswerkzaamheden

De FAQ van boeklog aangepast, omdat er nog altijd mensen zijn die denken dat ik een boekhandel ben, de bieb, of zelfs Google.

En, twee boeken opgevist die wel op boeklog stonden, maar nog niet meetelden bij de gepubliceerde titels. Verkeerd vakje aangevinkt.


Taxonomieën en ander gedoe | 3

Een weblog ontsluiten met ‘tags’ of trefwoorden is een leuk idee, maar werkt niet vreselijk goed op lange termijn; als er nogal wat postjes zijn.

Nu ja, op boeklog staan er ruim twaalfhonderd schrijversnamen getagd. En daar is ook een overzichtspagina van. Dus het kan wel. In uitzonderingsgevallen; als de trefwoorden een duidelijk gezamenlijk thema hebben. Maar anders wordt de ontsluiting met metadata al gauw een onoverzichtelijke bende. Die juist niet doet wat zou moeten; de rijke inhoud van de website inzichtelijker maken.

Zowel op eamelje.net als op boeklog werk ik nu met dossiers vol verwante postjes. Hoeveel dossiers dat gaan worden, is me nog niet duidelijk. Maar ik denk dat het met een honderd per site wel moet ophouden. Ook al omdat het anders een toer wordt om te onthouden of een nieuwe tekst ook in een dossier past, als ik die online zet.

Boeklog maakt voor zijn dossiers gebruik van de extra mogelijkheden die WordPress sinds versie 2.3/2.8 biedt aan taxonomie12. Punt blijft alleen dat de documentatie te wensen overlaat over welke standaardfuncties daarbij aan te roepen zijn. Wat dan weer lastig is, als ‘dossiers’ wel op dezelfde manier moeten werken als ‘tags’ — er moet simpel een alfabetisch geordende lijst van zijn — maar er heel andere code nodig is voor hetzelfde effect.

Gelukkig is er in WordPress 3.0 standaard de functie get_terms beschikbaar gekomen, die vergelijkbaar is met get_tags, en zo al twintig regels aan zelfgeklopte code vervangt.

Maar dan nog werkt get_terms niet zo als get_tags. Zo kostte het me erg veel moeite om de URL goed te krijgen, die bij een dossier hoort. Omdat boeklog al ‘tags’ gebruikt, die verwijzen naar ‘auteur’, kreeg een ‘dossier’ ineens ook het woord ‘auteur’ in de verwijzende link; wat niet goed werkte.

Dat heb ik nog niet anders kunnen oplossen dan door een deel van de URL hard in de code te zetten. Een doodzonde voor de ware programmeur. En lelijk bovendien. Maar voorlopig wel effectief.

  1. zie ook hier []
  2. en hier []

Beheerbalkjes en ander klein onderhoud

De afgelopen jaren heb ik vooral aandacht besteed aan de technische kant van mijn weblogs. Allereerst om te voorkomen dat ze weer gehackt konden worden. Maar ook om het aantal gebruikte plug-ins te verminderen; omdat plug-ins zo’n nare afhankelijkheid opleveren. De makers daarvan houden er doorgaans zo maar mee op. Terwijl de software zich wel verder ontwikkeld waarop zo’n plug-in een aanvulling is.

En goed, dan ben ik ook maar een geïnformeerde leek, dus gaat er genoeg langs me heen. Zo blijkt telkens weer dat een oplossing waar ik met hand code voor had geklopt in een nieuwe versie van WordPress ineens een standaardfunctie is geworden.

Gisteravond lukte het me daarom in een minuut om de voorpagina van eamelje.net met nog weer minder database-queries aan te roepen. Niemand die daar verder iets van merken zal. Mij maakte het eventjes gelukkig.

Technisch is de boel nu zo op orde dat ik weer mee kan doen aan wat de echte nerds zo leuk vinden: testversies van software draaien, om daar de fouten uit te vissen. Zelfs al keek ik alleen maar of al mijn zelfgeklopte code ook in versie 3.1 van WordPress foutloos werkt.

Introduceert die nieuwe versie van de CMS-software ineens wel iets extra’s waar ik niet op te wachten zat. Ineens verschijnt er een beheerbalk, boven aan ieder scherm.

Gelukkig hebben anderen al de code gevonden om dat gedoe uit te schakelen. Voeg aan de functions.php van het theme toe:
add_filter( 'show_admin_bar', '__return_false' );


Taxonomieën en ander gedoe | 5

Een weblog maakt automatisch al éen type metadata aan: de software legt vast op welk tijdstip een postje online is gezet.

Voegt de weblogger een titel toe aan zijn of haar woorden, dan levert dit dus al twee typen aan metadata op. En vaak kunnen deze twee gegevens ook wel volstaan.

Wat er verder aan informatie over een postje wordt vastgelegd, hangt van ieders luimen en voorkeuren af. Bovendien verschuift het nut van welke taxonomie ook in de tijd. Er is geen bezoeker die nog eens honderden postjes gaat lezen die allemaal in dezelfde categorie vallen; om maar eens éen bezwaar te geven.

Desalniettemin maakt boeklog voorlopig ook alle schrijversnamen zichtbaar, die als metadata gekoppeld zijn een boekbesprekinkje daar. Dit lijkt een overbodige mededeling, want, stond er onderaan elke tekst al niet een verwijzing naar de webpagina met alle werken van de besproken auteur?

Nee, er zijn boeken waaraan meer dan tien auteursnamen gekoppeld zijn. En jammer genoeg lukt het nooit om dat een beetje elegant in beeld te brengen.


Taxonomieën en ander gedoe | 6

Op mijn beide weblogs komt onderaan een logje een lijst met verwante logjes te staan — zo die er zijn.

Boeklog kijkt daarbij naar wat ik nog meer heb geschreven over de auteur, of de in het boeklogje genoemde schrijver. En in principe kan de lijst met verwante logjes eindeloos lang worden. De opsomming onderaan Machines en emoties houdt momenteel het record. Dat boeklogje gaat dan ook over drie veel door mij gelezen schrijvers.

Eamelje.net labelt logjes slechts als ze in een dossier passen. En in principe kan zo’n dossier oneindig groot worden. Maar omdat op eamelje.net de titels van de postjes niet altijd alles zeggen — anders dan de boektitels op boeklog — hebben oneindig lange lijsten met verwijzingen onderaan een logje hier niet veel nut.

Dus volsta ik met links naar de tien laatste bijdragen aan het dossier. Of de dossiers.

Inmiddels ben ik op boeklog ook begonnen om dossiers aan te maken. Om goede redenen. En toen heb ik uitgezocht of die twee taxonomieën — schrijversnaam en dossier — te mengen waren in het lijstje met verwante titels.

Daar moest ik zo veel commando’s voor wrochten dat ik nooit verder kwam dan het onderzoek in een testomgeving. Twee heel verschillende tabellen uit de database moesten dan worden samengevoegd, en dat kon het inladen van een simpel boeklogje zo maar ineens tot een heel zware klus maken voor de server.

Daarop heb ik enkele categorieën aan boeken opgeheven, en tot dossier gemaakt. Dat was al een verwatering van het ideaal om me in de dossiers tot het beste te beperken. Maar dit loste het probleem op dat een categorie als ‘humor’ nergens bij paste.

Er is niet te zeggen of een humoristisch boek onder fictie of non-fictie valt — terwijl dat wel een overweging was die de hiërarchische structuur van de categorieën aan me opdrong.

Dus kent boeklog nu ook enkel dik gevulde dossiers, zoals ‘humor’, zoals dat met de ‘Nobelprijswinnaars’, en werk dat eerder verscheen in de ‘New Yorker’.

Ondertussen is WordPress bijgewerkt tot versie 3.1, waarmee het ineens wel heel simpel mogelijk is geworden om samengestelde database queries te schrijven. Dus kan ik auteursnaam en dossier wel verwerken in de lijst verwante titels.

Behalve dan dat er nu dus onhandig grote dossiers bestaan.

En zo blijft het pielen.


Een stap die geen mens zal opmerken, meer een grote stap voor een man.

Boeklog is sinds de start in 2005 slechts twee keer radicaal van uiterlijk veranderd; en ik heb ooit het gebruik van een soort voorpagina ingevoerd. Tegelijk ben ik er altijd druk mee geweest, maar die inspanningen leverden vrijwel steeds veranderingen onder de motorkap op. En die zie alleen ik.

Maar het nadenken over taxonomie, en hoe de metadata van een boeklogje het best gepresenteerd kan worden, heeft nu tot een minieme, maar logische verandering geleid.

Als er gerelateerde boeklogjes bestaan, worden automatisch vermeldt, onderaan de pagina. Als die er niet zijn, kan een geregelde bezoeker weten dat het niet heel zinvol is om de link naar de auteurspagina aan te clicken die daar ook altijd stond; want de vervolgpagina zal niets meer bevatten dan het boeklogje van daarnet.

En daarom verschijnt er nu slechts een link onderaan de pagina als een boeklogje ook deel uitmaakt van een dossier.


Aan de knoppen

Wie een website onderhoudt, en die een beetje bij de tijd wil houden, ontdekt al gauw éen wet. Voor alle problemen die opgelost moeten worden, bestaat er altijd een oplossing die snel en eenvoudig is, maar ook absoluut fout.

Neem nu de service waarmee bezoekers eenvoudig van een webpagina kunnen aangeven dat deze hen bevalt. Gebruik daar een standaardoplossing voor, en prompt schend je privacy van dat bezoek op grove wijze.

Daarom zijn de serviceknopjes op boeklog al een tijdje hard gecodeerd, en plaatsen deze niet onverwacht cookies op de computers van wie er maar langskomt. Toch kostte het belachelijk veel moeite om de juiste code te vinden om die knopjes goed te laten samenwerken met websites als Facebook.
 

[Overigens, à propos Facebook. Ik begrijp daar niets van. Ik snap domweg niet waarom je alles uit je leven zou vertellen aan een te groot Amerikaans bedrijf, dat vervolgens geld verdient aan die informatie.
 
Nu goed. Ik ben al te lang online om onder de indruk te zijn van wat goed beschouwd een soort afgeschermde plek op internet is, waar je zo makkelijk je vrienden kunt treffen. Online interesseert me nu net vooral alles wat mijn vrienden niet zijn.]


Gehackattack

Het is weer eens zo ver. Er wordt telkens op boeklog ingebroken, door snoodaards. Die overigens weinig meer doen dan wat scriptjes plaatsen, zonder deze al in werking te stellen.

Maar omdat mijn RSS-feed niet goed meer werkte, en ik onderzocht waarom, ontdekte ik het bestaan van de duistere bestanden als sitemap.php en wp-sitemap.php.

Erger vind ik evenwel dat de inbrekers zo veel mogelijkheden hebben, dat ze ook de datum kunnen veranderen waarop zo’n bestand op de server lijkt te zijn geplaatst. En zo’n wp-sitemap.php valt dan ineens niet op tussen alle andere wp-***.php-bestanden.

Enfin, iedereen die WordPress draait kan ik aanraden om de Exploit Scanner te installeren. Die is weliswaar te kritisch, en vindt ook vele bestanden verdacht die wel deugen. Maar files met geheimtaal, zoals in de illustratie hierboven, worden foutloos gesignaleerd.

Al stond er ook ineens een afluisterbestand op de server, ergens diepweg verstopt, tussen de standaardbestanden van het TinyMCE-pakket dat ik niet eens gebruik.

Om zulke zaken te vinden, is shell-access nodig. Standaardcommando daarbij:
find . -type f -mtime -3 | grep -v "/Maildir/" | grep -v "/logs/"
Waarbij die 3 voor het aantal dagen staat dat in de logs moet worden gekeken.

Maar na hackpogingen blijft het simpeler om alles te deleten, en veilig vanuit een back-up opnieuw op de server te zetten.


Gehackattack | 2

Woensdag werd het droog, en stond er voor het eerst in dagen niet zo maar weer opnieuw malware op de server van boeklog. Vooral de aanvallen van maandag en dinsdag waren geniepig, omdat de schadelijke bestanden een naam kregen die begon met een punt, waardoor ze niet zo maar zichtbaar waren.

Gelukkig is er dan afweermateriaal als de genoemde Exploit Scanner. En dan nog zal ik deze week nog enkele malen alles online deleten, en een schone backup terugzetten.

Tegelijk werd dinsdag bekend dat de servers van WordPress zelf gehackt zijn, en dat snoodaards achterdeurtjes geïnstalleerd hadden in enkele veel gebruikte plugins die WordPress-gebruikers daar downloaden.

Enerzijds verschrikkelijk dat zoiets kan. Anderzijds een troost ook; want als zij zelf al machteloos staan tegen aanvallen, wat moet ik dan?


WordPress 3.3

Probleemloos over, van WordPress 3.2.1 naar WordPress 3.3. Wat altijd toch maar weer afwachten is, voor weblogs met zo veel thuisgebakken code.


Onder vuur | aflevering zoveel

Boeklog werd gehackt op dinsdagmiddag, om even voor tweeën. Een half uur later had ik alles achter de website opnieuw geïnstalleerd, en moest de overlast verdwenen zijn.

Ervaring maakt handig.

De illusie dat een website zich beschermen kan tegen hackers heb ik niet. Zelfs de domeinhost met al zijn professionals trof onlangs indringers in zijn eigenste databases aan. Daarom lijkt me het beste maar om kennis te hebben van hoe de gevolgen zo gauw mogelijk verholpen kunnen worden.

Ondertussen is het afwachten tot de golf van aanvallen overdrijft. Zaterdag werd boeklog ook al gehackt. Toch staat alles er volgens de testen potdicht.


Uniek resultaat

Hoe leuk een weblog ook werkt, onder de motorkap, er zijn altijd verbeteringen mogelijk. Coderen gaat er doorgaans niet om de beste oplossing te vinden voor een probleem, maar de meest werkbare. Die de minste moeite kost om te maken, bijvoorbeeld.

Dus leefde ik lang met de wrevel dat de zoekpagina’s van mijn weblogs altijd melden resultaten te hebben gevonden, zelfs als een zoekopdracht slechts éen resulaat opleverde.

Niet langer, nu.

Er is code toegevoegd, aand de function.php van het theme. Waardoor direct het hele postje verschijnt als een zoekopdracht maar éen resultaat oplevert.

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}


Onderhoud

Gerepareerd: de titelindex van boeklog, die niet meer wilde nadat die meer dan drieduizend titels had te tonen. Al voelt de oplossing niet goed. Ik forceer nu enkel dat het script een hele hoop werkgeheugen mag opvragen van de server.

Verbeterd: de prefix ‘private’ van alle privé-postjes op mijn weblogs omgezet naar een enkel grafisch teken; wat een stuk minder opdringerig is;

Te doen: de indexen van mijn weblogs zo aanpassen dat ze ook alle privé-postjes tonen als ik ingelogd ben.