Archives

Harsh

February 29th, 2008

I've heard that people end relations via SMS. But doing so via the Last.FM GUI is a bit too harsh, don't you think?

Geen goesting, geen excuus

February 29th, 2008

Als je geen goesting hebt om te bloggen, moet je dat niet doen. Je bent aan niemand iets verplicht, je mag gewoon zwijgen. Er is lectuur genoeg op het internet. En als je terug goesting krijgt, merkt mijn RSS reader dat wel op. Neem een voorbeeld aan mij :-)

Fosdem 2008 Ruby Devroom

February 28th, 2008

The slides of the presentations in the Fosdem 2008 Ruby Devroom are all available here. Enjoy!

Ook fietsers hebben plichten

February 27th, 2008

Heh. Mijn ervaring als fietser? Verlicht als een kerstboom en fluogeel dat het niet meer schoon is, hebben autogebruikers blijkbaar het idee 'dat is een voorzichtige, die zal wel stoppen als ik vlak voor hem rechts afsla.' Echt waar, zonder geel vestje blijven ze verder van mij af. De andere duizend frustraties houd ik voor een andere keer.

links for 2008-02-27

February 27th, 2008

  • The Tarantula is a fuzzy spider. It crawls your rails app, fuzzing inputs and analyzing what comes back. We have pointed Tarantula at about 20 Rails applications, both commercial and open source, and have never failed to uncover flaws. -- shared with shar
    (tags: ruby rails test)

User-Central design

February 27th, 2008

Het begin van elk goed datamodel design:

links for 2008-02-25

February 25th, 2008

Look, one that's been collecting dust in my drafts folder for a long time:
Last night I actually looked for the time at the top right hand corner of the magazine I was reading...
I have the same feeling when I want to click on a page number in the table of contents of a book...

links for 2008-02-22

February 22nd, 2008

Je zal het altijd zien...

February 22nd, 2008

... als je een heel betoog uiteenzet, en in dat betoog een paragraafje terug verwijdert omdat je denkt dat je je punt niet genuanceerd genoeg kan uitdrukken, is er altijd wel een intelligente mens die dat doorheeft. Bon, op het gevaar af dat ik hier spijt van ga krijgen, een poging om uiteen te zetten waarom wij gekozen hebben om tijd te investeren in Ruby on Rails. Vreemd genoeg moet ik daarvoor eerst de ontstaansgeschiedenis van 10to1 uitleggen. Wij waren twee collega's, Java consultants, die een beetje teleurgesteld waren in het soort werk dat ze deden. We sprongen om met ingewikkelde datamodellen en lastige zoekalgoritmes, maar we hadden hoegenaamd geen idee wat voor mensen ons ding gingen gebruiken. Als het al gebruikers waren, sommige systemen dienden alleen als input voor andere systemen. We voelden ons een heel klein radje in een heel groot raderwerk. We voelden wel aan dat we elkaar goed aanvulden, en allebei hadden we de indruk dat hetgeen we samen deden, sneller en beter ging dan hetgeen we elk apart deden. Het geheel was meer dan de som der delen. Van daaruit groeide de idee om samen een bedrijf op te richten. We zouden gaan werken voor projecten waar we voeling hadden met onze gebruikers, en waar we samen aan konden werken. Voor zover wij de markt kunnen zien, houdt dat in dat we vooral zouden werken voor kleine bedrijven, en voor mensen die van een idee een bedrijf willen maken, startups zeg maar. Nu zijn er verschillende factoren die het moeilijker maken voor zo'n bedrijven om met Java aan de slag te gaan: zij hebben geen eigen IT departement, en dus niemand die kan zorgen dat hun servers 24/7 blijven draaien. Zij hebben geen budget voor doorgaans dure Java hosting. En hun projecten zijn dikwijls te klein om veel tijd te spenderen aan het 'opzetten van een project', en het schrijven van vele lagen 'mappers' die in feite niet meer doen dan data van het ene formaat omzetten naar het andere. Net in die tijd was er een nieuw web application framework in opmars: Rails. Dat beloofde de bovenstaande problemen aan te pakken: er was goedkope hosting voor beschikbaar, de opzetkost is minimaal, en in plaats van 'mappers' werd er vanuit gegaan dat de meest logische mapping gebruikt werd: een gegeven dat in de databank 'name' heette, zou in het domein model ook wel 'name' heten. Daar heb je geen ingewikkelde xml-files voor nodig. Het enige 'controversiële' van dat framework is dat het in een vrij onbekende taal geschreven was: Ruby. Dat maakt dat de keuze voor Rails een iets grotere overgang is dan de overgang van, ik zeg maar wat, Struts naar Spring Web MVC, of zelfs van Struts naar Tapestry of JSF. Maar dat kon en mocht ons niet afschrikken. We pakten het nieuwe framework vast voor wat het waard was, en begonnen er in te programmeren. En het beviel ons. Het maakt de beloften waar, ondanks veel religieuze oorlogen op de internetten, die dikwijls naast de kwestie zijn. Wil dat zeggen dat we nooit nog een Java project zullen doen? Weinig waarschijnlijk. Java is zo ingeburgerd in de grote bedrijven, dat de meeste bestaande projecten, en het gros van de nieuwe projecten, er met Java gemaakt wordt. Wil dat zeggen dat Ruby on Rails onze eerste keuze is als we niet beperkt zijn in verband met de technologie? Jazeker. Het is niet voor alles geschikt, maar het is zeker geschikt voor de toepassingen waar wij op mikken: 'kleinere' projecten, met een grote web component, die op relatief korte termijn moeten geïmplementeerd worden. (Hmm, dat paragraafje is iets groter geworden.)

