Netsensei

Much Ado About Nothing

Software en Programmeren

De naakte cijfers III

Ik had het Pascal beloofd: op het einde van de week de eerste cijfers van Feedburner. Gemiddeld trekt dit blogje dus zo’n 200 subscribers per dag. Da’s andere koek dan wat Google Analytics mij voorspiegelt. Verder blijkt trouwens dat 42% van de subscribers hier arriveren via Google Feedfetcher en 26% via Bloglines.

Feedburner

O ja, ik ben bijzonder onder de indruk van de doorgedreven data drilling die je met Feedburner kunt doen. Statistiekjes en trends per blogitem op vragen zelfs. Allemaal gratis. Waarom heb ik niet eerder voor Feedburner gekozen?

Twitter @ BarcampGent

BarcampGent staat al een eeuwigheid met en grote rode cirkel en een paar stevige pijlen angeduid op mijn kalender. Het zal de eerste keer zijn dat ik aan een Barcamp deelneem, en ik wil er tegelijk ook goed invliegen: met een eigen projectje. Ik heb even moeten nadenken voor ik een goed onderwerp had. Uiteindelijk besloot ik een dag of tien geleden dat ik iets rond de Twitter wil doen: Twitter programmeren voor dummies. Ik heb het idee even wat laten gisten en er in – relatieve – stilte aan gesleuteld.

Ondertussen is het een aardig project geworden. Zelf ben ik uiteraard ook nog groen achter de oren, maar ik zou mezelf de komende maand wat wijden aan de Twitter API. Al doende maak ik nota van mijn bevindingen. Meer zelfs, het is de bedoeling om een on line microtutorial programmeren voor de Twitter API te schrijven. Met micro bedoel ik: kort, bondig en begrijpelijk.

Op 29 maart hoop ik tijdens een powertalk op BarcampGent mijn exploten wat uit de doeken te doen en het eindresultaat voor te leggen.

Ik ben keihard benieuwd hoe ver ik hierin ga geraken…

Twitter API: babysteps

** techneutenwaarschuwing **

Gisteren ben ik wat met de Twitter API beginnen spelen. De whatnow? De Twitter API, dus. Samengevat: wanneer je zelf een programma schrijft, laat de API van toepassing x of service y toe om (beperkt) gebruik te maken van diens functionaliteit. Als je, bijvoorbeeld, met Twitter Stats werkt, dan zal die via de API van Twitter al je gebruikersgegevens opvragen, ontvangen en verwerken in mooie grafiekjes.

Op zich schrijft een API enkel voor welke regels je moet volgen om te kunnen communiceren. De programmeertaal, het platform of weet-ik-veel waar je zelf mee aan de slag bent, spelen een stuk minder een rol. Buiten dan dat ze je in staat moeten stellen om gebruik te kunnen maken van die functionaliteit.

Afin, dat was de theorie. De praktijk dan maar. Stel dat je de Twitter website beu bent of geen browser bij de hand, maar je wil wel twitteren, hoe doe je dat? Wel, men neme de API. Die zegt dat je een HTTP POST verzoekje moet sturen naar een bepaalde URL met je paswoord, username en het berichtje dat je wil versturen. je berichtje mag uiteraard niet langer dan 140 tekens zijn. Twitter zal je berichtje dan oppikken.

Eerste probleem: hoe stuur je een HTTP POST request zonder browser? Wel, dat kan je met cURL. Dit is een tooltje waarmee je direct met webservers en nog veel meer kan spreken. Deze versie (windows! Linux e.a. beschikbaar. Kies de no-ssl versie.) heb je nodig. In je commando prompt (dosbox, whatever) voer je het commando ‘curl’ uit. Je moet natuurlijk een aantal parameters zoals een URL en watnog meegeven om iets zinnigs te doen met cURL. In casu geef je volgende URL mee:

http://twitter.com/statuses/update.xml

Daarmee zijn we er nog niet. Je moet eerst inloggen bij Twitter vooraleer je een tweet kan sturen. Dat doe je door aan het curl commando volgende parameter mee te geven:

-u username:paswoord

Uiteraard vervangen door je eigen logingegevens. Tenslotte, moet je nog het berichtje mee geven als een HTTP POST request. Daarvoor dient de -d parameter van cURL. Daarbij moet je nog specificiëren dat het berichtje een status is. Dat doe je met ‘status=’ Het resultaat is dit:

-d status="Twittering from cURL"

Dat alles moeten we nu in één commando doorgeven aan Twitter. Dat doe je zo:

curl -u username:paswoord -d status="Twittering from cURL" http://twitter.com/statuses/update.xml

