Lately I’ve been experimenting with the Pomodoro Technique to become more efficient at work. It’s basically a personal time management method according to which you work focused, without interruptions, for 25 minutes and then rest for 5. Repeat until it’s time to go home/drink beers/see a movie/all of the above.

Pomodoro means tomato in Italian

Pomodoro means tomato in Italian

Sounds too simple? It is, the technique has a lot more to it and you should reward your curiosity by reading the original paper on it by creator Francesco Cirillo [pdf]. However, for n00bs I really recommend reading the blog post “Pomodoro Technique in 5 minutes” by Staffan Nöteberg first. It’s a good way to get started within minutes and later on when you’re hungry for more tomatoes, read the 44 page PDF by Cirillo.

Before encountering the Pomodoro Technique I was playing around with the 48 Minute method, which means that you should work for 48 minutes, rest 12 and repeat. It did do something for me, but the 48 minute period is too long, it’s much easier to get interrupted during that interval.

Pomodoro has been treating me good so far and it has made me analyze my life a bit. It’s kind of stupid thinking that all these hip methods and techniques like Pomodoro, TDD and Continuous Integration will make you a better developer automatically. I tend to overlook the most important stuff, and many with me. Contemplate Maslow’s Hierarchy of Needs and get your

  • Eight hours of sleep.
  • Regular exercise.
  • Five meals a day.
  • Fresh air
  • etc
Maslow's Hierarchy of Needs

Maslow's Hierarchy of Needs. Created by J. Finkelstein and released under the GFDL license.

Yes, these are the basics and everyone knows about them, yet most of us overlook these simple needs. Without fulfilling them you really shouldn’t expect to be a brilliant developer. They will help you staying sharp and being able to tackle all the problems that people and code throw at you. It’ll make you healthier and happier in general too.

Apart from that, what are you waiting for? Read the Pomodoro Technique in 5 minutes and see if it makes you more effective and efficient at work. Now quit yer procrastinating and get outta here!


This post is released under the GFDL license, since I used a GFDL picture from Wikipedia in it. Kinda viral, huh? Not sure if I like it or not, but at least I got to use the picture.

Okay, that may be an overly dramatic blog post title. Then again, everything you do change your life in some respect, doesn’t it? Whatever…

I’ve found myself reading a lot lately. I finished the really inspiring book The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas a few weeks ago and it has changed some of my development and computer behaviours. They recommend learning a shell (command-line tool) in your respective operating system and also learning a good text editor such as Emacs or Vi, recommendations that I took to heart. The reasons: a promise of more efficiency and flexibility.

I vowed to stop using graphic tools such as Windows Explorer and Finder until I knew the shells in Windows and OS X well enough to never having to use Explorer and Finder again. I never really liked Finder anyway…

So now I’m doing as much as I can in Windows PowerShell and the OS X Terminal as possible to see if it really improves my efficiency and gives me more flexibility. I’ve already started creating deploy scripts to avoid the repetitive task associated with building, copying and zipping different versions of the files needed, and that’s a relief.

The command line is still really frustrating at times, and you have to remember a lot of names and arguments, but I hope it’s for a good thing in the long run.

My Emacs experience so far has been pretty good. Once you get going with it it makes a lot of sense, but it’s a little bit frustrating having to stop to think about what keyboard shortcut you’re supposed to use next. I guess it’ll become second nature after a while and I really like it thus far. Heck, I’ve even written this blog post in Emacs.

Even though this is not meant as a book review, I’d like to say that it was really inspiring even though the chasm between the abstract parts and the concrete tips (like the two above) is a bit too wide at times. And I’d also like to point out that the book is about the entire programming profession, not just command-line tools and text editors.

I’m currently reading Code Complete by Steve McConnell. Maybe that’ll change my life too.

Yes, this is just an echo post… but I found it so exciting that I just had to write about it. 

I’m a member of the Agile Sweden mailing list, and today an interesting electronic letter arrived. There’s going to be an agile conference in Stockholm in the beginning of June, called Agila Sverige. It’s inspired by the norwegian initiative Smidig 2007, which focused on lightning talks (a presentation being at most 10 minutes long) and open space discussions. It’s also super cheap, hopefully I can go.

I recommend you to watch one of the lightning talks from Smidig last year, given by the swedish Niclas Nilsson of factor10 on the meaning of words when you’re dealing with TDD/BDD. You can find more videos at the Smidig site, and they’re all released under the Creative Commons Attribution-Share Alike license.

A CHM viewer for OS X

March 16, 2008

I’m toying around with Spring.NET, and since I’m using MonoDevelop on my Mac I don’t have ReSharper to automatically set my using directives. That means I have to consult some documentation to find out what namespace a certain class belongs to in the Spring.NET framework before I can use it. I don’t remember life before ReSharper being this hard.

