This was one great weekend ! Easter should be more often than once a year, I guess. Unlike Christmas, there was no shopping craziness before and much less overeating danger. Not counting overdose of chocolate, of course, but that's OK.

I managed do mostly nothing for about one day - up to Friday evening. Then I dived into the Ruby and Ruby on Rails world. After reading this and one third of this book, I like Ruby even more. I actually did write some code - not much, but rewrote some of my old Python scripts I use to manage files and repositories. The new Ruby version is shorter and IMHO more elegant (even with my limited command of Ruby idioms), much better readable - albeit a bit slower than Python version. But that does not change my very positive impression of new language. In addition to these (and btw, the mixin's are so great it is even scary), I learned to love the Rake and gem tools. Gem is pre-packaged Ruby component, managed as unit, that can be installed and updated remotely using the gem tool. It solves the problem of versioning - something I wished Java had from the beginning. It also provide similar functionality as the GAC in .NET: allows side-by-side existence of multiple versions of the same component and makes component available to other programs. Very clever, very convenient. Same story as with the language - gem is something similar that Perl did have with CPAN, but it is just cleaner, nicer and polished ...

Rake is Ruby's own version of make (or Ant or msbuild if you wish). It uses DSL - domain specific language, similarly as Ant or make do, but the language is neither make-file based, nor XML based. It is high-level Ruby code, specifying the tasks, targets and dependencies - but in case you need it, full power of Ruby is available. Martin Fowler wrote a nice intro to Rake, see also this, this and Joe White's blog - on 'life, .NET and cats' - all great and worthy subjects :-)

I have also discovered the lots of new powerful gems and Ruby based programs: for example another implementation of Cruise Control - not in Java or C#, but in Ruby (can be used to build anything, including Java or .NET), own version of Lucene named Ferret ...

Real eye-opener was however Rails. It contains many excellent ideas that would make lots of sense in any environment - for example configuration free version of Hibernate, testing that goes way beyond unit test of business objects, clever way how to manage database schema versioning, lots of Spring flexibility in MVC processing - without Spring complexity. I am still learning and discovering new things, but as soon as I am comfortable enough with it, I will do a lunch-and-learn on Rails and specifically on these features that transcend the Ruby environment.

As I was reading, I kept adding bookmarks to my delicious account which now holds unbelievable 2110 links. In order to improve sharing the bookmarks, I have decided to create Thinknostic common bookmark repository where I could share the subset of the bookmarks using the 'My network' feature and for:SOMENAME labels. Thinknostic account is publicly accessible at

If you want to see what is there - just browse. We start small, rather than dumping all my bookmarks - I will be adding them as I review and clean up the taxonomy. Feel free to submit your recommendations - there is no need to change anything on you bookmarking habits - if you are using If not - consider giving it a try. There are many good reasons why this is a good idea - I tried to summarize them here:

You can contribute two ways:

a) if you want, you can become part of the Thinknostic "bookmark club" by adding thinknostic to your network
b) whenever you find something of common interest, tag it (in addition to other tags that classify the link) by for:thinknostic (no spaces, one word)

The a) and b) are independent: you can suggest links regardless whether you are member of Thinknostic network of not ....

When you label a bookmark with for:thinknostic, it will first appear in the Inbox and somebody with administrative access to the account will eventually move the link to the collection and possibly re-tag. More details onhow this all works are at: