20 Aug '08Vroegah sjouwde je als brugklasser (annex brugpieper annex brugsmurf of wat men zoal aan bijnamen verzon voor middelbare scholieren vers van de basisschool) rond met zo'n kleine 300 kilo aan schoolboeken. Tijdens mijn middelbare schooltijd had je al RSI van het kaften van die torenhoge stapel met woordenboeken in alle Europese talen, wiskunde leerboeken, handelskennis en natuurlijk een onhandelbaar Grote Bosatlas. Over bosatlassen gesproken, ik heb er nog eentje in de kast staan waarin Flevoland niet eens is ingetekend.
Afijn. De tijden veranderen. Anno 2008 wordt je boekengeld niet aan boeken besteed. In plaats daarvan krijg je op je eerste schooldag een laptop in je handen geduwd. Als je
in Emmeloord naar het Zuyderzee College gaat tenminste. Het Zuyderzee College is volgens mij één van de
chosen few middelbare scholen in Nederland waar je als leerling gebruik maakt van een Electronische Leer Omgeving (ELO). Bij het Zuyderzee College zijn ze niet alleen vooruitstrevend. Smaak hebben ze ook! Want je krijgt niet zomaar een notebook. Dus niks geen lullig Medion schootcomputertje van de Aldi¹. Het Zyderzee deelt aan haar leerlingen hippe Apple Macbooks uit.
Yummy! I like.
Ik ben benieuwd of de ELO een succes wordt. Ik zie wel een paar leeuwen en beren in het verschiet: een Macbook die om de haverklap hardwarematig wordt gesloopt, wordt gepikt door medeleerlingen met geldgebrek of softwarematig om zeep geholpen wordt. Om maar wat te noemen. Maar voor nu ben ik enthousiast. Al is het maar omdat ik zelf een beetje rond kan klikken in OSX. In ieder geval is het reuzehandig om een Apple omgeving beschikbaar te hebben om m'n websites op te testen. Safari en Firefox voor de Mac onder handbereik. Da's toch een stuk minder omslachtig dan je websites te checken via online tools als
BrowsrCamp.
¹ niks ten nadele van een Medion computer overigens, want het is een degelijk merk. Maar sexy? Nee, niet echt.

19 Aug '08De primaire functionaliteit van een Google Maps kaart is toch wel het aanduiden van een geografische locatie met behulp van een ikoontje.
Maar hoeveel van die ikoontjes kun je eigenlijk kwijt op een kaart? De consensus is dat een paar honderd markertjes het maximale aantal is wat je op een kaart moet zetten zonder performanceproblemen met de browser te krijgen. Meer markertjes? Dat betekent dat je maatregelen moet nemen. In de vorm van client- of serverside common point filtering, een boundary filter of met het inzetten van de Google Maps API MarkerManager bijvoorbeeld. In het must-read boek
Beginning Google Maps Applications with PHP and Ajax lees je over het schalen van een Google Maps applicatie met grote hoeveelheden data.
Nogmaals, vanuit performance oogpunt is het natuurlijk niet aan te raden, maar een leuk experimentje is het wel om te kijken hoe ver je kunt gaan. Dus zet eens een fiks aantal Google Maps markertjes op de kaart om te kijken hoe de browser zich houdt. Of-ie uberhaupt overeind blijft. Zonder een poging te doen om de data te schalen. Een eerste poging op zoek naar de grenzen. Oftewel, hoeveel markertjes passen er op een Google Maps kaart?:
Als basis neem ik een bestaande Google Maps kaart met daarop 300 prikkertjes. Da’s al ruim meer dan het hierboven genoemde maximale aantal. Maar voor moderne browsers (Firefox, Opera, Internet Explorer) op een doorsnee computer is het in de praktijk geen probleem om zo’n kaart te renderen.
Om de kaart wat voller te maken maak ik gebruik van een drietal xml-bestanden (even geleend van de ANWB website, waar ze als Points of Interest csv-bestanden te downloaden zijn):
xml bestand 1: 598 campings
xml bestand 2: 408 parkeerplaatsen en wegrestaurants
xml bestand 3: 568 tankstations
Okay. Da’s bij elkaar goed voor zo’n 1574 extra markertjes op de kaart. Door het aanvinken van een checkbox wordt de informatie van respectievelijk het bestand met campings, parkeerplaatsen of pompstations geladen en als prikkertje op de kaart gezet.
Het resultaat? Eigenlijk valt het nog best wel mee. Zowel Firefox, Opera als Internet Explorer blijven op de been. Geen browser crash. Wel zijn er behoorlijke verschillen in geheugengebruik en snelheid van laden te zien.
Opera
Opera rendert snel. Met de pagina geladen heeft Opera genoeg aan 70MB werkgeheugen. De prikkertjes eisen hiervan 6 MB aan extra RAM op.
Internet Explorer
IE7 heeft nogal wat werkgeheugen nodig, 175MB. Het is opvallend dat de extra prikkertjes zoveel extra MB’s aan geheugen opvreten. 80MB gaan hieraan op. Het duurt behoorlijk lang voordat de prikkertjes op het scherm staan. In de praktijk is dit een absolute no-go.
Op een andere computer getest, en daardoor niet helemaal een eerlijke vergelijking. IE6 laadt nog veel trager in dan Internet Explorer 7. Bovendien is de belasting op het werkgeheugen ook niet gering. Met alleen de basispagina in het geheugen wordt 58MB aangesproken, maar het laden van de individuele xml-bestanden zorgt telkens voor een fikse toename van het RAM-gebruik:
+ campings = 101MB
+ tankstations = 137MB
+ parkeerplaatsen = 156MB
Niet doen als je dit voor een live-site in de gedachten had.
Firefox
Firefox is met een geheugengebruik van 90MB een stuk zuiniger dan Internet Explorer. Bovendien doen de extra markertjes geen al te grote aanslag op het werkgeheugen. 20MB, that’s it. Het laden van de markertjes gaat niet zo snel als Opera, maar wel een stuk vlotter dan IE.
Misschien zou ik nog eens kunnen overwegen om de rek wat verder te testen door mijn bestand van een kleine 1500 hotels aan te spreken. Aan de andere kant, het beeld is duidelijk. En wat heeft de gebruiker van je kaart er eigenlijk aan? Zo’n kaart die volgeplakt is met ikoontjes?