Als je als goed hebt ingevoerd, dan zou je een heleboel tekst in XML formaat teruggespuugd moeten krijgen. Die zal o.a. je profielgegevens bevatten en de nieuw aangepaste status met het tijdstip. Doe je het verkeerd krijg je ofwel geen output, ofwel een foutmelding in een XML berichtje.

Zo. Je hebt net voor het eerst rechtstreeks gebruik gemaakt van de Twitter API om los van de Twitter website toch te kunnen twitteren. Bravo! Als je PHP programmeur bent, dan zou je op een gelijkaardige manier met curl voor PHP aan de slag kunnen om van de Twitter API gebruik te maken.

WordPress 2.5

Volgens de roadmap van WordPress wordt versie 2.4 overgeslagen en verschijnt versie 2.5 op 10 maart. De release cycle schreef immers voor dat 2.4 in december had moeten verschijnen wat niet gebeurt is. De gemiste release wordt daarom overgeslagen.

Ondertussen is er ook een preview van WordPress 2.5 vrijgegeven. Niet alleen is er het frontje, je kan zelf ook knoeien met de admin module. Mooi. Michael Heilemann van Binary Bonsai had al het dashboard van 2.3 besproken. Via Flickr vind je mijn opmerkingen op het dashboard van 2.5.

Eerlijk gezegd ben ik niet bepaald wild van het nieuwe dashboard.

Operation aborted

Hm. Blijkbaar was mijn blogje de laatste dagen moeilijk bereikbaar voor Internet Explorer gebruikers. Die kregen een gortdroge ‘operation aborted’ error te zien. Even nagedacht wat ik fout kon hebben gedaan de laatste dagen. Ik moest kijken in de richting van de plugins die ik heb geïnstalleerd. Na wat in- en uitschakelen en testen blijkt nu dat de de slightbox plugin de boosdoener is. Op dit moment lijkt het probleem van de baan te zijn.

Ondertussen vond ik ook nog bevestiging via Google. Terug naar de tekentafel terug en op zoek naar een betere lightbox plugin.

Ik kan natuurlijk ook verlangen naar een ideale wereld waarin mensen (hun oude) Internet Explorer gewoon dumpen voor een alternatief dat wél werkt zonder cryptische foutboodschappen.

Pretty Comments

Zo. Ik heb vanmiddag een beetje zitten knoeien met de commentarenkatapult. Ik wilde al een tijdje af van het standaardformulier met de standaardknoppen die er in elke browser weer anders uitzien. Bovendien vind ik het niet erg van veel gebruiksvriendelijkheid getuigen dat je bezoekers met HTML moeten goochelen als ze een link willen posten of iets willen benadrukken.

WordPress voorziet al een sinds enkele versies een Rich Text Editor in het administratiepaneel. Als je iets wil schrijven dan scheelt dat een hoop. Zelf maak ik er niet echt gebruik van. Ik kan de grote flexibiliteit die HTML tags mij bieden best wel waarderen.

Achter de Rich Text Editor van WordPress gaat TinyMCE schuil. Dat is een javascript bibliotheek en dito applicatie waarin een krachtige editor schuilgaat. Wat verder zoekwerk leert mij dat er tegenwoordig ook een WordPress plugin (TinyMCEComments) bestaat die de kracht van de Richt Text Editor ook bruikbaar maakt in de comments. Met wat CSS heb ik de submitbutton meteen ook in een nieuw kleedje gestoken én er een extra resetbutton bij geplaatst.

Zo makkelijk gaat dat dus. Ik ben wel benieuwd hoe Akismet en Spam Karma zullen reageren op comments die via het nieuwe form worden gegooid…

Don’t try to fake it

Hm. JAVA weirdness vandaag ontdekt. Men neme een bestand foobar.txt. Vervolgens beschouwen we even deze code:

