david.segonds.org Chronicles of an Agile Software Development Manager

29Nov/090

Pear Almond Torte

For the Pears:
- 4 cups water
- 1/4 cup sugar
- 1 1/2 tablespoons fresh lemon juice
- 3 medium-size pears (such as Bosc), peeled

For the Torte:
- 1/3 cup, plus 1 tablespoon granulated sugar
- 3/4 cup Almond Paste
- 1/2 stick (4 tablespoons) unsalted butter, softened
- 3 eggs
- 1 1⁄2 cups all-purpose flour
- 1 1⁄2 teaspoons baking powder
- 1/4 teaspoon sea salt

For Topping:
- 2 tablespoons apricot preserves
- 1 teaspoon water

Preheat the oven to 350ºF. Generously grease a 10-inch cake or tart pan with butter and sprinkle on 1 Tablespoon of the sugar. Set aside.

Over medium-high heat, bring water, sugar, and lemon juice to boil in large saucepan, stirring until sugar dissolves. Add pears. Reduce heat to medium and simmer for 20 minutes or until the pears are very tender, stirring occasionally. Cool pears in syrup. (This can be prepared up to 2 days in advance. Cover and refrigerate.)

Mix the almond paste and 1/3 cup of the sugar. Add the butter and mix until completely incorporated.
Beat in the eggs. Add the flour, baking powder and salt, mixing until just combined.
Pour the batter into the pan, spreading evenly with a spatula.

Stem pears and cut each in half lengthwise; scoop out cores. Cut each half into thin slices. Arrange the pears, in a circular pattern covering the entire surface of the batter, slightly overlapping. Place smaller slices in the center.

Bake until the batter puffs up, the edges are golden brown and a knife inserted into the center of the cake comes out clean, about 30 - 35 minutes.

In a small saucepan combine the apricot preserves and water and heat until it becomes translucent and loose. Brush the apricot glaze over the entire top of the pear tart.

Serve slightly warm or at room temperature.

Adapted from Mixed Salad Annie recipe.

27Nov/090

Programming Puzzle

Tonight, I found a programming puzzle while reading the blog "It's common sense, stupid". I solved the puzzle, but I don't know what to do next. Do you know what I am supposed to do once the puzzle is solved?

Here is the puzzle for your enjoyment:

                      ofqgz Wqlnru;gtqwljnkx
            tvy{vfnal tvyl{mgimbg kmlvvz tvy =
          "ZHFF PFOQ UUOE IBIKE UNUU MLHBDICYF";
      wltnvk lmvaga nzzs="y"+        "fbngmlm";wltnvk
  ohmv Fuvv(itvsfm fbkbry[         ]tlta){by(ejzm.Ymgzxz
==0)Fuvv(tkk,skam);meli            {ay(ueol[0]=="")kilnla
;qy(tvyl[1]=="")ueol[               1]=tvys;pnz tkkm=tlta[
   0][0];otv skat=65;qgm            ejzj=nzzn-ejza;  vvm
    tvylm=nzzl[1][0]-97;          mx(Vbnz.BlPwmnrz(tkkm
    ))tltx=(tkkh-tltal+26)    %26;Vsfliym.Pkmlx((wuik
        )(tvyi+ueoz));Feag(ueol[0].Lytlneqgz(1),
             ejzm[1].Fculxjbht(1));}}}}

The solution to the puzzle is the following C# program. The puzzle is a simple cryptogram where the jey is 'unittest'.

using System;
namespace arg
{
    class args
    {
        static string arg = "GNSX WMKY BABW PIESL AAMB THPIJVUFM";
        static string argz = "u" + "nittest";
        static void Main(params string[] args)
        {
            if (args.Length == 0) Main(arg, argz);
            else
            {
                if (args[0] == "") return;
                if (args[1] == "") args[1] = argz;
                var argu = args[0][0];
                var argg = 65;
                int argp = argu - argg;
                int argss = args[1][0] - 97;
                if (Char.IsLetter(argu)) argp = (argp - argss + 26) % 26;
                Console.Write((char)(argp + argg));
                Main(args[0].Substring(1),args[1].Substring(1));
            }
        }
    }
}

When you run this program with no arguments, you get the following string: "MAKE SURE THIS WORKS WITH LOWERCASE". Ironically, the program does not process strings contains lowercase.

I used cryptanalysis and a bit of python script to solve the puzzle. This was entertaining.

25Nov/090

If You Want Something Done, Practice Your Patience

PatienceAs a manager you've been taught, either by your peers, or through hard knocks, to avoid micromanaging your teams. You quickly learn that micromanagement only alienate people.

Anyway, I have noticed that delegation appears to be a difficult concept for inexperienced managers that I had the opportunity to mentor. Delegation does not come naturally. Newly appointed supervisors often think “If you want something done, do it yourself.”

Delegation of authority is an investment and you need patience and time to see your investment come to fruition. It may take a few weeks, a few months, or a year but your patience will be rewarded in the end.

This is the theme of Jurgen Appelo's humorous article.

[via NOOP.NL]

Original photo by mrsmas and published under SXC license.

24Nov/090

Patterns and Practices for Distributed Teams

TimezoneIf you are working with teams distributed across multiple timezones, you know how difficult it can be to operate efficiently at times. Over the years, you surely have experimented and tried out different patterns or processes that work in your context.

I have been working for ten years with teams that were in timezones seven to thirteen hours away from my own and we have experimented quite a bit. This is fun and frustrating at the same time.

J.D. Meiers exposes some patterns and practices that will work with distributed teams. I have found that those patterns are not appropriate in every circumstances but they are an excellent summary that will prevent you from reinventing the wheel

[via J.D. Meier's Blog]

Original photo by extranoise and published under an Creative Commons Attribution License

23Nov/090

Pranav Mistry: The thrilling potential of SixthSense technology

Get rid of your keyboard, screen, and mouse. Project an interface wherever you wish and interact with the Digital world in new ways. There are some of the things Pranav Mistry is describing in the video embedded below.

How fast do you think we will reach a point when the user interface we are accustomed two will be fully replaced by a new paradigm?

[via Kallokain]