07 Aug '08
Bij
woningbouwcorporatie Ymere hebben we een webtool waarmee het aanbod van vastgoed op de corporate website kan worden vastgelegd. Toen we de tool maakten leek het wel een strak plan om de WGS84 coördinaten van een vastgoedobject te bepalen door de gebruiker op een Google Maps kaart te laten klikken en zodoende de x en y te registreren. Snel en simpel. Toch?
In de praktijk bleek deze opzet de plank behoorlijk mis te slaan. Want wat doe je als niet precies weet waar een object zich bevindt? Dan is het knap lastig om te bepalen waar je je prikkertje neer moet zetten. En ook als je toevallig wel weet in welke straat een woning staat, dan maakt het nogal een verschil of het over Nassaukade 1 in Amsterdam gaat. Of dat je het pand op nummer 200 moet hebben.
Met andere woorden, tijd voor een nieuwe en verbeterde versie. Zet een markertje op de kaart en leg de coördinaten van vastgoed vast door:
- te klikken op de kaart en het verslepen van het markertje dat wordt geplaatst — da's de functionaliteit die er al inzat. Tot dusver geen spannende zaken. Wel nieuw... er wordt gekeken of er al eerder een x en y coördinaat waren opgevoerd. Als dat zo is dan wordt er een ikoontje op het kaartje gezet. De kaart centreert op dat coördinaat.
- een adres in te typen in een invoervak. Het ingetypte adres wordt verwerkt door de GClientGeocoder van de Google's Maps API. Met een beetje mazzel krijg je een Placemark object terug. Dit Placemark object bevat ook de x en y, die je kunt gebruiken om een markertje op de kaart te zetten. Als er tijdens het geocoderen van het adres fouten optreden, als een adres niet bekend is bijvoorbeeld, resulteert dat in feedback met een beschrijving van de fout.
Kon de Google Maps geocoder het adres vertalen in een Placemark object? Goed. De kaart centreert op de coördinaten die de geocoder teruggeeft en een ikoontje wordt op de kaart geprikt. De gebruiker kan het markertje met de beproefde sleur en pleur methodiek verplaatsen. Om tenslotte de coördinaten vast te leggen.
Kijk, dat werkt alweer een stuk prettiger. Even kijken hoe?
Check het demootje!
06 Aug '08Hieronder zie je een Google Analytics grafiekje voor
de bliksemvraagbaak. Normaal zijn de bezoekersaantallen van deze website te vergelijken met een vrij gezapig, rustig kabbelend beekje. Het verkeer vertienvoudigt zo ongeveer in het laatste weekend van juli. Da's geen beekje meer, maar een behoorlijke stroom.
Even terugdenkend ... dat waren dagen met benauwd warm zomerweer, fikse buien en plaatselijk noodweer. Als ik het me goed herinner
ging de kermis van de Zwarte Cross in Lichtenvoorde plat vanwege blikseminslag.
Grappig. Hoe je in Google Analytics terugziet dat er
iets bijzonders aan de hand is.

