Saturday, March 28, 2009

Earth Hour 2009

Decided to join Earth Hour today and took a walk through Göteborg between 20.30 and 21.30 pm. Here are a few pictures:






From top:
  • Scandinavium
  • Ullevi
  • Lipstick
In finished my walk with a coffee at Condeco. They also had their lights off. Nice move.





--Hardy

Wednesday, March 25, 2009

ScanDevConf summary

ScanDevConf has come to an end and I am on the train back to Stockholm and an eternal project. The conference was similar to jfokus (my summary here). I hanged out with fellow architect Rikard Strand all day. Always great to have someone likeminded to discuss the talks with.

The keynote was way better (compared to the strange JavaFX keynote at jfokus) with Kent Beck talking about the vital role of habits in shaping a good developer and a great team. I heard him talk 10 years ago at a conference in England (OT99). Compared to that talk this was rather tranquil but nevertheless insightful. A great developer is not productive without great habits. And rather get a good developer with great habits than a great developer with lousy habits.

We went on to the emerging technologies track. The first talk was about erlang - a language that was designed for concurrency for the telecom industry by Ericsson and that started to attract some interest a couple of years ago. I was eager to see some code because I already heard enough about the language to get interested but unfortunately the speech was only bullet list and the like. More like a sales pitch. Erik Stenman that held the talk really seemed to know the subject so it certainly could have been a little bit more technical. But maybe he aimed for the suits and not for the geeks. Erlang is definitley on the to-learn list. A point made in this presentation was that it is easier to find good developers when writing in a less main stream language then say Java or C#. There aren't as many applicants as for a Java position but all that apply are good compared with Java where you can get applicants that can't code at all and many that are merely average.

The next talk was about the cloud by John Davies. It was a very good talk where he showed how to set up a machine in the cloud using amazons EC2 services. Apparently it is easy enough. It is possible to be up and running a new Linux server in a couple of minutes. And the pricing of these services is more than reasonable.

After lunch - which was very good by the way - I breaked out and enjoyed the sun and some geocaching instead of the talks. None of the 6 to choose from was tempting at all.

Then came the lowmarks of the day. I want get into any details but we tried out both talks held in the methodology track and none of them were of much interest.

Clean Code by Emily Bache was really good. She said all the things I wanted to hear about the subject and pointed out some reasons why it is so hard to get clean code. An interesting angle it that our reaction to a system that has unclean code is to rewrite it. This is often bad for several reasons. A system that works as intended should be possible to refactor but it is hard to refactor with unit testing when there are no units to test. A new approach to this problem is to use TextTest that approaches testing in another way. Log statements are inserted into the code before the refactoring and a test case is run. This creates a fixture that we can test against at a later stage. We do our refactoring and the tools makes sure that log statements comes out in the same order as before. A truly brilliant and simple solution to a rather complex problem. I haven't read the book by Uncle Bob with the same title as this talk. Maybe it is time to check it out.

Then smalltalk! The language from where everything comes. It was a bit hilarious to find this talk about a 37 years ol language in the emerging technologies track. I have only used the language in school but have always wanted to work with languages like it. The syntax is so slick. Anders Janmyr held a very inspiring talk intertwined with code examples.

The last talk by Andreas Steen from IBM about test automation said all the things right but failed to enthusiasm (which may have been due to being the last one.... tired me).

All in all - a good day amongst fellow geeks! I might come back next year - too bad the conference is located in the small town of Gothenburg....

Friday, March 20, 2009

svn changelists

While I am on the 'discovering trip'. Here is another thing I found out this week. This time I actually knew that this particular feature existed, but I never really knew how to use it and how it actually works. I am talking about svn changelists. They are part of subversion since version 1.5 and so far were only something I read about. However, this week I discovered by accident the 'move to changelist' button in the Intellij Idea svn plugin. I just tried it and immediately it dawned on my how useful this feature is. It allows me for example to move some files, which I always change, but never commit into a seperate changeset. This way I don't have to remember to either revert or not commit these files. You probably think that such files should not exists in a properly setup project, but what about for example log4j.properties. I personally like to collect log4j output in Chainsaw , but on the other hand I don't want to commit the log4j configuration file with the required socket appender enabled. Well, now I just moved log4j.properties into its own changelist and I don't have to think about it anymore.
From the command line you are using the changelist feature via the '--changelist' options which can be passed to most of the svn sub-commands. For example a checkin would look like this:
svn commit -m "my log message" --changelist myChangeList
One caveat though. I was assuming that committing without specifying a changelist would only commit the files which are not specifically in a changelist. Unfortunately, that's not the case. Instead all changes are committed. That's a clear drawback for me, but at least it is hidden from me when using the Idea plugin.

