Sense and Simplicity
on March 18, 2007The book Getting Real – written by the web-company 37signals – there are many interesting things to be found. Many of those things can be interpreted very philosophically, even tough this book is all about practice. The key concept in Getting Real is building a successful business using simplicity.
The recent years I’ve been doing a lot of software development. As most young learning-developers, I would look back at my six month old work and say: Hmmz, why the hell did I do it like this? I’m convinced that all software developers go to several stages during their careers and I’m also convinced that it takes you at least X amount of projects to reach a senior level. One of the phases I could qualify myself in two years ago was the ‘solving the meta-problem phase’. This is a known phenomanon in the IT where people not solve the actual problem but the problem to a problem. (For example building a message delivery system while the customer wants a simple email form.) The past year I’ve started to actually listen to one of the oldest software wisdoms out there: KISS: ‘Keep It Simple Stupid’.
Getting Real gave me another push towards ‘simplicity’. And now, I finally saw the light :)

One of the most ming bogging examples of simplicity is the phenomenon of emergence. The best example of this is DNA, a simple set of instructions which grows to something complex which is adapted to the environment. Also, making your software’s code more simple creates many advantages for both developer and user.
Simplicity isn’t just something we find in the architecture of life and systems but it’s also something we can apply to human society. Today, I went to the Ginza Apple store where I let my girlfriend buy a MacBook. In the back of the store there were two big elevators. One for going up, one for going down. There was no button to call the elevator, we just had to wait. Once the elevator came, we got in and were kind of confused, no buttons? Yes, just wait and it will stop at all floors. Now in a way this elevator can be considered very unfriendly since we had to wait. But the next time we got in, we didn’t spend any energy on thinking! There was no choice. And that’s another interesting point, choice.
Also in Getting Real, which is mainly about web applications. They demonstrate how their products outdo their competition because they are way more simple and therefore easier to use. I think choice is another important factor. As you might have read before, it’s a fact that choice is one of the main psychological contributors of unhappiness. This is well-explained by Barry Schwartz on TEDTalks
These two aspects, simplicity and the social effects of it, make Philips Electronics’ statement really profound: ‘Sense and Simplicity’.
After playing around with the Macbook and after riding the AppleStore Elevator, I believe. Sense and Simplicity.
the Interdependency Stage of the Web
on March 09, 2007note: I wrote this article in January and I just found it hidden deep down my backpack
I think that one of the mayor success of the new Web is thanks to open communication, open standards and open information. Opening up information has given rise to the Community websites. The meaning of Community is ‘People that are grouped together and share’. Opening up information and communication is the lubricant of this sharing process. But I think there is more to this then just social websites.
Apart from open communication, the current Web 2.0 hype offers a nice example of ‘openness’: often unique identifiers to information are human-readable. For example an URL like http://website/buy_product/frogpad is much more trustworthy than: http://website/rq_handler.asp?corporate_id=672&transaction_confirm=true&request_id=2. These little details of openness generate trust and I think unconsciously attracts users.About two years ago I started reading a self-help book called ‘The Seven Habits of Highly Effective People’. This book contains some nice principles/habits of achieving success in life. Success, in this case, means both material, mental and spiritual success. One of the core principles of the book is achieving ‘Interdependence’. In order to become interdependent, one must first become independent (rise from co-dependency). Only after becoming independent we can start reaping the benefits of synergy: The whole will become more then the sum of it’s parts.
Websites are starting to offer information loosely, for example trough RSS, Webservices and other data offerings. They not only offer data, but they also create new data from multiple offerings. I think this loosely coupled way of exchanging information can be seen as the first steps of the internet becoming interdependent. The early web was static and the only form of interdependency was exchanging links (which nonetheless made it a tremendous success!).
I think it’s time we start examining the impacts of interdependency on humans and their systems. We can then use this to anticipate the Web’s needs and innovate accordingly.
Expatriate onder de Rijzende Zon
on March 07, 2007Japan, het land van de rijzende zon. De laatste weken woon en werk ik hier als een echte stoere expat.
Japan is een vreemd land voor westerlingen, maar dat hoeft niet. Het hangt er maar net van af hoe je je leven hier doorbrengt. Een Amerikaanse life-style kan hier volledig bevredigd worden dankzij de ver-ame.. globalisering van de wereld. In Tokyo moet je echter wel de ‘two hamburgers please’ vertaling weten: hanbaaga futatsu.
Ikzelf doe m’n best om het goede en het slechte uit de Japanse cultuur te ervaren wat lang niet altijd lukt.
Op het moment van schrijven zit ik 10km pal-boven Osaka. Dit weekend ga ik naar Saga om de familie van mijn vriendin te bezoeken. Yumi is eerder deze week al naar het zuiden gevlogen (na een tweede poging).
Na een Japans-Amerikaanse 50/60 urige werkweek is het weekend heilig. Ik heb dan ook mijn laptop e.d. niet meegenomen (ouw mijn pols!). Dit weekend is voor lezen, Japans oefenen en eet-cultuur (rauwe vis en bier!).
Sommige Japanse dingen in het dagelijks leven beginnen als thuis te voelen. Toch wordt je er regelmatig aan herinnerd dat je hier niet huis hoort. Rechtse leiders als Ishihara (gouverneur Tokyo) en rechtse activisten die met de Oorlogsvlag rondrijden zijn niet de enige kenmerken. Pakketjes uit het buitenland met theezakjes erin zijn daarna redelijk onbruikbaar: alles wordt gechecked.
Desondanks de groeiende populariteit van de Japanse taal en cultuur en de eeuwige afhankelijkheid van import/export is Japan nog steeds potdicht.
Misschien maakt dat het daarom ook zo speciaal.
Destroying the Wall between Writing and Executing Code
on March 05, 2007First some notes about IDE’s.
The Knight versus the Ninja
kletch…. kletch…. a loud noise of kletching metal combined with slight floor vibrations left the hall. It was The Knight. His scarred and angry face showed that he was a well experienced warrior, ready for another day of combat for the greater collective cause.
shhh…. shhhh…. what was that? It was probably just the wind. The next day we found the victim dead, with a shuriken-metal-star in his head. The Ninja has made another kill, fighting for the feudal ruler.
If you are the Knight, click here. If you are the agile Ninja, read on.
Using IRB and the Rails Console
A little while ago I read this great article about the Secrets of the Rails Console Ninja’s
My current Rails job in Tokyo required me to use the RadRails IDE on Windows to work on a legacy part the first weeks. The constant switch between script/console, RadRails and my browser inspired me to merge the first two. (Also, sometimes I got rails errors because of :wq symbols in wrong places ;)
I’ve named it Shuriken (the ninja death star) the tool for Rails Console Ninja’s.
You can download it as a .irbrc file which you can just place in your homedir.
Shuriken
Downloading shuriken, place .irbrc in your homedir.
dodo@membrane$ wget http://www.darkwired.org/~dodo/.irbrc
dodo@membrane$ rails webapp > /dev/null; cd webapp dodo@membrane$ ./script/console Loading development environment. Loading IRB shuriken technique rails development>>
rails development>> script/generate controller skinny info
exists app/controllers/
exists app/helpers/
create app/views/skinny
create test/functional/
create app/controllers/skinny_controller.rb
create test/functional/skinny_controller_test.rb
create app/helpers/skinny_helper.rb
create app/views/skinny/info.rhtml
# => true
rails development>> SkinnyController.instance_methods.index("info")
# => 175
rails development>> map controllers SkinnyController # => "app/controllers" rails development>> map c SkinnyController # => "app/controllers"
rails development>> vim skinny_controller # => "app/controllers/skinny_controller.rb"
rails development>> map views # or 'map v' Layouts Skinny/Info # => "app/views"
rails development>> svn ste '" A . A README M app/controllers/skinny_controller.rb # => "app/views"
rails development>> !uname Linux # => true
rails development>> map tests # or 'map t' Functional/SkinnyControllerTest # => "test" rails development>> rake test ...
Loading production environment.
Loading IRB shuriken technique
rails production>>
TODO
- get feedback from users
- add these commands to IRB auto-completer (readline)
- add more useful stuff, then cleanup code