04 Aug '08Je bent in staat om de xhtml, de javascript en de stijlbladen te bouwen. Hey. Je bent een
frontend coder: een fronteer. Maar ook de achterliggende database kun je zelf modelleren. En de serverside scripting code schrijven is geen probleem. Je bent bekend met de aspecten van het zoekmachinevriendelijk bouwen van websites. Qua interactie en visueel ontwerp ben je redelijk creatief en kom je aardig uit de verf.
Met andere woorden: je bent wat ze in de wandelgangen
een allround webbouwer noemen.
De uitdaging:
Hoe zorg je er als allround webbouwer voor dat je jouw website met tips voor een uitje op een plekje hoog in de boom krijgt in een markt met een behoorlijke concurrentie?
- Met een webontwerp dat onderscheidend is van de rest van de markt. Waarom kiezen voor dezelfde saaie look-and-feel als de concurrentie.
- Met inhoud die kwalitatief beter is dan die van de concurrentie.
- Met meer inhoud dan de concurrentie. Kwantiteit is ook belangrijk.
- Met een website met een duidelijke en eenvoudig te bedienen interactie. De bezoeker raakt niet in de war.
- Met het bouwen van innovatieve functionaliteit die andere websites niet hebben. Gemakkelijker zoeken. Instellingen bewaren. Het maakt niet uit. Iets nieuws dat ook nog eens nuttig is. Wauw!
- Door interactie te gebruiken die innovatief is voor de markt en hiermee buzz veroorzaakt. De ogen van je collega's zijn gericht op je website.
- Op basis van een analyse van de markt en de concurrentie. En door vervolgens gebruik te maken van de kansen die dit biedt.
- Met meerdere lagen waarop informatie wordt aangeboden.
- Met een aantrekkelijke, fris ogende website waar mensen graag op terugkomen.
- Met een concurrerende positie in de organische zoekmachineresultaten. Core keywords. Long tail keywords.
- Hoeveel mensen komen er vanuit de zoekmachinesop jouw website?
- Door bezoekers een website te bieden die WEL werkt. Ze zoeken niet alleen. Ze vinden ook nog wat.
- Met de integratie van functionaliteit die andere websites niet kunnen bieden. Google Maps common point filtering bijvoorbeeld. Points of Interest. Zoeken via meerdere cloud tags.
- Met de integratie met functionaliteit die je ook vindt op andere websites, maar dan STUKKEN BETER. Meer content. Meer resultaten. Meer RELEVANTE resultaten.
- Door informatie op een onderscheidende manier te ordenen en te koppelen.
- Door te investeren in een Google Adwords campagne om je site onder de aandacht te brengen.
- Met het schrijven van webteksten die getuigen van inzicht in de doelgroep en die goed scoren in de SERPs zonder dat het lijkt alsof ze door een keyword-bot werden uitgespuugd.
- Met een website met een a-commercieel imago, waarin mensen vertrouwen hebben.
- Door het inbouwen van een sociale component in de website. Mensen dragen graag bij aan jouw website.
- Door de website laagdrempelig te houden. Navigeren behoort geen hogere wiskunde te zijn. Het vinden van de gewenste informatie is gemakkelijk.
- Met aansprekend beeldmateriaal op de website. De beelden dragen bij aan het image van de website als hoogwaardige bron van informatie. High res en een aanvulling op de core content.
- Met authentieke content en een eerlijk imago. Dat schept vertrouwen.
- Met een groot marketing budget. Je bereikt snel een grote groep mensen als je reclame kunt maken.
- Door de markt te analyseren en te herkennen waar de concurrentie steken laat vallen.
- Met het aanbieden van een overvloed aan informatie. Waarom bescheiden met de info op een pagina? Er past zoveel meer info op een beeldscherm! Als het niet handig is voor de gebruiker, dan komt het toch zeker van pas als de zoekmachines je pagina's indexeren.
- Met een bewust erg leeg gehouden scherm. Less can be more. Kijk maar naar Google.
- Door op het goede moment allerlei nuttige informatie te (kruis)koppelen. Dat is de kans om nuttige maar recht-toe-de-dijk-uit informatie om te vormen tot iets bijzonders.
- Door innovatieve techniek op de juiste plek en op de juiste manier in te zetten.
- Door tijdens het ontwerp een vinger aan de pols te houden bij een panel van gebruikers. Doe je nog steeds wat voor een gebruiker logisch is? Sla je niet door in je innovatie? Wat vind de gebruiker van je spannende toepassing? Is het handig? Of juist onduidelijk in zijn doel? En verwarrend?
- Door video te integreren in de website. Streaming video is een extra laag van informatie.
- Linkbuilding. Google interne pagerank leunt voor een (belangrijk) deel op inkomende links.
- Met een ontwerp waarin vorm, inhoud en actie strict gescheiden zijn. Een technisch goede website performt beter.
- Vooral met veel geduld. Want kwaliteit komt vanzelf bovendrijven. Daar kun je op wachten.
- Door vooral met veel liefde te bouwen. En uit te bouwen. Want content is king. En oh ja, wist je al dat kwaliteit vanzelf boven komt drijven?
- Door op de website ook een blog bij te houden. Dat biedt mogelijkheden voor tekstuele long tail optimalisatie
- Met een herkenbare website. Met een goed logo. Met een sterke payoff. Dat zijn elementen die blijven hangen.
Dat zijn de dingen die in mij opkwamen toen ik antwoord probeerde te geven op de vraag hoe je een plekje hoog in de boom bemachtigt. Sommige van de genoemde punten zijn serieus bedoeld. Andere juist ironisch en invers.
En als het niet lukt? Als jouw website een voorbeeld is van
crash and burn? Da's een realiteit. Naast kans op succes is er natuurlijk
the chance of failure. Dus ... Wat zijn eigenlijk de risico's? Nou, dat valt best wel mee. Behalve een hoop tijd en moeite valt er niet zoveel te verliezen. Als je niet te dwaas deed met Adwords tenminste :-)
We gaan het beleven. Op naar OHP 2.0!
30 Jul '08Vanavond ben ik te sloom begonnen. De eerste twintig minuten heb ik er weinig plezier in. Op het laatste stuk aardig wat goed gemaakt. Met als resultaat een (voor mij goede) tijd op de 12 kilometer: net onder de 58 minuten. Zal ik me wagen aan de
Fish / Potato Run in september? Van de Urkse vis naar de Emmeloordse friet.
Ik loop er niet graag als de wonderbaarlijk voortstrompelende rolmols op pootjes bij. De laatste keer dat ik
aan een hardloopwedstrijd meedeed trok de legendarische vraag
"Zit er ook een sportstand op?" diepe groeven in mijn tere zieltje.
Dapper m'n rondjes blijven draven. Dan waag ik het er misschien wel op van het najaar. Met de stiekem toch wel erg mooie stem van Amy Lee op m'n iPod ren je graag je longen uit je lijf. In haar tekst is ze ook buiten adem, maar dan anders - My last breath
hold on to me love
you know i can't stay long
all i wanted to say was i love you and i'm not afraid
can you hear me?
can you feel me in your arms?
holding my last breath
safe inside myself
are all my thoughts of you
sweet raptured light - it ends here tonight
i'll miss the winter
a world of fragile things
look for me in the white forest
hiding in a hollow tree - come find me
i know you hear me
i can taste it in your tears
holding my last breath
safe inside myself
are all my thoughts of you
sweet raptured light - it ends here tonight
closing your eyes to disappear
you pray your dreams will leave you here
but still you wake and know the truth
no one's there
say goodnight
don't be afraid
calling me calling me
as you fade to black
holding my last breath
safe inside myself
are all my thoughts of you
sweet raptured light - it ends here tonight
Evanescence - My Last Breath (Fallen) 28 Jul '08
Da's op zijn minst een valse start te noemen, de lancering van de
Google killer Cuil. De website is het grootste deel van de tijd niet te bereiken.
Toen de zoeksite het heel eventjes wel deed, checkte ik snel
mijn rankings voor kleurplaten. Mijn eigen website is in geen velden of wegen te bekennen, maar al op pagina drie kwam ik een heel bijzondere website tegen in de
SERPs.
Hoezo relevante resultaten? Lang leve de spam. LoL.
Kwam je via een zoekmachine op deze website en staat de tekst die je zocht niet meer op de voorpagina? Op zoek naar (nog) meer leesvoer? In het blog archief vind je alle posts die hier op nullbeta.net staan. Netjes op een rijtje en gesorteerd op datum.