Time to hand-over to Fredrik again for a less technical blog entry :)

--Hardy

Cycling application windows on Mac OS X

My second Mac revelation of the week:
cmd-~
I was trying now for a while to figure out how to cycle the open windows of a single application. Of course I knew
cmd-tab
in order to cycle between different applications windows, but it always annoyed me that I couldn't cycle for exmaple my open Idea windows. Well, now I can :)

Enjoy!

--Hardy

Wednesday, March 18, 2009

open

I blogged before about my problems with opening files (especially dot files) from my console in Mac OS X. I described several workarounds like adding custom functions to your ~/.bashrc (like switchFinderOptions() or edit()) or installing TextMate. Turns out I missed a damn useful built-in command line tool which ships with Mac OS X - 'open'. Just typing:
open <file>
opens the specified file with the default application for this file type. And it gets better.
open <directory>
opens a Finder window in starting in the specified directory. I especially love
open .
I love it. It's my new favorite ;-)

--Hardy

Sunday, March 15, 2009

Internet as social nervous system

Radar pointed me in this direction - a short but thought provoking article by Joshua-Michele Ross about the emerging social nervous system. Some of it conincides with my own ideas about the future. Consider this:

As ever more people get connected, we see an acceleration in the way
the Internet is used to coordinate action and render services from
human input. We are witnessing the rise of a social nervous system.

Makes sort of sense. People are increasingly interacting with (micro)blogs, social networking site status messages and instant messaging as it is the normal mode of being. This is all happening very fast. The internet isn't old at all yet it affects most peoples life in a very direct way. There will be new modes of interaction with each other over the web. It is likely that the modes of communication used today are just a beginning of a development that no one can forecast. At the end of this process - Internet will be an extension of the human being and a mode of communication that will be as natural as interacting with the "physical" world. If this turns out right this new nervous system will empower people and bring a new level of transparency to human society. Ross ends with:

Our lives are increasingly being logged on the Internet. It is part of
the trade. Given the complexity and precarious position of the modern
world, getting people to genuinely reach out and touch their neighbors
is a good thing but it will come at the price of reshaping our
identities as part of a larger, interconnected whole.

An almost religious notion.


Tuesday, March 10, 2009

The web is outdated

I have suspected for quite some time now that the web is outdated. Now and then Google turns up relevant articles that seem to be just right but after some reading it turns out that they are dated and not relevant anymore. I guess this is fine as long as there is some kind of time stamp on the page. I just searched for music festivals in Europe the summer to come and found this nice list of festivals at about.com. I started reading and got some nice tips for where to go. Then I read that Hultsfred "is one of Europe's summer music festivals that does sell out". Wait a second - they did not sell out last summer - indeed they made a hefty deficit. And Radiohead will not play at Roskilde this summer.... So I scanned the page for any information about when it was written. The only thing I found was a ©2009 at the end together with an alternative headline with a very small font that said "Top 10 Summer Concerts in Europe - Summer Concerts in Europe and Summer Music Festivals in Europe 2008" instead of the title "Hot Summer Concerts and Music Festivals in Europe" that appeared on the top of the page. If I hadn't had some knowledge about last summers festivals I would have had no idea until I started browsing the actual festival sites. Now this case was manageable but imagine 50 years from now with 65 years of searchable and possibly outdated web pages.... and the pain to sort out what is relevant and what is not. Is this the use case where we need the semantic web to save us? Or better search engines? Sometimes I want to get fresh information - sometimes it is fine with whatever. It depends on what I am searching for. Information about tourist sites in Paris won't change much over time whereas information about good restaurants in the same city is a completely different story. This might be where approaches such as Freebase and DBpedia might make a difference in the future. These are now proprietary solutions and definitley need to be standardized to really make a difference. This might have been said about wikipedia as well but that was a smashing success nevertheless. (I blogged about this some time ago.) It is kind of challenging to see that there still are some problems to solve out there. Another one I think of frequently is the need for a new kind of user interface. I might blog about that some other time - until that, get inspired by this nice talk.