Apache ACE building instructions

Hi there!

If you're reading this, you're either one of the RSS-subscribers, or I have just pointed you, as a visitor of LJCUC02, to this location.

Building an ACE target

Snapshot dependencies

First, we need two snapshot dependencies. Check out http://svn.apache.org/repos/asf /felix/trunk/dependencymanager and http://svn.apache.org/repos/asf /felix/trunk/deploymentadmin to some convenient location. From these locations, call mvn -DskipTests=true clean install

Building a target

Check out http://svn.apache.org/repos/asf/incubator/ace/trunk/ to another convenient location and run mvn -DskipTests=true install (Yes, this does take a long time.)

Setting up the build target

You now have a target waiting for you in ace-target-devgateway/target/ace-target-devgateway-0.8.0-SNAPSHOT-distribution/ace-gateway In the conf directory, edit

  • org.apache.ace.discovery.property.cfg to point to my machine that works as a server; at time of writing, my IP is
  • org.apache.ace.identification.property.cfg to give you some unique name. Don't use spaces or punctuation for this, and clashes gives an undefined state. Remember, this is usually a managed environment.

All set! You can now run your target with sh run.sh

"De kracht van Scrum"

"De kracht van Scrum" (bol) is a short story, written in Dutch, telling the tale of a CTO with all the usual suspects of problems in his organization, and his journey into Scrum.

The book poses and answers all the usual questions and concerns one might have when adopting Scrum, and shows an example of a possible method of transition. I believe the authors have deliberately erred on the side of simplicity, flattening some of the mechanisms, and posing certain solutions as the best (or maybe only?) way. This is very much in line with the goal of the story, which is mainly to "inspire".

I don't believe this book is the best possible story to inspire Scrum adoption from 'up above', but it is by far the best I have seen so far. It being in Dutch is an advantage for my projects, but I think an English edition would be a welcome addition; I haven't found anything like it in another language.

In short, "De kracht van Scrum" is a welcome addition to my gift chest when starting new projects, as I already had "Scrum & XP from the Trenches" (pdf, amazon, bol) for the new Scrum Masters.

Demoing Ruby on Rails

Insipred by the 15 minute weblog, I created a demo of Ruby on Rails for my colleagues.

The material for this demo is listed below. The presentation is used to explain concepts, and to illustrate elements of the case we use. The speaker notes contain instructions on the order in which to do stuff on the command line, in the text editor, in the browser, and when to point out something using keynote.

When typing like a maniac, you should be able to get through this in about an hour. Have fun!

Sway by Rom Brafman - recommended reading

Sway book cover

Sway (amazon, bol) is one of those books that feels 'done done': well-researched, written with a sharp clarity and factualness that rivals Malcolm Gladwell's, and a sense of imparting upon you the wisdom of ages.

Last year, at around the same time, I read Dan Ariely's Predictably Irrational (amazon, bol). Sway takes it one step further: being written by two brothers, one a pyschologist, and one an "organizational thinker" (I believe the book credits him as "economist"), it has a unique style, that leaps through years of research, picking the juiciest bits of scientific literature and, dare I call it, trivia, and distills it into an easy to swallow chunks of insight. Somehow, I can't stay away from food metaphors describing this book. Highly recommended!

Using Turnkey Linux Rails with Capistrano

The guys at TurnkeyLinux.org have, among other stuff, a very useful Rails VM. As useful as it is out of the box, I like to use together with Capistrano. To do so, it needs some minor tweaks.

Clean up the current app

Fire up the VM, and ssh to it. ssh root@ The application is in /var/www/railsapp; go there, and delete the contents of the directory. cd /var/www/railsapp; rm -rf *

Configure Apache

With that out of the way, we need to tell the embedded Apache that something has changed. In /etc/apache2/conf/railsapp.conf, replace the occurences of 'public' by 'current/public'. Then, restart apache by using apache2ctl restart

Install subversion

For some reason the Turnkey VM doesn't ship with subversion. Install that using apt-get update; apt-get install subversion

Connect to your subversion server once

When you're using svn+ssh as I am, you will want to connect to your subversion server once, for instance using something like svn info svn+ssh://angelo@ This gives ssh the chance to 'get to know' your server.