File foo = new File('foobar.txt');<br> System.out.println(foo.getPath());<br> foo.renameTo(new File('barfoo.txt'));<br> System.out.println('foo.getPath());<br>

Dat zou pretty straightforward moeten zijn: de code hernoemt het foobar.txt bestand naar barfoo.txt. Voor en na de operatie wordt via de getPath() operatie het pad en de naam van het bestand opgehaald en getoond.

De logica dicteert dat nadat de bestandsnaam van het foo object is gewijzigd, de getPath() methode de nieuwe bestandsnaam zou weergeven.

Helemaal niet dus.

De getPath() methode blijft de oude naam nog altijd tonen. Mogelijk alternatief om dat op te vangen is werken met een extra File object:

File foo = new File('foobar.txt');<br> System.out.println(foo.getPath());<br> File newFoo = new File('barfoo.txt');<br> foo.renameTo(newFoo);<br> System.out.println('newFoo.getPath());<br>

Mijns insziens niet meteen het meest propere alternatief want het kost je geheugen, zeker als je met grote operaties bezig bent, maar het werkt wel. JAVA adepten onder ons, wat denken jullie ervan?

Browsershots

Even de raad van Stijn opgevolgd. Dit is het resultaat. Het design van de site gaat zwaar in de fout onder Safari 3.0.3/Windows 2000, MSIE 5.5/Windows 2000 en Safari 1.3.2/OSX 10.3 (Over Netfront zwijgen we zelfs). Op mijn iBook met OSX 10.4.11 met Safari 3.0.4 loopt het alvast allemaal gesmeerd. Nu denk ik zo dat dit niet meteen de meest voorkomende situaties zullen zijn. Ik heb helaas zo voor de vuist weg geen browserstatistieken, dus ik kan niet zo zeggen of het in realiteit ook zo is.

Ik heb mij in ieder geval deze plugin even gedownload en geïnstalleerd. Met dank aan Greet.

Een nieuw jasje aantrekken

Zo. Mijn blog steekt in het nieuwe jasje. Zoals altijd met nieuwe dingen betekent dat, dat er hier en daar nog wel een naad zal verkeerd zitten. Ik zal er dus de komende dagen nog zwaar aan sleutelen om alles in orde te krijgen. En er zitten natuurlijk een paar nieuwe features in.

Eerst en vooral de rotating banner. Ja, ik bezit een uitgebreid fotoarchief en ’t wordt tijd dat ik daar maar eens gebruik van maak.

Asides. Net zoals bij Matt Mullenweg. Soms wil ik wel eens iets op mijn blog gooien zonder daar een volledige post over te schrijven. Of het is iets twitter-achtig maar toch niet helemaal. Dus heb ik een soort van tussenvorm gemaakt. Je zal wel zien wat ik bedoel als de eerste asides verschijnen.

Eindelijk heb ik het 800 pixel tijdperk achtergelaten. De breedte van mijn blogje schaalt nu tot 960 pixels. Dat geeft heel wat meer ademruimte.

De sidebar is nu volledig widget-fähig wat weer heel wat mogelijkheden opent.

Laat dus maar weten wat jullie ervan vinden.

Een nieuw jasje

De huidige opmaak van dit blogje draait ondertussen ook al weer een klein jaar mee. Ik heb er niet al teveel aan bijgeschaafd ondanks enkele serieuze tekortkomingen. Zo is de sidebar totaal niet widgetfähig. En het feit dat mijn foto’s verbannen zijn naar de footer vind ik ook niet mijn meest briljante idee. Het grootste probleem vind ik dat mijn blogje in zijn huidige vorm veel te druk is. Het krioelt van de oranje links en je weet niet waar eerst klikken. Om nog maar te zwijgen van het overdadig gebruik van de famfamfam icoontjes.

Hoog tijd om terug in de kladblok/Nano/Textedit te kruipen en een nieuw theme eruit te persen. Hieronder zien jullie het resultaat van een kleine maand code schrijven op de trein en op vrije momenten

Netsensei

Weg met al het overbodige gedoe: enkel de essentie met de focus op leesbaarheid en rust. Persoonlijk vind ik dat ik aardig in mijn opzet ben geslaagd.

Stating the obvious: ja, ik heb mij wat laten beïnvloeden door het design van Michel. Nochtans vind ik het ontwerp van zijn blog nu ook niet bepaald wereldschokkend mooi. Eerlijk gezegd draaide het er juist op uit dat ik helemaal weg stuurde van zijn design. Door gebruik te maken van een dezelfde typografie, kleurenpalet en de header, lijken we nu toch verdraaid goed op elkaar. Zo was ik in eerste instantie van plan om Helvetica te gebruiken voor alle teksten. Tot ik tot de conclusie kwam dat een Georgia een stuk aangenamer leest. Dus dat heb ik gebruikt voor de body van de blogitems. Pas later kwam ik erachter dat Michel een gelijkaardige keuze heeft gemaakt.

Waaruit we weer lering trekken dat de keuze van dergelijke details een zeer vergaande invloed kunnen hebben op uw website.

Afin, natuurlijk is mijn vraag: wat vinden jullie ervan? Op een aantal details na is alles klaar maar houd ik voorlopig alles nog even de wachtkamer tot na volgende week.

O ja, als je zelf eens websites moet screenshoppen: gebruik dan de screengrab! plugin voor Firefox! Doodmakkelijk in het gebruik.

« Vorige blogposts Pagina 11 van 22 pagina's Volgende blogposts »