En nu we toch bezig zijn ....

February 22nd, 2008

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

Plugg

February 22nd, 2008

It's official: I'm going to Plugg

Het internet

February 20th, 2008

Soms vraag ik mij af hoe de wereld werkte, vroeger. Je weet wel, voor het internet bestond.  En voor 'gsm' een woord was. Het vreemde is: ik was er toen al, ik heb dat meegemaakt. Een wereld zonder TV, nee, dat niet, maar internet en gsm? Ik heb het grootste deel van mijn leven zonder meegemaakt. En toch kan ik het me niet meer voor de geest halen, hoe dat was. Vreemd.

Friend in Java

February 19th, 2008

Sometimes, you want to change behaviour of a method, depending on who the caller is. An example might be to throw an exception if the caller is a class you don't know. You want to make the method protected, but for some reason, you can't put all the callers in the same package as the callee. In C++, you have the concept of 'friend', where a callee can define which callers are allowed. Or so it exists in my memory, but that doesn't matter. To achieve the same thing in Java, you can inspect the stacktrace: public boolean isFriend() { new Exception().getStackTrace()[2].getClassName().startsWith(MY_PACKAGE_NAME); } And use it as follows:
public void something() { if (!isFriend()) { throw new NotFriendException(); else { // do nifty stuff here } }
Now, while this works, I have a sneaky suspicion that this isn't the most performant solution: creating a stacktrace is said to be an expensive operation. But it's useful once in a while.

Ruby vs Java

February 18th, 2008

addresses.find {|address| address.street == 'Groenplaats'}
vs.
CollectionUtils.find(addresses, new Predicate() { public boolean evaluate(Object obj) { Address address = (Address) obj; return address.getStreet().equals("Groenplaats"); } });
Frank stelt pertinente vragen over Java, Rails en Grails. In plaats van een korte comment te geven (in de trant van "Java suxx, Ruby rulezz"), ga ik mijn best doen om een genuanceerd antwoord te geven (wat er natuurlijk weer voor zorgt dat mijn antwoord veel te laat is, maar alla). Laat ons eerst eens even ingaan op de idee van "de switch maken". Dat wil zeggen dat je een ding inwisselt voor een ander ding. Ik maak de switch van Windows naar Mac, of van Dreamhost naar Openminds, of... Het ding dat ik hier zou inwisselen, is mijn kennis van Java, en ik zou dat vervangen door mijn kennis van Rails. Helaas. Hoe graag ik het soms ook zou willen, doelgericht vergeten ligt niet in mijn skillset. Dus zal het enige alternatief zijn dat mijn kennis van Java aangevuld wordt door mijn kennis van Ruby, wat toch een andere kijk op de dingen geeft. Het is niet omdat ik nu tijd investeer in Ruby, dat mijn investering in Java plots verloren gaat. Het is ook niet zo dat Java nog steeds zo razendsnel evolueert dat je het enkel kan bijhouden door er full-time mee bezig te zijn. De grootste bedrijven standaardiseren trouwens nog altijd op Java 1.4, toch ook al een paar jaar oud. Los daarvan: als je in een enterprise Ruby wil binnenbrengen, denk ik inderdaad dat je er goed aan doet om een oplossing te zoeken die bovenop de bestaande infrastructuur (lees: de Java Application Server) kan draaien. Persoonlijk heb ik me even met Groovy bezig gehouden, en ik vond de gelijkenis met de Java syntax (die ze bewust nastreven) eerder hinderlijk dan gemakkelijk: het lijkt er heel hard op, maar in de details is het net anders. Dan liever een helemaal-andere syntax die je toelaat om een (al dan niet denkbeeldige) knop in je hoofd om te draaien. JRuby lijkt me daar dan ook de meest aangewezen manier, ook al doordat Sun daar meer in lijkt te investeren, en doordat de JRuby developers meer tijd lijken te steken in hun 'evangelizing': je kan geen IT conferentie binnengaan tegenwoordig, of Charles Nutter staat daar wel een presentatie te geven. Waarom zou je Ruby gebruiken in plaats van Java? Om net dezelfde redenen als je 10 jaar geleden Java gebruikte in plaats van C++: er zijn meer abstracties, die ervoor zorgen dat je je minder met het spreekwoordelijke metaal moet bezighouden, en meer met de business logica. Ruby maakt meer gebruik van dingen die 'er niet toe doen': het kan levensnoodzakelijk zijn om je database veld anders te noemen dan je object attribuut, maar meestal doet het er niet toe. Dat is weer een gegeven minder dat je in je hoofd moet houden. Om te leren uit de ervaringen van een project manager met een Ruby project, kom je best eens kijken op FOSDEM. Is Java dood? Verre van -- het is nog nooit zo levend geweest. Is het goed om verschillende tools in je gereedschapskoffer te hebben zitten? Ik ben overtuigd van wel.

Met de fiets naar het werk.

February 14th, 2008

Bij Jobat:
In Nederland heeft de overheid een originele oplossing bedacht voor de nijpende files die het woonwerkverkeer geregeld in de war sturen. In vijf steden - Amsterdam, Apeldoorn, Utrecht, Rotterdam en Den Haag - wil ze langs de snelweg grote fietsstallingen bouwen met autoparking. Bedoeling is dat automobilisten daar hun wagen achterlaten en op de fiets springen zodat ze de laatste 10 tot 15 kilometers naar het werk snel zouden kunnen afmalen.U
Uitstekend idee, volgens mij. Ik ben zelf al op zoek geweest naar een geschikte parking op het einde van de A12, maar ik heb ze nog niet gevonden. Het zou me wel heel wat gesakker op de trein besparen...

links for 2008-02-08

February 8th, 2008

Kranten en blogs

February 7th, 2008

Tegenwoordig zie je nog maar weinig verschil tussen een krant en een blog:

 2008-02-07_1734.png

Geef toe, dat "ik kan het weten, want ik was er, en hij lekker niet" toontje, dat zou je toch op een doorsnee blog kunnen vinden?

links for 2008-02-06

February 6th, 2008

links for 2008-02-05

February 5th, 2008

IT Professional

February 4th, 2008

2008-02-04_1040.png

Wat denk je, is zo'n foto bij een "objectief" artikel over een (IT-)wereld(je)schokkende gebeurtenis bevordelijk voor je geloofwaardigheid?

links for 2008-02-02

February 2nd, 2008

You're looking for something older?