Welkom op about (:) blank, e-zine over weblogs en sociale media door de ogen van webloggers.
Onze maandelijkse artikelen per mail ontvangen? Schrijf je dan nu in!
Na bevestigen van je mailadres krijg je iedere maand onze prachtige maandmail met leuke artikelen! Volg ons op Twitter, of abonneer je op onze RSS-feed.
Deze maand een gastbijdrage van Ruud Steltenpool. Validator Fanboy noemt hij zichzelf. En niet onterecht. Hij wist ons te wijzen op het feit dat bij de laatste Dutch Bloggies het gros van de genomineerden flink wat HTML fouten in de code hebben staan. En dat terwijl toegankelijkheid juist een belangrijker onderdeel wordt op internet. Daarom deze maand een uiteenzetting van het hoe en waarom van webstandaarden en hoe je een validator kunt gebruiken. Ruud schrijft zelf op Twente Open Source & Standaarden, en is beheerder van svg.startpagina.nl
Vergelijk het met woordenboeken en automatische spellingscontrole. Een spellingscontrole werkt met een woordenboek, staat een woord er niet in, is het fout volgens de automatische spellingscontrole. Een mens is slim en kan op basis van ervaring, context en intuïtie heel vaak prima zelf bepalen om welke taal het gaat (Nederlands, Duits, Engels, etc.) Een computer kan alleen via exact voorgekauwde regeltjes werken, dus moet je precies aangeven om welke taal het gaat. (“Nederlands” is echter slechts een vage omschrijving, exact is bijvoorbeeld “Nederlands witte boekje 2005” of “Nederlands van Dale 2006”. Zelfs een mens kan niet verzinnen volgens welk woordenboek iets geschreven zou zijn, laat staan een computer, vandaar dat je dat precies moet aangeven.
Voor HTML (een opmaaktaal waarmee ongeveer iedere webpagina is opgebouwd) betekent dit dat je moet beginnen met een zogenaamd DOCTYPE, op basis waarvan de browser1 bepaalt welke vertaalslag van code naar visuele representatie op je scherm hij gaat gebruiken. Als je in je HTML document het DOCTYPE vergeet, zou je browser eigenlijk alleen “DOCTYPE missing, can’t interpret” moeten melden (er zijn meerdere versies van HTML, 2.0, 3.2, 4.01 en ook nog XHTML versies) en die kant gaat het ook op, maar vooralsnog ‘gokken’ de meeste browsers een DOCTYPE.
Als je niet snapt dat dat een probleem is moet je maar eens een tekst uit een taal die je niet beheerst (Noors ofzo) proberen te lezen m.b.v. een woordenboek voor een andere taal die je niet beheerst (Russisch ofzo). Een ander probleem met webcontent en hoe browsers er (nu nog) mee omgaan is content die (zelfs als ze claimt van een bepaalde taal of DOCTYPE te zijn) niet correct van die taal is. Soms, en in de toekomst al vaker, zal je browser een foutmelding geven en daarna stoppen met verwerken. Nu meestal nog zal de browser echter iets ‘gokken’, deze gok is voor iedere browser anders, dus weet je niet wat je kunt verwachten. Naast het ‘kleine’ probleem dat het ‘afvangen’ van al deze fouten (de ‘gok’-methodes) een browser onnodig complex en langzaam maakt, heeft dit ook het grote probleem van verdraaide informatie. “Ken net” heeft bijvoorbeeld in het Fries een betekenis tegengesteld aan die in het Nederlands. Ook kan het ‘gokken’ van wat er eigenlijk bedoeld was ipv “stim” heel verschillend uitpakken (“stom”/“slim”). Zelfs in het hypothetische geval dat ieder stuk software dat nu en in de toekomst ooit op jouw content gaat werken “stim” magischer wijze vertaalt in het door jou bedoelde “slim” (in werkelijkheid zullen al meer tools terecht een foutmelding geven) dan nog heb je een probleem. Waar in de ene tekst “stim” wordt vertaald in “slim”, kan het in een andere tekst weer “stom” tot gevolg hebben (een poging tot het gebruiken van context wellicht), dus afhankelijk van de rest van de content. Dit betekent dus dat een correcte wijziging in de rest van de content ook een verandering in de interpretatie van het foute “stim” kan betekenen. Dat soort onzekerheid en verrassingen wil je niet.
Vind je dit nog steeds gezeur, en is het resultaat alleen voor jezelf bedoeld en verandert er nooit ook maar iets aan het systeem waar je het op draait, dan nog hebben standaarden een voordeel. De fouten die namelijk bij jou al een ongewenst resultaat hebben kun je makkelijk detecteren mbv dé validator. Als er verder nog allerlei fouten in je content zitten die je zelf niet belangrijk vindt zal dé validator de voor jou belangrijke fouten niet kunnen vinden, óf de melding erover “verstoppen”2 tussen de meldingen over al die andere fouten. Vind je nu nog steeds dat je content niet foutloos door de validator hoeft te komen, dan kan ik nog een verhaal gaan houden over accessibility, mashups, het XMLweb, kostenbesparingen in onderhoud, het verlies van (potentiële) klanten, het mobiele web etc., etc., maar ook dat zal je dan waarschijnlijk niet overhalen van je “ze moeten maar begrijpen wat ik bedoel, ook al schrijf ik iets anders”-instelling af te stappen. Ben je wel overtuigd en voldoet je website nog niet echt aan een standaard, verander ‘m dan in geldige HTML 4.01 zo veel mogelijk voorbereid op XHTML. Zorg eerst dat je ‘m door de validator krijgt als ‘loose’ en als dat gelukt is vervolgens als ‘strict’.
Nog wat algemene code tips:
KISS: Keep It Simple Stupid. Code lezen is 2x zo moeilijk als schrijven. Als je ingewikkelde code schrijft, begrijp je er later weinig meer van en een ander al helemaal niet. Je leest een stuk code veel vaker dan je ‘m schrijft. Gebruik verklarende (desnoods lange) variabele namen, commentaar kan zeker handig en soms zelfs nodig zijn, maar betekent meestal dat je code te ingewikkeld is. Wil je per se korte variabele name gebruiken (om minder te typen of minder schermoppervlak te gebruiken), zet dan boven aan je code in commentaar de alternatieve lange verklarende namen zodat een simpele search+replace de leesbaarheid snel kan verbeteren.
DRY: Don’t Repeat Yourself. Als je vaak (bijna) dezelfde code gebruikt, definieer die dan eenmaal om vaker aan te roepen. Hiermee wordt het aantal plaatsen verkleind waar zich een fout kan voordoen, of waar een wijziging dient te worden doorgevoerd. Bovendien is het gewoon overzichtelijker.
Houdt data, structuur, inhoud en stijl zoveel mogelijk gescheiden Dan hoef je je met minder aspecten tegelijk bezig te houden, waardoor je je op minder code hoeft te concentreren en makkelijker en sneller het gewenste resultaat kan verkrijgen. Ook kan je het ontwikkelwerk dan makkelijker opsplitsen over meerdere mensen en het draaien van het systeem over meerdere onderdelen. Denk goed na over wat in de database hoort, wat in de PHP/HTML en wat in CSS of Javascript (wat is tijdelijke data? wat is ‘permanente’? wat is opmaakcode? wat server-side algoritme? wat client-side algoritme? wat styling?) Als je in een functie of bestand een deel van de uiteindelijke HTML genereert, zorg dan zoveel mogelijk dat ieder deel an sich een geldig en volledig HTML element is. Dus bijvoorbeeld niet “<em>WorldWide</em><a “ en “href=‘http://my.com’>Web</a>“, maar “<em>WorldWide</em>“ en “<a href=‘http://my.com’>Web</a>“. Dit zal er voor zorgen dat het oplossen van een fout vaker slechts verandering op 1 plaats vereist i.p.v. op allerlei plaatsen (een voorbeeld van ‘spaghetti-code’, te veel en slecht gestructureerde afhankelijkheden). Vervolgens moet je ook nog bedenken wat in welk bestand gaat en waar dat bestand zich in de directory-structuur moet bevinden en welk onderdeel of persoon welke (lees-/schrijf-)rechten nodig heeft, of wat in welk datatype in welke tabel.
Gebruik de juiste tools: Tijdens het ontwikkelen kan je als (test)browser het beste Mozilla Firefox gebruiken, uitgebreid met de Web Developer en FireBug extensies. Af en toe ter vergelijk afgewisseld met Opera of Konqueror die nog beter aan de standaarden voldoen. Als editor kan je het beste eentje met syntax highlighting gebruiken, zodat je sneller type- en andere fouten zult opmerken. Een auto-complete functie kan tevens het aantal keren dat je moet terugvallen op documentatie verkleinen. Met auto-indenting houdt je je code leesbaarder en met js- en andere lint programma’s haal je makkelijker fouten uit je code en verlaag je tevens het risico ze later te introduceren. Om fouten op te sporen in je website, kan je automatisch informatie mbt voorgekomen PHP fouten opslaan in een logbestand en daarover een mail laten sturen naar de beheerder. Tevens kan je steeksproefsgewijs automatisch een pagina door validators en checkers sturen en een eventuele gevonden fout mailen
Ten overvloede. Al die technisch perfecte, makkelijker aan te passen code is natuurlijk weinig nuttig als het eindresultaat niet goed op de gebruiker en zijn/haar workflow past.
Gerelateerde artikelen:Schrik op schrik, zo blijft een mens gezond en in beweging. Intern doen we iets met de tips en trucs in de reacties op onze mededeling er de brui aan te geven. Want, zo Ton ons in zijn WWWW ook de strekking mee wil geven dat bloggen bij lange na niet dood is, zo gaan we een nieuwe richting geven aan dit blog.
Derhalve komt deze laatste maandelijkse editie in verkorte versie online, want we willen het natuurlijk niet nalaten Sabine Sabelis als de winnaar van de headerverkiezing 2011 te feliciteren.
Voor de lezers onder u vragen we wat geduld, want we komen terug en hoe.
De allerlaatste header voor de allerlaatste editie van about:blank is ontworpen door Mirjam alias Mevrouw Mikmak. Download hier de wallpaper:
Al vanaf haar eerste stappen op het internet en het prille begin van web-log.nl begeeft Mirjam zich op internet onder de naam: Mevrouw Mikmak. In de jaren die volgde is die naam een eigen leven gaan leiden. Op netwerkbijeenkomsten wordt ze dan ook nog vaak aangekondigd als mevrouwmikmak.
Inmiddels is Mirjam in het dagelijks leven druk met Vrouwsel.nl. Voor Vrouwsel ontwerpt en ontwikkelt ze websites en is zij de huisfotografe.
Haar vrije werk publiceert ze voornamelijk op internet via Flickr en haar blog MevrouwMikmak.nl/wordpress.
Wil je in contact komen met Mirjam, dan kun je haar vinden op Twitter.
Wil je meer fotografie zien van Mirjam? Klik dan hier.
Na het besluit dat about:blank ging stoppen openden we nog snel de stembus voor de headerverkiezing van 2011. Er kon gestemd worden t/m 6 januari j.l. Al snel ging de header van november aan kop en blééf aan kop, zodat Sabine Sabelis bij deze is uitgeroepen tot winnaar van de headerverkiezing van 2011. Gefeliciteerd!

Sabine wint een pretpakket met (strip)boeken en natuurlijk: eeuwige roem!
About:blank dood... Bloggen dus ook dood?
We horen het al roepen daar achter in de zaal. Men heeft afgelopen 10 jaar geen gelegenheid voorbij laten gaan om de mening te kunnen verkondigen dat het fenomeen bloggen op zijn eind loopt.
Maar vooralsnog blijkt niets minder waar. Hoewel een groot gedeelte van de burgerbevolking tegenwoordig digitaal rondwaart in de sociale media, lijkt men nog altijd behoefte te hebben aan sites die materiaal aanleveren waarover men kan praten via diezelfde media. Net als dat Twitter uitstekend geschikt blijkt om een potje voetbal op tv te kijken en daarbij commentaar te leveren die je vriendjes kunnen volgen en van verdere opmerkingen kunnen voorzien. Tv blijkt niet dood, bloggen vooralsnog ook nog lang niet. Waar moeten we immers anders die maffe plaatjes vandaan halen en ons dagelijkse behoefte aan verwondering?
Daarom een kort overzicht van hoe weirde weblogs ons afgelopen jaar voorzien hebben van een aanvulling op het actuele nieuws.
Ze komen uit Portland, Oregan, maar als Loch Lomond uit Portland, Maine zou komen, had ik het ook geloofd. Sterker, dat zou zelfs geloofwaardiger zijn. Want de studentikoze en ietwat rurale streek aan de oostkust waar alles ruikt naar links-liberale studenten (veel boekhandels en koffiebars, fijne vegetarische restaurants, bovendien dicht bij Canada) past perfect bij wat deze band uitstraalt. Little Me Will Start A Storm is een plaat die laat horen dat voorman Ritchie Young en zijn band een heleboel ideeën hebben en mooie arrangementen kunnen schrijven.
Het schijnt een saai plaatsje te zijn, Muscle Shoals. Een handvol inwoners, wat bedrijventerreintjes. Geen bijzondere natuur, geen geweldige restaurants. Het dorpje in Alabama is tevens naamgever van de gemeente Muscle Shoals, waaronder ook Florence, Sheffield en Tuscambia vallen. Ergens tussen Nashville en Memphis, tussen de hoofdsteden van de country en de soul. In de jaren zestig en zeventig werd hier muziek gemaakt die, in de woorden van Leo Blokhuis, ‘de allermooiste muziek is die ik ken’. Of dat zo is mag iedereen voor zichzelf uitmaken, maar dat er in de Fame Studios (eerst in Florence, later in Muscle Shoals) en de Muscle Shoals Sound (Sheffield) prachtige, invloedrijke en onverwoestbare liedjes zijn opgenomen, lijkt mij eerder een feit dan een mening.