So I decided to open up the SDK documentation, which is conveniently placed in a .chm file. Conveniently if you’re running on Windows that is. I needed some application to view the .chm file on OS X and I found two open source alternatives:

  1. Chmox (version 0.3). It displayed the contents annoyingly close to the window borders, and more importantly had no search function. Since I don’t want to scroll through half of the documentation to find where a certain class belongs, I had to go the next option:
  2. xCHM (version 1.13). It has some GUI issues that aren’t too bad, and it has a search feature. Winner by no contest, and Bob’s your uncle. Too bad Mac builds are discontinued, that’s the reason I chose another version than the latest.

Problem solved, I’m back to exploring Aspect Oriented Programming in Spring.NET again.

In EPiServer 4.61, you can handle the event for deleting a page and moving it. However, the event for putting a page in the recycle bin is not EPDataFactory.DeletingPage. No, it’s EPDataFactory.MovingPage… since you’re moving it to the bin. When you empty the bin you delete it. It totally makes sense from a developer perspective, but from a human language point of view? Compare it to deleting stuff in Windows.

If you have to keep stuff like that in your head, bugs may occur. I hope you learn from my failure to remember that, it cost me 30 minutes today.

My first Lunch & Learn

March 13, 2008

Today I was so bold as to cram all the developers on my current project (there are four of us) into a small conference room during the lunch break and show them a screencast about agile development from dnrTV while we enjoyed our food. It was a fun little experiment and I think they appreciated the initiative, but the dnrTV videos are usually one hour long which, it transpires, is a bit too much. We have short lunch breaks, okay?

Does anyone know of other good .NET related videos that we can showcase? I’m thinking of Channel 9 as well, but what more is there? I’m looking mainly for C#, ASP.NET and agile stuff like TDD and so on. And a length of 30 minutes would be soup-erb (food related pun intended).

My calendar… gone

February 20, 2008

For the umpteenth time, I synchronized my Sony Ericsson K800i, using iSync (sync application), to iCal (calendar application) on my Mac (white and glossy application container). It’s always worked like a charm… or well, it hasn’t. For some reason, iCal only showed about half of what was actually stored on my phone.

So when I synchronised my device today, it deleted the calendar contents on my phone. And in my iCal. Almost all of it anyway, except the middle of March. Thank you Apple/Sony Ericsson, I have learned the value of backups yet again! If you could only pat me on the back, say “that’s allright sport” and give me my calendar back, that’d be swell…

Since I suddenly have A LOT of time on my hands, do you have any ideas for what I should do with it?

I’ve had Mono installed since I bought my Mac, but the lack of a good IDE made me frustrated enough to install a Windows XP virtual machine and use Visual Studio instead. Until now that is, because I listened to the .NET Rocks! show #313 yesterday where Miguel de Icaza and Geoff Norton talk about the upcoming Mono 2.0 and how the IDE MonoDevelop is included in the OS X installer for Mono. I’ve tried installing MonoDevelop before, but it was such a hassle on OS X that I just gave up. I need stuff to be easy, or I move on to something else.

After I installed the new Mono (1.2.6) package this morning and then dragged the MonoDevelop beta 3 to Applications, it was a great relief to see the IDE pop up. I created an ASP.NET site in a few seconds and fired it up using the built-in server. Then I added some code-behind and everything worked great. I haven’t tried anything more advanced, but I felt I was so excited about this product that I just had to blog about it instantly. If you’re a Mac & .NET freak (I’m looking in your direction Joakim), try this out poste haste!

Edit: The MonoDevelop installer I found was in the mono 1.2.6 dmg that I downloaded from www.mono-project.com. For some reason I can’t find a similar installer at the MonoDevelop site.

I’ve been using a little white MacBook for the last six months, and what a great machine it is. Just the battery life alone is worth the extra money.

Being used to Adobe Reader from my Windows machine, I quickly dismissed the OS X built-in pdf reader (and then some!) Preview. Big mistake. There’s one feature I’ve been missing in the Adobe Reader: bookmarks. Whenever you’re reading an e-book and have to shut down your computer/application in the middle of it, which is quite so often unless you’re a speed reading superman, you have to take a note of which page you’re on. Maybe there’s another way, but I haven’t found it and that means it doesn’t exist to me. You have to save a text file or something with the page number. Insanity.

Preview on the other hand automatically remembers what page you where on when you shut down the application. So the next time you open up the document, it’s right where you left it. Aah, the simple things that make your life easier. So I uninstalled Adobe Reader quickly after that realization.

I read the newspaper Computer Sweden today, and there was an article about how Ruby on Rails is getting thumbs up from major projects. It was very interesting, since one of the main cons of the framework is how it doesn’t scale very well.

I already knew that Twitter was one of the largest Rails sites, but I didn’t know that LinkedIn was another one. Another surprise was that the Swedish real estate site Hemnet (which is really good) is also based on Rails, delivering approximately 13 000 000 pages per week and it’s growing 40-50 % per year. When my girlfriend heard that it was a Rails site, she said “oh, that’s why it’s so slow”. I found that amusing.

Apparently, Hemnet have been satisfied with Ruby on Rails so far, with short development cycles and easy maintenance being the main advantages according to the project leader. But you should also know that they don’t seem to rely heavily on ActiveRecord, instead they are using their own stored procedures in an Oracle database for performance reasons.

Does anyone know of other large sites using Rails?