That's it!

There, with a few minor tweaks, you can start using an off-the-shelf VM for you Capistrano deployment. I personally use one of these to test my deployment scripts, and hence use it as a staging server.

Some time soon, I will (a) do a walkthrough of building an application that can readily be deployed onto this VM, and (b) show how you can use Capistrano to deploy to both a staging environment in one of these VM's, and to a 'real' production server.

Planning poker presentation

I added a presentation on Slideshare which I use to introduce the notion of 'planning poker'. It uses Doggy Planning to practice with the deck.Furthermore, it contains some CC licensed images from Flickr.

I use this presentation to show why relative estimates are important. For the doggy planning, I allow some discussion as to 'what on earth are we estimating here', and in the end end up with some metric to estimate. I only show the image of the dogs after the 'right questions' have been asked (e.g., "what kind of poodle is this?"). If you have any ideas to use this better, please let me know!

Fosdem 2010, day one

Crowd just before Fosdem 2010 openingJust before Fosdem 2010 opening

Fosdem is by far the geekiest conference, and the largest collection of geeks in a single place I have seen in a long time. Time for some highlights of day one!

By the way, if you're in the pictures above, and would rather not be, let me know.

  • Open source at large companies is a strange keynote; Brooke Davis didn't use any presentation material (probably decided for him by the equipment), but was still surprised by his slides as they appeared on his display. As for the contents, I'm... intrigued. The product he talked about, "Aerosource", is an internal project consisting of a Trac/SVN mashup at his institute, and not fully open source. Furthermore, I'd say calling Bugzilla a 'best of breed' issue tracker is a bit curious.
  • Evil on the Internet by Richard Clayton shows you the multitude of ways you can get ripped off on the internet, backed up by clear statistics and interesting (real-world!) examples. I brought home two things from this talk,

    1. Internet crime is, indeed, big business.
    2. If something looks too good to be true, it is.
  • Groovy feels an awful lot like Ruby; I have some thought on that and parallelization.
  • The coreboot talks really spoke to my own inner geek. I've seen the details of the hardware involved in booting up your machine, and was talked through the assembler code that handles flashing the BIOS. Good stuff.

Groovy - Ruby for the Java crowd, with free semantics!

Luca Foppiano demonstrating Groovy features at Fosdem 2010

Groovy looks a lot like Ruby, and its added semantics provide a free hook for parallelization.

Today at Fosdem, I attended a talk from Luca Foppiano on Groovy. I knew Groovy is a dynamic language, but I wasn't aware that it's this much like Ruby.

All valid Java code is also valid Groovy code, so it is easy to phase in Groovy in you project. You can just leave stuff out, and get the free benefit of language features like type inference and closures.

The latter is quite interesting. Say, you want to select a subset of a list in Java, you use something like

List result = new ArrayList();
for (MyObject o: someList) {
  if (o.hasRightProperties()) {

while in Groovy one might use

someList.select{ | o | o.hasRightProperties() }

Apart from being shorter, the Groovy form has better semantic properties: it guarantees we will be checking every element of the list, there is no way to break out of the iteration. Hence, we can freely parallelize this iteration, and move half of it over to another processor!

The means for this are already present in the language: make the iterating functions aware of their parallelizability, instead of changing the semantics of the for as a language construct. Now that's is a free benefit to me!

A Ruby introduction

For a company meeting, I prepared a 30-minute introduction to Ruby, showing the things that struck me as a Java programmer. Enjoy!

The Slideshare presentation above does not have the snazzy keynote effects; you can find those in the original keynote file. There's also a pdf version.

By the way, if you're interested, I learned Ruby using the online ruby tutorial at Linuxtopia.

Apache ACE visuals

I'm a committer on the Apache ACE project. For the talk I gave at Øredev, I prepared some screencasts in stead of giving a live demo (in the interest of time). If you're interested, have a look!

Øredev 2009

I went to Øredev 2009 both to visit the conference, and to deliver a talk on Apache ACE. I have written about my experience on the Luminis LSD blog.

You can find the slideset of the Dynamic Deployment talk on Slideshare.

Update 2010-05-08 And the video is up! Check it out at http://oredev.com/videos/dynamic-deployment-with-osgi.