published on 22.06.2009 11:35.

Altonale 2009 Photos

Posted in  | Tags ,  | no comments | no trackbacks

published on 18.03.2009 06:10.

Mindmap for Software Craftsmanship Talk

I’m currently preparing a talk on Software Craftsmanship for Euruko 2009 in Barcelona. It’s the first time I try out a mind map for structuring everything related to a topic, and I really like it. By looking at the whole at once, you’re able to see new connections, redundancy, overlap, etc. And it’s more fund to draw stuff than putting everything in nested bullet lists.

I’ve also become a fan of Big Visible Charts, so I prefer creating it by hand instead of using a computerized tool, like MindMeister. Don’t get me wrong – MindMeister is very cool – it’s just that I don’t need it’s advantages of collaboration, change tracking etc. since I’m working on my own.

Two learnings already:

  • always start with a really big sheet of paper on a big wall. You never know in which direction you’re gonna need more space! I failed with that, and it’s probably limiting me currently.
  • use stickies to dump ideas that come to your mind when you’re not really working on the preparation. You don’t waste much time drawing and sorting, but you don’t forget and can pick up or discard the ideas later.

By the way, the Euruko conference artwork is the best I have ever seen. It’s a beautiful blend of Barcelona’s omnipresent Gaudi tiles and color tones and the Ruby logo.

Posted in ,  | Tags , , , , , ,  | no comments | no trackbacks

published on 01.03.2009 10:50.

Magnificent Life

by Hana S. on Flickr.

Posted in  | no comments | no trackbacks

published on 08.01.2009 10:47.

Wild Iris

Normally I don’t like kitschy retouches, but this is beautiful … by Ethan Allen.

Posted in  | no comments | no trackbacks

published on 20.08.2008 20:34.

how to explain a clementine to an extraterrestrial

waste 1.000 words. or just show him this picture.

found while trying to figure out what the following lyrics by regina spector mean: »hey, remember that month when i only ate boxes of tangerine«.

Posted in  | no comments | no trackbacks

published on 11.11.2007 12:46.

very cool grafiti by "jef aƩrosol"

more in this set!

Posted in  | Tags ,

published on 18.05.2007 00:18.

just gave my flickr api toys a little overhaul. check them out. more coming soon, for example entering your username to show your contacts’ photos, instead of mine.

Posted in , ,  | no comments

published on 05.05.2007 14:40.

airbourne cats ... on flickr

by junku.

Posted in  | Tags ,  | no comments

published on 06.01.2007 16:09.

martian sunset

via graham glass.

Posted in  | no comments

published on 31.01.2006 23:25.

completely useless ruby code

this chunk of code is completely useless, apart from the fact that it let me practise how ruby does arrays, objects, constants, observers and singletons. and how to pass a variable number of arguments to a function method and set defaults for arguments that weren’t passed. plus it had me thinking about “what-goes-where” and coupling in object oriented programming.

maybe not so useless after all!

# for documentation see the UML diagram at the following url
# @url <a href=""></a>
require 'observer'
require 'singleton'

class StickFigure
   MALE = 0
   FEMALE = 1   
   attr_reader :name
   def initialize(attrs)
      @name     = attrs[:name] ||= 'Anonymous Coward'
      @sex      = attrs[:sex] ||= MALE
      @is_lazy  = attrs[:is_lazy] ||= false
      @in_peril = false
   def in_peril!
      @in_peril = true
      puts @name + ' is in peril!'
   def to_s
      puts "\nHi! I'm " + @name + ' and I am ' + (@is_lazy == true ? 'a little' : 'not') + ' lazy.'
   alias :introduce_self :to_s   

class CoffeeDrinkingStickFigure < StickFigure
   def have_coffee
      puts @name + ' has a cup of coffee.'
      pot = get_coffee_pot
      if pot.needs_refill?
         make_more_coffee unless @is_lazy

   # :TODO: the stickfigure should NOT be responsible for notifying it's observer ... better solution?
   # this part is not so pretty.
   def return_to_desk
      puts @name + ' returns to ' + (@sex == FEMALE ? 'her' : 'his') + ' desk.'
      get_coffee_pot.notify_observers(get_coffee_pot, self)
   def make_more_coffee
      puts @name + ' refills the coffee pot.'
      pot = get_coffee_pot
   def get_coffee_pot

class CoffeePot
   include Singleton
   include Observable
   attr_reader :cups_left
   CUPS_WHEN_FULL = 2.5   
   def initialize
      @cups_left = 0
   def pour_coffee
      @cups_left -= 1
   def refill
      @cups_left = CUPS_WHEN_FULL
   def is_empty?
      @cups_left == 0
   def needs_refill?
      @cups_left < 1

class BigBrother
   def update(pot, who_got_coffee)
      if pot.needs_refill?
         puts 'The coffee pot needs a refill and ' + + " didn't refill it!\n"
         cup_string = pot.cups_left == 1 ? 'is 1 cup' : 'are ' + pot.cups_left.to_s + ' cups'
         puts "There #{cup_string} of coffee left."

stick_figures = [ => 'Miss Piggy', :sex => StickFigure::FEMALE), => 'Bert'), => 'Kermit', :is_lazy => true), => 'Ernie', :is_lazy => true)

stick_figures.each do |stick_figure|

Posted in , ,  | Tags , ,

Older posts: 1 2