<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title>Head On</title>
  
  <link href="http://marcusahnve.org/blog" />
  <updated>2012-03-28T05:59:33-07:00</updated>
  <id>http://marcus.ahnve.net/</id>
  <author>
    <name>Marcus Ahnve</name>
    <email>marcus@ahnve.com</email>
  </author>
  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/HeadOn" /><feedburner:info uri="headon" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Problems With VirtualBox When Regenerating Box With Veewee</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/x1wbwot3tc8/problems-with-virtualbox-when-regenerating-box-with-veewee" />
    <updated>2012-03-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/03/28/problems-with-virtualbox-when-regenerating-box-with-veewee</id>
    <content type="html">&lt;p&gt;We&amp;rsquo;re experimenting using &lt;a href="https://github.com/jedi4ever/veewee-old"&gt;veewee&lt;/a&gt; to create our &lt;a href="http://vagrantup.com/"&gt;vagrant&lt;/a&gt; boxes.
However, when we tried to regenerate them, the disk was never attached and the
installation halted.&lt;/p&gt;

&lt;p&gt;We tried deleting the whole VM directory to no avail, the disk still was never
mounted. It was only after trying to mount it manually in the &lt;a href="https://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;
GUI that we saw that VirtualBox keeps a sort of registry of disks.&lt;/p&gt;

&lt;p&gt;To solve the problem &amp;ndash; open the Virtual Media Manager, remove the old disk and
restart the veewee install process.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/x1wbwot3tc8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/03/28/problems-with-virtualbox-when-regenerating-box-with-veewee</feedburner:origLink></entry>
  
  <entry>
    <title>Speaking at DevLin2012</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/HVUs4QUHhBo/speaking-at-devlin2012" />
    <updated>2012-03-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/03/08/speaking-at-devlin2012</id>
    <content type="html">&lt;p&gt;I will give my talk on &lt;a href="http://marcusahnve.org/agile_architecture_presentation"&gt;&amp;ldquo;Design for Replaceability &amp;ndash; Architecture For An Agile
Lifestyle&amp;rdquo;&lt;/a&gt; at &lt;a href="http://events.responsive.se/joomla/index.php?option=com_civicrm&amp;amp;task=civicrm/event/info&amp;amp;reset=1&amp;amp;id=19&amp;amp;Itemid=78"&gt;DevLin2012&lt;/a&gt; Thursday next week. I was quite happy how the
talk was received at JFokus, and will incorporate some of the great feedback I
got. This time I will only have 25 minutes though, so I will either speak very
fast or cut out some slides.&lt;/p&gt;

&lt;p&gt;I had a great time at DevLin last year and l reallly look forward to this
years conference.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/HVUs4QUHhBo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/03/08/speaking-at-devlin2012</feedburner:origLink></entry>
  
  <entry>
    <title>How To Fix Vagrant Up Hanging</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/VzK5NxOeG2E/how-to-fix-vagrant-up-hanging" />
    <updated>2012-01-21T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/01/21/how-to-fix-vagrant-up-hanging</id>
    <content type="html">&lt;p&gt;Following along the &lt;a href="http://pragprog.com/book/cbdepra/deploying-rails"&gt;Deploying Rails book&lt;/a&gt;, I stumbled immediately when
&lt;code&gt;vagrant up&lt;/code&gt; hung showing;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Waiting for VM to boot. This can take a few minutes.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;even though the server in fact had booted ok.&lt;/p&gt;

&lt;p&gt;I found a solution in the mailing list &lt;a href="https://groups.google.com/forum/#!topic/vagrant-up/zhm03DfNck4"&gt;from a Stefano Pallica&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;Boot in GUI mode:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vm&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;boot_mode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="ss"&gt;:gui&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Login to the server when booted.&lt;/p&gt;

&lt;p&gt;Edit /etc/rc.local and add the following before &lt;code&gt;exit 0&lt;/code&gt;:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="sh"&gt;/etc/init.d/networking restart
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Worked for me.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/VzK5NxOeG2E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/01/21/how-to-fix-vagrant-up-hanging</feedburner:origLink></entry>
  
  <entry>
    <title>Netcfg And USB Tethering</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/T9h_b7G8rAY/netcfg-and-usb-tethering" />
    <updated>2012-01-13T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/01/13/netcfg-and-usb-tethering</id>
    <content type="html">&lt;p&gt;In order to use &lt;a href="https://wiki.archlinux.org/index.php/Netcfg"&gt;netcfg&lt;/a&gt; for USB tethering, just configure it as a regular
ethernet connection. The following worked for me, remember to &lt;code&gt;modprobe
usbnet&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="sh"&gt;&lt;span class="nv"&gt;CONNECTION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ethernet&amp;#39;&lt;/span&gt;
&lt;span class="nv"&gt;DESCRIPTION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;A basic dhcp ethernet connection using iproute&amp;#39;&lt;/span&gt;
&lt;span class="nv"&gt;INTERFACE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;usb0&amp;#39;&lt;/span&gt;
&lt;span class="nv"&gt;IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;dhcp&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/T9h_b7G8rAY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/01/13/netcfg-and-usb-tethering</feedburner:origLink></entry>
  
  <entry>
    <title>Rooted Galaxy Note</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/VR6YAsmXbKU/rooted-galaxy-note" />
    <updated>2012-01-12T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/01/12/rooted-galaxy-note</id>
    <content type="html">&lt;p&gt;I got a new &lt;a href="http://www.samsung.com/global/microsite/galaxynote/note/index.html"&gt;Samsung Galaxy Note&lt;/a&gt; today and after some trial and error I managed
to root it.&lt;/p&gt;

&lt;p&gt;I basicallly followed the instructions &lt;a href="http://rootgalaxynote.com/galaxy-note-root/how-to-root-galaxy-note-gt-n7000method-1/"&gt;here&lt;/a&gt; with a few additions. I
changed the binary in the &lt;code&gt;runmelinux.sh&lt;/code&gt; to my system Android SDK &lt;code&gt;adb&lt;/code&gt;, I
added a udev rule for the phone:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="bash"&gt;&lt;span class="nv"&gt;SUBSYSTEM&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;,SYSFS&lt;span class="o"&gt;{&lt;/span&gt;idVendor&lt;span class="o"&gt;}==&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;04e8&amp;quot;&lt;/span&gt;,OWNER&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;mahnve&amp;quot;&lt;/span&gt;,MODE&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;0666&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;and finally I needed to run &lt;code&gt;sudo adb devices&lt;/code&gt; once before running
&lt;code&gt;runmelinux.sh&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Migrating from my old phone using &lt;a href="https://market.android.com/details?id=com.keramidas.TitaniumBackup"&gt;Titanium Backup&lt;/a&gt; now.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/VR6YAsmXbKU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/01/12/rooted-galaxy-note</feedburner:origLink></entry>
  
  <entry>
    <title>New Post Over At Valtech Labs</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/rigIC3giNfg/new-post-over-at-valtech-labs" />
    <updated>2012-01-11T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/01/11/new-post-over-at-valtech-labs</id>
    <content type="html">&lt;p&gt;I published a new blog post today over at &lt;a href="http://www.valtechlabs.se"&gt;Valtech Labs&lt;/a&gt; in Swedish about
the difference between the swedish words &amp;ldquo;agile&amp;rdquo; and &amp;ldquo;nimble&amp;rdquo; (lättrörlig). In
short, while they once meant the same thing, agile has lost a lot of its
meaning. Instead of trying to change things back, we should let agile mean
whatever people think it means, and use a more descriptive word, like nimble,
to describe the process we once called agile. Which of course means XP :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/rigIC3giNfg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/01/11/new-post-over-at-valtech-labs</feedburner:origLink></entry>
  
  <entry>
    <title>Skeleton For Responsive Design</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/akLD2C1wYeI/skeleton-for-responsive-design" />
    <updated>2012-01-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2012/01/10/skeleton-for-responsive-design</id>
    <content type="html">&lt;p&gt;I just managed to get this site to display properly in a mobile browser with
media queries, which means I am now among the cool &lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;responsive design&lt;/a&gt;
kids.&lt;/p&gt;

&lt;p&gt;If you, like me, use &lt;a href="http://www.getskeleton.com"&gt;Skeleton&lt;/a&gt;, it turns out that you shouldn&amp;rsquo;t forget
this line in your &lt;code&gt;head&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="css"&gt;&lt;span class="lineno"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;meta&lt;/span&gt; &lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class="nt"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;width=device-width, initial-scale=1, maximum-scale=1&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/akLD2C1wYeI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2012/01/10/skeleton-for-responsive-design</feedburner:origLink></entry>
  
  <entry>
    <title>Layers of Complexity at Smidig 2011</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/b2hFuKAuFnc/layers-of-complexity-at-smidig-2011" />
    <updated>2011-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2011/11/16/layers-of-complexity-at-smidig-2011</id>
    <content type="html">&lt;p&gt;I am in Oslo for &lt;a href="http://www.smidig2011.no"&gt;Smidig 2011&lt;/a&gt;, where I gave a talk titled &lt;a href="http://marcusahnve.org/layers_of_complexity"&gt;&amp;ldquo;Layers of
complexity&amp;rdquo;&lt;/a&gt;. It centers around medium number systems and Cynefin framework in
order to provide a model for software development and explain why we cannot
use time based measurements in order to improve the process. It also mentions
why time estimates are never correct.&lt;/p&gt;

&lt;p&gt;Later today at 18:00 I will give my talk on Taylorism and Mass Production at
&lt;a href="http://www.meetup.com/oslo-xp/events/40608062"&gt;Oslo XP Meetup&lt;/a&gt;. Hope to see you there.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/b2hFuKAuFnc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2011/11/16/layers-of-complexity-at-smidig-2011</feedburner:origLink></entry>
  
  <entry>
    <title>Mongoid and Embedded Relations</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/0h_isXpaKpo/mongoid-and-embedded-relations" />
    <updated>2011-04-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2011/04/11/mongoid-and-embedded-relations</id>
    <content type="html">&lt;p&gt;I am experimenting with Mongoid and embedded relations. I have a class A that
can have three named 1..1 relations to class B, and I found it quite
problematic to get the reverse relationship setup. After specifying class_name
and inverse_of everything started working as expected.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; 
&lt;span class="lineno"&gt; 3&lt;/span&gt;   &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;Mongoid&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Document&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt; 
&lt;span class="lineno"&gt; 5&lt;/span&gt;   &lt;span class="n"&gt;embedded_in&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;A&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt; 
&lt;span class="lineno"&gt; 7&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt; 
&lt;span class="lineno"&gt; 9&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt; 
&lt;span class="lineno"&gt;11&lt;/span&gt;   &lt;span class="kp"&gt;include&lt;/span&gt; &lt;span class="no"&gt;Mongoid&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Document&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt; 
&lt;span class="lineno"&gt;13&lt;/span&gt;   &lt;span class="n"&gt;embeds_one&lt;/span&gt; &lt;span class="ss"&gt;:something&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inverse_of&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt;   &lt;span class="n"&gt;embeds_one&lt;/span&gt; &lt;span class="ss"&gt;:completely&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inverse_of&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;
&lt;span class="lineno"&gt;15&lt;/span&gt;   &lt;span class="n"&gt;embeds_one&lt;/span&gt; &lt;span class="ss"&gt;:different&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inverse_of&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="ss"&gt;:a&lt;/span&gt;
&lt;span class="lineno"&gt;16&lt;/span&gt; 
&lt;span class="lineno"&gt;17&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/0h_isXpaKpo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2011/04/11/mongoid-and-embedded-relations</feedburner:origLink></entry>
  
  <entry>
    <title>Todo.txt and Zenity</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/I_UXn0-rDHc/todo.txt-and-zenity" />
    <updated>2011-04-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2011/04/09/todo.txt-and-zenity</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve switched &lt;a href="http://www.rememberthemilk.com"&gt;back&lt;/a&gt; and &lt;a href="http://culturedcode.com/things/"&gt;forth&lt;/a&gt; &lt;a href="http://orgmode.org/"&gt;a&lt;/a&gt; &lt;a href="http://www.hogbaysoftware.com/products/taskpaper"&gt;lot&lt;/a&gt; to try to find a todo list solution that works
for me. Gina Trapani&amp;rsquo;s &lt;a href="http://todotxt.com/"&gt;todo.txt&lt;/a&gt; is the latest one, and while not perfect I do find it useable.&lt;/p&gt;

&lt;p&gt;I have two zenity scripts mapped to keyboard shortcuts that allows me to quickly add and check off todo&amp;rsquo;s:&lt;/p&gt;

&lt;script src="https://gist.github.com/911438.js"&gt; &lt;/script&gt;




&lt;script src="https://gist.github.com/911441.js"&gt; &lt;/script&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/I_UXn0-rDHc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2011/04/09/todo.txt-and-zenity</feedburner:origLink></entry>
  
  <entry>
    <title>Speaking at DevLin 2011 with ShowOff</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/bd4t-wEu_cI/speaking-at-devlin-with-showoff" />
    <updated>2011-03-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2011/03/10/speaking-at-devlin-with-showoff</id>
    <content type="html">&lt;p&gt;I am in Linköping for &lt;a href="http://www.responsive.se/devlin"&gt;Devlin 2011&lt;/a&gt; where I will give a talk named &lt;a href="http://marcusahnve.org/git_presentation"&gt;&amp;ldquo;Git &amp;ndash;
Version Control You&amp;rsquo;ve Only Dreamt Of&amp;rdquo;&lt;/a&gt;. It is a one day conference
organized by my friends at &lt;a href="http://www.responsive.se"&gt;Responsive&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I did the slides for this talk in &lt;a href="https://github.com/schacon/showoff"&gt;ShowOff&lt;/a&gt;,  which allows me to write my
presentation in text and version it in Git. Firefox 4 supports SVG well enough
for me to use it for all my images. This allows me to just save and directly
use whatever I draw in &lt;a href="http://www.inkscape.org"&gt;Inkscape&lt;/a&gt;, no exports required.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/bd4t-wEu_cI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2011/03/10/speaking-at-devlin-with-showoff</feedburner:origLink></entry>
  
  <entry>
    <title>Notes From Smidig Open Space on Why Agile Isn't About Development Anymore</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9zaCx65umUg/smidig-open-space-why-agile-isnt-about-development-anymore" />
    <updated>2010-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2010/11/16/smidig-open-space-why-agile-isnt-about-development-anymore</id>
    <content type="html">&lt;p&gt;Today at &lt;a href="http://www.smidig2010.no"&gt;Smidig 2010&lt;/a&gt; I sponsored an Open Space session on the topic &amp;ldquo;How
and When did Agile System Development Stop Being About System Development&amp;rdquo;&lt;/p&gt;

&lt;p&gt;We had a very good discussion, and these are the notes we managed to gather,
in the order they were discussed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s Scrums fault&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s easier to sell with soft skills arguments&lt;/li&gt;
&lt;li&gt;Agile is trying to sell into other fields where the technical practices
don&amp;rsquo;t apply.&lt;/li&gt;
&lt;li&gt;Obsolete knowledge in management, old Cobol programmers not up to date with
todays technologies.&lt;/li&gt;
&lt;li&gt;As people speak more at conferences, the less they program.&lt;/li&gt;
&lt;li&gt;More attention to people who are good at talking, and devs normally aren&amp;rsquo;t.&lt;/li&gt;
&lt;li&gt;Using wrong metaphors, i.e. factory, to explain process to managers who do
not understand leads to wrong process.&lt;/li&gt;
&lt;li&gt;Recipient of system development does not understand the problem of why
engineering practices are important.&lt;/li&gt;
&lt;li&gt;Soft skills are easier to acquire.&lt;/li&gt;
&lt;li&gt;Average organizations have average employees. Does not want to take
responsibility, not that interested.&lt;/li&gt;
&lt;li&gt;Management who does not understand the process they are running.

&lt;ul&gt;
&lt;li&gt;Is this partly developers fault?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Thanks all who joined in!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9zaCx65umUg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2010/11/16/smidig-open-space-why-agile-isnt-about-development-anymore</feedburner:origLink></entry>
  
  <entry>
    <title>1996 revisited</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FNaiEKqXdxQ/1996-revisited" />
    <updated>2009-04-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/04/15/1996-revisited</id>
    <content type="html">&lt;p&gt;After receiveing what I believe was the third promotional email from my beloved mobile phone operator,
showing this not-so-useful information&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/mahnve/3444288873/" title="Screenshot of empty email by mahnve, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3550/3444288873_180f20fb3f.jpg" width="500" height="189" alt="Screenshot of empty email" style="float: none" /&gt;&lt;/a&gt;
&lt;/p&gt;


&lt;p&gt;I was curious to see what sort of HTML did not even render images in Safari.&lt;/p&gt;

&lt;p&gt;Behold:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="html"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Sista chansen: Specialpris på Telia Mobilt bredband&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;base&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;_blank&amp;amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;HTML&amp;gt;&amp;lt;HEAD&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;META&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;text/html;&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;iso-8859-1&amp;amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;META&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;MSHTML&lt;/span&gt; &lt;span class="na"&gt;6&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;00&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;5730&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="na"&gt;13&lt;/span&gt;&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;GENERATOR&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/HEAD&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;BODY&lt;/span&gt; &lt;span class="na"&gt;bgColor=&lt;/span&gt;&lt;span class="s"&gt;#818177&lt;/span&gt; &lt;span class="na"&gt;leftMargin=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;topMargin=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;marginheight=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;0&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;marginwidth=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;0&amp;amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TABLE&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;100%&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;cellSpacing=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;cellPadding=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;100%&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;bgColor=&lt;/span&gt;&lt;span class="s"&gt;#818177&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TD&lt;/span&gt; &lt;span class="na"&gt;vAlign=&lt;/span&gt;&lt;span class="s"&gt;top&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;middle&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;DIV&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;FONT-WEIGHT:&lt;/span&gt; &lt;span class="na"&gt;normal&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-SIZE:&lt;/span&gt; &lt;span class="na"&gt;10px&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;COLOR:&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;505050&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-FAMILY:&lt;/span&gt; &lt;span class="na"&gt;Verdana&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Arial&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Helvetica&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Sans-Serif&lt;/span&gt;&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Ser mailet konstigt ut? &lt;span class="nt"&gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;FONT-WEIGHT:&lt;/span&gt; &lt;span class="na"&gt;normal&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-SIZE:&lt;/span&gt; &lt;span class="na"&gt;10px&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;COLOR:&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;cf0566&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-FAMILY:&lt;/span&gt; &lt;span class="na"&gt;Verdana&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Arial&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Helvetica&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Sans-Serif&lt;/span&gt;&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;#&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Klicka här »&lt;span class="nt"&gt;&amp;lt;/A&amp;gt;&amp;lt;/DIV&amp;gt;&amp;lt;BR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TABLE&lt;/span&gt; &lt;span class="na"&gt;cellSpacing=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;cellPadding=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;590&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;center&lt;/span&gt; &lt;span class="na"&gt;bgColor=&lt;/span&gt;&lt;span class="s"&gt;#aaaaa4&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TD&lt;/span&gt; &lt;span class="na"&gt;vAlign=&lt;/span&gt;&lt;span class="s"&gt;top&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;middle&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://tr.anp.se/track?t=c&amp;amp;amp;mid=250386&amp;amp;amp;uid=124849854&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;http://track.adform.net/C/?bn=212313&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;IMG&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;Nu&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;ö&lt;/span&gt;&lt;span class="na"&gt;jer&lt;/span&gt; &lt;span class="na"&gt;vi&lt;/span&gt; &lt;span class="na"&gt;hastigheten&lt;/span&gt; &lt;span class="na"&gt;och&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="na"&gt;nker&lt;/span&gt; &lt;span class="na"&gt;priset&lt;/span&gt;&lt;span class="err"&gt;.&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://adata.attraction.se/Telia/buss14/09-Utskick_v15/images/erbj1.jpg&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/A&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;15&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TD&lt;/span&gt; &lt;span class="na"&gt;vAlign=&lt;/span&gt;&lt;span class="s"&gt;top&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;middle&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://tr.anp.se/track?t=c&amp;amp;amp;mid=250386&amp;amp;amp;uid=124849854&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;http://track.adform.net/C/?bn=212313&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;IMG&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;Nu&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;ö&lt;/span&gt;&lt;span class="na"&gt;jer&lt;/span&gt; &lt;span class="na"&gt;vi&lt;/span&gt; &lt;span class="na"&gt;hastigheten&lt;/span&gt; &lt;span class="na"&gt;och&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="na"&gt;nker&lt;/span&gt; &lt;span class="na"&gt;priset&lt;/span&gt;&lt;span class="err"&gt;.&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://adata.attraction.se/Telia/buss14/09-Utskick_v15/images/erbj2.jpg&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/A&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;16&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;17&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TD&lt;/span&gt; &lt;span class="na"&gt;vAlign=&lt;/span&gt;&lt;span class="s"&gt;top&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;middle&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://tr.anp.se/track?t=c&amp;amp;amp;mid=250386&amp;amp;amp;uid=124849854&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;http://track.adform.net/C/?bn=212313&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;IMG&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;Nu&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;ö&lt;/span&gt;&lt;span class="na"&gt;jer&lt;/span&gt; &lt;span class="na"&gt;vi&lt;/span&gt; &lt;span class="na"&gt;hastigheten&lt;/span&gt; &lt;span class="na"&gt;och&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="na"&gt;nker&lt;/span&gt; &lt;span class="na"&gt;priset&lt;/span&gt;&lt;span class="err"&gt;.&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://adata.attraction.se/Telia/buss14/09-Utskick_v15/images/erbj3.jpg&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/A&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;18&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;19&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;TD&lt;/span&gt; &lt;span class="na"&gt;vAlign=&lt;/span&gt;&lt;span class="s"&gt;top&lt;/span&gt; &lt;span class="na"&gt;align=&lt;/span&gt;&lt;span class="s"&gt;middle&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://tr.anp.se/track?t=c&amp;amp;amp;mid=250386&amp;amp;amp;uid=124849854&amp;amp;amp;&amp;amp;amp;&amp;amp;amp;http://track.adform.net/C/?bn=212313&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;IMG&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;Nu&lt;/span&gt; &lt;span class="na"&gt;h&lt;/span&gt;&lt;span class="err"&gt;ö&lt;/span&gt;&lt;span class="na"&gt;jer&lt;/span&gt; &lt;span class="na"&gt;vi&lt;/span&gt; &lt;span class="na"&gt;hastigheten&lt;/span&gt; &lt;span class="na"&gt;och&lt;/span&gt; &lt;span class="na"&gt;s&lt;/span&gt;&lt;span class="err"&gt;ä&lt;/span&gt;&lt;span class="na"&gt;nker&lt;/span&gt; &lt;span class="na"&gt;priset&lt;/span&gt;&lt;span class="err"&gt;.&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://adata.attraction.se/Telia/buss14/09-Utskick_v15/images/erbj4.jpg&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/A&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;BR&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;20&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;DIV&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;FONT-WEIGHT:&lt;/span&gt; &lt;span class="na"&gt;normal&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-SIZE:&lt;/span&gt; &lt;span class="na"&gt;10px&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;COLOR:&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;505050&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-FAMILY:&lt;/span&gt; &lt;span class="na"&gt;Verdana&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Arial&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Helvetica&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Sans-Serif&lt;/span&gt;&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Vill du inte få fler erbjudanden från Telia till denna epostadress, &lt;span class="nt"&gt;&amp;lt;A&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;FONT-WEIGHT:&lt;/span&gt; &lt;span class="na"&gt;normal&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-SIZE:&lt;/span&gt; &lt;span class="na"&gt;10px&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;COLOR:&lt;/span&gt; &lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="na"&gt;cf0566&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;FONT-FAMILY:&lt;/span&gt; &lt;span class="na"&gt;Verdana&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Arial&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Helvetica&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt; &lt;span class="na"&gt;Sans-Serif&lt;/span&gt;&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;&lt;span class="na"&gt;quot&lt;/span&gt;&lt;span class="err"&gt;;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://www.anp.se/oa/250386/4342584B72474751437243465143&amp;amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target=&lt;/span&gt;&lt;span class="s"&gt;_blank&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;klicka här »&lt;span class="nt"&gt;&amp;lt;/A&amp;gt;&amp;lt;/DIV&amp;gt;&amp;lt;/TD&amp;gt;&amp;lt;/TR&amp;gt;&amp;lt;/TABLE&amp;gt;&amp;lt;/BODY&amp;gt;&amp;lt;/HTML&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;21&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;border=&lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;1&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;1&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;quot;http://www.anp.se/Clicks.asp?sqid=250386&amp;amp;amp;sid=124849854&amp;amp;amp;pf_action=View&amp;amp;amp;pf_Link=&amp;amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Wow &amp;ndash; it is like a time machine to 1996. MSHTML did supposedly generate it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FNaiEKqXdxQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/04/15/1996-revisited</feedburner:origLink></entry>
  
  <entry>
    <title>ThoughWorks Free Seminars in Stockholm</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/TDogrbuzKbM/thoughworks-free-seminars-in-stockholm" />
    <updated>2009-04-07T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/04/07/thoughworks-free-seminars-in-stockholm</id>
    <content type="html">&lt;p&gt;ThoughtWorks will give two free seminars at &lt;a href="http://www.berns.se"&gt;Berns&lt;/a&gt; Tuesday April 21 2009.&lt;/p&gt;

&lt;p&gt;The morning one is given by me and will be on the business value of agile and
lean, and how it can be the competitive advantage in difficult times.&lt;/p&gt;

&lt;p&gt;In the afternoon my colleague Zack Exley will give a behind-the-scenes look at
the technological side of the Barack Obama campaign.&lt;/p&gt;

&lt;p&gt;Both of the talks will be kicked off by our chairman Roy Singham who will give
his view on why he believes Scandinavia has a great future in the software
development world.&lt;/p&gt;

&lt;p&gt;You are welcome to attend either one of these &amp;ndash; or both of course.&lt;/p&gt;

&lt;p&gt;For registration and more info please visit:
&lt;a href="http://connect.thoughtworks.com/stockholmEvent/"&gt;http://connect.thoughtworks.com/stockholmEvent/&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/TDogrbuzKbM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/04/07/thoughworks-free-seminars-in-stockholm</feedburner:origLink></entry>
  
  <entry>
    <title>Simple beats complicated</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/jOHv0L3zFpE/simple-beats-complicated" />
    <updated>2009-04-05T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/04/05/simple-beats-complicated</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.peterkrantz.com/"&gt;Peter Krantz&lt;/a&gt; sent &lt;a href="http://www.youtube.com/watch?v=YKBKevZbTv0"&gt;this clip from a Capoeira fight&lt;/a&gt; (rating: violent)
which I see as a really good analogy for XP&amp;rsquo;s YAGNI and the simplest thing that
could possibly work.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/jOHv0L3zFpE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/04/05/simple-beats-complicated</feedburner:origLink></entry>
  
  <entry>
    <title>ThoughtWorks Hosts A Track and Speaks At Scandinavian Developer Conference</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/D2R9pMAa7-U/thoughtworks-hosts-a-track-and-speaks-at-scandinavian-developer-conference" />
    <updated>2009-01-22T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/01/22/thoughtworks-hosts-a-track-and-speaks-at-scandinavian-developer-conference</id>
    <content type="html">&lt;p&gt;&lt;img src="http://marcus.ahnve.net/wp-content/uploads/2009/01/ishot-21.png" alt="ishot-21.png" /&gt;&lt;/p&gt;

&lt;p&gt;ThoughtWorks cohosting and speaking at the &lt;a href="http://www.scandevconf.se/conference/tracks/#emerging-technologies"&gt;Emerging Technologies track&lt;/a&gt; at
the &lt;a href="http://www.scandevconf.se"&gt;Scandinavian Developer Conference&lt;/a&gt;. &lt;a href="http://olabini.com"&gt;Ola&lt;/a&gt; will speak about JRuby
and I will give a presentation with a title stolen from XP: &amp;lsquo;The Simplest Thing
That Could Possibly Work&amp;rsquo;.&lt;/p&gt;

&lt;p&gt;It is a one day conference which I am really looking forward to &amp;ndash; Kent Beck
keynoting is reason enough to be there. See the full program &lt;a href="http://www.scandevconf.se/conference/detailed-program/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/D2R9pMAa7-U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/01/22/thoughtworks-hosts-a-track-and-speaks-at-scandinavian-developer-conference</feedburner:origLink></entry>
  
  <entry>
    <title>ThoughtWorks Sweden Gets A Roommate</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/93BRacofAfs/thoughtworks-sweden-gets-a-roommate" />
    <updated>2009-01-13T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/01/13/thoughtworks-sweden-gets-a-roommate</id>
    <content type="html">&lt;p&gt;ThoughtWorks Sweden will move in with our great friends at &lt;a href="http://agical.se"&gt;Agical&lt;/a&gt; at
the end of this month. Our new address will be&lt;/p&gt;

&lt;p&gt;ThoughtWorks Sweden&lt;br/&gt;
Västerlånggatan 79 2tr&lt;br/&gt;
111 29 Stockholm &lt;br/&gt;
Sweden&lt;/p&gt;

&lt;p&gt;Personally it will be the first time I have an office in Old Town &amp;ndash; cool.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/93BRacofAfs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/01/13/thoughtworks-sweden-gets-a-roommate</feedburner:origLink></entry>
  
  <entry>
    <title>Playing to win, culture style</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/rOJ0oICBY-0/playing-to-win-culture-style" />
    <updated>2009-01-12T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2009/01/12/playing-to-win-culture-style</id>
    <content type="html">&lt;p&gt;This Saturdays edition of &lt;a href="http://www.di.se"&gt;Dagens Industri&lt;/a&gt; had a really interesting column
by Jan Åman, former curator of Färgfabriken. He writes about how you can either
move forward or secure your back, and how the world is run by people watching
their backs and making sure that decisions can never be questioned.&lt;/p&gt;

&lt;p&gt;It is very close my favorite XP slogan &amp;ldquo;playing to win&amp;rdquo; and what I talk about
in my presentation on Agile Documentation. A good read, but unfortunately only
in the paper edition.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/rOJ0oICBY-0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2009/01/12/playing-to-win-culture-style</feedburner:origLink></entry>
  
  <entry>
    <title>Quoted in Computer Sweden</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/b2X3rYHk400/quoted-in-computer-sweden" />
    <updated>2008-12-17T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/12/17/quoted-in-computer-sweden</id>
    <content type="html">&lt;p&gt;I am quoted in todays issue of Computer Sweden &lt;a href="http://computersweden.idg.se/2.2683/1.201407/nu-ska-det-ga-att-forsta-program"&gt;on BDD&lt;/a&gt;. It is a well
written article even if I do not agree with Emil Gustafssons quote in the end
where he states that BDD doesn&amp;rsquo;t bring that much new things to the table. I
think that people looking at BDD for the first time might perceive it as such,
but I must say that there is a clear difference in both approach and outcome.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/b2X3rYHk400" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/12/17/quoted-in-computer-sweden</feedburner:origLink></entry>
  
  <entry>
    <title>Agile Sweden Christmas Party</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/5n3FU0hsskI/agile-sweden-christmas-party" />
    <updated>2008-12-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/12/09/agile-sweden-christmas-party</id>
    <content type="html">&lt;p&gt;The Agile Sweden annual christmas party is on Thursday at the &lt;a href="http://www.agical.se"&gt;Agical&lt;/a&gt;
office. The evening will kick off with a few lightning talks, of which I am
doing one. My talk is titled &amp;ldquo;The Simplest Thing That Could Possibly Work&amp;rdquo; and
will discuss how XP&amp;rsquo;s value of simplicity has more or less been forgotten as
agile has gone mainstream.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/5n3FU0hsskI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/12/09/agile-sweden-christmas-party</feedburner:origLink></entry>
  
  <entry>
    <title>Symptoms vs. Causes</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/v8hmcJdTcM0/symptoms-vs-causes" />
    <updated>2008-12-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/12/08/symptoms-vs-causes</id>
    <content type="html">&lt;p&gt;There latest storm in the teacup that is Swedish IT is caused by the national
news agency &lt;a href="http://www.tt.se"&gt;TT&lt;/a&gt; decision to move from OpenOffice to Microsoft Office,
mainly because &lt;a href="http://computersweden1.idg.se/2.2683/1.198310/tt-kastar-ut-openoffice--valjer-microsoft"&gt;&amp;lsquo;I (head of development) do not want to sit here wondering how I will connect OpenOffice with a hundred eleven other systems&amp;rsquo;&lt;/a&gt;. I believe
&amp;lsquo;a hundred eleven&amp;rsquo; is a long form for &amp;lsquo;a lot&amp;rsquo;.&lt;/p&gt;

&lt;p&gt;This has in almost deterministic fashion caused people from both sides of the
OSS-MS divide to wave their party flags. But no one asks the to me more obvious
question &amp;ndash; why do you connect your office suite with all those systems, and why
is that a problem if you do not have Microsoft Office? Seems more like an
architecture question if you ask me.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/v8hmcJdTcM0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/12/08/symptoms-vs-causes</feedburner:origLink></entry>
  
  <entry>
    <title>Smidig Videos Are Up</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dCshB3WORwI/smidig-videos-are-up" />
    <updated>2008-12-02T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/12/02/smidig-videos-are-up</id>
    <content type="html">&lt;p&gt;The videos from &lt;a href="http://smidig.no/smidig2008"&gt;Smidig 2008&lt;/a&gt; are &lt;a href="http://smidig2008.confreaks.com/"&gt;up&lt;/a&gt;. This is mine (in
Swedish):&lt;/p&gt;

&lt;p&gt;&lt;embed src='http://smidig2008.confreaks.com/player.swf' height='210' width='500' allowscriptaccess='always' allowfullscreen='true' flashvars='image=images%2F10-oct-2008-09-24-b-se-helheten-utanfor-projektet-marcus-ahnve-preview.jpg&amp;file=http%3A%2F%2Fsmidig2008.confreaks.com%2Fvideos%2F10-oct-2008-09-24-b-se-helheten-utanfor-projektet-marcus-ahnve-small.mp4&amp;plugins=viral-1'/&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dCshB3WORwI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/12/02/smidig-videos-are-up</feedburner:origLink></entry>
  
  <entry>
    <title>Icebears Out, Polar Bears In </title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/KLMNBCiC6F0/icebears-out-polar-bears-in" />
    <updated>2008-11-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/11/30/icebears-out-polar-bears-in</id>
    <content type="html">&lt;p&gt;&lt;a href="http://aslakhellesoy.com/"&gt;Aslak&lt;/a&gt; reminded me that there is no
such thing as an icebear. Tag line changed.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/KLMNBCiC6F0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/11/30/icebears-out-polar-bears-in</feedburner:origLink></entry>
  
  <entry>
    <title>Words don't come easy: MoSCoW and BDD</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/iEi86stq8yo/words-dont-come-easy-moscow-and-bdd" />
    <updated>2008-11-26T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/11/26/words-dont-come-easy-moscow-and-bdd</id>
    <content type="html">&lt;p&gt;I had a interesting conversation with &lt;a href="http://www.two-sdg.demon.co.uk/curbralan/"&gt;Kevlin Henney&lt;/a&gt; at
&lt;a href="http://www.oredev.org"&gt;Øredev&lt;/a&gt; regarding the word &amp;lsquo;should&amp;rsquo; and its usage in &lt;a href="http://dannorth.net/introducing-bdd/"&gt;Behaviour Driven
Development&lt;/a&gt;. Kevlin does not like &amp;lsquo;should&amp;rsquo; as he feels it is too vague in
many circumstances.  And I have to agree with Kevlin.&lt;/p&gt;

&lt;p&gt;Sometime you are speccing something like &amp;ldquo;the title of the index page should be
&amp;lsquo;blabbr.com &amp;ndash; the worlds largest social network&amp;rsquo;&amp;rdquo;, which might be something
that we will change in the future. &amp;lsquo;Should&amp;rsquo; is a good choice of words here.&lt;/p&gt;

&lt;p&gt;Another time the spec says &amp;lsquo;when the nuclear reactor overheats it should shut
down.&amp;rsquo;. &amp;lsquo;Should&amp;rsquo; is &lt;em&gt;not&lt;/em&gt; a good choice of word here. I&amp;rsquo;d much rather say that
the nuclear reactor &lt;em&gt;must&lt;/em&gt; shutdown, as to really say that we have no other
option.&lt;/p&gt;

&lt;p&gt;So, let&amp;rsquo;s use both. Use &amp;lsquo;should&amp;rsquo; when describing a something might change, and
&amp;lsquo;must&amp;rsquo; when describing something carved in rock.&lt;/p&gt;

&lt;p&gt;This might also help using the specs as an executable requirement. At the
moment all specs are valued the same, every fail breaks the build. Perhaps
there is a value in saying that certain specs are really important and should
never fail. We could have different colors for different types of failure.&lt;/p&gt;

&lt;p&gt;Perhaps there is a use for the rest of &lt;a href="http://en.wikipedia.org/wiki/MoSCoW_Method"&gt;MoSCoW&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Thoughts?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/iEi86stq8yo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/11/26/words-dont-come-easy-moscow-and-bdd</feedburner:origLink></entry>
  
  <entry>
    <title>Going to Øredev</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/IGrJvsVGslg/going-to-%25c3%25b8redev" />
    <updated>2008-11-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/11/15/going-to-%c3%b8redev</id>
    <content type="html">&lt;p&gt;My Friday morning inbox contained an email from &lt;a href="http://niclasnilsson.se" title="Niclas Blog"&gt;Niclas Nilsson&lt;/a&gt; asking me
to replace him doing interviews for InfoQ at Øredev. It took some planning
calls to my wife and booking of babysitting, but now I am good to go.&lt;/p&gt;

&lt;p&gt;I will be interviewing these six gentlemen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jon Bostrom&lt;/li&gt;
&lt;li&gt;Walter Bright&lt;/li&gt;
&lt;li&gt;James Bach&lt;/li&gt;
&lt;li&gt;Roger Sullivan&lt;/li&gt;
&lt;li&gt;Luke Hohmann&lt;/li&gt;
&lt;li&gt;BJ Hargrave&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Let me know if you have any question you would like me to ask.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/IGrJvsVGslg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/11/15/going-to-%25c3%25b8redev</feedburner:origLink></entry>
  
  <entry>
    <title>Speaking at Smidig 2008</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/YaOIfYJUI50/speaking-at-smidig-2008" />
    <updated>2008-09-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/09/08/speaking-at-smidig-2008</id>
    <content type="html">&lt;p&gt;I am happy to say that I will give one of the lightning talks at &lt;a href="http://www.smidig2008.no"&gt;Smidig
2008&lt;/a&gt;. My presentation is about optimizing the whole product chain, from
concept to cash, and stop focusing on projects as they fragment the
organization and cause local optimization.&lt;/p&gt;

&lt;p&gt;Last years conference was great and inspired us here in Stockholm to do our own
version in the form of &lt;a href="http://agilasverige.se"&gt;Agila Sverige&lt;/a&gt;. I am really looking forward to going
back to Oslo.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/YaOIfYJUI50" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/09/08/speaking-at-smidig-2008</feedburner:origLink></entry>
  
  <entry>
    <title>Going to JAOO</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/o66Wo0CI79s/going-to-jaoo" />
    <updated>2008-09-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/09/08/going-to-jaoo</id>
    <content type="html">&lt;p&gt;I will be at &lt;a href="http://jaoo.dk"&gt;JAOO&lt;/a&gt; this year, telling everyone who is interested all about
ThoughtWorks Sweden. Last time I went to JAOO was 2001, so I am really looking
forward to it.&lt;/p&gt;

&lt;p&gt;I will probably spend quite some time in the ThoughtWorks booth, so come by and
say hi. Or beat me in the &lt;a href="http://jaoo.dk/it-run/"&gt;IT-run&lt;/a&gt; which I have signed up for.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/o66Wo0CI79s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/09/08/going-to-jaoo</feedburner:origLink></entry>
  
  <entry>
    <title>Presentation About Test Driven Development</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/N4UtTxH9tHQ/presentation-about-test-driven-development" />
    <updated>2008-09-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/09/02/presentation-about-test-driven-development</id>
    <content type="html">&lt;p&gt;I will do &lt;a href="http://netakademin.se/p%C3%A5-g%C3%A5ng/akttiviteter/arbeta-framg%C3%A5ngsrikt-med-testdriven-utveckling.aspx"&gt;a presentation on &amp;lsquo;Successfully Using Test Driven Development&amp;rsquo;&lt;/a&gt;
at &lt;a href="http://www.netakademin.se"&gt;.NetAkademin&lt;/a&gt; Tuesday September 16th. This talk will cover stuff like
BDD, outside-in but also how the test-driven approach is used on the project as
a whole.&lt;/p&gt;

&lt;p&gt;To match my .Net experience, we will touch on frameworks and tools for .Net,
but focus on the ideas and philosophies behind them, making it a very platform
independent presentation.&lt;/p&gt;

&lt;p&gt;The event is first and foremost for clients and members of .NetAkademin, but
any seat not taken by them is available to the public.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/N4UtTxH9tHQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/09/02/presentation-about-test-driven-development</feedburner:origLink></entry>
  
  <entry>
    <title>Oops</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/A6KHrggsCFE/oops" />
    <updated>2008-08-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/08/28/oops</id>
    <content type="html">&lt;p&gt;No more tweet summaries here. Thanks Ben.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/A6KHrggsCFE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/08/28/oops</feedburner:origLink></entry>
  
  <entry>
    <title>ThoughtWorks Sweden Is Open For Business</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dQZqMJWZsYk/thoughtworks-sweden-is-open-for-business" />
    <updated>2008-08-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/08/25/thoughtworks-sweden-is-open-for-business</id>
    <content type="html">&lt;p&gt;ThoughtWorks Sweden has come a long way since I last posted anything about it.
We have ourselves a nice office downtown, with proper phone numbers and pretty
business cards.&lt;/p&gt;

&lt;p&gt;This means that we are available for consulting gigs, primarily in Stockholm,
but we can serve basically all of Scandinavia. With ThoughtWorks global
organization behind us, we offer software delivery in Java, Ruby and .Net as
well as agile coaching and consulting. We are also keen to show off our
products &lt;a href="http://studios.thoughtworks.com/mingle-project-intelligence"&gt;Mingle&lt;/a&gt;, &lt;a href="http://studios.thoughtworks.com/cruise-continuous-integration"&gt;Cruise&lt;/a&gt; and &lt;a href="http://studios.thoughtworks.com/twist"&gt;Twist&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Call us, email us, come by the office for a coffee or lunch. We look forward to
hearing from you.&lt;/p&gt;

&lt;p&gt;ThoughtWorks&lt;br/&gt;
Mäster Samuelsgatan 60, 8 tr.&lt;br/&gt;
111 21 Stockholm&lt;/p&gt;

&lt;p&gt;Office: +46 8 5500 2100&lt;br/&gt;
Skype me: mahnve&lt;br/&gt;
email me: mahnve at thoughtworks dot com&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dQZqMJWZsYk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/08/25/thoughtworks-sweden-is-open-for-business</feedburner:origLink></entry>
  
  <entry>
    <title>Separating the View And the API</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/xXWrMnDrBt4/separating-the-view-and-the-api" />
    <updated>2008-08-14T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/08/14/separating-the-view-and-the-api</id>
    <content type="html">&lt;p&gt;&lt;a href="http://blog.labnotes.org/2008/08/12/hahlo-and-what-i-learned-about-usability/"&gt;Assaf&lt;/a&gt;
writes about using Hahlo and Fluid, and I find this paragraph especially
interesting:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;A great Web app uses persistent, readable URLs for every interesting
resource. Twitter does that, so it’s pretty easy to share links to people,
statuses and other points of interest. Hahlo hides the entire user interface
behind a single URL, but it works extremely well because Hahlo is just a front
end, Twitter is the system of record. If I need to link, I wouldn’t be using
Hahlo links anyway (although link discovery is missing in the current version).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Perhaps this is a good way to both have the cake and eat it?  Have a restful,
share nothing API, which is accessed by a separate GUI app built in say Seaside
that can use state as much as it wants.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/xXWrMnDrBt4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/08/14/separating-the-view-and-the-api</feedburner:origLink></entry>
  
  <entry>
    <title>All Your Technology Are Belong To You</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/LcGHuMauAmI/all-your-technology-are-belong-to-you" />
    <updated>2008-07-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/07/03/all-your-technology-are-belong-to-you</id>
    <content type="html">&lt;p&gt;Jonathan Schwartz writes about &lt;a href="http://blogs.sun.com/jonathan/entry/solaris_on_wall_street_faster"&gt;finance as a technology
business&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I remember a dinner I had a while back with the CEO of a global financial
services firm. As one of his first acts as CEO, he&amp;rsquo;d cancelled an enormous
outsourcing contract, and I&amp;rsquo;d asked him why &amp;ndash; his response has stuck with me.
&amp;lsquo;Banking is a technology business. Pure and simple. I can&amp;rsquo;t win if I don&amp;rsquo;t have
my own team.&amp;rsquo;&lt;/p&gt;

&lt;p&gt;Independent of his views on outsourcing, I&amp;rsquo;ve heard the same point made by
many (but not all) financial services executives &amp;ndash; banking (like big swaths of
telecommunications, media and retailing) has become a technology business,
where every ounce of performance and differentiation matters. Even, and
especially, in the midst of market turmoil.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Which is why you should use consultants that can help you improve your game,
not play the game for you.&lt;/p&gt;

&lt;p&gt;(Via
&lt;a href="http://blogs.sun.com/jonathan/"&gt;Jonathan Schwartz&amp;rsquo;s Weblog&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/LcGHuMauAmI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/07/03/all-your-technology-are-belong-to-you</feedburner:origLink></entry>
  
  <entry>
    <title>Not everybody is into Euro 2008</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/J_8QXg5Xs8A/not-everybody-is-into-euro-2008" />
    <updated>2008-06-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/06/29/not-everybody-is-into-euro-2008</id>
    <content type="html">&lt;p&gt;Not everybody was following the Euro 2008 final:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/91008712@N00/2621761635" title="View 'Peter is not that interested in football I guess' on Flickr.com"&gt;&lt;img src="http://farm4.static.flickr.com/3085/2621761635_8c19255bdb.jpg" alt="Peter is not that interested in football I guess" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congrats to Spain for a well deserved win anyway. I&amp;rsquo;ll tell Peter
about it over lunch tomorrow.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/J_8QXg5Xs8A" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/06/29/not-everybody-is-into-euro-2008</feedburner:origLink></entry>
  
  <entry>
    <title>It's been a while</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FU7XO8BqmUY/its-been-a-while" />
    <updated>2008-06-26T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/06/26/its-been-a-while</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/2612912320/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3282/2612912320_d23cf84cfc_o_d.jpg" alt="image" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Projektplatsen.se reminds me that it has been more than 8 years, or 2932 days
to be exact, since I logged in the last time. So I agree with them when they
say that I lot has happened since then :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FU7XO8BqmUY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/06/26/its-been-a-while</feedburner:origLink></entry>
  
  <entry>
    <title>Get Back At Our Politicians</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Cdvbmtzn7Nk/get-back-at-our-politicians" />
    <updated>2008-06-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/06/25/get-back-at-our-politicians</id>
    <content type="html">&lt;p&gt;&lt;a href="http://tjuvtittat.se/avlyssnat"&gt;&lt;img src="http://img254.imageshack.us/img254/5268/svunclehansmm8.th.jpg" alt="image" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is my kind of modern grassroots politics: Use the Internet which they want
to control to do to them as they do to us.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Cdvbmtzn7Nk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/06/25/get-back-at-our-politicians</feedburner:origLink></entry>
  
  <entry>
    <title>A Few Tips For Giving A Lecture On Lean</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/a37EiaRIC7w/a-few-tips-for-giving-a-presentation-on-lean" />
    <updated>2008-06-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/06/16/a-few-tips-for-giving-a-presentation-on-lean</id>
    <content type="html">&lt;p&gt;So, you are about to give a lecture on lean software development? Here are a few tips:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do not say that the agile movement came out of the dot-com era. Mentioning
the Smalltalk community at least once plus.&lt;/li&gt;
&lt;li&gt;If you name the language that first introduced the notion of object
orientation, &lt;a href="http://en.wikipedia.org/wiki/Simula" title="Simula -
Wikipedia, the free encyclopedia"&gt;Simula 67&lt;/a&gt; good choice.&lt;/li&gt;
&lt;li&gt;Do not say that Winston Royce advocated Waterfall. He
&lt;a href="http://en.wikipedia.org/wiki/Waterfall_model" title="Waterfall model -
Wikipedia, the free encyclopedia"&gt;didn&amp;rsquo;t&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Do not claim that all US Government work in the 60&amp;rsquo;s and 70&amp;rsquo;s was done in a
waterfall fashion. &lt;a href="http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf"&gt;Nasa&lt;/a&gt;
ran iterative projects in the 1960&amp;rsquo;s.&lt;/li&gt;
&lt;li&gt;Understand that most Toyota practices that has been adapted by the software
development community are taken from Toyota Product Development System, not
Toyota Production System.&lt;/li&gt;
&lt;li&gt;If you still intend to do 1-5, do not start the presentation by saying that
you are going to correct some misunderstandings about agile.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Good luck.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/a37EiaRIC7w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/06/16/a-few-tips-for-giving-a-presentation-on-lean</feedburner:origLink></entry>
  
  <entry>
    <title>Monday Evening</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/MwLAPKqPCcU/monday-evening" />
    <updated>2008-06-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/06/09/monday-evening</id>
    <content type="html">&lt;p&gt;Football on BBC&amp;rsquo;s excellent live streaming service, Stevenote on IRC. Twitter
is very much down as expected.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/MwLAPKqPCcU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/06/09/monday-evening</feedburner:origLink></entry>
  
  <entry>
    <title>Jonathan Ive on Understanding Customers</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/O4t6LQfIuAk/jonathan-ive-on-understanding-customers" />
    <updated>2008-05-23T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/23/jonathan-ive-on-understanding-customers</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.independent.co.uk/news/media/comment/claire-beale/claire-beale-on-advertising-830554.html"&gt;Jonathan Ive on understanding customers&lt;/a&gt;:
&amp;ldquo;&amp;lsquo;We don&amp;rsquo;t have to take this great intuitive leap to understand the mythical
concerns of our users, because we are the users.&amp;rsquo;&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That sure helps.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/O4t6LQfIuAk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/23/jonathan-ive-on-understanding-customers</feedburner:origLink></entry>
  
  <entry>
    <title>WPS Makes the Best URL's</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/moXRp4Vzpns/wps-makes-the-best-urls" />
    <updated>2008-05-22T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/22/wps-makes-the-best-urls</id>
    <content type="html">&lt;p&gt;You can count on Websphere Portal Server to create the longest URL&amp;rsquo;s ever known to man:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.hb.se/wps/portal/!ut/p/c1/hc3LCsIwEIXhR5rJhViXiW2TQC8UaazdlCxEIrYVlD6_Ke4E68zy4-dAD_Env4Srf4V58nfooBdDVpp2r4hEzJodUqa1qwqbllpEP4uhqmmbc0tIIjKCVBiuCmdRp-xPfVr3tvvV8cdJ_PjGwpYL_d3X0uXRE3lgjWSoCFRmHi9wfC7wGDsM9sbf3kPaxA!!/dl2/d1/L2dJQSEvUUt3QS9ZQnB3LzZfRU1IVTlCMUEwMEVRNzAyM0dHVk5MSUQ2RzA!/"&gt;http://www.hb.se/wps/portal/!ut/p/c1/hY3RCoIwGEafKP5myy7nDm3gU4kXOaN7CJikBoUPn-ToLvs-y4PhwM9xE9-CTf_CvPk79BBzwdZ6faQEYG1cAVSloojawTDjER-4YOtaVskhpCUS4KU6yQrnUGVsz2ee1t-yvHHxP44d8CymYfC0o5W5q8UnyTc4Vg9Txe4fRc4DF2GMxOvAEeRL3J/dl2/d1/L2dPQSEvUU93Q2dBISEvWUJweGx4dHcvNl9FTUhVOUIxQTBPQVZGMDIzOEFDM1FBMzgxMS82X0VNSFU5QjFBME9BVkYwMjM4QUMzUUEzOEgzLzZfRU1IVTlCMUEwT0FWRjAyMzhBQzNRQTM4SDQ!/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try sending that via Twitter.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/moXRp4Vzpns" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/22/wps-makes-the-best-urls</feedburner:origLink></entry>
  
  <entry>
    <title>Tools, again</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/uKaYofe43GU/tools-again" />
    <updated>2008-05-21T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/21/tools-again</id>
    <content type="html">&lt;p&gt;Computer Swedens developer columnist Tobias FjÃ¤lling the other day answered
the question &amp;ldquo;What should a good development environment include?&amp;rdquo;.
(&lt;a href="http://computersweden.idg.se/2.2683/1.161900"&gt;Måsten i en bra utvecklingsmiljö &amp;ndash; Computer Sweden&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Tobias list:&lt;/p&gt;

&lt;blockquote&gt;&lt;ol&gt;
&lt;li&gt;Auto-complete&lt;/li&gt;
&lt;li&gt;Refactoring&lt;/li&gt;
&lt;li&gt;Navigationsupport&lt;/li&gt;
&lt;li&gt;Extendability&lt;/li&gt;
&lt;li&gt;Speed&lt;/li&gt;
&lt;li&gt;Debugger&lt;/li&gt;
&lt;li&gt;Code templates&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;I find this to be spot on &lt;a href="(http://ola-bini.blogspot.com/2008/05/new-hope-polyglotism.html"&gt;what Ola wrote about&lt;/a&gt;) the
other day which I already quoted:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;It&amp;rsquo;s interesting, many Java programmers talk so much about tools, but they
never seem to think about their language as a tool.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Tobias seems to be a good guy, I am giving him the benefit of the doubt and
assume that he forgot.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/uKaYofe43GU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/21/tools-again</feedburner:origLink></entry>
  
  <entry>
    <title>Three Tickets To Agila Sverige 2008 Available</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/vngwqdLRHb4/three-tickets-to-agila-sverige-2008-available" />
    <updated>2008-05-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/16/three-tickets-to-agila-sverige-2008-available</id>
    <content type="html">&lt;p&gt;Another thing: &lt;a href="http://www.thoughtworks.com"&gt;ThoughtWorks&lt;/a&gt; is sponsoring &lt;a href="http://agilasverige.se/2008/"&gt;Agila
Sverige 2008&lt;/a&gt;, and we have three tickets to give
away. Send me an email or add a comment to this post if you want one.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/vngwqdLRHb4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/16/three-tickets-to-agila-sverige-2008-available</feedburner:origLink></entry>
  
  <entry>
    <title>Joining ThoughtWorks, Starting Office in Stockholm</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/tab5EPsidb8/joining-thoughtworks-starting-office-in-stockholm" />
    <updated>2008-05-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/16/joining-thoughtworks-starting-office-in-stockholm</id>
    <content type="html">&lt;p&gt;I am thrilled and honored to say that I will be joining
&lt;a href="http://www.thoughtworks.com"&gt;ThoughtWorks&lt;/a&gt; starting June. Stockholm is the
next pin on the ThoughtWorks world map and my job will be heading the
operations locally.&lt;/p&gt;

&lt;p&gt;The Stockholm office will initially be manned by me and homeward bound
&lt;a href="http://ola-bini.blogspot.com"&gt;Ola&lt;/a&gt;, but we plan to find and attract some of
the great talent available here.&lt;/p&gt;

&lt;p&gt;It is really exciting to become a part of the excellent organization that is
ThoughtWorks. I have already had the chance to meet quite a few of my future
colleagues who all have shown that ThoughtWorks is made up of great people.
Thanks for making me feel welcome.&lt;/p&gt;

&lt;p&gt;I am really looking forward to this, it will be hard work and a lot of fun.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/tab5EPsidb8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/16/joining-thoughtworks-starting-office-in-stockholm</feedburner:origLink></entry>
  
  <entry>
    <title>Time For Some Nepotism (Not So Shameless Plug)</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/va6MYsG3Pvg/time-for-some-nepotism-not-so-shameless-plug" />
    <updated>2008-05-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/15/time-for-some-nepotism-not-so-shameless-plug</id>
    <content type="html">&lt;p&gt;If you are in the Stockholm area and in need to move your teeth around ever so
slightly, look no further than &lt;a href="http://www.vasastanstandreglering.se"&gt;Vasastans Tandreglering&lt;/a&gt;. You will get truly
professional treatment which will leave your teeth in those straight lines you
dream of.&lt;/p&gt;

&lt;p&gt;Of course this is my moms new business I am talking about. Good luck mom,
you&amp;rsquo;re the best.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/va6MYsG3Pvg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/15/time-for-some-nepotism-not-so-shameless-plug</feedburner:origLink></entry>
  
  <entry>
    <title>The Programming Language Is Your Most Powerful Tool</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/IvCZDfXvPXU/the-programming-language-is-your-most-powerful-tool" />
    <updated>2008-05-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/15/the-programming-language-is-your-most-powerful-tool</id>
    <content type="html">&lt;p&gt;Ola is so spot on with this one:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://ola-bini.blogspot.com/2008/05/new-hope-polyglotism.html"&gt;A New Hope: Polyglotism&lt;/a&gt;:
&amp;ldquo;The one thing that I am totally sure if is that we need better tools. And the
most important tool in my book is the language. It&amp;rsquo;s interesting, many Java
programmers talk so much about tools, but they never seem to think about their
language as a tool. For me, the language is what shapes my thinking, and thus
it&amp;rsquo;s definitely much more important than which editor I&amp;rsquo;m using.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I do not know how many discussions I have had with Java developers who
questions Ruby et al. because there are no IDE&amp;rsquo;s with the same feature sets as
those found in Java.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://ola-bini.blogspot.com/"&gt;Ola Bini on Java, Lisp, Ruby and AI&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/IvCZDfXvPXU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/15/the-programming-language-is-your-most-powerful-tool</feedburner:origLink></entry>
  
  <entry>
    <title>The Good Pragmatic Developers</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/V061m1rUD1c/the-good-pragmatic-developers" />
    <updated>2008-05-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/13/the-good-pragmatic-developers</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2008/05/12/Java-One"&gt;Java in 2008&lt;/a&gt;:
&amp;ldquo;These are people who arenâ€™t religious and arenâ€™t close-minded and just
want to Get Shit Done. Oh, and theyâ€™ve already got a lot of it done and they
arenâ€™t interested in discarding that investment.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.tbray.org/ongoing/"&gt;ongoing&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/V061m1rUD1c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/13/the-good-pragmatic-developers</feedburner:origLink></entry>
  
  <entry>
    <title>Misunderstanding the Meaning of "Web Based"</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/0uHwOpobfyY/misunderstanding-the-meaning-of-web-based" />
    <updated>2008-05-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/05/02/misunderstanding-the-meaning-of-web-based</id>
    <content type="html">&lt;p&gt;As I have been in charge of setting the administrative infrastructure at
&lt;a href="http://www.wemind.se"&gt;WeMind&lt;/a&gt; I continuously tried to use web based systems to
limit the number of systems administered by us. We use &lt;a href="http://www.google.com/a/"&gt;Google
Apps&lt;/a&gt;, &lt;a href="http://www.basecamphq.com/" title="Project
management, collaboration, and task software: Basecamp"&gt;Basecamp&lt;/a&gt; and outsource all our
servers to Mathias and colleagues at &lt;a href="http://www.globalinn.se"&gt;GlobalInn&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We have however run into problems when trying to find web based services that
are preferrably local to Sweden, like accounting. Even if marketed as &amp;ldquo;web
based&amp;rdquo;, they are all based on Internet Explorer using ActiveX or some other
proprietary part of IE. As we use Macs at WeMind, these services are as
available to us as any software packaged as a .exe file.&lt;/p&gt;

&lt;p&gt;I tend to see this in Sweden and not as much in other countries, or am I wrong?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/0uHwOpobfyY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/05/02/misunderstanding-the-meaning-of-web-based</feedburner:origLink></entry>
  
  <entry>
    <title>What He Said</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/lItihJKypxg/what-he-said" />
    <updated>2008-04-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/04/08/what-he-said</id>
    <content type="html">&lt;p&gt;I have used Mercurial for over a year, and started using Git on &lt;a href="http://agilasverige.se/2008"&gt;Agila
Sverige&lt;/a&gt;. I really like Git and I have therefore
kept a draft blog post trying to capture why I like better than Mercurial.&lt;/p&gt;

&lt;p&gt;That draft was just deleted since I essentially share Dustin Sallings thoughts
on &lt;a href="http://www.rockstarprogrammer.org/post/2008/apr/06/differences-between-mercurial-and-git/"&gt;the differences between Mercurial and
Git&lt;/a&gt;.
Apart from the Gnu Arch and Darcs parts &amp;ndash; what he said.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/lItihJKypxg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/04/08/what-he-said</feedburner:origLink></entry>
  
  <entry>
    <title>Rails is moving from SVN to Git</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/_VRCvKXnMIQ/rails-is-moving-from-svn-to-git" />
    <updated>2008-04-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/04/03/rails-is-moving-from-svn-to-git</id>
    <content type="html">&lt;p&gt;A year ago I was &lt;a href="http://marcus.ahnve.net/2007/06/15/not-speaking-at-railsconf-europe/"&gt;frustrated over Rails' close ties to
Subversion&lt;/a&gt;.
But as &lt;a href="http://feeds.feedburner.com/~r/RidingRails/~3/262930226/rails-is-moving-from-svn-to-git"&gt;Rails is moving from SVN to
Git&lt;/a&gt;,
the future is looking bright. The only bastion left I can think of is
&lt;a href="http://rubyforge.org/" title="RubyForge: Welcome"&gt;RubyForge&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/_VRCvKXnMIQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/04/03/rails-is-moving-from-svn-to-git</feedburner:origLink></entry>
  
  <entry>
    <title>OpenUP</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/5KYRNgtiMK8/openup" />
    <updated>2008-04-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/04/03/openup</id>
    <content type="html">&lt;p&gt;Proponents of RUP, the golden methodology of 1998, is trying revamp it as
&lt;a href="http://epf.eclipse.org/wikis/openup/index.htm"&gt;OpenUP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My first reaction is positive &amp;ndash; browsing the Work Products I cannot find any
required UML diagram. But after a while I get the feeling that they have fixed
the implementation without getting the big picture.&lt;/p&gt;

&lt;p&gt;It is still has four phases, delivering a feature complete project after the
transition phase. No lean, incremental deliveries to production, but how could
they? It explicitly defers deployment and operation leaving it to other parts
of the organization.&lt;/p&gt;

&lt;p&gt;But this is my favorite one:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;OpenUP is minimal, complete, and extensible. It&amp;rsquo;s the minimum amount of
process for a small team.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;No, it is not minimal and it is not complete. It is less lipstick on the pig.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/5KYRNgtiMK8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/04/03/openup</feedburner:origLink></entry>
  
  <entry>
    <title>Things I Have Actually Used</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/_qXigYcrHbE/things-i-have-actually-used" />
    <updated>2008-03-31T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/31/things-i-have-actually-used</id>
    <content type="html">&lt;p&gt;Robby Russell is a constant source of information on Ruby and Rails, I have
used &lt;a href="http://www.robbyonrails.com/articles/2008/01/22/installing-ruby-on-rails-and-postgresql-on-os-x-third-edition"&gt;his instruction on how to set up Rails and PostgreSQL on
Mac&lt;/a&gt;
a number of times. It is therefore fun to see that I have actually used 3 out
of the &lt;a href="http://www.robbyonrails.com/articles/2008/03/25/things-in-the-rails-world-you-dont-yet-understand"&gt;5 things he wants to know more
about:&lt;/a&gt;:&lt;/p&gt;

&lt;h2&gt;RSpec User Stories&lt;/h2&gt;

&lt;p&gt;We were very early adopters of this one, we started using it the same day it
hit trunk in a useable form. Everyone should start using it today &amp;ndash; I cannot
speak highly enough of it. The only thing I miss is a Fit-style table approach
to rules, but I have my own thoughts about that one.&lt;/p&gt;

&lt;h2&gt;Using Selenium with RSpec&lt;/h2&gt;

&lt;p&gt;We have used the now outdated spec/ui library at
&lt;a href="http://www.wemind.se"&gt;WeMind&lt;/a&gt;. Today we use RSpec Stories almost exclusively
for acceptance testing. My position is to use Selenium only where you really
  need it, for example to test Javascript functionality.&lt;/p&gt;

&lt;h2&gt;JQuery &lt;/h2&gt;

&lt;p&gt;I have used it for the dynamic hiding of speaker info for &lt;a href="http://agilasverige.se/2008"&gt;Agila
Sverige&lt;/a&gt;. Not at all enough to judge a library by,
but it feels a lot sweeter than Prototype/RJS.&lt;/p&gt;

&lt;h2&gt;JSSpec (BDD for Javascript)&lt;/h2&gt;

&lt;p&gt;Yeah, I wanna know more about this as well.&lt;/p&gt;

&lt;h2&gt;Using the Google Charts API with Rails&lt;/h2&gt;

&lt;p&gt;Same here.&lt;/p&gt;

&lt;p&gt;Other than that I would love to try out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.seaside.st/" title="Seaside"&gt;Seaside&lt;/a&gt; &amp;ndash; I have dabbled with it but nothing worth mentioning.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://couchdb.org/" title="CouchDB"&gt;CouchDB&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/_qXigYcrHbE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/31/things-i-have-actually-used</feedburner:origLink></entry>
  
  <entry>
    <title>A scary future</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Pkhlcm8HatM/a-scary-future" />
    <updated>2008-03-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/18/a-scary-future</id>
    <content type="html">&lt;p&gt;Mathias just sent
&lt;a href="http://gizmodo.com/368651/new-video-of-bigdog-quadruped-robot-is-so-stunning-its-spooky"&gt;this&lt;/a&gt;
video of Boston Dynamics Big Dog. If this is the next level of mechanized
warfare, the future will most certainly be scary.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Pkhlcm8HatM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/18/a-scary-future</feedburner:origLink></entry>
  
  <entry>
    <title>Vintage Computing</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/uRiKRFijhxQ/vintage-computing" />
    <updated>2008-03-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/16/vintage-computing</id>
    <content type="html">&lt;p&gt;The Ahnve family spent the afternoon at the Stockholm Technical Museum. It was
the last day of the Vintage Gaming exhibition, and man, did they have hardware
to reminisce about.&lt;/p&gt;

&lt;p&gt;I first stopped by an old Commodore Vic-20, my first computer which my dad
bought me in 1983. It was running a Tetris clone, programmed by the computers
owner two years ago. He also showed me the flash card add-on card I suppose he
soldered himself which replaced the tapedrive. Awesome.&lt;/p&gt;

&lt;p&gt;I then met Niklas whom I worked with at TeliaSonera a few years ago. He showed
me an Atari 800 and some Nintendo 3D thingy. They even had an original Atari
game console from 1976. Wow.&lt;/p&gt;

&lt;p&gt;I found a Donkey Kong Game and Watch on sale for SEK 800. So cool.&lt;/p&gt;

&lt;p&gt;All this time my wife stood confounded and suggested that they should have a
designated place for bored spouses.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/uRiKRFijhxQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/16/vintage-computing</feedburner:origLink></entry>
  
  <entry>
    <title>The closing of script tags</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dt0kjAcDq4k/the-closing-of-tags" />
    <updated>2008-03-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/11/the-closing-of-tags</id>
    <content type="html">&lt;p&gt;I found a bug in my HTML code today running Firefox 3. &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags must
supposedly be closed by a &lt;code&gt;&amp;lt;/script&amp;gt;&lt;/code&gt; and not by the less verbose but obviously
wrong &lt;code&gt;&amp;lt;script/&amp;gt;&lt;/code&gt;, as explained in &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=412114"&gt;this dismissed bug
report&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you insist on using &lt;code&gt;&amp;lt;script/&amp;gt;&lt;/code&gt; FF3 will punish you with a blank page caused
by the body tag being self closed, &lt;code&gt;&amp;lt;body/&amp;gt;&lt;/code&gt;. Sort of: &amp;ldquo;You close your script
tags like that &amp;ndash; I&amp;rsquo;ll close your damn body tag like that. Now, how do you like
that???&amp;rdquo;&lt;/p&gt;

&lt;p&gt;I had no clue. Sorry.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dt0kjAcDq4k" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/11/the-closing-of-tags</feedburner:origLink></entry>
  
  <entry>
    <title>The Lazyweb</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Ca_GwcP4rEA/the-lazyweb" />
    <updated>2008-03-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/06/the-lazyweb</id>
    <content type="html">&lt;p&gt;Yesterday I twittered that I was trying to find a version of Ruby that both
cc.rb and Rails likes. Last night, Wordpress plugin Twittertools posted
yesterdays twitters to this blog. And this morning, I have an answer from
Alexey Verkhovsky what the good versions are. Gotta love the lazyweb.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Ca_GwcP4rEA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/06/the-lazyweb</feedburner:origLink></entry>
  
  <entry>
    <title>Microsoft Keyboards F Lock Key</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/eb23r_970aA/microsoft-keyboards-f-lock-key" />
    <updated>2008-03-03T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/03/03/microsoft-keyboards-f-lock-key</id>
    <content type="html">&lt;p&gt;I use a Microsoft Natural Keyboard with my MacBook Pro &amp;ndash; make that two, one at
home and one at work. The function keys stopped working last week on the one at
work which is a pretty big deal if you use ExposÃ© as much as I do. I did the
whole routine and could not find the problem. As the keyboard at home worked
just fine, I started to believe that there was something wrong with the actual
keyboard.&lt;/p&gt;

&lt;p&gt;Then I came across &lt;a href="http://www.udolpho.com/weblog/?id=00582&amp;amp;title=Killing-F-Lock-ie-restoring-the-function-keys-on-Microsoft-keyboards"&gt;this
post&lt;/a&gt;
which finally explained to me that I have a key right next to the F12 key named
&amp;ldquo;F Lock&amp;rdquo; which makes the function keys do other things than I want them to do.
A key stroke later all is good again.&lt;/p&gt;

&lt;p&gt;The funny thing is that I have no idea how it got into this mode as I cannot
turn it off again.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/eb23r_970aA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/03/03/microsoft-keyboards-f-lock-key</feedburner:origLink></entry>
  
  <entry>
    <title>Microsoft and Heroes</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/3fNMrKFlBJY/microsoft-and-heroes" />
    <updated>2008-02-25T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/25/microsoft-and-heroes</id>
    <content type="html">&lt;p&gt;I have never programmed anything using Microsoft products, but if I did,
&lt;a href="http://www.microsoft.com/heroeshappenhere/" title="Heroes Happen
Here :: Home"&gt;heroes happen here&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/events/hero/"&gt;source fource&lt;/a&gt;
would make me feel embarrassed. Who are they targeting?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/3fNMrKFlBJY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/25/microsoft-and-heroes</feedburner:origLink></entry>
  
  <entry>
    <title>TripIt  Invitations All Over The Place</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/AxAxEE2LaZ8/tripit-invitations-all-over-the-place" />
    <updated>2008-02-18T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/18/tripit-invitations-all-over-the-place</id>
    <content type="html">&lt;p&gt;I managed to send an invite to TripIt to everyone in my GMail addressbook this
morning. This was unintentional, I guess either I am stupid or the TripIt
interface is unclear.&lt;/p&gt;

&lt;p&gt;Anyway, as I have 500+ email addresses in GMail, and some are people I have
mailed once, this might turn out to be quite awkward. So sorry about that if
you got the mail and wonder why the hell I sent it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/AxAxEE2LaZ8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/18/tripit-invitations-all-over-the-place</feedburner:origLink></entry>
  
  <entry>
    <title>How To Automigrate the Test Database Using Merb, Datamapper and RSpec</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/N-lsCapv9o8/how-to-automigrate-the-test-database-using-merb-datamapper-and-rspec" />
    <updated>2008-02-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/16/how-to-automigrate-the-test-database-using-merb-datamapper-and-rspec</id>
    <content type="html">&lt;p&gt;I am creating a small site using Merb, DataMapper and RSpec, all in all a very
enjoyable experience. I did however have problem getting the test database to
be automigrated when running the specs, as I am used to in Rails.&lt;/p&gt;

&lt;p&gt;As Google did not help, I turned to #merb on IRC, and got immediate help.&lt;/p&gt;

&lt;p&gt;Two alternatives:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;rake MERB_ENV=test dm:db:automigrate&lt;/code&gt; before running rake specs&lt;/li&gt;
&lt;li&gt;Insert &lt;code&gt;DataMapper::Base.auto_migrate!&lt;/code&gt; into your &lt;code&gt;spec/spec_helper.rb&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Big thanks to topfunky, afrench and jdempsey for the help.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/N-lsCapv9o8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/16/how-to-automigrate-the-test-database-using-merb-datamapper-and-rspec</feedburner:origLink></entry>
  
  <entry>
    <title>Oh, another thing</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/blMPY2YOZvw/oh-another-thing" />
    <updated>2008-02-12T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/12/oh-another-thing</id>
    <content type="html">&lt;p&gt;For &lt;a href="http://www.peterkrantz.com/2008/yak-shaving/"&gt;all the good reasons&lt;/a&gt;, &lt;a href="http://dustfeed.blogspot.com/"&gt;yak
shaving&lt;/a&gt; is the thing to do these days.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/blMPY2YOZvw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/12/oh-another-thing</feedburner:origLink></entry>
  
  <entry>
    <title>My Talk From Smidig 2007 Available Online</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9o3YF-txLBA/my-talk-from-smidig-2007-available-online" />
    <updated>2008-02-11T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/11/my-talk-from-smidig-2007-available-online</id>
    <content type="html">&lt;p&gt;I just found out that the talk I gave at Smidig 2007 is &lt;a href="http://smidig.no/smidig2007/talks/39"&gt;available
online&lt;/a&gt;. If you think there is something
wrong with the sound, it is in swedish.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9o3YF-txLBA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/11/my-talk-from-smidig-2007-available-online</feedburner:origLink></entry>
  
  <entry>
    <title>git Is Winning The DVCS Battle With git-svn</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/YZ9XfqPlqlc/git-is-winning-the-dvcs-battle-with-git-svn" />
    <updated>2008-02-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/09/git-is-winning-the-dvcs-battle-with-git-svn</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve been using distributed version control for over a year now, and if it is
up to me, I will never use a centralized VCS again.&lt;/p&gt;

&lt;p&gt;When I evaluated the alternatives last year, I choose Mercurial as the DVCS we
are using at &lt;a href="http://www.wemind.se"&gt;WeMind&lt;/a&gt;. The reasons were:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Usability &amp;ndash; git was quite obscure back then&lt;/li&gt;
&lt;li&gt;Speed &amp;ndash; bazaar and monotone was quite slow&lt;/li&gt;
&lt;li&gt;Large enough uptake &amp;ndash; OpenSolaris and Mozilla started using Mercurial at the
same time.&lt;/li&gt;
&lt;li&gt;Runs on all platforms, if we ever employed someone who wants to use Windows&lt;/li&gt;
&lt;li&gt;Built in Python which could be a good think if I ever wanted to extend it&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;A year later we are happy with Mercurial, but the landscape has changed. In
particular I am seeing a huge growth of people using git, especially within the
Ruby community. Which in itself is something &lt;a href="http://marcus.ahnve.net/2007/06/15/not-speaking-at-railsconf-europe/"&gt;I am happy
about&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The biggest reason I see for git&amp;rsquo;s resurgence is git-svn. It allows people to
start using git locally while still having Subversion as the backend, and when
everyones ready the switch is easy.&lt;/p&gt;

&lt;p&gt;There is a hgsvn in the Mercurial world, but it is read only, so you cannot
push your changes back to Subversion. I strongly believe that the Mercurial
community should focus on this if it wants to regain its momentum.&lt;/p&gt;

&lt;p&gt;Git still has weak support for Windows, but that seems to be a non-issue in the
Ruby world.&lt;/p&gt;

&lt;p&gt;I am pretty agnostic about which DVCS will be the dominant one. The most
important thing is that people are moving away from the centralized VCS&amp;rsquo;s.&lt;/p&gt;

&lt;p&gt;For a great post on the subject, read what &lt;a href="http://www.dribin.org/dave/blog/archives/2007/12/30/why_mercurial/"&gt;Dave Dribin has to say about
it&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/YZ9XfqPlqlc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/09/git-is-winning-the-dvcs-battle-with-git-svn</feedburner:origLink></entry>
  
  <entry>
    <title>Java vs the JVM</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/jjyF6JCSW1I/java-vs-the-jvm" />
    <updated>2008-02-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/02/01/java-vs-the-jvm</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2008/01/31/Ruby-Sweep"&gt;Tim Bray on the JVM being the good part of Java:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;But the Java language just doesnâ€™t seem like the interesting thing about
Java, these days.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I wish more Java programmers would agree to this. One of my observations at
JFokus the other day was that a lot of people really like Java the language,
and are going through hoops to implement their ideas in it.&lt;/p&gt;

&lt;p&gt;Stephan Janssen has created a kick ass new version of
&lt;a href="http://www.parleys.com"&gt;parleys.com&lt;/a&gt; in Flex/Air, but he wants to redo it all
in JavaFX script, just so that it is Java. Rickard Ã–bergs &lt;a href="http://www.qi4j.org"&gt;new framework for composite oriented programming&lt;/a&gt; could be useful, but in my
opinion it introduces enough new concepts to qualify for a whole new language.
Lipsticking on top of Java makes it feel verbose and clumsy. After a year of
Ruby I have very little patience for Java interfaces.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.tbray.org/ongoing/"&gt;ongoing&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/jjyF6JCSW1I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/02/01/java-vs-the-jvm</feedburner:origLink></entry>
  
  <entry>
    <title>One hour talks are too long</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/yZMAtw5Xy8g/one-hour-talks-are-too-long" />
    <updated>2008-01-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/30/one-hour-talks-are-too-long</id>
    <content type="html">&lt;p&gt;JFokus has the traditional format of speakers talking for an hour, which is way
too long. Every speaker I have listened to has spent more than half of their
allotted time providing context and explaining why they are talking about
whatever they are talking about.&lt;/p&gt;

&lt;p&gt;I so wish that they would have used lightning talks.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/yZMAtw5Xy8g" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/30/one-hour-talks-are-too-long</feedburner:origLink></entry>
  
  <entry>
    <title>I am really old</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/kWbVGBcfe9E/i-am-really-old" />
    <updated>2008-01-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/29/i-am-really-old</id>
    <content type="html">&lt;p&gt;I am actually 53 days older &lt;a href="http://xkcd.com/376/"&gt;than the universe&lt;/a&gt;, I had no
clue.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/kWbVGBcfe9E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/29/i-am-really-old</feedburner:origLink></entry>
  
  <entry>
    <title>Jon Leaves ThoughtWorks For Google</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/I6SXJjFWt-s/jon-leaves-thoughtworks-for-google" />
    <updated>2008-01-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/28/jon-leaves-thoughtworks-for-google</id>
    <content type="html">&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/jutopia/~3/223409946/"&gt;Jon is leaving ThoughtWorks to join
Google&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jon is one of the most brilliant people I have been fortunate enough to work
with. Congratulations to Google to have hired him.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/I6SXJjFWt-s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/28/jon-leaves-thoughtworks-for-google</feedburner:origLink></entry>
  
  <entry>
    <title>Jonathan Schwartz says Sun will continue to support PostgreSQL</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/8oKjWC0OOMw/jonathan-schwartz-says-sun-will-continue-to-support-postgresql" />
    <updated>2008-01-20T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/20/jonathan-schwartz-says-sun-will-continue-to-support-postgresql</id>
    <content type="html">&lt;p&gt;My suspicion that Sun will not continue to support PostgreSQL after purchasing
MySQL was unfounded:&lt;/p&gt;

&lt;p&gt;From &lt;a href="http://blogs.sun.com/jonathan/entry/in_a_vortex"&gt;Jonathan Schwartz
blog:&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;What happens to your commitment to PostgreSQL?&lt;/p&gt;

&lt;p&gt;It grows. The day before we announced the acquisition, and within an hour of
signing the deal, I put a call into Josh Berkus, who leads our work with
Postgres inside of Sun. I wanted to be as clear as I could: this transaction
increases our investment in open source, and in open source databases. And
increases our commitment to Postgres &amp;ndash; and the database industry broadly. The
same goes for our work with Apache Derby, and our JavaDB.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Awesome.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; &lt;a href="http://blogs.ittoolbox.com/database/soup/archives/sun-acquires-mysql-21822"&gt;Josh Berkus says the the same
thing&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/8oKjWC0OOMw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/20/jonathan-schwartz-says-sun-will-continue-to-support-postgresql</feedburner:origLink></entry>
  
  <entry>
    <title>Groovy and Ruby</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/TUWjrMA1f0U/groovy-and-ruby" />
    <updated>2008-01-17T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/17/groovy-and-ruby</id>
    <content type="html">&lt;p&gt;I cannot help myself from making a small comment on &lt;a href="http://www.jroller.com/RickHigh/entry/thanks_zed_btw_syntax_matters"&gt;Rick Hightowers post on Groovy vs JRuby&lt;/a&gt;. In
short he thinks Sun should support Groovy instead og JRuby, because the syntax
is familiar to Java programmers.&lt;/p&gt;

&lt;p&gt;To support his case he presents a chart showing language popularity according
to job postings. And since Ruby is at the bottom and Java is on the top, Sun
should support Groovy. Which by the way is not even on the chart.&lt;/p&gt;

&lt;p&gt;One thing I did recognize was this:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/91008712@N00/2198778705" title="View 'Comment on Rick Hightowers Groovy post' on Flickr.com"&gt;&lt;img src="http://farm3.static.flickr.com/2299/2198778705_8af79f83a6.jpg" alt="Comment on Rick Hightowers Groovy post" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice that between Java and Ruby/Python there is a wasteland of languages that
you will not see running on the JVM in any near future. So if Sun wants to
expand the developer base for the JVM (not Java the language), I believe they
are making a very wise decision to support the largest languages available to
them outside of Java.&lt;/p&gt;

&lt;p&gt;Supporting Groovy would probably be popular among the already converted, but
Sun has to appeal to new markets to expand the JVM usage. I believe that is
what they are doing.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/TUWjrMA1f0U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/17/groovy-and-ruby</feedburner:origLink></entry>
  
  <entry>
    <title>Sun buys MySQL - what about PostgreSQL?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/07Xu5dQTEU0/sun-buys-mysql-what-about-postgresql" />
    <updated>2008-01-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/16/sun-buys-mysql-what-about-postgresql</id>
    <content type="html">&lt;p&gt;There is one thing that strikes me in the Sun MySQL thingy &amp;ndash; what about Sun&amp;rsquo;s
&lt;a href="http://www.sun.com/software/products/postgresql/index.jsp"&gt;previous commitment to
PostgreSQL&lt;/a&gt;, where
they say stuff like: &amp;ldquo;PostgreSQL for Solaris 10 is the open source enterprise
database platform of choice&amp;rdquo;?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sun.com/software/products/postgresql/index.jsp" title="PostgreSQL for Solaris"&gt;&lt;img src="http://farm3.static.flickr.com/2238/2197421421_b6a81e802c.jpg" alt="PostgreSQL for Solaris" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tim Bray &lt;a href="http://www.tbray.org/ongoing/When/200x/2008/01/16/MySQL"&gt;comments on the
deal&lt;/a&gt; and totally
dismisses any alternatives:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;MySQL, you know, in my experience, it, well, Just Works. Runs great on our
hardware and OS. Well, OK, GNU/Linux too. What else is there? For databases,
nothing that matters.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I strongly prefer PostgreSQL over MySQL, and I have previously used Sun as a
reference for it. Perhaps no more.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/07Xu5dQTEU0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/16/sun-buys-mysql-what-about-postgresql</feedburner:origLink></entry>
  
  <entry>
    <title>IPhone for sale with extra services</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FvcNiji5Abs/iphone-for-sale-with-extra-services" />
    <updated>2008-01-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/16/iphone-for-sale-with-extra-services</id>
    <content type="html">&lt;p&gt;There is an iPhone for sale on the swedish site Blocket:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/91008712@N00/2197207650" title="View 'Apple iphone for sale with extra services' on Flickr.com"&gt;&lt;img src="http://farm3.static.flickr.com/2059/2197207650_851ca5b3cb.jpg" alt="Apple iphone for sale with extra services" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Funny part translated from swedish: &amp;ldquo;&amp;hellip; I can include the telephone number to
my friend who helped me unlock it&amp;rdquo;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FvcNiji5Abs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/16/iphone-for-sale-with-extra-services</feedburner:origLink></entry>
  
  <entry>
    <title>Watching the keynote</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/JW7G2rolNrU/watching-the-keynote" />
    <updated>2008-01-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/15/watching-the-keynote</id>
    <content type="html">&lt;p&gt;I am following the keynote via IRC and
&lt;a href="http://www.macrumorslive.com/"&gt;MacRumoursLive&lt;/a&gt;. Why am I like so many others
totally intrigued by this? I suppose a lot of people would say that it is the
gadget freak in me who wants to own everything coming out of Cupertino. But to
me, this is not about the gadgets per se. It is about seeing progress being
made, Others make progress as well, but nobody packages it as well as Apple
does.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/JW7G2rolNrU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/15/watching-the-keynote</feedburner:origLink></entry>
  
  <entry>
    <title>Patrick Kua: Explaining Your Rituals</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/2uKgeym7UdA/patrick-kua-explaining-your-rituals" />
    <updated>2008-01-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/10/patrick-kua-explaining-your-rituals</id>
    <content type="html">&lt;p&gt;Pats posts on team building and coaching are always a refreshing read. His
latest on &lt;a href="http://www.thekua.com/atwork/2008/01/09/onboarding-strategy-explain-your-rituals/"&gt;explaining
rituals&lt;/a&gt;
is no different and something I myself is notoriously bad at.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com/"&gt;Planet TW&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/2uKgeym7UdA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/10/patrick-kua-explaining-your-rituals</feedburner:origLink></entry>
  
  <entry>
    <title>NetNewsWire for free</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/7TpF_bIC0tY/netnewswire-nu-gratis" />
    <updated>2008-01-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2008/01/10/netnewswire-nu-gratis</id>
    <content type="html">&lt;p&gt;Great news, NetNewsWire is available for free and available for
&lt;a href="http://www.newsgator.com/Individuals/NetNewsWire/Default.aspx"&gt;download&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://mac.feber.se"&gt;Macfeber&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/7TpF_bIC0tY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2008/01/10/netnewswire-nu-gratis</feedburner:origLink></entry>
  
  <entry>
    <title>Ola Bini: JtestR 0.1 released</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dWowfXHsD6o/ola-bini-jtestr-01-released" />
    <updated>2007-12-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/30/ola-bini-jtestr-01-released</id>
    <content type="html">&lt;p&gt;Ola has &lt;a href="http://ola-bini.blogspot.com/2007/12/jtestr-01-released.html"&gt;released JtestR
0.1&lt;/a&gt;. It seems to
b a great tool for those doing Java development. I can personally not imagine
doing any development these days without RSpec.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dWowfXHsD6o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/30/ola-bini-jtestr-01-released</feedburner:origLink></entry>
  
  <entry>
    <title>Agile Sweden 2008</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/THSbn11QnCE/agile-sweden-2008" />
    <updated>2007-12-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/30/agile-sweden-2008</id>
    <content type="html">&lt;p&gt;After reading Aslaks post on his &lt;a href="http://blog.aslakhellesoy.com/2007/12/26/upcoming-conferences"&gt;upcoming
conferences&lt;/a&gt; it
is obvious to me that Stockholm is sorely lacking in the conference space.&lt;/p&gt;

&lt;p&gt;Aslak mentions &lt;a href="http://jaoo.dk/ruby-cph/conference/"&gt;RubyFools&lt;/a&gt; in Copenhagen
and Oslo, and Smidig 2008 in Oslo. RubyFools seems to be great, and I know that
Smidig was awesome in 2007.&lt;/p&gt;

&lt;p&gt;The only conference I can think of in Stockholm is
&lt;a href="http://www.jfokus.se"&gt;JFokus&lt;/a&gt;, which I hear is very good but Java only.
Looking to the whole of Sweden we have &lt;a href="http://www.oredev.org"&gt;Ã˜redev&lt;/a&gt; which I
always has found too unfocused, and &lt;a href="http://expo-c.se/"&gt;Expo-C&lt;/a&gt; which I cannot
tell if they exist anymore.&lt;/p&gt;

&lt;p&gt;I guess I have no right complaining if I am not prepared to do anything about
it. So, after Smidig 2007 in Oslo, we have had talks within the &lt;a href="www.agilesweden.org"&gt;Agile
Sweden&lt;/a&gt; network about running a similar conference in
Stockholm this spring. And while this is no announcement by any means, I am
putting pressure on myself to actually contribute to make it happen by speaking
openly about it.&lt;/p&gt;

&lt;p&gt;Look out for Agile Sweden 2008 this spring.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/THSbn11QnCE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/30/agile-sweden-2008</feedburner:origLink></entry>
  
  <entry>
    <title>Acorn</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/CKWhUhXaPhs/acorn" />
    <updated>2007-12-21T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/21/acorn</id>
    <content type="html">&lt;p&gt;&lt;a href="http://theocacao.com/document.page/535"&gt;Theocacao: A Look at the Acorn Image
Editor&lt;/a&gt;: &amp;ldquo;Acorn is first working
example of what I would consider a programmer&amp;rsquo;s image editor. It has a very
&amp;lsquo;objecty&amp;rsquo; feel to it â€” sort of what might happen if Interface Builder was
reincarnated as a bitmap tool. If you feel more at home in an IDE than
Photoshop, I think you will probably like Acorn.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Cool, I purchased Acorn a couple of months ago and now I know why.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/CKWhUhXaPhs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/21/acorn</feedburner:origLink></entry>
  
  <entry>
    <title>Tool Support Should Be Loosely Coupled</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Ttt32Sz06Iw/tool-support-should-be-loosely-coupled" />
    <updated>2007-12-17T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/17/tool-support-should-be-loosely-coupled</id>
    <content type="html">&lt;p&gt;I just read the following in a month old post on the RSpec list:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;As someone who uses an IDE, I find dealing with multiple SCMs is a real
pain, and one of the cool things about Ruby has been that
(traditionally) nearly everything&amp;rsquo;s in Subversion&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It might be that Rails will have hard time keeping up with new stuff, both
technically and culturally, since it tied really close knots with everything
that was cool 2005.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Ttt32Sz06Iw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/17/tool-support-should-be-loosely-coupled</feedburner:origLink></entry>
  
  <entry>
    <title>iChat Video Only For LAN Internal Use?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/T86JmkdaU5U/ichat-video-only-for-lan-internal-use" />
    <updated>2007-12-17T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/17/ichat-video-only-for-lan-internal-use</id>
    <content type="html">&lt;p&gt;Me and &lt;a href="http://www.peterkrantz.com/"&gt;Peter Krantz&lt;/a&gt; just tried to get an iChat
video chat going, just to test it out. We never got it going.&lt;/p&gt;

&lt;p&gt;We forwarded a gazillion ports on our routers, turned off the firewalls on our
laptops but to no avail.&lt;/p&gt;

&lt;p&gt;The thing is, had we managed to get it working it would still have been way too
hard to set up for any sort of reqular use. And how often do you have access to
the router anyway?&lt;/p&gt;

&lt;p&gt;This tells me that iChat is primarily made for internal, LAN based use. Am I
wrong? Too bad if I am not.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/T86JmkdaU5U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/17/ichat-video-only-for-lan-internal-use</feedburner:origLink></entry>
  
  <entry>
    <title>RSpec 1.1 is out!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/0dTNPHzV5iY/rspec-11-is-out" />
    <updated>2007-12-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/14/rspec-11-is-out</id>
    <content type="html">&lt;p&gt;&lt;a href="http://blog.davidchelimsky.net/articles/2007/12/14/rspec-1-1"&gt;RSpec 1.1&lt;/a&gt;: &amp;ldquo;The
RSpec Development Team is pleased as glug (thatâ€™s kind of like punch, but
more festive) to announce RSpec-1.1.0.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Woohoo! We&amp;rsquo;ve used RSpec since the 0.7-ies and I personally could not be
happier with it. The RSpec community is really pushing the boundaries for
testing/speccing frameworks and is now the standard for all others to follow.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blog.davidchelimsky.net/"&gt;David Chelimsky&lt;/a&gt;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/0dTNPHzV5iY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/14/rspec-11-is-out</feedburner:origLink></entry>
  
  <entry>
    <title>YUI Grids</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/vGJ6eC8kLKk/yui-grids" />
    <updated>2007-12-13T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/13/yui-grids</id>
    <content type="html">&lt;p&gt;I had to straighten up the CSS for &lt;a href="http://www.wemind.se"&gt;our public website&lt;/a&gt;,
and I thought of looking into &lt;a href="http://developer.yahoo.com/yui/grids/"&gt;YUI
Grids&lt;/a&gt; as I had heard lots of good
things about it. It took me less than two hours to completely redo the layout,
and the the end result was a better design, less custom CSS and better browser
portability. I am a convert.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/vGJ6eC8kLKk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/13/yui-grids</feedburner:origLink></entry>
  
  <entry>
    <title>Choice Is Good</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/KE8xhz8XO_s/choice-is-good" />
    <updated>2007-12-13T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/13/choice-is-good</id>
    <content type="html">&lt;p&gt;I was happy to note that &lt;a href="http://almaer.com"&gt;Dion Almaer&lt;/a&gt;
&lt;a href="/blog/rails-and-how-the-opinion-can-keep-back-rails-ee"&gt;commented&lt;/a&gt;
on &lt;a href="http://marcus.ahnve.net/2007/12/08/merb/"&gt;my blog post on Merb&lt;/a&gt;. Dion is one of my
favorite bloggers/podcasters and I value what he writes highly.&lt;/p&gt;

&lt;p&gt;But I disagree with him on this one. The problem with using Java
for web application development was never one of too much choice.
In fact, it was because of that choice that Java became a player in
the server side market at all. Sun alone never had the answer to
what was needed for server side development, instead the open
source world stepped in and made incremental corrections.&lt;/p&gt;

&lt;p&gt;The same thing is happening to the Rails world. The core team
cannot create a framework that is a one-size-fits-all. The initial
Rails proposal is great for a large number of webapps, but it is
other things around it like plugins and JRuby that is making Rails
a viable choice for all.&lt;/p&gt;

&lt;p&gt;My Java tools of choice was usually
&lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;/&lt;a href="http://www.mortbay.org/"&gt;Jetty&lt;/a&gt;,
&lt;a href="http://freemarker.org/"&gt;FreeMarker&lt;/a&gt;,
&lt;a href="http://ibatis.apache.org/"&gt;iBatis&lt;/a&gt;,
&lt;a href="http://www.opensymphony.com/webwork/"&gt;WebWork&lt;/a&gt; tied together with
&lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt; or
&lt;a href="http://www.picocontainer.org/"&gt;PicoContainer&lt;/a&gt;. What I hated was
having some
frankensteinian-enterprise-architect-design-by-comittee-lets-not-be-different
stack forced upon me with a fullblown J2EE server, EJB&amp;rsquo;s, Struts or
the &lt;a href="http://raibledesigns.com/rd/entry/re_what_web_application_framework"&gt;JSF monster&lt;/a&gt;,
sprinkled with an Eclipse-only development environment. And I hope
dearly that Rails development is not going the same way where
people question you on your choice of tools and wonder why you are
not using MySQL and TextMate like the rest.&lt;/p&gt;

&lt;p&gt;There is one choice that I do not miss though &amp;ndash; directory layout. I
am truly happy every time I do not have to choose it.&lt;/p&gt;

&lt;p&gt;Instead of not having to choose, the most important difference I&amp;rsquo;ve
experienced is that Java as a language together with the
Servlet/J2EE spec induces a lot of &lt;a href="http://en.wikipedia.org/wiki/Accidental_complexity"&gt;accidental complexity&lt;/a&gt;,
which is almost non-existent in the Ruby/Rails world. It is that
which enables the increased velocity many development teams
experience when switching to Ruby.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/KE8xhz8XO_s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/13/choice-is-good</feedburner:origLink></entry>
  
  <entry>
    <title>Google Says JavaScript Is A Language For Non-Programmers</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/U6Oe54k4tW4/google-says-javascript-is-a-language-for-non-programmers" />
    <updated>2007-12-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/10/google-says-javascript-is-a-language-for-non-programmers</id>
    <content type="html">&lt;p&gt;They actually do say that, here in Sweden. In a brochure handed out at SIME07,
Google provides a little glossary for the technically challenged, and to my
amusement JavaScript is described as follows:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;JavaScript &amp;ndash; scripting language for those who are not programmers, in first
hand intended for creating web pages.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The translation is mine. The original text in Swedish: &amp;ldquo;JavaScript &amp;ndash;
skriptspråk för de som inte är programmerare, som i första hand är avsett
får att skapa webbsidor&amp;rdquo;&lt;/p&gt;

&lt;p&gt;This is of course a mistake, and my guess is that mistakes like these are
inevitable if you have local offices like the one is Stockholm without
technical knowledge. I find it funny, but I wonder if Sergey and Larry would
laugh if they were to find out?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/U6Oe54k4tW4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/10/google-says-javascript-is-a-language-for-non-programmers</feedburner:origLink></entry>
  
  <entry>
    <title>Rails Marketing Is Really Good</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/x-bYoTX7zwc/rails-marketing-is-really-good" />
    <updated>2007-12-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/08/rails-marketing-is-really-good</id>
    <content type="html">&lt;p&gt;DHH&amp;rsquo;s post about the Rails 2.0 is incredibly well written. It is almost as he
is showing off a unknown past as a PR agent when he talks about Rails not
supporting commercial databases out of the box:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;But that doesnâ€™t mean the commercial databases are left out in the cold.
Rather, theyâ€™ve now been set free to have an independent release schedule
from the main Rails distribution.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This sort of well formulated marketing has been known to render some sour
remarks from the rest of the open source web framework world. My belief is
though that when they ask themselves &amp;ldquo;Why are people so attracted to Rails, my
framework of choice is just as good or even better&amp;rdquo;, sentences like the one
above are probably a large part of the answer.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/x-bYoTX7zwc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/08/rails-marketing-is-really-good</feedburner:origLink></entry>
  
  <entry>
    <title>Merb, Leaner And Meaner Than Rails</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/jWsgLZyvumY/merb" />
    <updated>2007-12-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/08/merb</id>
    <content type="html">&lt;p&gt;I have used Rails on a daily basis for almost a year now, and before that I was
a night time hangaround. While I am definitely a happier programmer using Rails
than anything built on Java, I still feel that it can get better.&lt;/p&gt;

&lt;p&gt;First of all I want more things to be plugins. And really, they should not be
plugins at all but gems instead.&lt;/p&gt;

&lt;p&gt;Why plugins? We use RSpec instead of Test/Unit, HAML instead of erb and are
seriously looking into JQuery instead of Prototype. And of course, we are using
Mercurial instead of Subversion. All of this is of course possible to use in
Rails, but a lot of things are sort of made for the default choice, such as
generators generating tests, and plugins having the -x switch for Subversion.
And I am pretty sure that this is the way DHH wants it.&lt;/p&gt;

&lt;p&gt;So, when 2.0 is now released, I see that the Rails community as a whole does
not see the same problems as I do. If they did, they would have done more like
the stuff above, instead of sexy migrations and ActiveResource.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="http://merbivore.com"&gt;Merb&lt;/a&gt; becomes really interesting. I have
looked at it before not understanding its value, but now I see a framework that
does everything I want Rails to do. Gems as plugins and very agnostic about
templating languages, Javascript frameworks and even ORM frameworks &amp;ndash; almost a
heresy in Rails. I will definitely think about using it instead of Rails in the
future.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/jWsgLZyvumY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/08/merb</feedburner:origLink></entry>
  
  <entry>
    <title>ThoughtWorks to open an office in Stockholm?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/RQLZz3cqFlk/thoughtworks-to-open-an-office-in-stockholm" />
    <updated>2007-12-04T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/12/04/thoughtworks-to-open-an-office-in-stockholm</id>
    <content type="html">&lt;p&gt;I just talked to Sid Pinney and Ola Bini of ThoughtWorks, and it seems that
ThoughtWorks might open an office in Sweden. That would be a welcome injection
to the swedish consulting market where too many players favor quantity over
quality.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/RQLZz3cqFlk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/12/04/thoughtworks-to-open-an-office-in-stockholm</feedburner:origLink></entry>
  
  <entry>
    <title>Smidig2007</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/sCzPyCrjVww/263" />
    <updated>2007-11-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/11/29/263</id>
    <content type="html">&lt;p&gt;I came back last night after two great days of conferencing at Smidig2007 in
Oslo, Norway. The mornings where all lightning talks and the afternoons where
reserved for open space discussions. I gave a lighnting talk on the experiences
we have had at WeMind trying to implement a lean enterprise, and I initiated
two open space sessions, one on the GUI artists role in an agile process and
the other on what makes different languages have so different communities and
cultures. I will expand on those in later posts.&lt;/p&gt;

&lt;p&gt;During the two days I had the pleasure of hooking up with Niclas Nilsson, Aslak
HellesÃ¸y and a bunch og other great people. It was very stimulating
discussions and I am really motivated into doing a few new things with our own
testing/speccing.&lt;/p&gt;

&lt;p&gt;It was all in norwegian, so all you non-scandinavian speakers out there are
really missing out on something &amp;ndash; finally a reason to take that class in
swedish or norwegian you always thought about.&lt;/p&gt;

&lt;p&gt;Photos and a few deeper comments are due later, but for now: a big thanks to my
norwegian friends for a great time.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/sCzPyCrjVww" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/11/29/263</feedburner:origLink></entry>
  
  <entry>
    <title>Andy Hunt Seminar i Stockholm</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/yUsX0oYowTc/andy-hunt-seminar-i-stockholm" />
    <updated>2007-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/11/16/andy-hunt-seminar-i-stockholm</id>
    <content type="html">&lt;p&gt;I spent last evening at an &lt;a href="http://blog.toolshed.com/" title="/\ndy"&gt;Andy Hunt&lt;/a&gt;
seminar organized by &lt;a href="http://www.valtech.com/"&gt;Valtech Sweden&lt;/a&gt;. Andy delivered
a very good presentation on &amp;ldquo;How hard can it be&amp;rdquo; handling the topic of
complexity and how we as developers often make our jobs harder than they are.
Highly recommended.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/yUsX0oYowTc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/11/16/andy-hunt-seminar-i-stockholm</feedburner:origLink></entry>
  
  <entry>
    <title>The iPhone is truly a phenomenon</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/_q3-O3YkDqI/the-iphone-is-truly-a-phenomenon" />
    <updated>2007-11-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/11/15/the-iphone-is-truly-a-phenomenon</id>
    <content type="html">&lt;p&gt;One thing that strikes me at SIME07 is how many times iPhone is mentioned. The
iPhone is not even announced here in Sweden, but still people talk about it
without providing any sort of context, and this is a primarily non-techie
crowd. The Blackberry by comparison was available in the US for a long time
before coming to Sweden, and very few people knew about it at the time. The way
the iPhone is a marketing success is truly remarkable.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/_q3-O3YkDqI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/11/15/the-iphone-is-truly-a-phenomenon</feedburner:origLink></entry>
  
  <entry>
    <title>SIME07</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/xXaILziz7dE/sime07" />
    <updated>2007-11-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/11/15/sime07</id>
    <content type="html">&lt;p&gt;I am at the SIME07 conference in Stockholm. It is is a conference focusing on
entrepreneurship, media, Internet etcetera, at a pretty high level. At the
conferences I normally attend people speak about what thay have done. This one
has a lot of &amp;ldquo;what do you think will happen&amp;rdquo; going on.&lt;/p&gt;

&lt;p&gt;This morning there was a &lt;em&gt;very&lt;/em&gt; interesting panel with three venture
capitalists on stage, giving feedback to three companies pitches, and VC
strategy in general.&lt;/p&gt;

&lt;p&gt;Perhaps not spot on for what I do every day, but providing a nice new
perspective on things.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/xXaILziz7dE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/11/15/sime07</feedburner:origLink></entry>
  
  <entry>
    <title>Building Vim with Ruby on Leopard</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/8m25DaXNvYQ/building-vim-with-ruby-on-leopard" />
    <updated>2007-11-12T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/11/12/building-vim-with-ruby-on-leopard</id>
    <content type="html">&lt;p&gt;I have had problems compiling Vim on Leopard, and it turns out that the culprit
is the built in Mac Ruby. No clue why, but when after port installing Ruby, Vim
installs cleanly.&lt;/p&gt;

&lt;p&gt;I guess I&amp;rsquo;ll have to go with MacPorts Ruby &amp;ndash; having a working Vim beats DTrace,
however cool it is.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/8m25DaXNvYQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/11/12/building-vim-with-ruby-on-leopard</feedburner:origLink></entry>
  
  <entry>
    <title>When Revolutions Stagnate</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/nzaWDot--b0/when-revolutions-stagnate" />
    <updated>2007-10-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/10/18/when-revolutions-stagnate</id>
    <content type="html">&lt;p&gt;I am subscriber of the Test Driven Development mailing list as well as the
RSpec ones. One thing that strikes me continually is the lack of innovation and
new ideas in the former one, as opposed to the flurry of brilliant ideas
constantly coming out of the RSpec one. It seems to me that communities
stagnate and that the people who once were the revolutionaries turn into
keepers of their own revolutions ideas. The free thinkers become conservative.&lt;/p&gt;

&lt;p&gt;Guy Kawasaki gave a brilliant keynote on the MySQL conference, talking about
innovation. He said that the only way most people think about how to improve
themselves is by using the tools they know more proficiently. No makers of
horse carriages became car manufacturers. And the original TDD'ers are still
talking about the same things they did five years ago. The revolution has moved
on.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/nzaWDot--b0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/10/18/when-revolutions-stagnate</feedburner:origLink></entry>
  
  <entry>
    <title>Distributed Version Control </title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/p_kOqiYfX6Y/distributed-version-control-f" />
    <updated>2007-10-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/10/17/distributed-version-control-f</id>
    <content type="html">&lt;p&gt;I just read &lt;a href="http://blog.red-bean.com/sussman/?p=79"&gt;this article&lt;/a&gt; on
distributed version control by Ben Collins-Sussman who is a lead developer
behind Subversion. If I understand his arguments, he basically says that DVCS
is better than centralized VCS, but you probably should not use one since 80%
of all developers are too dumbfounded too understand VCS at all.&lt;/p&gt;

&lt;p&gt;I am one of the pretentious, self-righteous and obnoxious fanboys of DVCS. And
let me tell you this: the difference between using DVCS and Subversion is on
par with the difference in programming in Ruby compared to Java. If you have
made the switch you just do not want to go back.&lt;/p&gt;

&lt;p&gt;And finally: We have taught our GUI-guy Martin to use Mercurial. He has limited
experience of using VCS&amp;rsquo;s, but he grasps the difference between commit and
push. My face is straight saying this.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/p_kOqiYfX6Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/10/17/distributed-version-control-f</feedburner:origLink></entry>
  
  <entry>
    <title>Speaking at Smidig2007</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/PsCWJ-1BGyw/speaking-at-smidig2007" />
    <updated>2007-10-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/10/03/speaking-at-smidig2007</id>
    <content type="html">&lt;p&gt;I just got an email saying that my lightning talk proposal for
&lt;a href="http://smidig.no/smidig2007/"&gt;Smidig2007&lt;/a&gt; was accepted. I will speak about the
experiences we have had at &lt;a href="http://www.wemind.se"&gt;WeMind&lt;/a&gt; when trying to run a
lean enterprise.&lt;/p&gt;

&lt;p&gt;I am really looking forward to this conference, it is all lightning talks and
open space.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/PsCWJ-1BGyw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/10/03/speaking-at-smidig2007</feedburner:origLink></entry>
  
  <entry>
    <title>Where is IBM in Rails?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qkSu0xvtY6E/where-is-ibm-in-rails" />
    <updated>2007-09-20T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/09/20/where-is-ibm-in-rails</id>
    <content type="html">&lt;p&gt;I have absolutely no clue as to why David Heinemeier Hanson would hold any
&lt;a href="http://www.loudthinking.com/posts/11-sun-surprises-at-railsconf-europe-2007"&gt;suspicious thoughts&lt;/a&gt;
toward Sun. To me, given the big boys in the playground, they are the good
guys. But reading it made me realize that I have not heard of IBM in a very,
very long time.&lt;/p&gt;

&lt;p&gt;Big Blue was quite quick to join the Java bandwagon, remember VisualAge for
Java? But in the new world of dynamic languages IBM, apart from a few
developerWorks articles, is not to be heard from.&lt;/p&gt;

&lt;p&gt;And this from a company who once was a strong proponent of Smalltalk? In my
mind, if there is a mystery man, he and his cat is sitting in an IBM campus
somewhere.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qkSu0xvtY6E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/09/20/where-is-ibm-in-rails</feedburner:origLink></entry>
  
  <entry>
    <title>Delphi and JBuilder as role models for Rails development?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/rS_7nd91250/delphi-and-jbuilder-as-role-models-for-rails-development" />
    <updated>2007-09-20T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/09/20/delphi-and-jbuilder-as-role-models-for-rails-development</id>
    <content type="html">&lt;p&gt;&lt;a href="http://marcus.ahnve.net/2006/11/22/javaforum-in-stockholm-wrap-up/"&gt;Chatting over a
beer&lt;/a&gt; with
Ola Bini last year, we discussed the possibilities for JRuby. My dream was to
run a Ruby IDE on top of JRuby to get a Smalltalk like environment, because
Smalltalk is still the best programming environment I have ever used.&lt;/p&gt;

&lt;p&gt;Now that 3rdRail, running on JRuby, is released, should I get my hopes up? Some
people are actually &lt;a href="http://mikepence.wordpress.com/2007/09/18/3rdrail-fucking-rocks/"&gt;very
excited&lt;/a&gt;
about it, but when Delphi and JBuilder are referred to as some sort of pinnacle
of development it seriously makes me wonder.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/rS_7nd91250" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/09/20/delphi-and-jbuilder-as-role-models-for-rails-development</feedburner:origLink></entry>
  
  <entry>
    <title>Close the window</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/71tSzGhbKo4/234" />
    <updated>2007-09-19T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/09/19/234</id>
    <content type="html">&lt;p&gt;Eurocard &lt;em&gt;really&lt;/em&gt; wants you to close the window. (&amp;ldquo;StÃ¤ng fÃ¶nstret&amp;rdquo; is swedish
for &amp;ldquo;Close the window&amp;rdquo;)&lt;/p&gt;

&lt;p&gt;&lt;img src="http://farm2.static.flickr.com/1038/1405452533_d68557a7e2_o.jpg" title="" alt="Eurocard screenshot" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/71tSzGhbKo4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/09/19/234</feedburner:origLink></entry>
  
  <entry>
    <title>How to show you don't get it</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/B8B3EyeSriw/how-to-show-you-dont-get-it" />
    <updated>2007-09-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/09/17/how-to-show-you-dont-get-it</id>
    <content type="html">&lt;p&gt;In todays edition of all things gossipy in IT Sweden, aka Computer Sweden,
swedish union SIF manages to make complete fools of themselves. They actually
attach a physical CD to an ad supposedly containing their latest tv ads. Filmed
by famous-in-Sweden director Felix Herngren no less &amp;ndash; it says so on the cover.&lt;/p&gt;

&lt;p&gt;SIF just spent a lot of money saying that they basically have no clue how
modern communication is done (YouTube comes to mind) or that they from an
environmental point of view do not mind some 50 000 cd&amp;rsquo;s thrown away.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/B8B3EyeSriw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/09/17/how-to-show-you-dont-get-it</feedburner:origLink></entry>
  
  <entry>
    <title>VimPress</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Q7QCWq3VeGY/vimpress" />
    <updated>2007-08-23T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/08/23/vimpress</id>
    <content type="html">&lt;p&gt;Trying out the VimPress plugin, posting directly from Vim. Seems
really sweet.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Q7QCWq3VeGY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/08/23/vimpress</feedburner:origLink></entry>
  
  <entry>
    <title>Me, an Ipod addict</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/cdfpzA7Xnrs/me-an-ipod-addict" />
    <updated>2007-07-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/07/28/me-an-ipod-addict</id>
    <content type="html">&lt;p&gt;My name is Marcus Ahnve and I am an iPod addict.&lt;/p&gt;

&lt;p&gt;My iPod died on me the other day. That is when I realized that I am
an addict. I got physically cold and I immediately realized that my
next subway ride would be iPod less. I cannot ride the subway
without an iPod.&lt;/p&gt;

&lt;p&gt;I had plans for this iPod. We were going to spend the fall and
winter together, waiting for the iPhone to reach this dark corner
of the world sometime next spring. Now I was left alone with no one
to turn to.&lt;/p&gt;

&lt;p&gt;There are currently two iPods on my desk. I still have the old one
as I just can&amp;rsquo;t let go yet, the other one is a 8GB iPod Nano. No
moving parts this time, and the option to buy the Nike+ kit, which
isn&amp;rsquo;t available for the iPhone anyway. I feel better, I will be
able to ride the subway again.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/cdfpzA7Xnrs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/07/28/me-an-ipod-addict</feedburner:origLink></entry>
  
  <entry>
    <title>Mercurial and 3G - hg pull in the middle of nowhere</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/5llnPelDFsg/mercurial-and-3g-hg-pull-in-the-middle-of-nowhere" />
    <updated>2007-07-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/07/25/mercurial-and-3g-hg-pull-in-the-middle-of-nowhere</id>
    <content type="html">&lt;p&gt;I am currently on my way home from northern Dalecarlia, and I am making full
use of the 3G card. I had received a couple of update mails from our central
Mercurial repo, so I tried to do an &amp;lsquo;hg pull&amp;rsquo;, and expected it to take a while.
Lo and behold, I got all changesets within 15 seconds! This says a lot about
Mercurials protocol, as the reception was so-so; no surprise as we are driving
here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/896381927/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1095/896381927_98c2f20073_m.jpg" alt="Driving between SÃ¤rna and Ã„lvdalen" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/5llnPelDFsg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/07/25/mercurial-and-3g-hg-pull-in-the-middle-of-nowhere</feedburner:origLink></entry>
  
  <entry>
    <title>The correct Telenor Mac downloads</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Nzr2mC9Po2I/the-correct-telenor" />
    <updated>2007-07-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/07/17/the-correct-telenor</id>
    <content type="html">&lt;p&gt;I signed up for a two year plan for mobile 3G internet from Telenor, which also
happens to be my current cellular carrier. Their current offer is really good,
SEK 200 a month, fixed price.&lt;/p&gt;

&lt;p&gt;However, the link they provide to download drivers for Mac points
to an old version which does not install on my machine. To get the
latest and greatest. go to
&lt;a href="http://www.option.com/support/globetrotter_ql/ql_downloads.shtml"&gt;Option: wireless technology&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Never mind. Globetrotter Connect is truly useless. I gave up and
purchased Launch2Net, very expensive but it just works.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Nzr2mC9Po2I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/07/17/the-correct-telenor</feedburner:origLink></entry>
  
  <entry>
    <title>Domain lost and found</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/p5GT7UPIGfM/domain-lost-and-found" />
    <updated>2007-07-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/07/17/domain-lost-and-found</id>
    <content type="html">&lt;p&gt;I accidentally found out that all ahnve.* domains where down today. It has been
three years since I last renewed them, so I had forgotten all about it. The big
problem was that the contact emails where being sent to an old address, so I
never got the warnings I assume GoDaddy sent out.&lt;/p&gt;

&lt;p&gt;According to Feedburner, some people have tried to reach the site and failed,
sorry about that. It is all good now. But I got quite a scare as we are about
to go on vacation, which will make me internetless.&lt;/p&gt;

&lt;p&gt;And as any good subscriber of the &lt;a href="http://geekbriefwp.podshow.com/"&gt;GeekBrief&lt;/a&gt;,
I used Calis promocode for a 10% rebate &amp;ndash; woohoo.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/p5GT7UPIGfM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/07/17/domain-lost-and-found</feedburner:origLink></entry>
  
  <entry>
    <title>RubyOSA</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9XHhfjz35c0/rubyosa" />
    <updated>2007-06-27T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/06/27/rubyosa</id>
    <content type="html">&lt;p&gt;&lt;a href="http://maczealots.com/tutorials/rubyosa/"&gt;This tutorial on RubyOSA&lt;/a&gt; is great. I have never got around to
learn AppleScript, and now it seems like I never will.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9XHhfjz35c0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/06/27/rubyosa</feedburner:origLink></entry>
  
  <entry>
    <title>211</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dNXT2du0MCU/211" />
    <updated>2007-06-27T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/06/27/211</id>
    <content type="html">
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dNXT2du0MCU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/06/27/211</feedburner:origLink></entry>
  
  <entry>
    <title>Steve Jobs and Agile</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/XA73QRmsmRk/steve-jobs-and-agile" />
    <updated>2007-06-22T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/06/22/steve-jobs-and-agile</id>
    <content type="html">&lt;p&gt;I was listening to the podcast of the interview with Steve Jobs and Bill Gates,
and this one thing struck me. When asked to predict the future, Bill Gates
provided some insightful guesses, while Steve Jobs simply answered &amp;ldquo;I don&amp;rsquo;t
know&amp;rdquo;. Twice. Steve&amp;rsquo;s explanation was that five years ago he would not have
predicted what we have today, so therefore he does not trust himself to say
what the next five years will look like.&lt;/p&gt;

&lt;p&gt;I have &lt;a href="http://marcus.ahnve.net/2006/08/15/early-extreme-programming-the-original-mac-team/"&gt;previously&lt;/a&gt; spotted Apple to be early agilists,
and Steve&amp;rsquo;s position here enforces my claim.&lt;/p&gt;

&lt;p&gt;One important aspect of grasping agile in my mind is to accept the fact that
you cannot predict the unpredictable. Instead of making detailed plans to
support the illusion that you know what is going to happen, you say &amp;ldquo;I don&amp;rsquo;t
know&amp;rdquo;, but then let that knowledge, that you actually &lt;em&gt;do not know&lt;/em&gt; be the base
for how you approach your work.&lt;/p&gt;

&lt;p&gt;I have many times been faced with the quest of predicting the future, &amp;ldquo;how long
will it take?&amp;rdquo;. As I have become more experienced I have learned to say &amp;ldquo;I
don&amp;rsquo;t know&amp;rdquo;, of course at the same time offering an alternative iterative
approach that will eventually provide knowledge for better estimation.
Sometimes that is not a popular answer, and the question is forwarded to
someone who will answer it. Of course, they do not know, but the illusion of
control is very powerful, so their answer is better received.&lt;/p&gt;

&lt;p&gt;I guess that many CEO are pressed to predict the future, by employees, share
holders etc. And many times they probably provide an answer that they
themselves do not believe in. It appears to me that Steve Jobs does not fall
into that category.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/XA73QRmsmRk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/06/22/steve-jobs-and-agile</feedburner:origLink></entry>
  
  <entry>
    <title>Markdown</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FZZiNSNLrjk/markdown" />
    <updated>2007-06-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/06/16/markdown</id>
    <content type="html">&lt;p&gt;I finally got around to installing the Markdown plugin for
Wordpress, which I really should have done earlier.&lt;/p&gt;

&lt;p&gt;Markdown is my favorite text format, clean and readable. Read up on
the &lt;a href="http://daringfireball.net/projects/markdown/syntax"&gt;Markdown syntax&lt;/a&gt; to understand why.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FZZiNSNLrjk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/06/16/markdown</feedburner:origLink></entry>
  
  <entry>
    <title>Not speaking at RailsConf Europe</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9DOi7S10WtU/not-speaking-at-railsconf-europe" />
    <updated>2007-06-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/06/15/not-speaking-at-railsconf-europe</id>
    <content type="html">&lt;p&gt;I just got a mail confirming that I will not speak at RailsConf
Europe this fall. I had submitted a proposal named &amp;ldquo;Version Control
in Rails using Mercurial&amp;rdquo; which was going to show the benefits of
using a distributed version control system when developing a Rails
app. My opening line would have been &amp;ldquo;Hi, I am Marcus and I have
been Subversion free for six months&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;For some weird reason, so many people in the Rails community &amp;ndash; and
the open source community as whole &amp;ndash; still talk about Subversion as
something great. It is not. Subversion is decent at best if you are
comfortable knowing that you are using second or third best tools,
but believe me, it is a crap choice knowing the alternatives in
distributed version control.&lt;/p&gt;

&lt;p&gt;I really wanted to point all this out to the a larger audience so
that we maybe will move beyond the Subversion centric mess which is
the Rails community today. Oh well, maybe next year.&lt;/p&gt;

&lt;p&gt;For a very entertaining and opinionated view on version control
systems, watch
&lt;a href="http://www.youtube.com/watch?v=4XpnKHJAok8"&gt;Linus Torvalds most awesome presentation on Git at Google.&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9DOi7S10WtU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/06/15/not-speaking-at-railsconf-europe</feedburner:origLink></entry>
  
  <entry>
    <title>Stockholm is not Portland</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dvPzDukXZlQ/stockholm-is-not-portland" />
    <updated>2007-05-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/05/18/stockholm-is-not-portland</id>
    <content type="html">&lt;p&gt;Sitting in Stockholm reading blogs, it feels like being home on a
friday night knowing that there is
&lt;a href="http://conferences.oreillynet.com/rails/" title="RailsConf 2007 • May 17, 2007 - May 20, 2007 • Portland, Oregon"&gt;a great party&lt;/a&gt;
going on and you are not going.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dvPzDukXZlQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/05/18/stockholm-is-not-portland</feedburner:origLink></entry>
  
  <entry>
    <title>Ruby DSL's vs YAML vs XML</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/DHVR0Gs_Epg/ruby-dsls-vs-yaml-vs-xml" />
    <updated>2007-05-14T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/05/14/ruby-dsls-vs-yaml-vs-xml</id>
    <content type="html">&lt;p&gt;I am using Ruby based DSL&amp;rsquo;s for a number of tasks in my current
project. But one day it struck me &amp;ndash; am I using the right tool for
the job, could there be a better, more simple solution?&lt;/p&gt;

&lt;p&gt;Some DSL&amp;rsquo;s I use are simply declarative and look something like
this:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="n"&gt;quiz&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Let&amp;#39;s ask stuff&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt;   &lt;span class="n"&gt;question&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;What is 1+1?&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:correct&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;3&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt;   &lt;span class="n"&gt;question&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Vad is 2+3&amp;quot;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Infinity&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Don&amp;#39;t know&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt;     &lt;span class="n"&gt;alternative&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;5&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:correct&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;I find that quite readable, but it requires me to maintain code
that handle the DSL. So I figured, what if I used YAML? It is
simple, and using it would mean less code to maintain.&lt;/p&gt;

&lt;p&gt;After doing some experimenting, this is what I came up with:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="yaml"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;quiz&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;Let&amp;#39;s ask stuff&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;questions&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt;   &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt;     &lt;span class="l-Scalar-Plain"&gt;question&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;What is 1+1&lt;/span&gt; 
&lt;span class="lineno"&gt; 5&lt;/span&gt;     &lt;span class="l-Scalar-Plain"&gt;alternatives&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;2&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;correct&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt; 
&lt;span class="lineno"&gt;10&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;3&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt;   &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt;     &lt;span class="l-Scalar-Plain"&gt;question&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;What is 2+3&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt;     &lt;span class="l-Scalar-Plain"&gt;alternatives&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt;15&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;1&lt;/span&gt;
&lt;span class="lineno"&gt;16&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt;17&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Infinity&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt;18&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt;19&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Don&amp;#39;t&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;know&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt;20&lt;/span&gt;       &lt;span class="p-Indicator"&gt;-&lt;/span&gt;
&lt;span class="lineno"&gt;21&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;text&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;5&lt;/span&gt;
&lt;span class="lineno"&gt;22&lt;/span&gt;         &lt;span class="l-Scalar-Plain"&gt;correct&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;In my opinion, the YAML is not as readable as the Ruby DSL. I also
find it more error prone as those dashes are sort of tricky.&lt;/p&gt;

&lt;p&gt;XML?&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="xml"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;quiz&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Let&amp;#39;s ask stuff&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;questions&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt;   &lt;span class="nt"&gt;&amp;lt;question&lt;/span&gt; &lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;What is 1 +1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; 
&lt;span class="lineno"&gt; 4&lt;/span&gt;     &lt;span class="nt"&gt;&amp;lt;alternatives&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt;       &lt;span class="nt"&gt;&amp;lt;alternative&lt;/span&gt; &lt;span class="na"&gt;correct=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt;       &lt;span class="nt"&gt;&amp;lt;alternative&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt;     &lt;span class="nt"&gt;&amp;lt;/alternatives&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt;   &lt;span class="nt"&gt;&amp;lt;/question&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;   &lt;span class="nt"&gt;&amp;lt;question&lt;/span&gt; &lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;What is 2+3&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt;     &lt;span class="nt"&gt;&amp;lt;alternatives&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt;       &lt;span class="nt"&gt;&amp;lt;alternative&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt;       &lt;span class="nt"&gt;&amp;lt;alternative&amp;gt;&lt;/span&gt;Infinity&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt;       &lt;span class="nt"&gt;&amp;lt;alternative&amp;gt;&lt;/span&gt;Don&amp;#39;t know&amp;#39;&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt;        &lt;span class="nt"&gt;&amp;lt;alternative&lt;/span&gt; &lt;span class="na"&gt;correct=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/alternative&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;15&lt;/span&gt;     &lt;span class="nt"&gt;&amp;lt;/alternatives&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;16&lt;/span&gt;   &lt;span class="nt"&gt;&amp;lt;/question&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;17&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/questions&amp;gt;&lt;/span&gt;
&lt;span class="lineno"&gt;18&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;/quiz&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;With the correct schema, errors can be avoided, but it is just too
much text in there, it gets heavy and verbose.&lt;/p&gt;

&lt;p&gt;The verdict was to stay with the Ruby DSL&amp;rsquo;s &amp;ndash; their readability and
flexibility are well worth the effort of maintaining a separate
parser &amp;ndash; which is quite short really.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/DHVR0Gs_Epg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/05/14/ruby-dsls-vs-yaml-vs-xml</feedburner:origLink></entry>
  
  <entry>
    <title>Rails, PostgreSQL and Time</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/LS9XS8YuiSk/rails-postgresql-and-time" />
    <updated>2007-05-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/05/09/rails-postgresql-and-time</id>
    <content type="html">&lt;p&gt;I just noticed that the mapping between PostgreSQL&amp;rsquo;s Time Without
TimeZone column type maps to Rubys standard Time class. Which gives
the following behavior in script/console:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TimeEntry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Sat&lt;/span&gt; &lt;span class="no"&gt;Jan&lt;/span&gt; &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;00&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Wed&lt;/span&gt; &lt;span class="no"&gt;May&lt;/span&gt; &lt;span class="mi"&gt;09&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;07&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0200&lt;/span&gt; &lt;span class="mi"&gt;2007&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;TimeEntry&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Sat&lt;/span&gt; &lt;span class="no"&gt;Jan&lt;/span&gt; &lt;span class="mo"&gt;01&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;02&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mo"&gt;07&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mo"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;2000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Am I very anal to find this &amp;hellip; sloppy?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/LS9XS8YuiSk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/05/09/rails-postgresql-and-time</feedburner:origLink></entry>
  
  <entry>
    <title>Neal Ford: Static Typing is Communist Bureaucracy</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Qsm0Jtd4uvI/neal-ford-static-typing-is-communist-bureaucracy" />
    <updated>2007-05-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/05/09/neal-ford-static-typing-is-communist-bureaucracy</id>
    <content type="html">&lt;p&gt;Last time I quoted Neal I for some reason ended up on TheServerSide
&amp;ndash; why they did not link to Neal directly is beyond me. Oh well, he
is obviously on a roll, I totally love this one:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://memeagora.blogspot.com/2007/05/strong-typing-is-communist-bureaucracy.html"&gt;Static Typing is Communist Bureaucracy&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com/"&gt;Planet TW&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Qsm0Jtd4uvI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/05/09/neal-ford-static-typing-is-communist-bureaucracy</feedburner:origLink></entry>
  
  <entry>
    <title>Why the Term 'Architect' Doesn't Cut It Anymore</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qR1asMuyRy8/why-the-term-architect-doesnt-cut-it-anymore" />
    <updated>2007-04-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/30/why-the-term-architect-doesnt-cut-it-anymore</id>
    <content type="html">&lt;p&gt;Some time ago, there was a lengthy debate on the Agile Sweden
mailing list regarding the term &amp;ldquo;Architect&amp;rdquo;, and what it means. My
position is that the term has become synonymous with the paper or
PowerPoint architect, and I therefore try to stay clear of it.
Other people haad other opinions.&lt;/p&gt;

&lt;p&gt;Neal Ford has changed his title, and describes why in a brilliant
way:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://memeagora.blogspot.com/2007/04/from-architect-to-wrangler.html"&gt;Neal Ford: From Architect to Wrangler&lt;/a&gt;:
[&amp;hellip;] &amp;ldquo;The title of &amp;lsquo;Architect&amp;rsquo; for software developers has gotten
so diluted that its meaningless anymore. In fact, its almost
pejorative because so many &amp;lsquo;paper&amp;rsquo; architects give it a bad name.
I&amp;rsquo;ve gotten &amp;lsquo;Oh, dude, I&amp;rsquo;m so sorry&amp;rsquo; looks from people when I tell
them I&amp;rsquo;m an architect, assuming that I&amp;rsquo;ve had a head injury or
something and can&amp;rsquo;t do real development work anymore.&lt;/p&gt;

&lt;p&gt;[&amp;hellip;] It&amp;rsquo;s a shame that, because we have no real industry-wide
certifications, the nominally most advanced title has been co-opted
by so many people divorced from reality. I&amp;rsquo;ve had to defend
decisions made for SOA initiatives in front of &amp;lsquo;Architectural
Review Boards&amp;rsquo; by people who last wrote code in COBOL. Can they
really make good decisions about modern technology if they never
touch it?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com/"&gt;Planet TW&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qR1asMuyRy8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/30/why-the-term-architect-doesnt-cut-it-anymore</feedburner:origLink></entry>
  
  <entry>
    <title>has_many :through and callbacks</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/BPWZOu_KUCg/has_many-through-and-callbacks" />
    <updated>2007-04-27T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/27/has_many-through-and-callbacks</id>
    <content type="html">&lt;p&gt;Reading
&lt;a href="http://www.archivesat.com/Ruby_on_rails_core/thread1945927.htm"&gt;this&lt;/a&gt;
a little bit earlier would have saved me a lot of time. In short:
callbacks such as &lt;code&gt;:before_add&lt;/code&gt; does not work with
&lt;code&gt;has_many :through&lt;/code&gt;, and the documentation does not tell you that.
To get callbacks, add them to the join model.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/BPWZOu_KUCg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/27/has_many-through-and-callbacks</feedburner:origLink></entry>
  
  <entry>
    <title>RSpec, Autotest and views</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/3X9smRPRqN0/rspec-autotest-and-views" />
    <updated>2007-04-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/17/rspec-autotest-and-views</id>
    <content type="html">&lt;p&gt;The current incarnation of autotest seems to assume that you are
using integrated views. If not, you can modify the
rspec_rails_autotest.rb file to run the view specs as well:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;# when %r%^app/views/layouts/(.*)\.rhtml% then&lt;/span&gt;
&lt;span class="lineno"&gt;2&lt;/span&gt; &lt;span class="c1"&gt;#   [&amp;quot;spec/views/layouts/#{$1}_spec.rb&amp;quot;]&lt;/span&gt;
&lt;span class="lineno"&gt;3&lt;/span&gt; &lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="sr"&gt;%r%^app/views/(.*)\.rhtml$%&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="lineno"&gt;4&lt;/span&gt;   &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;spec/views/&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vg"&gt;$1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_view_spec.rb&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Your view spec must be postfixed with &amp;ldquo;_view_spec.rb&amp;rdquo; for it to
work&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update&lt;/em&gt; This works out of the box now.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/3X9smRPRqN0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/17/rspec-autotest-and-views</feedburner:origLink></entry>
  
  <entry>
    <title>Another Mercurial Convert</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Th4P_qddeiI/another-mercurial-convert" />
    <updated>2007-04-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/17/another-mercurial-convert</id>
    <content type="html">&lt;p&gt;&lt;a href="http://pablotron.org/"&gt;Paul Duncan&lt;/a&gt; is another Mercurial convert,
and explains his choice of VCS
&lt;a href="http://pablotron.org/?cid=1524"&gt;very well&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Th4P_qddeiI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/17/another-mercurial-convert</feedburner:origLink></entry>
  
  <entry>
    <title>Autotest 3.5.0 and Growl</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/3gPUG1-RlEw/autotest-350-and-growl" />
    <updated>2007-04-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/13/autotest-350-and-growl</id>
    <content type="html">&lt;p&gt;Autotest 3.5.0 is out, and the result given from Autotest is no
longer a String, it&amp;rsquo;s an array of strings. So if you still want
Growl to function properly just modify the .autotest slightly:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Autotest::Growl&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt;   &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;growl&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt; 
&lt;span class="lineno"&gt; 3&lt;/span&gt;     &lt;span class="nb"&gt;system&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;growlnotify -n autotest --image &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -p &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pri&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -m &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;stick&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="lineno"&gt; 4&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; 
&lt;span class="lineno"&gt; 6&lt;/span&gt;   &lt;span class="no"&gt;Autotest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_hook&lt;/span&gt; &lt;span class="ss"&gt;:ran_command&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt;     &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/(\d+)\s.*specifications?,\s(\d+)\s.*failures?/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt;     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/[1-9]\sfailures?/&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;       &lt;span class="n"&gt;growl&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Test Results&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;~/Library/autotest/rails_fail.png&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="c1"&gt;#, &amp;quot;-s&amp;quot; &lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt;     &lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt;       &lt;span class="n"&gt;growl&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Test Results&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;~/Library/autotest/rails_ok.png&amp;#39;&lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt;     &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/3gPUG1-RlEw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/13/autotest-350-and-growl</feedburner:origLink></entry>
  
  <entry>
    <title>Google issue solved</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/LxKOssrAgmA/google-issue-solved" />
    <updated>2007-04-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/11/google-issue-solved</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve previously mentioned that I&amp;rsquo;ve unsuccessfully tried to migrate
my personal domain to Google Apps. I also blamed Google for it not
working. I was wrong.&lt;/p&gt;

&lt;p&gt;It seems that Textdrive has some nifty Apache security going on
which denies the Jakarta HttpClient to connect, returning a &amp;ldquo;412 &amp;ndash;
Precondition Failed&amp;rdquo;. Big thanks to
&lt;a href="http://weblog.netinlet.com/articles/2007/3/28/google-apps-html-verify-takes-a-long-time"&gt;Doug&lt;/a&gt;
for finding this out.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/LxKOssrAgmA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/11/google-issue-solved</feedburner:origLink></entry>
  
  <entry>
    <title>Any Damn Fool</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/CLg83dfTJkE/any-damn-fool" />
    <updated>2007-04-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/04/11/any-damn-fool</id>
    <content type="html">&lt;p&gt;Tim Bray is my hero of the day. So many other people would defend
their brainchild, especially a world conquering one, in any
situation but Tim clearly stands above such behavior.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2007/04/08/James-Clark"&gt;Any Damn Fool&lt;/a&gt;:
&amp;ldquo;&amp;hellip; we designed XML as a document format. When the world gleefully
seized upon it as a data-packaging/RPC tool, that was OK, but I
doubt you could get any of XML’s original designers to disagree
with the statement that JSON, for example, has all sorts of
advantages for wrapping up short-lived strongly-typed data.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://www.tbray.org/ongoing/"&gt;ongoing&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/CLg83dfTJkE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/04/11/any-damn-fool</feedburner:origLink></entry>
  
  <entry>
    <title>RSpec and Autotest</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/SdOgMUrEim4/rspec-and-autotest" />
    <updated>2007-03-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/03/30/rspec-and-autotest</id>
    <content type="html">&lt;p&gt;I am getting all parts of my Rails development environment settled.
In addition to vanilla Rails, I am currently using RSpec, Selenium
and Autotest. I am seriously considering Haml and Sass as well.&lt;/p&gt;

&lt;p&gt;When googling arounf to learn more about Autotest, I realized that
people are using together with Growl. It works out-of-the-box with
Test::Unit, but RSpec needs a little tweaking. I took the basics
from
&lt;a href="http://blog.internautdesign.com/2006/11/12/autotest-growl-goodness"&gt;here&lt;/a&gt;
and modified to my liking. The following is what my .autotest looks
like.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="nn"&gt;Autotest::Growl&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt;   &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;growl&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pri&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt; 
&lt;span class="lineno"&gt; 3&lt;/span&gt;     &lt;span class="nb"&gt;system&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;growlnotify -n autotest --image &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -p &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;pri&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -m &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;stick&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="lineno"&gt; 4&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; 
&lt;span class="lineno"&gt; 6&lt;/span&gt;   &lt;span class="no"&gt;Autotest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_hook&lt;/span&gt; &lt;span class="ss"&gt;:ran_command&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt;     &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;at: &amp;#39;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#39;&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt;     &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/(\d+)\s.*specifications?,\s(\d+)\s.*failures?/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;     &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;out: &lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt;     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="sr"&gt;/[1-9]\sfailures?/&lt;/span&gt;
&lt;span class="lineno"&gt;11&lt;/span&gt;       &lt;span class="n"&gt;growl&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Test Results&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;~/Library/autotest/rails_fail.png&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="c1"&gt;#, &amp;quot;-s&amp;quot; &lt;/span&gt;
&lt;span class="lineno"&gt;12&lt;/span&gt;     &lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="lineno"&gt;13&lt;/span&gt;       &lt;span class="n"&gt;growl&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Test Results&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;~/Library/autotest/rails_ok.png&amp;#39;&lt;/span&gt;
&lt;span class="lineno"&gt;14&lt;/span&gt;     &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt;15&lt;/span&gt;   &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="lineno"&gt;16&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/SdOgMUrEim4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/03/30/rspec-and-autotest</feedburner:origLink></entry>
  
  <entry>
    <title>Spring Is In the Air</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/QRpUhR4BJi0/spring-is-in-the-air" />
    <updated>2007-03-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/03/13/spring-is-in-the-air</id>
    <content type="html">&lt;p&gt;Spring surprised us early this year, so we are currently blessed
with a mild 10ºC. As everyone who has ever experienced it knows,
the early days of spring after the long dark winter are just
wonderful&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/420145785/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/179/420145785_06b2069d88.jpg" alt="stockholm_20070313.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The photo is taken with my SE K610i, and stitched together with
&lt;a href="http://echoone.com/doubletake/"&gt;DoubleTake&lt;/a&gt;, which deserves a
mentioning. I noticed today that I had lost my license for it, so I
sent an email to EchoOne explaining the situation. I got a reply
with my license within 4 hours. Great stuff.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/QRpUhR4BJi0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/03/13/spring-is-in-the-air</feedburner:origLink></entry>
  
  <entry>
    <title>Google Apps - Heaven and Hell</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/N7XhMjhpyLQ/google-apps-heaven-and-hell" />
    <updated>2007-03-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/03/13/google-apps-heaven-and-hell</id>
    <content type="html">&lt;p&gt;We&amp;rsquo;re using Google Apps at Re:mind which is really, really great.
So great in fact that I wanted to move my private mail there as
well. So after setting the domain up, I created the webpage that
was needed for domain activation, put it on my server, clicked the
&amp;ldquo;verify my domain&amp;rdquo;, and got the usual &amp;ldquo;this may take 48 hours to
complete&amp;rdquo;&lt;/p&gt;

&lt;p&gt;It has now been almost two weeks or something like 300 hours,
slightly more than 48. I have sent Google a support email asking
what is happening, but I have yet not received an answer. To that
mail that is&lt;/p&gt;

&lt;p&gt;You see, today I got this mail:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Hello Marcus, You&amp;rsquo;ve been invited to use Google Apps for ahnve.com,
but we noticed that you haven&amp;rsquo;t started using any services yet. To
activate Gmail, Google Calendar, Page Creator or the new start
page, log in to the control panel with your administrative account.
At any time, if you get stuck or if you want to tell us about your
experience with this service, you can find more information and get
in touch through our help center
(https://www.google.com/support/a). To make room for other domains,
we will remove ahnve.com from our system if you don&amp;rsquo;t activate any
of these services in the next two weeks. If you need more time,
just click this link: [link] and we&amp;rsquo;ll extend the deadline to 30
days from now. Alternatively, you can sign up again at a later date
when you&amp;rsquo;re ready to use the service. Sincerely The Google Team&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Now, isn&amp;rsquo;t that ironic?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/N7XhMjhpyLQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/03/13/google-apps-heaven-and-hell</feedburner:origLink></entry>
  
  <entry>
    <title>New Job in Startup Land</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/o88Qel799RM/new-job-in-startup-land" />
    <updated>2007-02-27T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/27/new-job-in-startup-land</id>
    <content type="html">&lt;p&gt;I almost forgot to mention it, but I have a new job. Again some
might say.&lt;/p&gt;

&lt;p&gt;After being a consultant for 1.5 years with
&lt;a href="http://www.valtech.se"&gt;Valtech Sweden&lt;/a&gt;, I am back in startup land.
This time it is really, really startup. We registered our domain
last friday, we do not have a web site yet, we are all sitting in
one room on broken chairs. Ok, one broken chair. Mine is actually
the good one.&lt;/p&gt;

&lt;p&gt;It has only been three days, but boy, it is a lot of fun. The fact
that you get to call all of the shots means that you can have
things just the way you want them.&lt;/p&gt;

&lt;p&gt;I look forward to this spring with a sense of excitement, that I
will be part of building something that actually means something to
me. That means a lot.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/o88Qel799RM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/27/new-job-in-startup-land</feedburner:origLink></entry>
  
  <entry>
    <title>Mercurial Is My New Favorite VCS</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/iVb-bNUoPDM/mercurial-is-my-new-favorite-vcs" />
    <updated>2007-02-23T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/23/mercurial-is-my-new-favorite-vcs</id>
    <content type="html">&lt;p&gt;I am starting a new development project where I will do a lot of
coding myself, at least initially. There will most probably be
times when I have to work offline &amp;ndash; perhaps a litte evening coding
while at vacation with my family, definitely the days when I am
home because the kids cannot be at kindergarten.&lt;/p&gt;

&lt;p&gt;So I had this initial thought &amp;ndash; can I make a offline copy of the
Subversion repository, make changes to it and merge it back when I
come online again?&lt;/p&gt;

&lt;p&gt;It turns out that there are solutions for doing that &amp;ndash; namely
&lt;a href="http://svk.bestpractical.com/"&gt;SVK&lt;/a&gt; and
&lt;a href="http://search.cpan.org/dist/SVN-Mirror/"&gt;svn-mirror&lt;/a&gt;. However,
while searching I around I also realized that there had been a
revolution in the VCS world, and no one told me.&lt;/p&gt;

&lt;p&gt;In the wake of
&lt;a href="http://kerneltrap.org/node/4966"&gt;the BitKeeper mishap&lt;/a&gt;, it appears
that several groups of people found it their mission to create the
next great distributed versioning system. These days we have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://bazaar-vcs.org/"&gt;Baazar-ng&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.abridgegame.org/darcs/"&gt;Darcs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.selenic.com/mercurial/"&gt;Mercurial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.venge.net/monotone/"&gt;Monotone&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;These seem to the more prominent ones, but I am sure you can dig up
a few that I have missed.&lt;/p&gt;

&lt;p&gt;To make a long story short, I have decided to use Mercurial for my
next development effort. In fact I am using Mercurial for
versioning all my files. It is ridiculously simple to set up
versioning for an existing folder (&lt;code&gt;hg init; hg add&lt;/code&gt;) so there is
simply no reason not to.&lt;/p&gt;

&lt;p&gt;To learn more, I recommend reading
&lt;a href="http://better-scm.berlios.de/comparison/comparison.html"&gt;this&lt;/a&gt;,
&lt;a href="http://www.ligarto.org/rdiaz/VersionControl.html"&gt;this&lt;/a&gt; and
&lt;a href="http://changelog.complete.org/posts/528-Whose-Distributed-VCS-Is-The-Most-Distributed.html"&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/iVb-bNUoPDM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/23/mercurial-is-my-new-favorite-vcs</feedburner:origLink></entry>
  
  <entry>
    <title>Exchange Love</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/cQJiiesJ9-4/exchange-love" />
    <updated>2007-02-23T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/23/exchange-love</id>
    <content type="html">&lt;p&gt;This is funny if you understand Swedish:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/399735363/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/149/399735363_8dfff418d5_o.png" alt="Funny Exchange Mail" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/cQJiiesJ9-4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/23/exchange-love</feedburner:origLink></entry>
  
  <entry>
    <title>When It Just Doesn't Work</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/1e512oGbKNQ/when-it-just-doesnt-work" />
    <updated>2007-02-22T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/22/when-it-just-doesnt-work</id>
    <content type="html">&lt;p&gt;When everyone else is writing songs about their love for GMail, I
am reverting to old school mutt. It is simply the fastest way to
read and manage large amounts of mail (The Rails mailing list comes
to mind).&lt;/p&gt;

&lt;p&gt;However, the default install did not work out for me, it mishandled
international characters and formatting which made it unusable.
After trying a bunch of options it finally came down to this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;port install mutt-devel -ncurses -pop -imap&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, of course pop and imap had nothing to do with it, but I am
using the most excellent offlineimap so I do not need them.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/1e512oGbKNQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/22/when-it-just-doesnt-work</feedburner:origLink></entry>
  
  <entry>
    <title>Gourmet Web Hosting</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/VZnZiTWq2oo/gourmet-web-hosting" />
    <updated>2007-02-22T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/22/gourmet-web-hosting</id>
    <content type="html">&lt;p&gt;I am trawling for a hosting company and came across this gem of a
web page:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/398810303/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/129/398810303_086c6a8864_m.jpg" alt="Gourmet Web Host" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The page won&amp;rsquo;t load at all if Javascript is disabled, has no
doctype, won&amp;rsquo;t render umlauts in Firefox on Mac (and this is
Sweden, we actually use them.)&lt;/p&gt;

&lt;p&gt;The final nail in the coffin is that it states &amp;ldquo;Web hosting for
gourmets&amp;rdquo;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/VZnZiTWq2oo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/22/gourmet-web-hosting</feedburner:origLink></entry>
  
  <entry>
    <title>A Fresh View On Printing</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/v3X9suxgW98/a-fresh-view-on-printing" />
    <updated>2007-02-19T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/19/a-fresh-view-on-printing</id>
    <content type="html">&lt;p&gt;My three year old son just managed to print something of the
Backyardigans web site and yelled out &amp;ldquo;Dad! We got mail!&amp;rdquo;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/v3X9suxgW98" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/19/a-fresh-view-on-printing</feedburner:origLink></entry>
  
  <entry>
    <title>Finally some decent SOA facts</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/ze3BBu6NlIY/finally-some-decent-soa-facts" />
    <updated>2007-02-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/02/15/finally-some-decent-soa-facts</id>
    <content type="html">&lt;p&gt;Given what I have
&lt;a href="http://marcus.ahnve.net/2006/04/17/why-rest-is-good-and-soap-is-evil/"&gt;previously written about SOA&lt;/a&gt;,
I really like these &lt;a href="http://www.soafacts.com"&gt;facts&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/ze3BBu6NlIY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/02/15/finally-some-decent-soa-facts</feedburner:origLink></entry>
  
  <entry>
    <title>Ruby Code Completion in TextMate</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/rb65Ya7obN0/ruby-code-completion-in-textmate" />
    <updated>2007-01-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2007/01/30/ruby-code-completion-in-textmate</id>
    <content type="html">&lt;p&gt;For some reason, there has been very little fuss over the fact that
TextMate now offers code completion for Ruby using the rcodetools
gem. It is all still in svn, so you have to check it out manually.&lt;/p&gt;

&lt;blockquote&gt;&lt;h3&gt;Log for r6455&lt;/h3&gt;

&lt;p&gt;[NEW] The Ruby bundle now includes an rcodetools-backed completion
command on option-escape.  This command is capable of very accurate
completion for any accessible Ruby objects and methods, without
needing to see you type it first (as TextMate&amp;rsquo;s default completion
requires).&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/rb65Ya7obN0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2007/01/30/ruby-code-completion-in-textmate</feedburner:origLink></entry>
  
  <entry>
    <title>Parallels - Crap International Version and Customer Support</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/O3pV5ayLHTc/parallels-crap-international-version-and-customer-support" />
    <updated>2006-12-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/12/14/parallels-crap-international-version-and-customer-support</id>
    <content type="html">&lt;p&gt;Once I got my hands on my new MacBook Pro, I did what mostly
everybody else does &amp;ndash; I bought a copy of Parallels Workstation for
Mac. I need it mainly for running local servers so I can do demos
of server environments etc.&lt;/p&gt;

&lt;p&gt;For various reasons, we (Valtech) bought the license from the local
retailer at the same time as the laptop. Big mistake. You see, if
you buy Parallels from a local retailer in a non-english speaking
country, you get a special, international, version. This version is
not downloadable from the site, and has it&amp;rsquo;s own line of activation
keys, so you cannot use the regular downloads from the site.&lt;/p&gt;

&lt;p&gt;Now, that should not be a problem, should it? Well, it is. To make
a long story short, I could not get the fine feature of NAT
networking going. I did all the huffs and puffs of uninstalling,
restarting etc, but to no avail. At the same time, the regular
version worked swimmingly, apart from the fact that it would not
accept my activation key.&lt;/p&gt;

&lt;p&gt;So, I figured it was time to contact Parallels support. My idea was
that due to the reasons above I could trade my malfunctioning
international activation key for a working regular one. I mean, I
had paid for their product and could prove it by sending the key I
had.&lt;/p&gt;

&lt;p&gt;Enter the Kafka world of Parallels customer support. I have to date
sent them eight emails with an ever increasing level of anger. The
first replies misunderstood my request, thought that I had lost my
key and offered me tips on how to get that back. When I finally got
my point across Parallels stopped replying. I had to send two more
emails to get an answer. They now understood the nature of my
request but there was nothing they could do about it. Instead I
should take my product back to the local retailer for a refund, and
then buy a new license from Parallels directly.&lt;/p&gt;

&lt;p&gt;The local retailer &lt;a href="http://www.macoteket.se"&gt;Macoteket&lt;/a&gt; referred to
the swedish importer who will not return calls or emails. And
Parallels still won&amp;rsquo;t give me a new key.&lt;/p&gt;

&lt;p&gt;The moral of the story is: if you are about to buy Parallels
Workstation for Mac, make damn sure that you buy the standard
version. The international one is crap, much like their customer
support.&lt;/p&gt;

&lt;p&gt;There should still be hope for &lt;a href="http://www.vmware.com/mac"&gt;VMWare&lt;/a&gt;
on the Mac.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Macoteket eventually refunded our purchase and I rebought
the standard version. Too bad it took so much effort.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/O3pV5ayLHTc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/12/14/parallels-crap-international-version-and-customer-support</feedburner:origLink></entry>
  
  <entry>
    <title>Web vs. Client</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/H0z9KmMhe_c/web-vs-client" />
    <updated>2006-12-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/12/01/web-vs-client</id>
    <content type="html">&lt;p&gt;For a long time, I&amp;rsquo;ve wanted to make the switch and start using
online apps, but there has always been reasons that have kept me
back. It seems that
&lt;a href="http://www.almaer.com/blog/archives/001297.html"&gt;Dion&lt;/a&gt; and I share
the same opinion on this one, and he sums up the problem very
well.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/H0z9KmMhe_c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/12/01/web-vs-client</feedburner:origLink></entry>
  
  <entry>
    <title>Mail.app and Exchange</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qj_pbTkxSzc/mailapp-and-exchange" />
    <updated>2006-11-27T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/27/mailapp-and-exchange</id>
    <content type="html">&lt;p&gt;If I could ask for one thing in Leopard, it would be the ability to
answer Exchange invitations directly from Mail.app. As it is now, I
either have to use the heavily dysfunctional non-IE Outlook web
interface or fire up Entourage for the sole purpose of clicking
&amp;lsquo;Accept&amp;rsquo;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qj_pbTkxSzc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/27/mailapp-and-exchange</feedburner:origLink></entry>
  
  <entry>
    <title>MBP Core 2 Duo Sweetness</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/RgzqNZ9vCJQ/mbp-core-2-duo-sweetness" />
    <updated>2006-11-22T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/22/mbp-core-2-duo-sweetness</id>
    <content type="html">&lt;p&gt;This is written on a spanking new MacBook Pro, the
&lt;a href="http://www.apple.com/store%20..."&gt;2.33 GHz, 2GB&lt;/a&gt; version. Company
issued, mind you. Now if that is not a good reason to work for
Valtech, I do not know what is.&lt;/p&gt;

&lt;p&gt;The main reason I upgraded from my trusty 1.67 GHz G4 PowerBook was
not speed, it was the possibilities of
&lt;a href="http://www.parallels.com"&gt;Parallels&lt;/a&gt;. I do quite a bit of
evaluating and demoing of server configurations, and having it all
available locally is a complete killer.&lt;/p&gt;

&lt;p&gt;The first virtual install was
&lt;a href="http://buildix.thoughtworks.com"&gt;Buildix&lt;/a&gt; to convince a customer
that Subversion and Trac is a viable platform.&lt;/p&gt;

&lt;p&gt;But of course it is wroooom-fast. Extremely responsive, and &lt;em&gt;not&lt;/em&gt;
hot. I currently have it in my lap &amp;ndash; no problems what so ever.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/RgzqNZ9vCJQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/22/mbp-core-2-duo-sweetness</feedburner:origLink></entry>
  
  <entry>
    <title>Javaforum in Stockholm Wrap Up</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/aZnvxfMeHsU/javaforum-in-stockholm-wrap-up" />
    <updated>2006-11-22T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/22/javaforum-in-stockholm-wrap-up</id>
    <content type="html">&lt;p&gt;I spent yesterday evening at &lt;a href="http://www.javaforum.se"&gt;Javaforum&lt;/a&gt;.
&lt;a href="http://ola-bini.blogspot.com/"&gt;Ola Bini&lt;/a&gt; held a great presentation
of JRuby that really showed what can be accomplished today and what
we can expect in the future.&lt;/p&gt;

&lt;p&gt;Ola is not only an über hacker, he is a great guy too. When asked
what work is done with Ruby in Sweden today, he was kind enough to
mention the work we&amp;rsquo;ve done at Valtech with Rails, which of course
got him a well deserved beer later.&lt;/p&gt;

&lt;p&gt;The guys from Interface 21 did a so-so job presenting Spring AOP. I
might be biased as I
&lt;a href="http://nanning.codehaus.org/"&gt;have been in AOP-land&lt;/a&gt; and left it,
but in my opinion their presentation skills were far better than
the actual content.&lt;/p&gt;

&lt;p&gt;During after-beer Ola and I discussed the state of Java and agreed
that the greatest part of the Java platform is the JVM. It will
most probably survive Java the language and be a platform for a
multitude of languages. It was therefore funny to read
&lt;a href="http://www.sphericalimprovement.com/blogs/mbowler/archives/418-Is-Java-Dead.html"&gt;Mike Bowlers blog post today&lt;/a&gt;
about exactly the same thing.&lt;/p&gt;

&lt;p&gt;All in all a good evening.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/aZnvxfMeHsU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/22/javaforum-in-stockholm-wrap-up</feedburner:origLink></entry>
  
  <entry>
    <title>OK Go</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/JlEE1j0Fajw/ok-go" />
    <updated>2006-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/16/ok-go</id>
    <content type="html">&lt;p&gt;Oh so brilliant.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/typepad/alancfrancis/~3/50052659/quite_the_best_.html"&gt;Alan Francis: Quite the best pop video I&amp;rsquo;ve seen for AGES&lt;/a&gt;:
&amp;ldquo;
&lt;a href="http://www.youtube.com/watch?v=pv5zWaTEVkI&amp;amp;eurl="&gt;OK Go&lt;/a&gt; on
YouTube&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com/alumni/"&gt;Planet TW &amp;ndash; Alumni&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/JlEE1j0Fajw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/16/ok-go</feedburner:origLink></entry>
  
  <entry>
    <title>Enterprisey technology stacks</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Br3Mh07RZ1s/enterprisey-technology-stacks" />
    <updated>2006-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/16/enterprisey-technology-stacks</id>
    <content type="html">&lt;p&gt;Almost all large companies I have come across have some standards
regarding the technology stack that they are using.&lt;/p&gt;

&lt;p&gt;The main reason behind this is economy, that developers should be
able to rotate between projects and that operations should only
have to worry about a limited number of software products.
Something like that anyway&lt;/p&gt;

&lt;p&gt;However nice this seems, it never delivers on its promise. It is
much like the Gantt charts &amp;ndash; looks nice, promises a lot, delivers
zilch. Not counting the enormous upgrade cost when the whole stack
is upgraded after 20 years &amp;ndash; COBOL anyone?&lt;/p&gt;

&lt;p&gt;It is like a bakery standardizing on a given type of flour, salt
and sugar and keeping all ovens at the same temperature, so that
the bakers are familiar with the environment should they start
working in another part of the bakery.&lt;/p&gt;

&lt;p&gt;So you have your chocolate cakes baked using the same ingredients
as your sour dough bread, and of course the whole thing is a mess.
After a while the bakers start changing oven temperatures without
telling anyone &amp;ndash; not out of rebellion but because they have to.
Different cakes are baked in different ways, and software is just
the same.&lt;/p&gt;

&lt;p&gt;There is hope though; I was delighted to read
&lt;a href="http://www.acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=388"&gt;this interview&lt;/a&gt;
with Werner Vogels, CTO of Amazon:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Developers of our services can use any tools they see fit to build
their services. Developers themselves know best which tools make
them most productive and which tools are right for the job. If that
means using C++, then so be it. Whatever tools are necessary, we
provide them, and then get the hell out of the way of the
developers so that they can do their jobs.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That is one man that understands development.&lt;/p&gt;

&lt;p&gt;While writing this,
&lt;a href="http://raibledesigns.com/page/rd?entry=how_do_you_get_open"&gt;Matt&lt;/a&gt;
wonders how to get stuff past the acceptance red tape. I have no
good answer. Guerilla coding is the insubordinate way. Nagging for
a very long time has worked a few times. But I probably lean
towards Alistair Cockburns analogy with the old joke:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Paddy stopped cutting the hedge as the big car drew up beside him
and an English visitor enquired, &amp;ldquo;Could you tell me the way to
Balbriggan, Please?&amp;rdquo; Paddy wiped his brow. &amp;ldquo;Certainly, sor. If you
take the first road to the left… no still that wouldn&amp;rsquo;t do… drive
on for about four miles then turn left at the crossroads… no that
wouldn&amp;rsquo;t do either.&amp;rdquo; Paddy scratched his head thoughtfully. &amp;ldquo;You
know, sor, if I was going to Balbriggan I wouldn&amp;rsquo;t start from here
at all.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Meaning, Matt might be in the wrong place to do what he wants to
do.&lt;/p&gt;

&lt;p&gt;Finally &amp;ndash; if an organization should standardize on something it
should be protocols. HTTP for example. Build it, make it accessible
with external API&amp;rsquo;s, and implement it the way you see fit. Just
like Amazon does it. Loosely coupled large grained components the
way EJB&amp;rsquo;s never were.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Br3Mh07RZ1s" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/16/enterprisey-technology-stacks</feedburner:origLink></entry>
  
  <entry>
    <title>RE: The war is over and Linux won</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/T6WKfvRsv9Q/re-the-war-is-over-and-linux-won" />
    <updated>2006-11-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/14/re-the-war-is-over-and-linux-won</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://blogs.zdnet.com/open-source/?p=837"&gt;At least in the server world, Linux has won.&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Here in Sweden, Microsoft has an inexplicable stronghold, even in
the server room. The last time Craig Larman, Valtechs Chief
Scientist, was here he noted that nowhere did he see as large
proportion of server side windows as in Sweden &amp;ndash; and Denmark.&lt;/p&gt;

&lt;p&gt;I don&amp;rsquo;t know what makes swedes pay for stuff others get for free.
Perhaps the high taxes have made us used to money disappearing?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/T6WKfvRsv9Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/14/re-the-war-is-over-and-linux-won</feedburner:origLink></entry>
  
  <entry>
    <title>The Four Programmers</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/epNJq6btleI/the-four-programmers" />
    <updated>2006-11-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/10/the-four-programmers</id>
    <content type="html">&lt;p&gt;A
&lt;a href="http://undefined.com/ia/2006/11/07/the-four-programmers"&gt;must read&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blog.labnotes.org"&gt;Labnotes&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/epNJq6btleI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/10/the-four-programmers</feedburner:origLink></entry>
  
  <entry>
    <title>Funny Foxtrot</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Sm7aYRNZEQY/funny-foxtrot" />
    <updated>2006-11-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/09/funny-foxtrot</id>
    <content type="html">&lt;p&gt;Todays &lt;a href="http://www.gocomics.com/foxtrot/2006/11/09/"&gt;Foxtrot&lt;/a&gt;
reaches new levels of geekiness :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Sm7aYRNZEQY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/09/funny-foxtrot</feedburner:origLink></entry>
  
  <entry>
    <title>Shuttle Launch Seen From ISS</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/INMPAr2XpW0/shuttle-launch-seen-from-iss" />
    <updated>2006-11-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/11/01/shuttle-launch-seen-from-iss</id>
    <content type="html">&lt;p&gt;If you haven&amp;rsquo;t seen &lt;a href="http://www.warrenellis.com/?p=3183"&gt;these&lt;/a&gt;,
you&amp;rsquo;re in for a treat.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/INMPAr2XpW0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/11/01/shuttle-launch-seen-from-iss</feedburner:origLink></entry>
  
  <entry>
    <title>Quote of the day</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/v3RFEjGiTrw/quote-of-the-day" />
    <updated>2006-10-27T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/27/quote-of-the-day</id>
    <content type="html">&lt;p&gt;I need to remember this one:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.quotationspage.com/quotes/Chuck_Reid"&gt;Chuck Reid&lt;/a&gt;: &amp;ldquo;In
theory, there is no difference between theory and practice; In
practice, there is.&amp;rdquo;
&lt;a href="http://feeds.feedburner.com/~a/quotationspage/qotd?a=ZufU36"&gt;&lt;img src="http://feeds.feedburner.com/~a/quotationspage/qotd?i=ZufU36" alt="image" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via
&lt;a href="http://www.quotationspage.com/qotd.html"&gt;Quotes of the Day&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/v3RFEjGiTrw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/27/quote-of-the-day</feedburner:origLink></entry>
  
  <entry>
    <title>IBM vs. Amazon</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/DIRbLxfXC1o/ibm-vs-amazon" />
    <updated>2006-10-24T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/24/ibm-vs-amazon</id>
    <content type="html">&lt;p&gt;For the love of software development &amp;ndash; what the hell is this about?
IBM, anyone?&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2006/10/24/IBM-Amazon"&gt;IBM vs. Amazon&lt;/a&gt;:
&amp;ldquo;
The Internet has been amazingly quiet about
&lt;a href="http://www-03.ibm.com/press/us/en/pressrelease/20481.wss"&gt;IBM’s litigation against Amazon&lt;/a&gt;.
It feels to me like maybe the biggest Internet story of, well,
maybe, ever. I haven’t gone and read the IBM patents yet, because
reading patents always depresses me. If the titles mean anything
(not always a sure bet), this might mean that IBM has finally
managed to figure out how to set up that Internet Tollbooth that
we’ve always been afraid of. If you’re interested in ‘Presenting
Applications in an Interactive Service’, ‘Storing Data in an
Interactive Network’, ‘Presenting Advertising in an Interactive
Service’, ‘Adjusting Hypertext Links with Weighted User Goals and
Activities’, or ‘Ordering Items Using an Electronic Catalogue’,
apparently IBM thinks you need to pay them for the right to do any
of those things. If the courts agree with them, it’s time for me to
find a new line of work.&lt;/p&gt;

&lt;p&gt;"&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://www.tbray.org/ongoing/"&gt;ongoing&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/DIRbLxfXC1o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/24/ibm-vs-amazon</feedburner:origLink></entry>
  
  <entry>
    <title>Java is the new C</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/mwqfIb6AhU4/java-is-the-new-c" />
    <updated>2006-10-22T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/22/java-is-the-new-c</id>
    <content type="html">&lt;p&gt;This could actually turn out to be quite important down the road:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.osnews.com/story.php?news_id=16241"&gt;Writing Solaris Device Drivers in Java&lt;/a&gt;:
&amp;ldquo;&amp;lsquo;We present an experimental implementation of the Java Virtual
Machine that runs inside the kernel of the Solaris operating
system. The implementation was done by porting an existing small,
portable JVM, Squawk, into the Solaris kernel. Our first
application of this system is to allow device drivers to be written
in Java. A simple device driver was ported from C to Java.
Characteristics of the Java device driver and our device driver
interface are described.&amp;rsquo;&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://www.osnews.com/"&gt;OSNews&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/mwqfIb6AhU4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/22/java-is-the-new-c</feedburner:origLink></entry>
  
  <entry>
    <title>I am also a ...</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/JqRGV3xeYhA/i-am-also-a" />
    <updated>2006-10-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/15/i-am-also-a</id>
    <content type="html">&lt;h3&gt;&amp;hellip; a talent!&lt;/h3&gt;

&lt;p&gt;&lt;img src="http://www.tomorrowland.us/tlm/aviator-small.jpg" alt="image" /&gt;&lt;img src="http://www.tomorrowland.us/tlm/tori.jpg" alt="image" /&gt;
You&amp;rsquo;re a risk-taker, and you follow your passions. You&amp;rsquo;re
determined to take on the world and succeed on your own terms.
Whether in the arts, science, engineering, business, or politics,
you fearlessly express your own vision of the world. You&amp;rsquo;re not
afraid of a fight, and you&amp;rsquo;re not afraid to bet your future on your
own abilities. If you find a job boring or stifling, you&amp;rsquo;re already
preparing your resume. You believe in doing what you love, and
you&amp;rsquo;re not willing to settle for an ordinary life.&lt;/p&gt;

&lt;h3&gt;Talent: 64% Lifer: 23% Mandarin: 49%&lt;/h3&gt;

&lt;p&gt;Take the
&lt;a href="http://www.tomorrowland.us/tlm"&gt;Talent, Lifer, or Mandarin&lt;/a&gt; quiz.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/JqRGV3xeYhA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/15/i-am-also-a</feedburner:origLink></entry>
  
  <entry>
    <title>And now I'm a ...</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/61OO3vM3JHE/and-now-im-a" />
    <updated>2006-10-10T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/10/and-now-im-a</id>
    <content type="html">&lt;h2&gt;I&amp;rsquo;m a Chevrolet Corvette!&lt;/h2&gt;

&lt;p&gt;&lt;img src="http://www.tomorrowland.us/sportscar/images/corvette.jpg" alt="image" /&gt;
&lt;strong&gt;You&amp;rsquo;re a classic &amp;ndash; powerful, athletic, and competitive. You&amp;rsquo;re all about winning the race and getting the job done. While you have a practical everyday side, you get wild when anyone pushes your pedal. You hate to lose, but you hardly ever do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Take the
&lt;a href="http://www.tomorrowland.us/sportscar"&gt;Which Sports Car Are You?&lt;/a&gt;
quiz.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/61OO3vM3JHE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/10/and-now-im-a</feedburner:origLink></entry>
  
  <entry>
    <title>Fit is a Requirements Tool, Not a Testing Tool</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/vsJ7LlEUDFw/fit-is-a-requirements-tool-not-a-testing-tool" />
    <updated>2006-10-05T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/10/05/fit-is-a-requirements-tool-not-a-testing-tool</id>
    <content type="html">&lt;p&gt;Mike Ratliff did a very good
&lt;a href="http://www.valtech.com/com/index/news/valtech_days/planet_emerging_technologies/Open4.html"&gt;presentation on Fit/Fitnesse&lt;/a&gt;
at Valtech Days. While praising the effects it can have on a
development project, he also highlighted some of its quirks such as
the ones I&amp;rsquo;ve complained about
&lt;a href="http://marcus.ahnve.net/2006/08/10/why-i-dont-like-fit/"&gt;earlier&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The main point he made in my mind was when he said that Fit is not
a testing tool but a &lt;em&gt;requirements&lt;/em&gt; tool. It does not replace your
regular acceptance testing tools. According to Mike, the main
advantage Fitnesse brings is an increased, and executable, dialogue
between customers and developers, and the possibility for customers
to work with the spec in a &amp;ldquo;what if&amp;rdquo; manner.&lt;/p&gt;

&lt;p&gt;I have been going over that thought for two days now and I think I
really like it. And it makes me revalue Fitnesse, I definitely see
the value of customers being able to work with the tests
dynamically. I might just end up writing a blog post these days
titled &amp;ldquo;Why I like Fit&amp;rdquo; :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/vsJ7LlEUDFw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/10/05/fit-is-a-requirements-tool-not-a-testing-tool</feedburner:origLink></entry>
  
  <entry>
    <title>Valtech Days in Dallas</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/775gwfk6sns/valtech-days-in-dallas" />
    <updated>2006-09-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/09/28/valtech-days-in-dallas</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ll be traveling to Dallas, Texas this weekend to speak about
agile documentation at
&lt;a href="http://www.valtech.com/com/index/news/valtech_days.html"&gt;Valtech Days&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am looking forward to attending other sessions, the rest of the
conference is looking really interesting. If you are in the area
and want attend the conference, I believe there are still a few
seats available.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/775gwfk6sns" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/09/28/valtech-days-in-dallas</feedburner:origLink></entry>
  
  <entry>
    <title>My local browser war</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/0IzucNaWiEw/my-local-browser-war" />
    <updated>2006-09-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/09/25/my-local-browser-war</id>
    <content type="html">&lt;p&gt;I switch browsers like others switch &amp;hellip; something they switch very
often. Why does it have to be so hard? All I want is a browser
that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is small and nimble&lt;/li&gt;
&lt;li&gt;Feels like a Mac application&lt;/li&gt;
&lt;li&gt;Has good ad blocking support&lt;/li&gt;
&lt;li&gt;Handles Flash on demand&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href="http://www.apple.com/safari/"&gt;Safari&lt;/a&gt; locks up too often, and a
number of sites do not work with it.
&lt;a href="http://hmdt-web.net/shiira/en"&gt;Shiira&lt;/a&gt; is small and nice, but has
no decent ad blocking. &lt;a href="http://www.firefox.org"&gt;Firefox&lt;/a&gt; has lousy
Mac integration and eats memory like there is no tomorrow.
&lt;a href="http://www.flock.com"&gt;Flock&lt;/a&gt; just does not feel ready yet.
&lt;a href="http://www.omnigroup.com/applications/omniweb/"&gt;OmniWeb&lt;/a&gt; has
clunky ad blocking and is not worth the money.&lt;/p&gt;

&lt;p&gt;My current choice is &lt;a href="http://www.caminobrowser.org"&gt;Camino&lt;/a&gt;. It is
lightweight and Macish but has terrible, CSS-based, out-of-the-box
adblocking. But with the help of &lt;a href="http://camitools"&gt;CamiTools&lt;/a&gt; that
can be fixed and you also get the flash handled.&lt;/p&gt;

&lt;p&gt;Who knows, I might even be using next week.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/0IzucNaWiEw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/09/25/my-local-browser-war</feedburner:origLink></entry>
  
  <entry>
    <title>Could we please stop using "www"</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/lEYm2V5WwFo/could-we-please-stop-using-www" />
    <updated>2006-09-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/09/25/could-we-please-stop-using-www</id>
    <content type="html">&lt;p&gt;Why do so many organizations still &lt;em&gt;demand&lt;/em&gt; that you add &amp;ldquo;www.&amp;rdquo; in
front of their domain name when browsing their site?&lt;/p&gt;

&lt;p&gt;People, it is &lt;em&gt;so&lt;/em&gt; 1997. Typing is boring. Stop using it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/lEYm2V5WwFo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/09/25/could-we-please-stop-using-www</feedburner:origLink></entry>
  
  <entry>
    <title>Axis - how bleeding edge can you get?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/ipl3CwwD3aw/axis-how-bleeding-edge-can-you-get" />
    <updated>2006-09-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/09/11/axis-how-bleeding-edge-can-you-get</id>
    <content type="html">&lt;p&gt;I was trying to get my head around
&lt;a href="http://ws.apache.org/axis2/"&gt;Axis&lt;/a&gt; and read this:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Apache Axis2 is built on Apache Axiom, a new high performant,
pull-based XML object model that was released two days ago.&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/ipl3CwwD3aw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/09/11/axis-how-bleeding-edge-can-you-get</feedburner:origLink></entry>
  
  <entry>
    <title>Quoting Quote of the Day: Assaf</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/8tvzyn2hx2M/quoting-quote-of-the-day-assaf" />
    <updated>2006-08-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/08/29/quoting-quote-of-the-day-assaf</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/raganwald/~3/17338754/quote-of-day-assaf.html"&gt;Quote of the Day: Assaf&lt;/a&gt;:
&amp;ldquo;I never saw a programming language that can cure stupidity, only
languages that add safety caps so they look safe, while slowing you
down.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://weblog.raganwald.com/"&gt;Raganwald&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/8tvzyn2hx2M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/08/29/quoting-quote-of-the-day-assaf</feedburner:origLink></entry>
  
  <entry>
    <title>Early Extreme Programming: The Original Mac Team</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/tgOapyUWg3M/early-extreme-programming-the-original-mac-team" />
    <updated>2006-08-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/08/15/early-extreme-programming-the-original-mac-team</id>
    <content type="html">&lt;p&gt;From
&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596007191/headon-20?tag=headon-20"&gt;Revolution in The Valley:&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Instead of arguing about new software ideas, we actually tried them
out by writing quick prototypes, keeping the ideas that worked best
and discarding the others. We always had something running that
represented our best thinking at the time.&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/tgOapyUWg3M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/08/15/early-extreme-programming-the-original-mac-team</feedburner:origLink></entry>
  
  <entry>
    <title>XP 1.0 is better than XP 2.0</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9143v7sn0pM/xp-10-is-better-than-xp-20" />
    <updated>2006-08-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/08/11/xp-10-is-better-than-xp-20</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~r/typepad/alancfrancis/~3/11271022/jobs_etc.html"&gt;Alan Francis: Jobs, etc.&lt;/a&gt;:
&amp;ldquo;[&amp;hellip;] being an old-school XP-er who thinks Kent got right the
first time and only dug a deeper hole trying to re-explain
himself. &amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Well put. XP 1.0 is mostly brilliant, whereas the additional value
of 2.0 could could have been published in a short addendum.&lt;/p&gt;

&lt;p&gt;Kent Beck is probably &lt;em&gt;the&lt;/em&gt; hero of the geeky part of my life and I
am sorry to say that I find the quality of his work receding.
Whatever he wrote or spoke about before, it was always empirically
based and with a very appealing rebel touch. It seems to me that he
is becoming more and more theoretical. For example, I found his
keynote at XP2006 about &amp;ldquo;responsible developing&amp;rdquo; very abstract.&lt;/p&gt;

&lt;p&gt;Let&amp;rsquo;s hope that the book he is releasing this fall proves me
wrong.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com/alumni/"&gt;Planet TW &amp;ndash; Alumni&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9143v7sn0pM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/08/11/xp-10-is-better-than-xp-20</feedburner:origLink></entry>
  
  <entry>
    <title>Why I don't like Fit</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Xl-mHokiofs/why-i-dont-like-fit" />
    <updated>2006-08-10T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/08/10/why-i-dont-like-fit</id>
    <content type="html">&lt;p&gt;I don&amp;rsquo;t like Fit. Believe me, I want to like it, I have tried to
like it. I mean, Ward Cunningham created it for crying out loud,
the man is a genius, so I am probably just missing something &amp;ndash;
right?&lt;/p&gt;

&lt;p&gt;Every time I have looked at Fit, I always like the parts that
handle column fixtures. They are clean and easy to read and
generally does a really good job. Buth then we get to weird cousin
Row Fixture which is not at all that easy to read and uncle Action
Fixture which just won&amp;rsquo;t stop and finally family FitLibrary which
does all good things but are utterly unreadble &amp;ndash; which probably is
due to my lack of experience, but then again wasn&amp;rsquo;t this intended
for non-programmers?&lt;/p&gt;

&lt;p&gt;Geoff Bache told me at XP2006 to look into FitLibrary and Erik
Lundh suggested that I read the book on Fit. So now I have done
just that, and I still don&amp;rsquo;t like Fit. As a language that is.&lt;/p&gt;

&lt;p&gt;What the book did explain clearly, which I find the truly awesome
part of Wards invention, is the idea of executable requirements
written in advance. It is soo XP that you just have to love it. And
I finally get why you should test the logic layer and not through
the UI. Happy now?&lt;/p&gt;

&lt;p&gt;But the book did not address all my concerns. It does not talk
about the problems with version control; if you choose to work with
Excel based Fit tests you will not be able to track changes as they
are binary files. Neither does it suggest how Fitnesse pages are to
be kept in version control. Also, all Fit formats are hard to
follow if you track changes by commit messages by email.&lt;/p&gt;

&lt;p&gt;The Fit syntax is in my opinion a table based DSL for writing
acceptance tests. How many other programming languages do you
regularly use that are table based? Excel? It is awesome for column
based calculations which is the same as Column Fixtures, which I
like. I alreay wrote that. But the rest is just &amp;hellip; ugly.&lt;/p&gt;

&lt;p&gt;A better solution in my opinion would be a Markdown based
documentation format, where code formatted text, the indented one,
is executed as tests just like tables in Fit. Could probably easily
be turned into a Wiki if needed. For testdata I would use Yaml. Now
if I could just find the time :)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Xl-mHokiofs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/08/10/why-i-dont-like-fit</feedburner:origLink></entry>
  
  <entry>
    <title>Kent Beck on Ruby</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/WgVp9_zOSyg/kent-beck-on-ruby" />
    <updated>2006-08-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/08/09/kent-beck-on-ruby</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;I always knew one day Smalltalk would replace Java. I just didn’t
know it would be called Ruby.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&amp;mdash; Kent Beck&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sphericalimprovement.com/blogs/mbowler/exit.php?url_id=1097&amp;amp;entry_id=385" title="http://blog.blainebuxton.com/2006/08/interesting-quote.html"&gt;Blaine Buxton&lt;/a&gt;
links to this quote at
&lt;a href="http://www.sphericalimprovement.com/blogs/mbowler/exit.php?url_id=1098&amp;amp;entry_id=385" title="http://ozmm.org/2006/04/23/"&gt;ozmmdotorg&lt;/a&gt;."&lt;/p&gt;

&lt;p&gt;(Via
&lt;a href="http://www.sphericalimprovement.com/blogs/mbowler/"&gt;Mike Bowler&amp;rsquo;s thoughts&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/WgVp9_zOSyg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/08/09/kent-beck-on-ruby</feedburner:origLink></entry>
  
  <entry>
    <title>Word. Why?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/IARsWTDE_KI/word-why" />
    <updated>2006-07-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/07/03/word-why</id>
    <content type="html">&lt;p&gt;Why in the name of one trillion unused functions of which the one
you actually use doesn&amp;rsquo;t work can something so completely
dysfunctional as Word ever become so successful?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update:&lt;/em&gt; Yes, a lot of aggravation was the cause of the rant
above, and yes, I actually have to use it as Pages can&amp;rsquo;t handle
.dot files or quite complex table based company headers and
footers.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/IARsWTDE_KI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/07/03/word-why</feedburner:origLink></entry>
  
  <entry>
    <title>Different worlds</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/1LDTeeRNuZg/different-worlds" />
    <updated>2006-06-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/29/different-worlds</id>
    <content type="html">&lt;p&gt;I am reading Cal Henderson&amp;rsquo;s
&lt;a href="http://www.amazon.com/gp/redirect.html?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;location=http://www.amazon.com/gp/product/0596102356/sr=8-1/qid=1151588564/ref=pd_bbs_1?ie=UTF8"&gt;Building Scalable Web Sites&lt;/a&gt;.
It covers a lot of topics, some of which I am closely familiar with
such as version control.&lt;/p&gt;

&lt;p&gt;Cal does however have suggestions for situations I have never been
in, in particular I do love this quote from the part on how to
handle hardware platform growth: &amp;ldquo;When you get to the point of
having a few thousand servers [&amp;hellip;]&amp;rdquo;. Never been there.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/1LDTeeRNuZg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/29/different-worlds</feedburner:origLink></entry>
  
  <entry>
    <title>XP2006</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/izdnHT1MOFc/xp2006" />
    <updated>2006-06-19T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/19/xp2006</id>
    <content type="html">&lt;p&gt;I am currently in Oulo, Finland, attending XP2006. I have so far
attended really excellent tutorials by the Poppendiecks and Mike
Cohn. I am writing this waiting for a session on DSL to start.&lt;/p&gt;

&lt;p&gt;This is by far the most social events I have been to, which
probably is helped by there only being 200+ people here.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/izdnHT1MOFc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/19/xp2006</feedburner:origLink></entry>
  
  <entry>
    <title>One of those days ... ?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/PG-naYZAvv4/one-of-those-days" />
    <updated>2006-06-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/15/one-of-those-days</id>
    <content type="html">&lt;p&gt;On the train to work this morning I proudly realized that my
PowerBook had an uptime of 30 days. The fact that Macs can do this
is so weird to my non-mac colleagues that they almost don&amp;rsquo;t believe
it.&lt;/p&gt;

&lt;p&gt;Well, the God of Failing Computers saw me in my hubris, and
promptly crashed my computer, just like that, and would not let it
restart. It finally showed some signs of life when I got to the
office and plugged it in.&lt;/p&gt;

&lt;p&gt;I am a big fan of geektool, and use it to display console.log. This
was a good thing because I noticed a whole lot of lines saying that
the /tmp directory was missing. When I looked into it,
/private/tmp, which /tmp symlinks to, was indeed missing and that
caused a lot of mayhem.&lt;/p&gt;

&lt;p&gt;I recreated the directory manually, and things have been smooth
since. But it was quite a scare.&lt;/p&gt;

&lt;p&gt;After that my day has, shall we say, not been smiling at me. Let&amp;rsquo;s
really, really hope that this is not an indicator for tonights big
game against Paraguay.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/PG-naYZAvv4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/15/one-of-those-days</feedburner:origLink></entry>
  
  <entry>
    <title>Markdown based S5 in TextMate</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/4d0tzE9yWzk/markdown-based-s5-in-textmate" />
    <updated>2006-06-12T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/12/markdown-based-s5-in-textmate</id>
    <content type="html">&lt;p&gt;&lt;a href="http://anon:anon@macromates.com/svn/Bundles/trunk/Bundles/S5.tmbundle"&gt;Happy happy joy joy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Via
&lt;a href="http://anon:anon@macromates.com/svn/Bundles/trunk/"&gt;TextMate Bundles (svn)&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/4d0tzE9yWzk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/12/markdown-based-s5-in-textmate</feedburner:origLink></entry>
  
  <entry>
    <title>Cedric Still Doesn't Get Agile</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/bRHn2VG7_Vk/cedric-still-dont-get-agile" />
    <updated>2006-06-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/09/cedric-still-dont-get-agile</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Martin Fowler pointed to &lt;a href="http://www.langrsoft.com/blog/2006/06/open-note-to-google-i-thank-google-one.html"&gt;Jeff Langrs response&lt;/a&gt;.
It seems Cedric did not give us the full picture. I have edited my post
accordingly&lt;/p&gt;

&lt;p&gt;~~After attending a less than stellar presentation on TDD,~~Cedric
Beust confuses TDD with &amp;ldquo;Agile&amp;rdquo; and goes on to tell the world that
&lt;a href="http://beust.com/weblog/archives/000392.html"&gt;agile is not good&lt;/a&gt;.
Let&amp;rsquo;s have a look, shall we?&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;First of all, tests are not specs.  Not even close.  Somebody in
the audience was quick to give a counter-example to this absurd
claim by using a numeric example (&amp;lsquo;how do you specify an
exponentiation function with a test?&amp;rsquo;)&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I would not use unit tests for specs. Automatic acceptance tests on
the other hand is really nice if you have a customer/product owner
that will work with you. Now Cedric has previously stated that he
does not really care for the labelling of tests
(&lt;a href="http://www.beust.com/weblog/archives/000319.html"&gt;&amp;ldquo;However, when I write a test, I don&amp;rsquo;t really care if it&amp;rsquo;s a unit test or a functional test&amp;rdquo;&lt;/a&gt;)
so that of course makes it harder for him.&lt;/p&gt;

&lt;p&gt;And hey, testing an exponentiation function? How about providing
test data with given parameters and answers? It would be a prime
candidate for a FIT-test by the way.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Relying on tests as a design specification is lazy and
unprofessional because you are only testing a very small portion of
the solution space of your application (and of course, your tests
can have bugs). &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Why would you only test &amp;ldquo;a very small portion of the solution space
of your application&amp;rdquo;?&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Tests also fall extremely short of having the expressiveness needed
to articulate the subtle shades that a real specification need to
cover to be effective.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This is my main gripe with Cedrics rant. He seems to be completely
oblivious to the great emphasis on customer interaction that agile
methods make, which promotes a two way dialogue.&lt;/p&gt;

&lt;p&gt;A specification written in a document is a one way communication.
Even in high school psychology I learned how much more information
was conveyed in a spoken dialogue than in writing.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This claim is part of a broader and more disturbing general Agilist
attitude that is usually articulated like &amp;lsquo;Your code is your spec&amp;rsquo;,
along with some of its ridiculous corollaries such as
&amp;lsquo;Documentation gets out of date, code never does&amp;rsquo;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;What is so ridiculous with the last statement? I have &lt;em&gt;never&lt;/em&gt; been
involved in a large scale project where the documentation did not
get out date.&lt;/p&gt;

&lt;p&gt;As for the code being your spec: when you have code and
documentation, and the latter does not correctly describe the
former, it is out of date, which will you trust? And what do you
read to know what the real world looks like? Map, meet terrain.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I am currently getting acquainted with a brand new project that is
not even very big, and while I understand Java fairly well, there
is no doubt in my mind that for ten minutes I spend trying to
understand how a certain part of the application works, a five-line
comment would have given me this knowledge in ten seconds.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Sure, if it is up to date, which you will have to read the code to
find out. My general rule: if you feel the need, comment on &lt;em&gt;why&lt;/em&gt;
the code does what it does if it is not obvious. If you feel the
need to comment on &lt;em&gt;what&lt;/em&gt; the code does, the code is not clear
enough. Refactor until done.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Very often, Agilists simply forget that their job is to produce
software that satisfies customers, not software that meets some
golden software engineering scale.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Again, this is simply ridiculous &amp;ndash; all agile methods try to get
customers as close as possible to produce just what they want.
Anyone even remotely knowledgeable with agile methods knows that.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Frankly, it takes all of ten minutes to explain Test-Driven
Development to a developer who&amp;rsquo;s never heard of it:  &amp;lsquo;Write a test
that fails and doesn&amp;rsquo;t compile.  Make it compile.  Then make it&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I actually find it quite hard to get developers to grasp TDD;
people find testing something that does not exist confusing. This
is of course the basis for behavior driven development, but let&amp;rsquo;s
just be happy for Cedric now.&lt;/p&gt;

&lt;p&gt;Some might find it picky, but leaving out &amp;lsquo;refactor&amp;rsquo; in the TDD
loop tells me that you somehow has not grasped the concept
completely. But then Cedric might throw in a comment instead :).&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&amp;lsquo;What should we test now?&amp;rsquo;
&amp;lsquo;How about:  if we pop an empty stack, we get an exception&amp;rsquo;
&amp;#060;a bit embarrassed&amp;#062; &amp;lsquo;Mmh, no, let&amp;rsquo;s not do that&amp;rsquo; &amp;#060;hand waving, look down at notes and proceeds while happily ignoring the other raised hands&amp;#062;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;~~This is quite easy to test, so I do not see why he could not add it.~~
Read &lt;a href="http://www.langrsoft.com/blog/2006/06/open-note-to-google-i-thank-google-one.html"&gt;Jeffs answer&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="java"&gt;&lt;span class="lineno"&gt;1&lt;/span&gt; &lt;span class="n"&gt;Stack&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Stack&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="lineno"&gt;2&lt;/span&gt; 
&lt;span class="lineno"&gt;3&lt;/span&gt; &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="lineno"&gt;4&lt;/span&gt;   &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pop&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
&lt;span class="lineno"&gt;5&lt;/span&gt;   &lt;span class="n"&gt;fail&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Should not get here&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt;6&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="lineno"&gt;7&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;){&lt;/span&gt;
&lt;span class="lineno"&gt;8&lt;/span&gt;   &lt;span class="c1"&gt;//Ignore&lt;/span&gt;
&lt;span class="lineno"&gt;9&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;But I am dead sure Cedric knows this ~~, too bad the presenter did not.~~&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;To be honest, I am becoming quite suspicious of Agile practices for
that reason:  all the presentations I have attended and books that
I have read are always using toy implementations as examples. 
Stack, List, Money, Bowling&amp;hellip;  enough already!&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Ignoring the fact that Cedric again confuses TDD and agile, he does
have a point. Too many TDD presentations uses examples that are way
too simplistic. They should point out the need of a modular
architecture, and the fact that using TDD actually helps you get a
clean, high cohesion &amp;ndash; low coupling architecture.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;And please, avoid smug and useless answers such as: &amp;lsquo;A lot of the
classes I have to test are hard to isolate, do you have any advice
regarding mocks?&amp;rsquo; &amp;lsquo;Well, if you had started with TDD in the first
place, you wouldn&amp;rsquo;t be having this problem today&amp;rsquo;.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It is certainly not a helpful answer, but it is true nonetheless.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Fundamentally, I am disturbed by the Agilists' dishonesty when it
comes to presenting their arguments.  They offer you all these nice
ideas such as Test-Driven Development and Pair Programming but they
never &amp;mdash; ever &amp;mdash; disclose the risks and the downsides.  To them,
Agility is a silver bullet that is applicable in all cases with no
compromises.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Just to give one example, &amp;ldquo;Practices of an Agile Programmer&amp;rdquo;
clearly states that agile is not for everyone.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The truth is that these practices come at a price, and for a lot of
organizations, the price gets high very quickly.  Agile development
will never go far if its proponents keep ignoring these
organizations and make condescending comments to its members.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Here Cedric is spot on. Yay!&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I like Test-Driven Development.  I really do, and I&amp;rsquo;m fortunate
enough to work on a project that lets me use TDD most of the time. 
But the truth is:  at times, I don&amp;rsquo;t do TDD because implementing a
feature quickly is more important than a fuzzy feeling.  And I&amp;rsquo;m
also aware that TestNG is an open source project with less than
five developers, all of them on the bleeding edge and aware of the
latest advances in software engineering. And this is my main beef
with Agilists:  I strongly suspect that most of them are spending
their time on open source projects with like-minded fellows, but
none of them have any experience what companies whose survival
depends on shipping software have to go through to organize huge
code bases growing thousands of lines of code every day under the
combined push of hundreds of a developers, all with their personal
background, education and bias.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;My&lt;/em&gt; main beef with people opposing agility is that they basically
say that too many of the developers out there are morons who cannot
perform unless closely supervised and given clear instructions, and
that there is no hope that that will ever change. It is a weird
combination of pessimism and elitism&lt;/p&gt;

&lt;p&gt;Now Cedric
&lt;a href="http://marcus.ahnve.net/?p=138"&gt;has a history of not liking agile methods&lt;/a&gt;,
and that is fine with me. Whatever makes him happy. But his retoric
in this case is like watching somebody who does not know karate
perform a round house kick &amp;ndash; lots of power and effort but misses
the target completely.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/bRHn2VG7_Vk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/09/cedric-still-dont-get-agile</feedburner:origLink></entry>
  
  <entry>
    <title>Upgraded and imported</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/o_GZnATSZkw/upgraded-and-imported" />
    <updated>2006-06-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/06/02/upgraded-and-imported</id>
    <content type="html">&lt;p&gt;After upgrading to the latest WordPress release, I realized that I
could import my early blog posts from the FreeRoller days using
RSS. It was a lot of fun to read some of the old ones again and
remember what was discussed four years ago. Prevayler anyone?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/o_GZnATSZkw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/06/02/upgraded-and-imported</feedburner:origLink></entry>
  
  <entry>
    <title>Least wanted feature of IntelliJ 6.0 announced</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/npY6IRRQTTI/least-wanted-feature-of-intellij-60-announced" />
    <updated>2006-05-31T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/31/least-wanted-feature-of-intellij-60-announced</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://blogs.jetbrains.com/idea/2006/05/intellij-idea-60-built-it-struts-support/"&gt;IntelliJ IDEA 6.0: Built-in Struts Support&lt;/a&gt;:
&amp;ldquo;Starting from release 6.0, IntelliJ IDEA will provide Struts
support out-of-the-box. The functionality is added by Struts
Assistant plugin that is now bundled to IntelliJ IDEA. So you’ll
get it without any additional download and installation&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.jetbrains.com/idea"&gt;IntelliJ IDEA Blog&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/npY6IRRQTTI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/31/least-wanted-feature-of-intellij-60-announced</feedburner:origLink></entry>
  
  <entry>
    <title>Dan North: How simple is too simple?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/OpdwOYp5Rk0/dan-north-how-simple-is-too-simple" />
    <updated>2006-05-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/29/dan-north-how-simple-is-too-simple</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://dannorth.net/archives/22"&gt;Dan North: How simple is too simple?&lt;/a&gt;:
&amp;ldquo;Kent Beck advises us to do ‘the simplest thing that could possibly
work’, but this is often mistaken for ‘the first thing I could
possibly think of’ or even ‘the only thing I know’&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Well put.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com"&gt;Planet TW&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/OpdwOYp5Rk0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/29/dan-north-how-simple-is-too-simple</feedburner:origLink></entry>
  
  <entry>
    <title>Don't trust the non-programmers to design systems</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/ZAtTyWteP78/dont-trust-the-non-programmers-to-design-systems" />
    <updated>2006-05-22T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/22/dont-trust-the-non-programmers-to-design-systems</id>
    <content type="html">&lt;p&gt;I read an article the other day about a surgeon who said that in
order to stay a good surgeon, he had to perform operations on a
regular basis. Which sounds quite reasonable right?&lt;/p&gt;

&lt;p&gt;Ponder that the normal thing for experienced surgeons was to not
take part in the actual operation. Instead, they analyze the
patient and decide what should be done in great detail, creating
diagrams explaining the situation.&lt;/p&gt;

&lt;p&gt;The actual surgery is then performed by somebody else, while the
surgeon architect at best is standing by in the vicinity, but is
probably somewhere else planning the next operation.&lt;/p&gt;

&lt;p&gt;It does not work that way. Why do we in the software industry let
people who do not program design systems?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/ZAtTyWteP78" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/22/dont-trust-the-non-programmers-to-design-systems</feedburner:origLink></entry>
  
  <entry>
    <title>English version of my article on REST vs SOAP</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/ZDM4kLNBLXk/english-version-of-my-article-on-rest-vs-soap" />
    <updated>2006-05-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/18/english-version-of-my-article-on-rest-vs-soap</id>
    <content type="html">&lt;p&gt;As I&amp;rsquo;ve received a few requests for it, I&amp;rsquo;ve been given permission
by my employer Valtech to republish
&lt;a href="http://marcus.ahnve.net/?page_id=129"&gt;an english version of my article on REST vs. SOAP&lt;/a&gt;
here at my blog.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/ZDM4kLNBLXk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/18/english-version-of-my-article-on-rest-vs-soap</feedburner:origLink></entry>
  
  <entry>
    <title>Is Sun making a comeback?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/yThYnXm9epo/is-sun-making-a-comeback" />
    <updated>2006-05-10T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/10/is-sun-making-a-comeback</id>
    <content type="html">&lt;p&gt;I am seeing signs in the sky that Sun is making a comeback.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Textdrive is switching from FreeBSD to Solaris&lt;/li&gt;
&lt;li&gt;&lt;a href="http://apple.slashdot.org/article.pl?sid=06/05/01/1110226&amp;amp;from=rss"&gt;Rumors&lt;/a&gt;
that ZFS might be ported to Mac OS X&lt;/li&gt;
&lt;li&gt;Tim Brays presence and statements on the RoR podcast from
Canada on Rails&lt;/li&gt;
&lt;li&gt;Sun makes smart moves like
&lt;a href="http://www.sun.com/software/solaris/postgres.jsp"&gt;supporting PostgreSQL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;And not one of them is related to Java.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/yThYnXm9epo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/10/is-sun-making-a-comeback</feedburner:origLink></entry>
  
  <entry>
    <title>before_filter and with_scope</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/TMObuSj6RR0/before_filter-and-with_scope" />
    <updated>2006-05-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/09/before_filter-and-with_scope</id>
    <content type="html">&lt;p&gt;I will be speaking on the Rails Recipes Meetup here in Stockholm
tomorrow. My topic will be on recipe 28 in Chads excellent book,
how you can use with_scope to DRY your code.&lt;/p&gt;

&lt;p&gt;Whilst I have looked quite deeply into the subject &amp;ndash; it is quite
small actually &amp;ndash; there is one thing I have yet to find out. Chad
mentions that you can use wrap your actions with scoping using a
before_filter.&lt;/p&gt;

&lt;p&gt;The thing is that the author of the patch for nested scopes
provides
&lt;a href="http://wota.jp/svn/rails/plugins/branches/stable/scoped_access/"&gt;a plugin&lt;/a&gt;
to enable just that, but he uses an around filter which utilizes
funky metaprogramming to do just that. He has a whole
&lt;a href="http://blog.caboo.se/articles/2006/02/22/nested-with_scope"&gt;blog entry&lt;/a&gt;
about it.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve asked twice in the IRC channel without any answer, and I&amp;rsquo;ve
posted a question on the books
&lt;a href="http://fora.pragprog.com/rails-recipes/discuss-the-book"&gt;forum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Does anybody know if a before_filter can be used?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/TMObuSj6RR0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/09/before_filter-and-with_scope</feedburner:origLink></entry>
  
  <entry>
    <title>Thomas Looy: How Long is a Piece of String?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qlZYQ67QWyc/thomas-looy-how-long-is-a-piece-of-string" />
    <updated>2006-05-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/05/08/thomas-looy-how-long-is-a-piece-of-string</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://conversationswithandrew.blogspot.com/2006/05/how-long-is-piece-of-string.html"&gt;Thomas Looy: How Long is a Piece of String?&lt;/a&gt;:
&amp;ldquo;&amp;ndash; Use working software as the only measure of the progress on a
project (no more 90% completed tasks);&lt;/p&gt;&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Measure using smaller sized tasks. Smaller tasks give you better measures than larger ones and will also give you a larger sampling of measures that can be used for meaningful statistical evaluations. Smaller tasks are also completed sooner and therefore give you measurements sooner that you can begin to use to extrapolate to a meaningful project complete date."&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com"&gt;Planet TW&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;Hear, hear.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qlZYQ67QWyc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/05/08/thomas-looy-how-long-is-a-piece-of-string</feedburner:origLink></entry>
  
  <entry>
    <title>Why REST is good and SOAP is evil</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/YEhWHe3Oa2I/why-rest-is-good-and-soap-is-evil" />
    <updated>2006-04-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/04/17/why-rest-is-good-and-soap-is-evil</id>
    <content type="html">&lt;p&gt;On behalf of my employer &lt;a href="http://www.valtech.se"&gt;Valtech&lt;/a&gt;, I&amp;rsquo;ve
written a piece on why I dislike SOAP, and favor REST. I originally
wrote it in english, but the published version is in swedish.&lt;/p&gt;

&lt;p&gt;For some REST preaching in hum-humpty-dum-dee-dum'ish go to&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.valtech.se/templates/JobSubPage.aspx?id=2582"&gt;http://valtech.se/templates/JobSubPage.aspx?id=2582&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; As suggested by people more intelligent than myself,
anchor tags really should have text inside them to be useful :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/YEhWHe3Oa2I" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/04/17/why-rest-is-good-and-soap-is-evil</feedburner:origLink></entry>
  
  <entry>
    <title>Howard Lewis Ship Is Funny When Angry</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/bN4KkOmgFhA/howard-lewis-ship-is-funny-when-angry" />
    <updated>2006-03-19T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/03/19/howard-lewis-ship-is-funny-when-angry</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://howardlewisship.com/blog/2006/03/bitten-by-ie-once-again.html"&gt;Bitten by IE once again&lt;/a&gt;:
&amp;ldquo;Side note: I talk a lot about the importance of Feedback, that
tools should clearly identify problems and guide you to solutions.
On a grading scale of A &amp;ndash; F, IE would receive the grade take out
back and put down like a rabid dog on this issue. And many others.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;(Via &lt;a href="http://howardlewisship.com/blog/"&gt;Tapestry and HiveMind&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/bN4KkOmgFhA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/03/19/howard-lewis-ship-is-funny-when-angry</feedburner:origLink></entry>
  
  <entry>
    <title>It is time to stop listening to James Gosling</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/SkB3qCevq34/it-is-time-to-stop-listening-to-james-gosling" />
    <updated>2006-03-11T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/03/11/it-is-time-to-stop-listening-to-james-gosling</id>
    <content type="html">&lt;p&gt;It seems that Sun is using James Gosling to spread FUD regarding
any technology that competes with Java. He created Java, and he is
a techie and techies have high standards and are always honest &amp;ndash;
right?&lt;/p&gt;

&lt;p&gt;He &lt;a href="http://marcus.ahnve.net/?p=75"&gt;came out slinging&lt;/a&gt; against
Harmony a year ago, and now he is at it again with Ruby and PHP:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;PHP and Ruby are perfectly fine systems, but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;He is either grossly misinformed or he is making things up. Either
way it is time to stop listening. Too bad.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.loudthinking.com/"&gt;Loud Thinking&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/SkB3qCevq34" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/03/11/it-is-time-to-stop-listening-to-james-gosling</feedburner:origLink></entry>
  
  <entry>
    <title>Hidden Desktop Manager Gems</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dlYg5ToAZVY/hidden-desktop-manager-gems" />
    <updated>2006-03-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/03/09/hidden-desktop-manager-gems</id>
    <content type="html">&lt;p&gt;By accident I stumbled upon the alt-command-O keyboard combination
which allows you to move the current window to a given
&lt;a href="http://desktopmanager.berlios.de/"&gt;Desktop Manager&lt;/a&gt; virtual
desktop &amp;ndash; or to place it on all of them. Perhaps I haven&amp;rsquo;t looked
hard enough, but I have not seen this mentioned in any
documentation.&lt;/p&gt;

&lt;p&gt;This was the only thing I thought was missing in Desktop Manager. I
find it really useful for Adium and Skype.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dlYg5ToAZVY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/03/09/hidden-desktop-manager-gems</feedburner:origLink></entry>
  
  <entry>
    <title>Powerpoint corruption and lies</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/csyB8g8xVRA/powerpoint-corruption-and-lies" />
    <updated>2006-02-21T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/02/21/powerpoint-corruption-and-lies</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/102726993/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/40/102726993_2c733cfd22_m.jpg" alt="image" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/mahnve/102726993/"&gt;Powerpoint corruption and lies&lt;/a&gt;
Originally uploaded by
&lt;a href="http://www.flickr.com/people/mahnve/"&gt;mahnve&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am so intensely mad right now. I have spent the afternoon working
on a presentation I am to give at lunch time tomorrow.&lt;/p&gt;

&lt;p&gt;To make it short: Powerpoint crashes, and takes my file with it in
the fall. I can&amp;rsquo;t open it anymore.&lt;/p&gt;

&lt;p&gt;I am redoing my presentation right now &amp;ndash; in Keynote.&lt;/p&gt;

&lt;p&gt;Coming up with the title of this entry cheered me up a little. You
have to know your New Order to understand it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/csyB8g8xVRA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/02/21/powerpoint-corruption-and-lies</feedburner:origLink></entry>
  
  <entry>
    <title>Release numbering</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/PfPdtmT5Ogw/release-numbering" />
    <updated>2006-01-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/01/30/release-numbering</id>
    <content type="html">&lt;p&gt;Cameron states an excellent release numbering system,
coincidentally the same as we used back in the days at Lecando:&lt;/p&gt;

&lt;blockquote&gt;&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A &amp;lsquo;dot-zero&amp;rsquo; release (like 3.0) is allowed to drop deprecated
APIs, change an API in a manner that could break binary
compatibility, or change the JDK version requirement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &amp;lsquo;dot-X&amp;rsquo; release (like 3.1) is only allowed to add features
and APIs, but should not break any binary compatibility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A &amp;lsquo;dot-X-dot-Y&amp;rsquo; release (like 3.0.1) is a service pack,
designed to correct specific problems, and not to introduce new
features.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Over time we&amp;rsquo;ve found that this system works extraordinarily well
because of its simplicity, although it&amp;rsquo;s not going to get us to
version 10.0 anytime soon. (At least I hope not, as that would mean
that we were breaking compatibility too often!)&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This numbering scheme disqualifies the ones I dislike the most: the
weirdly named .5 releases that adds a lot of functionality, but not
enough for the powers that be to consider it a full &amp;ldquo;dot-zero&amp;rdquo;
release.&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://jroller.com/page/cpurdy"&gt;/dev/null&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/PfPdtmT5Ogw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/01/30/release-numbering</feedburner:origLink></entry>
  
  <entry>
    <title>Larry: Chuck Norris Facts</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/QeqoZMiK5YA/larry-chuck-norris-facts" />
    <updated>2006-01-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2006/01/30/larry-chuck-norris-facts</id>
    <content type="html">&lt;p&gt;Really funny:
&lt;a href="http://www.chucknorrisfacts.com/"&gt;A list of facts about Chuck Norris&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.planetrubyonrails.org/"&gt;Planet Ruby on Rails&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/QeqoZMiK5YA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2006/01/30/larry-chuck-norris-facts</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Running out of time</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/mJPrSh6-3Ik/javapolis-running-out-of-time" />
    <updated>2005-12-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/16/javapolis-running-out-of-time</id>
    <content type="html">&lt;p&gt;I have 16 minutes left of my prepaid wireless connection, and I
don&amp;rsquo;t feel like paying more for it. I have covered a few sessions
for which the amount of text is too much for the network to handle,
so I&amp;rsquo;ll post it when I get home. I&amp;rsquo;m right now listening to Scott W
Ambler who is really an excellent speaker. More on him later.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/mJPrSh6-3Ik" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/16/javapolis-running-out-of-time</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Mule</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EJeQqyhXWQ8/javapolis-mule" />
    <updated>2005-12-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/16/javapolis-mule</id>
    <content type="html">&lt;p&gt;Mule is a very different beast to me. It seems to be a swallow
anything messaging bus where you can message anything anywhere
using any protocol anytime. It seems really cool &amp;ndash; I just wish I
knew what to use if for. This is not at all to say that it has no
use, it is just me that has not worked with anything similar
before.&lt;/p&gt;

&lt;p&gt;BTW: Demos involving messaging are almost always cool.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EJeQqyhXWQ8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/16/javapolis-mule</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis. EJB3 Persistence</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/iUTHExJLYX4/javapolis-ejb3-persistence-2" />
    <updated>2005-12-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/16/javapolis-ejb3-persistence-2</id>
    <content type="html">&lt;p&gt;Linda DeMichiel together with Mike Keith again walking us through
the new EJB3 API. I must say that I like the idea of the one, true,
unified O/R mapping framework. Also providing a decent set of
default values id really smart &amp;ndash; the table mapping is reminiscent
of Rails. I wonder what all the app server vendors think of the
fact that it can be run outside of EJB? This is another reason that
you most probably can get by with Spring in most cases which really
must upset the app server vendors and especially
&lt;a href="http://www.logemann.org/blojsom/blog/default/2005/07/07/oops_JBoss_did_it_again_or_how_to_say_forget_Spring.html"&gt;JBoss&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/iUTHExJLYX4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/16/javapolis-ejb3-persistence-2</feedburner:origLink></entry>
  
  <entry>
    <title>Weird Wifi Access</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Ikoep0BHFgQ/weird-wifi-access" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/weird-wifi-access</id>
    <content type="html">&lt;p&gt;The wifi access here at Javapolis is really weird. Surfing the web
works like a charm, so does receiving mail. Sending mail seems to
be a hard thing to do, as it works half the time. However, when
refreshing NetNewsWire, I get no updates. That combined with the
fact that I can&amp;rsquo;t post with MarsEdit makes me suspect that Proximus
has some really funky settings for their wireless network.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Ikoep0BHFgQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/weird-wifi-access</feedburner:origLink></entry>
  
  <entry>
    <title>The Wifi Access is Getting Worse</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/SvWRjYUcMRA/the-wifi-access-is-getting-worse" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/the-wifi-access-is-getting-worse</id>
    <content type="html">&lt;p&gt;This is a short test to see if I can post at all :(&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/SvWRjYUcMRA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/the-wifi-access-is-getting-worse</feedburner:origLink></entry>
  
  <entry>
    <title>Must ... have ... power ...</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FOEpPHvp4c8/must-have-power" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/must-have-power</id>
    <content type="html">&lt;p&gt;As I am constantly on the outlook for power outlets, Pragmatic
Andys post on
&lt;a href="http://toolshed.com/blog/articles/2005/12/13/travelling-with-power"&gt;Travelling with power&lt;/a&gt;
was really funny.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Battery life: the new frontier.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;So true&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://www.toolshed.com/blog"&gt;/\ndy&amp;rsquo;s Blog&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FOEpPHvp4c8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/must-have-power</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: XOM Design Principles</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/hmNUJ-4mkiQ/javapolis-xom-design-principles" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-xom-design-principles</id>
    <content type="html">&lt;p&gt;XOM Design Principles with Eliotte Rusty Harold. Eliotte is a very
good opionionated speaker. While I do not agree with his view on
the topic on humane interfaces, he does present some really good
ideas.&lt;/p&gt;

&lt;p&gt;Quote to remember: &amp;ldquo;One out of three untested lines of code has
bugs.&amp;rdquo;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/hmNUJ-4mkiQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-xom-design-principles</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Wicket</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/_EQOzsXurLY/javapolis-wicket" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-wicket</id>
    <content type="html">&lt;p&gt;Wicket provides a really excellent programming paradigm &amp;ndash; plain
HTML templates, really nice Java and no XML what so ever. My
feelings are mixed though, as it is component based with weird
URL&amp;rsquo;s. Also it uses the session by default. I really have to think
about this one. I&amp;rsquo;m not that big a fan of component based web
frameworks as I think that they are abtract away too much of the
real world of stateless requests and responses.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/_EQOzsXurLY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-wicket</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis Wednesday</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/tVVYNjAZ43Y/javapolis-wednesday" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-wednesday</id>
    <content type="html">&lt;p&gt;Javapolis is held in a combined conference center / movie theater
complex. This makes for very comfortable chairs, really good audio
and no daytime sunlight what so ever. So far the talks I&amp;rsquo;ve been to
have been really good.&lt;/p&gt;

&lt;p&gt;It seems that my problem with wifi jas something to do with size &amp;ndash;
I can send short emails, but not long. Also, it seems that I have
to keep my posts short to get them to my server. This for â‚¬20/24
hrs :(&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/tVVYNjAZ43Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-wednesday</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: WebWork</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/64XxCG19Mko/javapolis-webwork" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-webwork</id>
    <content type="html">&lt;p&gt;This talk had Jason Carreira presenting WebWork. It was good
getting information regarding the WebWork/Struts merger straight
from the source.&lt;/p&gt;

&lt;p&gt;In the Q&amp;amp;A session, people asked a lot of questions about tool
support. This surprises me &amp;ndash; why do people find this a necessity?
Are people actually like Bill Roth of BEA who said in his keynote
that he can&amp;rsquo;t write XML manually? Of course, he &lt;em&gt;sells&lt;/em&gt; tools.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/64XxCG19Mko" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-webwork</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Spring Update</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/yQxplu9wkt0/javapolis-spring-update" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-spring-update</id>
    <content type="html">&lt;p&gt;The room was packed when Javaland superstar Rod Johnson presented
the new features in Spring 2.0. The new XML tags are quite nice as
they reduce the amount of configuration code.&lt;/p&gt;

&lt;p&gt;Rod mentioned that the JPA implementation in Glassfish will
basically be TopLink out of the box, making this a truly usable
reference implementation.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/yQxplu9wkt0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-spring-update</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Spring Caching</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/GLF_YdeXL_k/javapolis-spring-caching" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-spring-caching</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;m a little disappointed with this one as I didn&amp;rsquo;t learn that much
from it. As I managed to get one of the coveted seats next to a
power outlet i am still here though :).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/GLF_YdeXL_k" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-spring-caching</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Keynote Thursday</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/cQh4kSlj8GU/javapolis-keynote-thursday" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-keynote-thursday</id>
    <content type="html">&lt;p&gt;Apart from the RAD race price thingy, Graham Hamilton of Sun
presented Mustang and Dolphin, the upcoming Java releases. What
cought my interest the most is that Mustang will include Rhino, and
Dolphin will provide a completely new byte code format for dynamic
languages. Could it be that this is also related to BEA&amp;rsquo;s future
support of &amp;ldquo;languages that might take off&amp;rdquo;?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/cQh4kSlj8GU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-keynote-thursday</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Java Puzzles</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/2FBZIk_Sh7Y/javapolis-java-puzzles" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-java-puzzles</id>
    <content type="html">&lt;p&gt;The first talk I attended was More Java Puzzles with Joshua Bloch
and Neal Gafter. While I normally find these kind of questions way
too C++-ish (&amp;ldquo;can you tell what this piece of unreadable code
does?&amp;rdquo;) Joshua and Neal presents it very well. I got four out of
eight right by the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://marcus.ahnve.net/images/javapuzzles.png"&gt;&lt;img src="http://marcus.ahnve.net/images/javapuzzles-tm.jpg" title="Java Puzzles" alt="Java Puzzles" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/2FBZIk_Sh7Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-java-puzzles</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: EJB3</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/m3WzSCvT6DM/javapolis-ejb3" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-ejb3</id>
    <content type="html">&lt;p&gt;EJB intro with Linda de Michiel. I remember listening to Linda
presenting EJB2 at JavaOne 2000 saying that now they had fixed
everything that was wrong with EJB1. I must say that is quite a
deja-vu listening to her talking about how EJB3 fixes everything
that was wrong with EJB2.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/m3WzSCvT6DM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-ejb3</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Bitter Java Server Faces</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/66LJ2WmiSOI/javapolis-bitter-java-server-faces" />
    <updated>2005-12-15T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/15/javapolis-bitter-java-server-faces</id>
    <content type="html">&lt;p&gt;This was another packed session, even though according to raised
hands less than 10% of the audience actually uses JSF. Maybe people
where there gathering arguments to not use it? The talk was very
detailed and I can&amp;rsquo;t help think that JSF seems to be incredibly
complex. One advice to get JSF right was to &amp;ldquo;avoid HTTP thinking&amp;rdquo;.
That is the exact reason why I don&amp;rsquo;t like component based web
frameworks.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/66LJ2WmiSOI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/15/javapolis-bitter-java-server-faces</feedburner:origLink></entry>
  
  <entry>
    <title>Javapolis: Access Wifi at the Metropolis</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/xph3oxcbu6Q/javapolis-access-wifi-at-the-metropolis" />
    <updated>2005-12-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/14/javapolis-access-wifi-at-the-metropolis</id>
    <content type="html">&lt;p&gt;If you have a Mac and want to use the Proximus wifi at the
Metropolis, Safari or Firefox won&amp;rsquo;t help. I got through using
Omniweb.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/xph3oxcbu6Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/14/javapolis-access-wifi-at-the-metropolis</feedburner:origLink></entry>
  
  <entry>
    <title>Intial report from Javapolis</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/R55J0SGRdec/intial-report-from-javapolis" />
    <updated>2005-12-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/14/intial-report-from-javapolis</id>
    <content type="html">&lt;p&gt;So I arrived yesterday to Antwerpen, and have just sat through the
keynote. It was basically a shameless plug battle between Sun and
BEA. The most interesting thing was Bill Roth talking about
WebLogic &amp;ldquo;in the coming years&amp;rdquo; supporting &amp;ldquo;languages that might
take off&amp;rdquo;. This is in line with what
&lt;a href="http://jutopia.tirsen.com/articles/2005/11/07/bea-taking-interesting-in-ruby-on-rails"&gt;Jon wrote&lt;/a&gt;
some time ago. Rails on WebLogic? Could be interesting, if not for
no other reason but to gain a wider acceptance for Rails.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/R55J0SGRdec" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/14/intial-report-from-javapolis</feedburner:origLink></entry>
  
  <entry>
    <title>Re: Humane Interface</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/j6KWgkGvUx0/re-humane-interface" />
    <updated>2005-12-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/06/re-humane-interface</id>
    <content type="html">&lt;p&gt;&lt;a href="http://martinfowler.com/bliki/HumaneInterface.html"&gt;Martin Fowler writes&lt;/a&gt;:
&amp;ldquo;If you only try to provide the minimum, you end up with multiple
clients duplicating code for common cases.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Or one billion jakarta.commons packages&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://martinfowler.com/bliki"&gt;Martin Fowler&amp;rsquo;s Bliki&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/j6KWgkGvUx0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/06/re-humane-interface</feedburner:origLink></entry>
  
  <entry>
    <title>Some Very Basic Code Standards</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EvbXhznaqks/some-very-basic-code-standards" />
    <updated>2005-12-05T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/05/some-very-basic-code-standards</id>
    <content type="html">&lt;p&gt;Whilst on the topic of aggravation:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="java"&gt;&lt;span class="lineno"&gt; 1&lt;/span&gt; &lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;span class="lineno"&gt; 2&lt;/span&gt; &lt;span class="cm"&gt; * Returns the url for the link&lt;/span&gt;
&lt;span class="lineno"&gt; 3&lt;/span&gt; &lt;span class="cm"&gt; * @return the url for the link&lt;/span&gt;
&lt;span class="lineno"&gt; 4&lt;/span&gt; &lt;span class="cm"&gt; * @param oFooUtil the foo util&lt;/span&gt;
&lt;span class="lineno"&gt; 5&lt;/span&gt; &lt;span class="cm"&gt; * @param sSomething the something&lt;/span&gt;
&lt;span class="lineno"&gt; 6&lt;/span&gt; &lt;span class="cm"&gt; * @param iAge the age&lt;/span&gt;
&lt;span class="lineno"&gt; 7&lt;/span&gt; &lt;span class="cm"&gt; */&lt;/span&gt;
&lt;span class="lineno"&gt; 8&lt;/span&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;getRelationPath&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FooUtil&lt;/span&gt; &lt;span class="n"&gt;oFooUtil&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;sSomething&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;iAge&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="lineno"&gt; 9&lt;/span&gt;  &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="lineno"&gt;10&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Do not name your methods deceptively and keep the correct
information in the javadoc only&lt;/li&gt;
&lt;li&gt;Do not use hungarian notation. It is extra useless in Java as
it is an object oriented language which means that many, many
variables will be prefixed with o.&lt;/li&gt;
&lt;li&gt;Do not comment the obvious&lt;/li&gt;
&lt;/ol&gt;

&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EvbXhznaqks" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/05/some-very-basic-code-standards</feedburner:origLink></entry>
  
  <entry>
    <title>What's Wrong With People?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/h6oS7izHhWM/whats-wrong-with-people" />
    <updated>2005-12-04T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/04/whats-wrong-with-people</id>
    <content type="html">&lt;p&gt;When parking my car today at the supermarket to take care of the
weekend grocery shopping, I noticed this guy returning to his car
that was parked in a spot reserved for disabled people. He was
obviously not disabled, and his car did not sport the sticker
required in Sweden to use handicap parking spots.&lt;/p&gt;

&lt;p&gt;It really gets to me when people think that rules applies to
everybody but themselves and handicapped people be damned, so I
walk up to him and tells him that he seems to have lost his
handicapped parking permit. This guy, in his fifties, loses it and
basically tells me to go to hell, get a life and drop dead.&lt;/p&gt;

&lt;p&gt;What the hell? How come people become so narcissistic that not only
do they act totally immorally, but when told about it they have the
balls to say that &lt;em&gt;I&lt;/em&gt; am wrong?&lt;/p&gt;

&lt;p&gt;Does this happen elsewhere, or is this a Swedish phenomena?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/h6oS7izHhWM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/04/whats-wrong-with-people</feedburner:origLink></entry>
  
  <entry>
    <title>Really good books</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/gjP7bfRQjVE/really-good-books" />
    <updated>2005-12-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/12/01/really-good-books</id>
    <content type="html">&lt;p&gt;While at &lt;a href="www.lecando.com"&gt;Lecando&lt;/a&gt;, I was quite proud of the
library of computer books we assembled oveer the years.&lt;/p&gt;

&lt;p&gt;These days as a consultant for &lt;a href="www.valtech.se"&gt;Valtech&lt;/a&gt;, my
employer does indeed have a library, but as I am almost never at
the office it is not really accessible.&lt;/p&gt;

&lt;p&gt;I have therefore started to buy the books that I find necessary for
my daily digital life out of my own pocket so that I can have
access to them whenever I want. These are the ones I have got so
far:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/0321205685/qid=1133413154/sr=8-1/ref=pd_bbs_1?n=507846%26s=books%26v=glance"&gt;User Stories Applied&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/0974514055/qid=1133413238/sr=2-1/ref=pd_bbs_b_2_1?s=books%26v=glance%26n=283155"&gt;The Pickaxe&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/097669400X/qid=1133413238/sr=2-2/ref=pd_bbs_b_2_2?s=books%26v=glance%26n=2"&gt;Agile Development With Ruby On Rails&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/0321125215/qid=1133413478/sr=2-1/ref=pd_bbs_b_2_1?s=books%26v=glance%26n=283155"&gt;Domain Driven Design&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/0974514063/qid=1133413550/sr=2-1/ref=pd_bbs_b_2_1?s=books%26v=glance%26n=283155"&gt;Pragmatic Version Control Using Subversion&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=headon-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=http://www.amazon.com/gp/product/0974514047/qid=1133413686/sr=2-1/ref=pd_bbs_b_2_1?s=books%26v=glance%26n=283155"&gt;Ship It!&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=headon-20&amp;amp;l=ur2&amp;amp;o=1" alt="image" /&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;While looking at the list I couldn&amp;rsquo;t help but noticing that I
really like the &lt;a href="www.pragmaticbookshelf.com"&gt;Pragmatic books&lt;/a&gt;. I am
equally surprised that I have so far not felt the urgent need for
any of the
&lt;a href="http://www.oreilly.com/catalog/prdindex.html"&gt;O'Reilly titles&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/gjP7bfRQjVE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/12/01/really-good-books</feedburner:origLink></entry>
  
  <entry>
    <title>Continually switching</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/xuvRgD4lM6c/continually-switching" />
    <updated>2005-11-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/11/29/continually-switching</id>
    <content type="html">&lt;p&gt;After getting the PowerBook, I&amp;rsquo;ve made quite a few additional
switches in my digital life:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.apple.com/macmini/"&gt;Mac Mini&lt;/a&gt; instead of a PC with
&lt;a href="http://www.ubuntulinux.org/"&gt;Ubuntu Linux&lt;/a&gt; at home. After a few
weeks with a Mac at work, I could no longer live without one at
home, so whoops, there it is: a Mac Mini. It is oh so quiet.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ranchero.com/netnewswire/"&gt;NetNewsWire&lt;/a&gt; instead of
&lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;. I have not visited my
previous darling Bloglines &lt;em&gt;once&lt;/em&gt; since I started using NetNewsWire&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.macromates.com/"&gt;TextMate&lt;/a&gt; instead if
&lt;a href="http://www.jedit.org/"&gt;JEdit&lt;/a&gt;, Vi, Emacs &amp;hellip; it rocks.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apple.com/itunes/"&gt;iTunes&lt;/a&gt; and
&lt;a href="http://www.apple.com/ipod/ipod.html"&gt;iPod&lt;/a&gt; instead of rsync and
&lt;a href="http://www.iriver.com/"&gt;iRiver&lt;/a&gt;. I&amp;rsquo;m not addicted &amp;ndash; right :)&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/xuvRgD4lM6c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/11/29/continually-switching</feedburner:origLink></entry>
  
  <entry>
    <title>Agile GUI Development</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/faSoiiWwKgE/agile-gui-development" />
    <updated>2005-11-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/11/06/agile-gui-development</id>
    <content type="html">&lt;p&gt;These days when almost every body is doing the agile thing, there
is still one part of the software development process that is
missing out &amp;ndash; the design of the GUI.&lt;/p&gt;

&lt;p&gt;Too often some snazzy web design studio is brought in, thumb rings
and all, to produce mockups in Photoshop. These are then given to
the programmers to implement to the last pixel.&lt;/p&gt;

&lt;p&gt;I am sorry, but this is the waterfall process straight up. And it
does &lt;em&gt;not&lt;/em&gt; help that you implement it page by page or even
component by component &amp;ndash; that is just dividing the predefined work
into smaller bits.&lt;/p&gt;

&lt;p&gt;If you want to be truly agile, bring the usability people into the
development process. Have them work iteratively as well in
accordance to the stories being implemented, making paper
prototypes the first round and refining in the coming iterations.&lt;/p&gt;

&lt;p&gt;Now I can hear all the usability people go &amp;ldquo;But we need to see the
whole picture&amp;rdquo;. That argument is what everybody has had when
resisting the agile change. Remember, project leaders could not do
agile development &amp;ndash; how could they steer the project if they would
not know where the project was going?&lt;/p&gt;

&lt;p&gt;I have full faith in the usability community that they also can
make the switch.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/faSoiiWwKgE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/11/06/agile-gui-development</feedburner:origLink></entry>
  
  <entry>
    <title>How to make the LG V9910 region free</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/RaujudElnSE/how-to-make-the-lg-v9910-region-free" />
    <updated>2005-10-22T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/10/22/how-to-make-the-lg-v9910-region-free</id>
    <content type="html">&lt;p&gt;If you ever get a LG combined DVD/VCR and want to get it region
free, look no further than
&lt;a href="http://lgregionfree.tripod.com/2005/menu1.htm"&gt;LG RegionFree&lt;/a&gt;.
Worked like a charm.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/RaujudElnSE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/10/22/how-to-make-the-lg-v9910-region-free</feedburner:origLink></entry>
  
  <entry>
    <title>Ruby and MySQL on Tiger</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EH4tin1_u0w/ruby-and-mysql-on-tiger" />
    <updated>2005-10-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/10/17/ruby-and-mysql-on-tiger</id>
    <content type="html">&lt;p&gt;Lots of people have had problems with Ruby and MySQL. The ever so
pragmatic Rails book links to a popular solution which involves
installing the MySQL gem and specifying the path to the MySQL. This
did not do the trick for me, and I&amp;rsquo;ve failed trying different
alternatives after that. Today I came across
&lt;a href="http://www.pjhyett.com/articles/2005/06/04/setting-up-ror-in-tiger"&gt;PJ Hyett&lt;/a&gt;&amp;rsquo;s
idea of installing Ruby-MySQL from source. It worked like a charm.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EH4tin1_u0w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/10/17/ruby-and-mysql-on-tiger</feedburner:origLink></entry>
  
  <entry>
    <title>I'm going to Javapolis</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/w6qknhAZx0Q/im-going-to-javapolis" />
    <updated>2005-10-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/10/17/im-going-to-javapolis</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ll be attending the conference part of
&lt;a href="http://www.javapolis.com"&gt;Javapolis&lt;/a&gt;. Anyone else?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/w6qknhAZx0Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/10/17/im-going-to-javapolis</feedburner:origLink></entry>
  
  <entry>
    <title>Why Scrum is not enough</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/fxdgHBBJEgE/why-scrum-is-not-enough" />
    <updated>2005-10-16T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/10/16/why-scrum-is-not-enough</id>
    <content type="html">&lt;p&gt;These days when I talk to people who claim to have adopted agile
development, they say they use Scrum. While standup meetings and
iterative development with regular demos are good, it is simply not
enough.
&lt;a href="http://jroller.com/page/zoonabar?entry=pair_scare_2"&gt;Chris Brown&lt;/a&gt;
posted the strip below which sums it up pretty good:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://jroller.com/resources/z/zoonabar/Pair2.gif" alt="Pair2" /&gt;&lt;/p&gt;

&lt;p&gt;(Via &lt;a href="http://blogs.thoughtworks.com"&gt;Planet TW&lt;/a&gt;.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/fxdgHBBJEgE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/10/16/why-scrum-is-not-enough</feedburner:origLink></entry>
  
  <entry>
    <title>How to best develop half of a web application?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/wrN29KgOigI/how-to-best-develop-half-of-a-web-application" />
    <updated>2005-08-26T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/08/26/how-to-best-develop-half-of-a-web-application</id>
    <content type="html">&lt;p&gt;At work, the task at hand is extending an existing J2EE based
product. This means that half of the .war that is to be deployed is
hands-off, and the other half is written by us.&lt;/p&gt;

&lt;p&gt;The problem I am having is how to get a productive environment.
Unfortunately the products file organization is a mess, so there is
no way to have a version checked into the version control system as
it never would survive an upgrade. Also the deployed app needs to
be initialized with a lot of data that is &amp;ndash; surprise &amp;ndash; saved both
in a database and on the filesystem, meaning no easy test db setup.&lt;/p&gt;

&lt;p&gt;The developers who have been in the project for a while have used
an army of symbolic links to connect the dots, probably inspired by
the products overgenerous use of such. But I am not content with
what I&amp;rsquo;ve seen, but I cant really point my finger at what to do.
Anyone who has done anything similar?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/wrN29KgOigI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/08/26/how-to-best-develop-half-of-a-web-application</feedburner:origLink></entry>
  
  <entry>
    <title>Precious</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Qw8sfeT5irM/precious" />
    <updated>2005-08-24T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/08/24/precious</id>
    <content type="html">&lt;p&gt;I submitted my soul to iTunes an hour ago, as Depeche Mode so far
has released their new single on the net only. Since I&amp;rsquo;m an avid
loather of DRM this was not an easy step, but I really couldn&amp;rsquo;t
help myself.&lt;/p&gt;

&lt;p&gt;The song? Classic Mode stuff &amp;ndash; really, really good.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Qw8sfeT5irM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/08/24/precious</feedburner:origLink></entry>
  
  <entry>
    <title>Google Talk - it's hackable</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/6GueuzW1E9g/google-talk-its-hackable" />
    <updated>2005-08-24T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/08/24/google-talk-its-hackable</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt; is the thing to mention
today so why should I be different? I really hope that it catches
on, as it is based on Jabber, which is open, meaning hackable
without resorting to reverse engineering and hoping that the
protocol does not change overnight as is the case with MSN and ICQ
for example.&lt;/p&gt;

&lt;p&gt;Presence awareness and IM integration in various contexts can
provide some really cool features and is considered a killer
feature by IBM in their Workplace product for instance. (A truly
crappy piece of software as a whole though)&lt;/p&gt;

&lt;p&gt;Finally that Jabber plugin in CruiseControl might come to real use.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/6GueuzW1E9g" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/08/24/google-talk-its-hackable</feedburner:origLink></entry>
  
  <entry>
    <title>Mmm ... Powerbook.</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/wb0SxfAGoKc/mmm-powerbook" />
    <updated>2005-08-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/08/18/mmm-powerbook</id>
    <content type="html">&lt;p&gt;Wow. I am back in Mac land, which I left in 1996 when I started my
career at IBM and turned into a PC drone. Now, after four days of
pure Mac joy, it feels like I am never going back.&lt;/p&gt;

&lt;p&gt;This also goes to show what a cool company Valtech is. I mentioned
this to &lt;a href="http://blogs.codehaus.org/people/tirsen"&gt;Jon&lt;/a&gt; who got
really jealous. Apparently the Thoughtworkers get company issued
Dells and all Mac stuff is paid for by themselves.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/wb0SxfAGoKc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/08/18/mmm-powerbook</feedburner:origLink></entry>
  
  <entry>
    <title>My New Job At Valtech</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/TbtmtODberI/my-new-job-at-valtech" />
    <updated>2005-07-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/07/29/my-new-job-at-valtech</id>
    <content type="html">&lt;p&gt;I am really excited about my new position as a consultant at
&lt;a href="http://www.valtech.se"&gt;Valtech&lt;/a&gt;. After selling software products
for five years, I am ready to go back into consulting.&lt;/p&gt;

&lt;p&gt;Valtech Stockholm is very strong Java shop and really into agile
methodologies. This was the cause of my intitial interest with
them. The thing that finally got me though was the interview
process which really impressed me. I certainly was not sure that I
would get through it myself, and I figured that if everybody
working there had passed it, they must be a really exceptional
group of people. That impression has intially been confirmed by
spending a day and evening with them at a conference.&lt;/p&gt;

&lt;p&gt;As my wife also got a
&lt;a href="http://www.wester-elsner.se/"&gt;really cool new job&lt;/a&gt;, this fall is
looking very bright indeed.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/TbtmtODberI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/07/29/my-new-job-at-valtech</feedburner:origLink></entry>
  
  <entry>
    <title>Leaving Lecando</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/QhlXQpLO8OE/leaving-lecando" />
    <updated>2005-07-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/07/28/leaving-lecando</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve spent five good years at &lt;a href="http://www.lecando.com"&gt;Lecando&lt;/a&gt;.
When I started out, we had \~25 employees. After a year we cut down
to 14. After another cut half a year later, we held on to a pretty
steady 10 until this spring showed to be terrible if you where in
the business of selling addons to IBM Workplace.&lt;/p&gt;

&lt;p&gt;Lecando will be employing 3.5 people this fall, none of them being
me. I have been thinking about getting a new job for about a year
now, so I am really looking forward to the fall and my new
employment. More on that later.&lt;/p&gt;

&lt;p&gt;I wish Acke, Johan, Behe and Jimmy all the best for the future.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/QhlXQpLO8OE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/07/28/leaving-lecando</feedburner:origLink></entry>
  
  <entry>
    <title>Screencasts with Wink</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/1NqXoOjbkYM/screencasts-with-wink" />
    <updated>2005-06-15T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/06/15/screencasts-with-wink</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve tried a few tools to do screencasts, my favorite so far is
&lt;a href="http://www.debugmode.com/wink/"&gt;Wink&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Notable features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;Manual capturing&lt;/li&gt;
&lt;li&gt;Insertion of text into images&lt;/li&gt;
&lt;li&gt;Multiple export formats&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/1NqXoOjbkYM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/06/15/screencasts-with-wink</feedburner:origLink></entry>
  
  <entry>
    <title>Why does Sun not provide a Java Communications API for Linux</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/1UoGBs-kRT4/why-does-sun-not-provide-a-java-communications-api-for-linux" />
    <updated>2005-06-14T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/06/14/why-does-sun-not-provide-a-java-communications-api-for-linux</id>
    <content type="html">&lt;p&gt;Why on earth doesn&amp;rsquo;t Sun provide a
&lt;a href="http://java.sun.com/products/javacomm/"&gt;Java Communications API&lt;/a&gt;
for Linux?&lt;/p&gt;

&lt;p&gt;Good thing IBM does.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/1UoGBs-kRT4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/06/14/why-does-sun-not-provide-a-java-communications-api-for-linux</feedburner:origLink></entry>
  
  <entry>
    <title>Gnome Panel Applet for Luntbuild</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/K2Zq0AH4ebk/gnome-panel-applet-for-luntbuild" />
    <updated>2005-06-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/06/09/gnome-panel-applet-for-luntbuild</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve created a Gnome Panel Applet to monitor Luntbuild builds. This
is basically a spike to try out the Ruby-GTK2 library and the
Luntbuild API but it works so I might as well release it.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://marcus.ahnve.net/files/luntbuildapplet-0.0.1.tar.gz"&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/K2Zq0AH4ebk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/06/09/gnome-panel-applet-for-luntbuild</feedburner:origLink></entry>
  
  <entry>
    <title>Widgets monitoring automated builds</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/HIFU9wLTCQo/widgets-monitoring-automated-builds" />
    <updated>2005-06-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/06/03/widgets-monitoring-automated-builds</id>
    <content type="html">&lt;p&gt;Mike Clark at
&lt;a href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Build/CCWidget.rdoc"&gt;Pragmatic Automation&lt;/a&gt;
blogs about a new
&lt;a href="http://rubicore.com/code/cruisecontrol/"&gt;CruiseControl widget&lt;/a&gt; to
monitor CruiseControl Builds by using the new Tiger widget thingys.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://rubicore.com/code/cruisecontrol/images/passing.jpg" alt="The Mac CC Widget" /&gt;&lt;/p&gt;

&lt;p&gt;Funny enough that I&amp;rsquo;ve spent some time meddling with something
similar for &lt;a href="http://www.pmease.com/luntbuild/"&gt;Luntbuild&lt;/a&gt; and
&lt;a href="http://www.gnome.org"&gt;Gnome&lt;/a&gt;. But I have to say, that as far as
graphics go, I have some catching up to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/17282853/" title="Photo Sharing"&gt;&lt;img src="http://photos14.flickr.com/17282853_0c40218087_o.png" alt="lbapplet-0.0.1" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/HIFU9wLTCQo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/06/03/widgets-monitoring-automated-builds</feedburner:origLink></entry>
  
  <entry>
    <title>The power of the OpenOffice2 file format</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/vL9B3-e2TfI/the-power-of-the-openoffice2-file-format" />
    <updated>2005-06-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/06/02/the-power-of-the-openoffice2-file-format</id>
    <content type="html">&lt;p&gt;The Oasis document format is really cool. My wife who is an
architect (the original house building version, that is) &amp;ndash; had
created a presentation in PowerPoint with a lot of images, and the
resulting file was 100M+.&lt;/p&gt;

&lt;p&gt;I opened that file in OpenOffice2 and saved it as an .odt file.
Then I unzipped it, bulk opened all images in the Gimp and changed
their resolution. Finally I zipped it all up, an the presentation
was now 8M and looking just the same. Ah, the power of openess.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/vL9B3-e2TfI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/06/02/the-power-of-the-openoffice2-file-format</feedburner:origLink></entry>
  
  <entry>
    <title>Linking Courage</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/ic4XbzukkZM/linking-courage" />
    <updated>2005-05-31T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/05/31/linking-courage</id>
    <content type="html">&lt;p&gt;I was looking up &lt;a href="http://www.getahead.ltd.uk/dwr/"&gt;DWR&lt;/a&gt; and noticed
that they provided links to similar projects. It occured to me that
that is usually a sign of a quality project, having the self esteem
/ humility to show the way to alternatives.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/ic4XbzukkZM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/05/31/linking-courage</feedburner:origLink></entry>
  
  <entry>
    <title>What is Gosling talking about?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/M-iuD5Om9ls/what-is-gosling-talking-about" />
    <updated>2005-05-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/05/18/what-is-gosling-talking-about</id>
    <content type="html">&lt;p&gt;I most certainly hope that James Gosling was quoted out of context
in &lt;a href="http://www.devx.com/Java/Article/28125"&gt;this article.&lt;/a&gt; The way
he talks about open-source is comes out very &amp;hellip; Balmery, which is
disturbing. Why is he talking about open source as a place where
&amp;ldquo;any old person could check in stuff&amp;rdquo; &amp;ndash; that is not the way it is
done and he knows it. He should know it. Which is also why
enterprise customers are not running away from well-kept open
source projects like Linux and Tomcat.&lt;/p&gt;

&lt;p&gt;Not doing the &amp;ldquo;open source is the one true path&amp;rdquo; dance, let me
still be very clear:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Server side Java would be nowhere near the size it has today
were it not for the open source community.&lt;/li&gt;
&lt;li&gt;I care about being legally clean, and it is not a nightmare
(Disclaimer &amp;ndash; I live and work in Sweden.). Gosling joins Bill and
Steve using the GPL to scare people, and it is just stupid. We all
know not to use GPL&amp;rsquo;d code in our commercial products and it is
such a relief then that the vast majority of the server side
libraries are not licensed under the GPL.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;This really made me upset in the &amp;ldquo;somebody I thought I knew did
something really wrong&amp;rdquo;-way . For Gosling to come out with this
blubbering, he really must be concerned over Harmony.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/M-iuD5Om9ls" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/05/18/what-is-gosling-talking-about</feedburner:origLink></entry>
  
  <entry>
    <title>Me and my X40</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/H0-xbbIRZEI/me-and-my-x40" />
    <updated>2005-05-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/05/13/me-and-my-x40</id>
    <content type="html">&lt;p&gt;Some time ago I got a new IBM X40. It is now running Ubuntu Hoary
and I must say that it is really an excellent piece of hardware.
Everything but the SD card reader works out of the box, which of
course also goes to show what a great distro Ubuntu is. Get'em
both.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/H0-xbbIRZEI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/05/13/me-and-my-x40</feedburner:origLink></entry>
  
  <entry>
    <title>Eventum Issue / Bug Tracking System</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/bwRo9z-Tjaw/eventum-issue-bug-tracking-system" />
    <updated>2005-05-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/05/13/eventum-issue-bug-tracking-system</id>
    <content type="html">&lt;p&gt;&lt;a href="http://dev.mysql.com/downloads/other/eventum/"&gt;Eventum Issue / Bug Tracking System&lt;/a&gt;
has to be the best kept secret in issue tracking. I might not get
out as much as I should, but I had not heard of it until the other
day.&lt;/p&gt;

&lt;p&gt;I did spend some time the other day looking at Bugzilla, which we
used to use in house before the days of JIRA, to see if they had
made any improvements and fixed that god-awful search screen. (They
hadn&amp;rsquo;t)&lt;/p&gt;

&lt;p&gt;In the process, I came across Eventum by chance and since it is a
MySQL product I figured it ought to be interesting and installed it
on my laptop to give it a go.&lt;/p&gt;

&lt;p&gt;The thing is, I really like it. It has the same power user feeling
that &lt;a href="http://www.bestpractical.com/rt/"&gt;Request Tracker&lt;/a&gt; has, but
is more aimed at a development environment. We are happy JIRA
customers at Lecando, but Mike and the guys could definitely pick
up one or two things from Eventum. My favorite thing is that
Eventum uses colored rows when listing issues to indicate the
status of the issue, which really gives you a quick overview.&lt;/p&gt;

&lt;p&gt;JIRA&amp;rsquo;s icons look nice, but they do not provide a good overview.
Look at the &amp;lsquo;Roadmap&amp;rsquo; screen to see what I mean.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://photos10.flickr.com/13692294_fe01172787.jpg" alt="Screenshot of JIRA roadmap feature" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/bwRo9z-Tjaw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/05/13/eventum-issue-bug-tracking-system</feedburner:origLink></entry>
  
  <entry>
    <title>Ruby on Rails on Ubuntu</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/LjRQ71CLnbE/ruby-on-rails-on-ubuntu" />
    <updated>2005-04-14T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/04/14/ruby-on-rails-on-ubuntu</id>
    <content type="html">&lt;p&gt;I feel I just have to try
&lt;a href="http://download.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt;, I mean everybody
else is doing it and I don&amp;rsquo;t want to feel left out.&lt;/p&gt;

&lt;p&gt;So I started setting it up on my X40 which runs Ubuntu. There is
still no deb available for it, you have to use the Ruby Gems system
to set it up. I dont know if this is good or bad &amp;ndash; it seems like a
Ruby CPAN and my feelings towards Perls CPAN are mixed. I once
ended up with two Perls on a Red Hat box when using it to set up
Request Tracker. Let&amp;rsquo;s hope Gems works better.&lt;/p&gt;

&lt;p&gt;To start out I had to apt-get rdoc and libzlib-ruby. After that it
is installed. Whohoo. What now?&lt;/p&gt;

&lt;p&gt;Ok &lt;code&gt;rails ~/work/rortest&lt;/code&gt; &amp;hellip; Bang. Some dependency is missing.
Let&amp;rsquo;s search Synaptic to see what could possibly make it tick.&lt;/p&gt;

&lt;p&gt;libwebrick maybe? Nope.&lt;/p&gt;

&lt;p&gt;libmysql-ruby? Nope.&lt;/p&gt;

&lt;p&gt;eruby? No.&lt;/p&gt;

&lt;p&gt;libdbi-mysql. Noo.&lt;/p&gt;

&lt;p&gt;libwhatever-ruby. Nothing works.&lt;/p&gt;

&lt;p&gt;Maybe there&amp;rsquo;s some info on their site? Hmm &amp;hellip; there are
&lt;a href="http://wiki.rubyonrails.com/rails/show/RailsOnDebianUnstable"&gt;instructions&lt;/a&gt;on
how to install it on Debian unstable which involves apt-getting the
all ruby libraries known to man &amp;ndash; but who cares &amp;ndash; let&amp;rsquo;s try that.&lt;/p&gt;

&lt;p&gt;Whohoo! It works. Let&amp;rsquo;s see some of the Ruby love in the browser
then &amp;ndash; it is indeed there.&lt;/p&gt;

&lt;p&gt;Ok. Now for the database tweaking. Why three databases? I guess I'l
find out.&lt;/p&gt;

&lt;p&gt;Yaml is really, really nice.&lt;/p&gt;

&lt;p&gt;Ok, according to the site, all I have left is to develop my Rails
application, so I guess that is what I will do. Wish me luck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; There are now instructions for
&lt;a href="http://wiki.rubyonrails.com/rails/show/RailsOnUbuntuDebianTestingAndUnstable"&gt;how to set up Rails on Ubuntu&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/LjRQ71CLnbE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/04/14/ruby-on-rails-on-ubuntu</feedburner:origLink></entry>
  
  <entry>
    <title>Hackers and Painters</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/mY2PVhDVeBo/hackers-painters" />
    <updated>2005-04-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/04/11/hackers-painters</id>
    <content type="html">&lt;p&gt;Like so many others, I have read
&lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/0596006624/qid=1113255801/sr=8-1/ref=sr_8_xs_ap_i1_xgl/026-4981165-9589202"&gt;Hackers and Painters&lt;/a&gt;
by Paul Graham. And, surprise, I find it highly recommendable, like
everybody else. The following are a few thoughts about I jotted
down while reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why, oh why, in the name of mad page flipping are the footnotes
placed in the back?&lt;/li&gt;
&lt;li&gt;I am surprised that Pete McBreen of Software Craftmanship fame
is not mentioned &amp;ndash; in my opinion they are making the same case
against &amp;ldquo;Computer Science&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Contrary to common XP belief Paul Graham favors code ownership.
Quite unusual in this day and age, and interesting &amp;ndash; I need to
reflect on it more.&lt;/li&gt;
&lt;li&gt;His thoughts on developers needing empathy are spot on. Not
only for the end users but also for the later developers. It is
also better to tell a developer to see things from somebody elses
view and document accordingly instead of having him follow the RUP
Deliverable Tablets of Stone without reflection.&lt;/li&gt;
&lt;li&gt;Hosting your own web application &amp;ndash; I wish. Companies today
still see the intranet as something that should be inside their
own, very physical, walls. And I can&amp;rsquo;t blame them &amp;ndash; at Lecando we
run our own JIRA, Confluence, SugarCRM etcetera in house. It hit me
though when thinking about this &amp;ndash; what would we choose if Atlassian
offered a hosted JIRA at a competitive price? What if that was the
only way they offered their solution? Would JIRA be developed
faster since they did not have to worry about releases and
customers maintenance problems, or would they spend that time
managing the server park?&lt;/li&gt;
&lt;li&gt;Paul Graham makes a very strong case for capitalism. Whatever
your view on politics &amp;ndash; I believe that the starting part of the
Wealth chapter describing the difference between wealth and money
should be taught to all.&lt;/li&gt;
&lt;li&gt;The parts about Lisp are quite tiresome. And regarding Perl as
a higher level language than Java? Please.&lt;/li&gt;
&lt;li&gt;With &amp;ldquo;Partisans of permissive languages ridiculing the other
&lt;em&gt;[preventive languages such as Java &amp;ndash; my note]&lt;/em&gt; as "B&amp;amp;D&amp;rdquo; (bondage
and discipline) languages" Paul Graham wonders what &amp;ldquo;prevent&amp;rdquo;-style
people say of Perl? At Lecando we normally just say &amp;ldquo;Perl &amp;hellip;&amp;rdquo; and
shake our heads.&lt;/li&gt;
&lt;li&gt;Paul Graham has a slightly dismissive tone when talking about
stuff like object orientation, static typing etcetera which can get
on your nerves if you are a Java head.&lt;/li&gt;
&lt;li&gt;I get the feeling that he sees Java people the way Java people
see VB people. Prejudice! :)&lt;/li&gt;
&lt;li&gt;He suggests that pointy-haired bosses select Java for
programming projects. Since I would select Java for many
programming project, would that make me pointy-haired?&lt;/li&gt;
&lt;li&gt;He does explain, perhaps unintentionally, Javas success by
emphasizing the importance of existing libraries for a programming
language to succeed. Hibernate, Lucene et cetera anyone?.&lt;/li&gt;
&lt;li&gt;When he mentions the importance of efficiency and the ability
to rewrite code I believe he is right. But, I can be dead wrong, I
imagine Paul being a Emacs hacker, and if you still only use Emacs,
it is sure easier to write code in Python, Ruby etc. But in Java
land there is this neat thing called refactoring IDE&amp;rsquo;s &amp;ndash; Eclipse,
IDEA and the lot. My problem is that it is hard returning to Emacs
after using a code-completing, refactoring IDE like IDEA.&lt;/li&gt;
&lt;li&gt;I guess I have to learn Lisp to see what the fuss is all about&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Fixed typos&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/mY2PVhDVeBo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/04/11/hackers-painters</feedburner:origLink></entry>
  
  <entry>
    <title>Fit Testing  - how to translate it to Swedish?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/QM0dE77TQ4w/fit-testing-how-to-translate-it-to-swedish" />
    <updated>2005-04-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/04/08/fit-testing-how-to-translate-it-to-swedish</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;m spending some time getting into Fit style acceptance testing
and I&amp;rsquo;m liking what I see. My biggest problem so far is
translation.&lt;/p&gt;

&lt;p&gt;For all you non-Swedish-speaking out there, most techie lingo gets
a very crude translation, basically by not translating it at all
and using the english word as is. So a unit test in english is also
a unit test in swedish.&lt;/p&gt;

&lt;p&gt;But I&amp;rsquo;ve bit my tongue at least 10 times today saying &amp;ldquo;Fit tests&amp;rdquo;
in swedish. Basically by not translating it I&amp;rsquo;m saying what I
believe is considered the dirtiest word in the swedish langauge.&lt;/p&gt;

&lt;p&gt;Any ideas for translations, swedish people out there?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/QM0dE77TQ4w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/04/08/fit-testing-how-to-translate-it-to-swedish</feedburner:origLink></entry>
  
  <entry>
    <title>Lavalamps in action</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qMLAi_2LDkk/lavalamps-in-action" />
    <updated>2005-03-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/03/30/lavalamps-in-action</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/mahnve/7912735/" title="photo sharing"&gt;&lt;img src="http://photos7.flickr.com/7912735_40c4096d9f_m.jpg" alt="image" /&gt;&lt;/a&gt;
&lt;a href="http://www.flickr.com/photos/mahnve/7912735/"&gt;Lavalamps in action&lt;/a&gt;
Originally uploaded by
&lt;a href="http://www.flickr.com/people/mahnve/"&gt;mahnve&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve finally got our act together and got ourselves a pair of
lavalamps. They are controlled by CruiseControl and green equals
all tests passed.&lt;/p&gt;

&lt;p&gt;When reading about other people doing this, they say that these
things need to be turned off every ten hours or so. The only
warning notice on ours, bought at
&lt;a href="http://www.clasohlson.se"&gt;Clas Ohlson&lt;/a&gt;, says to not drink the
fluid &amp;ndash; duh.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qMLAi_2LDkk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/03/30/lavalamps-in-action</feedburner:origLink></entry>
  
  <entry>
    <title>Famous Leader and Movie Test</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EzXTUzb2CGo/famous-leader-test" />
    <updated>2005-03-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/03/29/famous-leader-test</id>
    <content type="html">&lt;p&gt;Now &amp;ndash; is this good or bad?&lt;/p&gt;

&lt;p&gt;&lt;img src="http://images.similarminds.com/leader/7.jpg" alt="image" /&gt;
&lt;a href="http://similarminds.com/othertests.html"&gt;What Famous Leader Are You?&lt;/a&gt;
&lt;a href="http://similarminds.com"&gt;personality tests by similarminds.com&lt;/a&gt;
&lt;img src="http://images.similarminds.com/movie/7.jpg" alt="image" /&gt;
&lt;a href="http://similarminds.com/othertests.html"&gt;What Classic Movie Are You?&lt;/a&gt;
&lt;a href="http://similarminds.com"&gt;personality tests by similarminds.com&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EzXTUzb2CGo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/03/29/famous-leader-test</feedburner:origLink></entry>
  
  <entry>
    <title>Oh man ... I'll continue buying ecological eggs</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/scF06V-wn0U/oh-man-ill-continue-buying-ecological-eggs" />
    <updated>2005-03-05T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/03/05/oh-man-ill-continue-buying-ecological-eggs</id>
    <content type="html">&lt;p&gt;I saw
&lt;a href="http://www.boingboing.net/2005/03/04/nightmarish_industri.html"&gt;this on Boing Boing&lt;/a&gt;
and it is just staggering what people can do. As mentioned you have
to watch the video clip. And think about what you buy.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/scF06V-wn0U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/03/05/oh-man-ill-continue-buying-ecological-eggs</feedburner:origLink></entry>
  
  <entry>
    <title>Testing mo:Blog</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/F6krjzbB5uo/testing-moblog" />
    <updated>2005-02-19T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/02/19/testing-moblog</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;m in the subway on my way to my moms boyfriends daughters
birthday party, using the time to test blogging from my Palm. Seems
to work quite decently actually.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/F6krjzbB5uo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/02/19/testing-moblog</feedburner:origLink></entry>
  
  <entry>
    <title>WordPress 1.5</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/UKYT2Xh8zlU/wordpress-15" />
    <updated>2005-02-18T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/02/18/wordpress-15</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve upgraded to &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt; 1.5 and the
upgrade was really a breeze. The problem with the new default theme
is that it is probably too good looking &amp;ndash; people won&amp;rsquo;t change it
and my blog will look like everybody elses. Dammit.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/UKYT2Xh8zlU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/02/18/wordpress-15</feedburner:origLink></entry>
  
  <entry>
    <title>Saying hello to our old friend Ant</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/a3AsWm44Hc0/a-couple-of-dutch-rants-ant-drawbacks-ruby-and-more" />
    <updated>2005-02-11T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/02/11/a-couple-of-dutch-rants-ant-drawbacks-ruby-and-more</id>
    <content type="html">&lt;p&gt;&lt;a href="http://blog.arendsen.net/index.php?p=9"&gt;Alef Arendsen ponders on whether to switch from Ant to a Ruby build tool.&lt;/a&gt;
At &lt;a href="http://www.lecando.com"&gt;Lecando&lt;/a&gt; we just this week finished
migrating away from a Ruby based build system we called Raven. Our
former employee HÃ¥kan speaks
&lt;a href="http://www.jroller.com/page/ghettoJedi/20031001#the_importance_the_build_environment"&gt;in his blog entry&lt;/a&gt;
from way back then about the enthusiasm we shared. Of course,
Håkan speaks of our migration from Maven, the build tool from hell
of which one should not speak.&lt;/p&gt;

&lt;p&gt;So we&amp;rsquo;ve now gone full circle &amp;ndash; Ant &amp;ndash; Maven &amp;ndash; Raven &amp;ndash; Ant. So what
happened and why?&lt;/p&gt;

&lt;p&gt;Our &lt;code&gt;build.xml&lt;/code&gt; used to be a trillion lines long and quite
unmaintainable. When we first saw Maven we thought &amp;ldquo;Easy targets
due to standard directory organization, automatic dependency
downloads and we will probably read that really nice webpage thingy
very often. Way cool, we want that&amp;rdquo;. Since we never have hesitated
to throw new fun explosive stuff onto our e-learning fire we pushed
all our directories around, picked up the ball and ran with it.&lt;/p&gt;

&lt;p&gt;I looked at our old &lt;code&gt;project.xml&lt;/code&gt; file today. Man, that thing is
ugly. As
&lt;a href="http://http://beust.com/weblog/archives/000244.html"&gt;Cedric&lt;/a&gt;
points out, Maven is really four languages, and Jelly is one of
them. Ouch.&lt;/p&gt;

&lt;p&gt;At that time we were bitten by the Ruby bug due to a number of
reasons, two of them being
&lt;a href="http://blogs.codehaus.org/people/tirsen/"&gt;Jon&lt;/a&gt;, head chef of
&lt;a href="http://damagecontrol.codehaus.org"&gt;Damage Control&lt;/a&gt; who had just
left us for &lt;a href="http://www.thoughtworks.com"&gt;new frontiers&lt;/a&gt;, and
&lt;a href="http://c2.com/cgi/wiki?AndersBengtsson"&gt;Anders Bengtsson&lt;/a&gt; who used
to work for us but is still a good friend of some of the guys. This
combined with our craving for a shiny new build system made us roll
up our sleeves and start to build our own build system in Ruby,
Raven.&lt;/p&gt;

&lt;p&gt;When you start to build a new file system you most probably start
with the easy pieces. &amp;ldquo;Let&amp;rsquo;s see &amp;hellip; compile? That&amp;rsquo;s good &amp;ndash; we need
to compile in our projects. And we can set our classpath in a
really non-obtrusive way. Oh, this feels so good, I&amp;rsquo;m glad we&amp;rsquo;re
doing this. And next &amp;hellip; Test? Awesome, we&amp;rsquo;ll be done in no time.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;&amp;hellip; A little later &amp;hellip;&lt;/p&gt;

&lt;p&gt;&amp;ldquo;OK. it is not a good as in the beginning but we&amp;rsquo;ll refactor it.
Now we just need to build the docbook docs, package the war, pack
it up in a ear, zip that up with all external docs and whatnots and
we&amp;rsquo;re done.&amp;rdquo;&lt;/p&gt;

&lt;p&gt;Spoiler: The resulting build was as hard to maintain as the
previous ones had been, albeit in a prettier syntax.&lt;/p&gt;

&lt;p&gt;I believe it is exactly the same thing as when you start out with
your Ant build file. As long as you&amp;rsquo;re setting up the compile and
test part everything is really clean, but when you get into the
specifics that is needed for your app like for example signing an
applet &amp;ndash; we used to do that &amp;ndash; things get dirty. And it does not
matter what language you do it in, it is complicated even in plain
English, or Swedish. (&amp;ldquo;Take those files and sign them with that
certificate file over there to produce an applet as a jar for
Netscape, and when your done you take the same files and sign them
again, but this time with that certificate file over there for
Explorer, and, oh yeah, make it a CAB file. Don&amp;rsquo;t mess up or the
browser barfs&amp;rdquo;)&lt;/p&gt;

&lt;p&gt;While we were doing this, things happened in Ant land. Imports and
Macrodefs solved a lot of problems, making build files readable.
IDEA even provides code completion and refactoring support for Ant.
As you might suspect, we did not have that for Raven. We slowly
accepted fate and began the walk back into XML. However, among the
brackets are a few goodies in addition to the ones above.&lt;/p&gt;

&lt;p&gt;Ants platform independency is king. Visar, our designer guy, can
run the app from his Windows box as well as we do on our Linux
ones. I know, Ruby is supposed to be platform independent, but
unfortunately it works in the same way Python does it &amp;ndash; almost.&lt;/p&gt;

&lt;p&gt;We have even rolled our own CruiseControl in Ruby. We really did
not like CruiseControl two years ago so we might not use it now
either, but at least now we have the choice. I&amp;rsquo;ve read a lot of
good things about it recently and if it is good enough for
&lt;a href="http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi"&gt;Mike Clark&lt;/a&gt;
it must be good enough for us as well.&lt;/p&gt;

&lt;p&gt;To sum it up, Ant is a standard which in itself might not be the
best thing at all, but with all the support for it it certainly
comes out on top for us.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/a3AsWm44Hc0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/02/11/a-couple-of-dutch-rants-ant-drawbacks-ruby-and-more</feedburner:origLink></entry>
  
  <entry>
    <title>Back On Track</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/d7vju9UCp20/back-on-track" />
    <updated>2005-02-10T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/02/10/back-on-track</id>
    <content type="html">&lt;p&gt;Whew! I just spent 2,5 hours converting my old
&lt;a href="http://b2evolution.net/"&gt;B2Evolution&lt;/a&gt; blog to
&lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt;. I have been planning to do
this for ages, but I just never got around to it. The idea was to
switch hosting providers at the same time but I had a hard time
finding something I liked. Then one of the
&lt;a href="http://www.pragmaticprogrammer.com"&gt;pragmatic guys&lt;/a&gt; mentioned
&lt;a href="http://www.textdrive.com"&gt;TextDrive&lt;/a&gt; and that was love at first
sight.&lt;/p&gt;

&lt;p&gt;Converting was not that straightforward until I found
&lt;a href="http://ppleyard.org.uk/tutorials_b2evoimport.php"&gt;this&lt;/a&gt;. Thanks a
lot.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/d7vju9UCp20" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/02/10/back-on-track</feedburner:origLink></entry>
  
  <entry>
    <title>Testing BloGTK</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/X5qZFq-2cUs/testing-blogtk" />
    <updated>2005-02-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2005/02/09/testing-blogtk</id>
    <content type="html">&lt;p&gt;Testing to blog from BloGTK. I&amp;rsquo;m not sure that I really see the
point of this. It maybe good for off line use, but then I&amp;rsquo;d
probably use JEdit and save it as a .txt file anyway. Oh well.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/X5qZFq-2cUs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2005/02/09/testing-blogtk</feedburner:origLink></entry>
  
  <entry>
    <title>Funniest Thing In A Long Time</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9acROjsam54/59" />
    <updated>2004-12-11T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/12/11/59</id>
    <content type="html">&lt;p&gt;From BOFH:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&amp;ldquo;Yeah, academics and beancounters are the worst for this sort of
thing. Somewhere in their brain they believe that just because they
USE a computer means they&amp;rsquo;re somehow gifted in that area.&amp;rdquo; &amp;ldquo;How?&amp;rdquo;
&amp;ldquo;Well it&amp;rsquo;s a bit like the people who had the first flush toilets &amp;ndash;
They thought they were somehow a plumbing specialist when in actual
fact they were just crap dispensers.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9acROjsam54" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/12/11/59</feedburner:origLink></entry>
  
  <entry>
    <title>Gnome 2.8</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/f1YhFutO01o/gnome-28" />
    <updated>2004-11-23T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/11/23/gnome-28</id>
    <content type="html">&lt;p&gt;I have been using Gnome 2.8 for a couple of weeks now, and I must
say that it is getting really good. Gnome was the first window
manager I used when I started using Linux, but I soon became hooked
on more lightweight alternatives such as Fluxbox and XFce4, as I
did not think that Gnome offered that much to compensate for its
relative slowness.&lt;/p&gt;

&lt;p&gt;But since I got my laptop, I have grown tired of having to do
everything manually whenever the environment changes. And with the
advent of Ubuntu it is really a snap.&lt;/p&gt;

&lt;p&gt;I honestly do think that it is a way better working environment
than Windows. It still has a lot to do to catch up with Mac OSX,
but when I look at what is happening over at Planet Gnome I
strongly believe that they will eventually get there.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/f1YhFutO01o" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/11/23/gnome-28</feedburner:origLink></entry>
  
  <entry>
    <title>Wireless Again</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/87RIWQiVwAE/wireless-again" />
    <updated>2004-10-19T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/10/19/wireless-again</id>
    <content type="html">&lt;p&gt;My old 3Com Prism54 card for some reason did not work anymore on
Linux. I finally gave in a bought a new
&lt;a href="http://sourceforge.net/projects/madwifi"&gt;MadWifi&lt;/a&gt; one which worked
out of the box. Sweet!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/87RIWQiVwAE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/10/19/wireless-again</feedburner:origLink></entry>
  
  <entry>
    <title>Patting Myself On the Back</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/6ogKKjbZ7Rc/patting-myself-on-the-back" />
    <updated>2004-09-28T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/09/28/patting-myself-on-the-back</id>
    <content type="html">&lt;p&gt;It&amp;rsquo;s not that often that I get to say &amp;ldquo;told you so&amp;rdquo; &amp;ndash; ask my wife,
coworkers or basically anybody &amp;ndash; but I found
&lt;a href="http://www.jroller.net/page/ahnve/20021106"&gt;this old blogentry&lt;/a&gt;
mentioning Phoenix, now better known as
&lt;a href="http://www.mozilla.org/products/firefox/"&gt;Firefox&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Told you so.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/6ogKKjbZ7Rc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/09/28/patting-myself-on-the-back</feedburner:origLink></entry>
  
  <entry>
    <title>Upgrading again</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/E9SmsyXLi0M/upgrading-again" />
    <updated>2004-08-17T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/08/17/upgrading-again</id>
    <content type="html">&lt;p&gt;Having two kids does limit blogging quite substantially. I still
managed to upgrade to the latest and greatest version of
b2evolution tonight which took quite a while. I managed to screw up
the db upgrade, and when I tried restarting it choked on all table
modifications and creations. So I had to step through all of the
scripts and comment out all sql that flunked. PHP is quite
unreadable really.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/E9SmsyXLi0M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/08/17/upgrading-again</feedburner:origLink></entry>
  
  <entry>
    <title>Using Dependency Injection for GUI coding</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/3zrpE-35EGI/using-dependency-injection-for-gui-coding" />
    <updated>2004-02-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/02/08/using-dependency-injection-for-gui-coding</id>
    <content type="html">&lt;p&gt;My colleague Jimmy and I spent a lunch the other day discussing
client application GUI editors. We both agreed that the ones we
know suck quite majorly since they create code can&amp;rsquo;t be touched,
does not allow for any sort of creative programming etcetera. On
the other hand, it is quite handy to see the GUI develop &amp;ndash; not that
the result always looks like the one drawn though.&lt;/p&gt;

&lt;p&gt;So instead he made the case that you should have a window
continuously rendering the code you&amp;rsquo;re writing. Sort of like seeing
the GUI develop while you code instead of watching the code die
while you draw the application GUI.&lt;/p&gt;

&lt;p&gt;That seemed to require the GUI code to not do anything useful &amp;ndash; be
a good dumb window basically. The problem with almost all GUI code
however is that listeners are implemented as anonymous inner
classes, becoming impossible to mock out&lt;/p&gt;

&lt;p&gt;Dependency Injection to the rescue! Have all listeners talking to
external whatevers become parameters in the constructors. Then they
can easily be mocked, the GUI code is clean and decoupled and the
sun is shining. Now, it shouldn&amp;rsquo;t be too hard to have a Beanshell2
based Java code reading GUI-viewer, should it?&lt;/p&gt;

&lt;p&gt;Since we&amp;rsquo;re not in the business of making client applications &amp;ndash;
anymore, that is &amp;ndash; we haven&amp;rsquo;t tried it yet, but I&amp;rsquo;m eager to try
it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/3zrpE-35EGI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/02/08/using-dependency-injection-for-gui-coding</feedburner:origLink></entry>
  
  <entry>
    <title>Eclipse is the new Emacs</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/0RH4IrvAdTs/eclipse-is-the-new-emacs" />
    <updated>2004-02-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/02/08/eclipse-is-the-new-emacs</id>
    <content type="html">&lt;p&gt;It was my colleague Håkan Råberg who coined this the other day.
Quite insightful I think. I mean, you can play Tetris in them both.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/0RH4IrvAdTs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/02/08/eclipse-is-the-new-emacs</feedburner:origLink></entry>
  
  <entry>
    <title>Referrer spam pains</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/wcYNOQCUiN8/referrer-spam-pains" />
    <updated>2004-01-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/01/28/referrer-spam-pains</id>
    <content type="html">&lt;p&gt;I just upgraded this site which is running
&lt;a href="http://www.b2evolution.org" title="b2Evolution"&gt;b2Evolution&lt;/a&gt; so that I would get a
the new referrer spam filter function up and running, which is long
overdue.&lt;/p&gt;

&lt;p&gt;After that I spent a good half hour in phpMyAdmin to delete all
hits from the offending sites. Jeez, it&amp;rsquo;s so many! And why in good
heavens name would anyone, ever, click on the link
toiletphotos.com? Weirdos.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/wcYNOQCUiN8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/01/28/referrer-spam-pains</feedburner:origLink></entry>
  
  <entry>
    <title>Unit Testing Performance</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/GQZjp4-LT30/unit-testing-performance" />
    <updated>2004-01-13T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2004/01/13/unit-testing-performance</id>
    <content type="html">&lt;p&gt;Yesterday we discovered a small but annoying performance bug: when
getting a list of languages from the JVM we did not cache them but
kept on retrieving them, which turned out to be quite slow.&lt;/p&gt;

&lt;p&gt;So, like the good guys we are we wanted to have a test that ensured
that the error was not reintroduced. We looked at JUnitPerf which
seemed to be appropriate &amp;ndash; it decorates a unit test and times it.
The only problem here was that we were talking about that good
performance was 800 ms, and bad performance was 1800 ms. Such
timings can randomly fail on a slower computer or a computer that
was busy doing something else. We do not like that kind of tests.&lt;/p&gt;

&lt;p&gt;So instead my colleague Jimmy came up with a much better idea: Make
the test a Runnable, and run it a large number of times. In our
case the good performance was 800 ms the first time and virtually
nothing after, but the initial bad performance was 1800 ms
&lt;strong&gt;every&lt;/strong&gt; time. Then we set the timeout to 5 seconds, giving enough
slack for slow, bogged down test machines, but still catching the
bug if reintroduced. Good stuff indeedy.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/GQZjp4-LT30" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2004/01/13/unit-testing-performance</feedburner:origLink></entry>
  
  <entry>
    <title>Blog spam</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Sw8Q_cQe44E/blog-spam" />
    <updated>2003-12-03T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/12/03/blog-spam</id>
    <content type="html">&lt;p&gt;My brother just informed me that I&amp;rsquo;ve been getting a lot of adult
referrers. I have to admit my na?vit? that I was not aware that it
even existed.&lt;/p&gt;

&lt;p&gt;I will upgrade b2 so that I can blacklist these sites. I have
absolutely nothing to do with them.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Sw8Q_cQe44E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/12/03/blog-spam</feedburner:origLink></entry>
  
  <entry>
    <title>P900 rocks!l.</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/oMXaohy7KQs/p900-rocksl" />
    <updated>2003-11-20T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/11/20/p900-rocksl</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve got myself a SonyEricsson P900 which no doubt is the coolest
gadget ever. I&amp;rsquo;m writing this sitting on the bus while at the same
time listening to some ogg tunes. Awesome!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/oMXaohy7KQs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/11/20/p900-rocksl</feedburner:origLink></entry>
  
  <entry>
    <title>Functional Testing Revisited</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dbtkaohPCf0/functional-testing-revisited" />
    <updated>2003-11-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/11/14/functional-testing-revisited</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.lecando.com" title="Lecando"&gt;We&lt;/a&gt; have got our functional
testsuite working. It currently consists of more than 260 tests
doing everything from the simple login to running recorded WebDAV
tests and restarting Websphere etc.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve done it in the way that Testing Extreme Programming
prescribes, with collection of methods that are implemented both
remotely and locally, running the servlets in-process. The methods
are pretty high-level for a very high degree of usability.&lt;/p&gt;

&lt;p&gt;We&amp;rsquo;ve used HtmlUnit as the basis of our tests, extending it in the
high-level methods. It is a great package as it tests the
JavaScript too, as opposed to recorded tests that only tests the
servers response to a given HTTP request.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dbtkaohPCf0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/11/14/functional-testing-revisited</feedburner:origLink></entry>
  
  <entry>
    <title>My laptop is working!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/hsBpgqubvJo/my-laptop-is-working" />
    <updated>2003-10-11T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/10/11/my-laptop-is-working</id>
    <content type="html">&lt;p&gt;After a lot of work my shiny new IBM R40e is up and running with
almost working ACPI, internal network adapter and a 3Com 54g
wireless PCMCIA card, all on Gentoo Linux.&lt;/p&gt;

&lt;p&gt;A Mini HOWTO:
&amp;ndash;   Get an old PCMCIA card for the installation as the internal&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;network adapter is not supported by the Live-CD
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;I choose the &lt;strong&gt;Gentoo Stable&lt;/strong&gt; kernel which is working great&lt;/li&gt;
&lt;li&gt;Do not enable PCMCIA in the kernel, emerge the &lt;strong&gt;pcmcia-cs&lt;/strong&gt;
package instead for continued setting up of the system.&lt;/li&gt;
&lt;li&gt;Get
&lt;a href="http://www.broadcom.com/docs/driver-sla.php?driver=570x-Linux"&gt;the network card driver&lt;/a&gt;
from Broadcom, the card is a BCM-5700. Compile it and put it in
the &lt;code&gt;/lib/modules/*kernel-version*/kernel/driver/net/&lt;/code&gt; folder. Run
&lt;code&gt;update-modules&lt;/code&gt; and &lt;code&gt;modprobe bcm-5700&lt;/code&gt; Add it to
/etc/modules.autoload/kernel-2.4 if needed&lt;/li&gt;
&lt;li&gt;Get the
&lt;a href="http://ruslug.rutgers.edu/~mcgrof/802.11g/"&gt;ISL driver&lt;/a&gt; for the
3Com card. Follow the instructions closely, but patch the
gs-sources kernel instead. I removed the pcmcia-cs package before
compiling the kernel as it provides its own cardbus implementation.
Supposedly only the card drivers can be compiled, but I didn&amp;rsquo;t try
that.&lt;/li&gt;
&lt;li&gt;Emerge the &lt;strong&gt;wireless-tools&lt;/strong&gt; package. &lt;code&gt;iwconfig&lt;/code&gt; is your
friend.&lt;/li&gt;
&lt;li&gt;ACPI is somewhat unstable, the battery information comes and
goes in a undetermistic way.&lt;/li&gt;
&lt;li&gt;The modem is supported by the
&lt;a href="http://www.linuxant.com/drivers/hsf/index.php"&gt;HSF driver&lt;/a&gt; but
that in turn does not support preemptible kernels. Choose whatever
you want&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&amp;rsquo;ll probably update this as I learn more. This is posted over
wireless by the way :)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/hsBpgqubvJo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/10/11/my-laptop-is-working</feedburner:origLink></entry>
  
  <entry>
    <title>New Laptop Woes</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/-gLiUCiOB3U/new-laptop-woes" />
    <updated>2003-10-03T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/10/03/new-laptop-woes</id>
    <content type="html">&lt;p&gt;I got myself a new laptop the other day, a IBM T40e. It has a
pretty good price performance with a 2.2 GHz Pentium 4M. While
researching the laptop market it occured to me that most resellers
still has not understoiod the difference between Centrino, Pentium
4M and Pentium 4. The vendor I choose happily listed the T40e as a
P4 even though it in fact is a P4M.&lt;/p&gt;

&lt;p&gt;As a Gentoo fanatic I put the Live CD in an booted &amp;ndash; no network.
The Broadcom 5700 adapter was not supported out of the box, so
after trying I few innovative ideas like creating a custom LiveCD,
I suddenly realized that I could use my old Xircom card in the
PCMCIA bus. Sometime the easy solutions are really hard to find,
and sometimes I&amp;rsquo;m just a dork for not seeing them. This time it was
the latter.&lt;/p&gt;

&lt;p&gt;OK. After that the install went smoothly. I got the Broadcom driver
from their site and could eject the Xircom card. Lm-sensors simply
does not do IBM, so I had to turn to ACPI. It provided quite some
headache, but after reading a lot about it I did at least get the
battery stuff going.&lt;/p&gt;

&lt;p&gt;Then we had the 3Com wireless PCMCIA card. The nice people of
Rutgers University had put together a driver that supposedly should
work. After working a _lot_ with it and having a little private
kernel patching festival, finally it compiled and I was a happy
man. Until I rebooted, that is. The laptop simply did not boot with
the 3COM card in it. OK, so I had to do a little more tweaking.
Eject the card, and do a hard power off.&lt;/p&gt;

&lt;p&gt;So I started the laptop up again just to get me a large fat kernel
panic in my face.&lt;/p&gt;

&lt;p&gt;Something had barfed on the Reiserfs b-tree and it would not start
again. OK, boot with the Live CD and fsck, right? Wrong.&lt;/p&gt;

&lt;p&gt;To make a long and sad story short but equally sad, my almost ready
killer laptop was gone. Reiserfs could only recover the disk by
doing a rebuild-tree. I could identify most folders, but since
heartbeat applications like bash were not recovered, I simply had
to start over again.&lt;/p&gt;

&lt;p&gt;And this for two measly failed startups.&lt;/p&gt;

&lt;p&gt;Needless to say, my new setup is running Ext3 and Resiserfs will
never be used on a computer fo mine for a very very long time.&lt;/p&gt;

&lt;p&gt;And as for the Gentoo install guide referring to Reiserfs as &amp;ldquo;rock
solid&amp;rdquo; &amp;ndash; yeah, right.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/-gLiUCiOB3U" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/10/03/new-laptop-woes</feedburner:origLink></entry>
  
  <entry>
    <title>XStream</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/VAUIKsqfaCY/xstream" />
    <updated>2003-09-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/09/25/xstream</id>
    <content type="html">&lt;p&gt;Joe Walnes seems to be a really smart guy. He has released
&lt;a href="http://xstream.codehaus.org/index.html" title="XStream"&gt;XStream&lt;/a&gt;, which to me
seems like the only XML serializing library you will ever need.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/VAUIKsqfaCY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/09/25/xstream</feedburner:origLink></entry>
  
  <entry>
    <title>Functional Test Updated</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/c4pi8BxCsJw/functional-test-updated" />
    <updated>2003-09-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/09/25/functional-test-updated</id>
    <content type="html">&lt;p&gt;After evaluating the previous named contenders for webtest tools,
the winner was &amp;hellip; none of them.&lt;/p&gt;

&lt;p&gt;It dawned upon us that the MaxQ way of doing this, ie. recording
tests, really is not the way to go, ever. What you&amp;rsquo;re really doing
is testing the server from a HTTP perspective, without testing
button clicking and stuff. For example, all hidden fields must be
specified at every request. If you have anything Javascript based
you still have no clue if this works after having these funtional
tests.&lt;/p&gt;

&lt;p&gt;On the other hand, using anything based on HttpUnit actually mimics
a webbrowser, so you can click buttons and not have to worry about
hidden fields. And yes, Javascript is handled.&lt;/p&gt;

&lt;p&gt;jWebUnit &lt;strong&gt;is&lt;/strong&gt; based on HttpUnit, but it has a rather limited API,
for example you cannot find a button by its name to click it. We
came to the conclusion that it was easier to build our own API on
top of HttpUnit.&lt;/p&gt;

&lt;p&gt;We also decided to implement the same API in a mock implementation
á la the way it is described in &amp;ldquo;Testing XP&amp;rdquo;. This way functional
tests can be run very quickly on development machines and the more
time consuming remote HTTP tests are done on the integration&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/c4pi8BxCsJw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/09/25/functional-test-updated</feedburner:origLink></entry>
  
  <entry>
    <title>Commenting Functional Tests Comments</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/qeBZRKBQKZA/commenting-functional-tests-comments" />
    <updated>2003-09-25T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/09/25/commenting-functional-tests-comments</id>
    <content type="html">&lt;p&gt;A few nice people commented on my posts on functional tests and
suggested a few other alternatives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://webtest.canoo.com/webtest/manual/WebTestHome.html"&gt;Canoo Webtest&lt;/a&gt;&lt;/strong&gt;.
It&amp;rsquo;s XML-based which makes it go right out my window. Sorry about
that. We are a small company where programmers have to do their
share of test time. This means that we are not afraid of code, in
fact we prefer it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://jameleon.sourceforge.net/" title="Jameleon"&gt;Jameleon&lt;/a&gt;&lt;/strong&gt;. I
had not seen this one, but looking at the tutorial it seems a lot
more complex than the stuff we use now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://www.minq.se"&gt;PureTest&lt;/a&gt;&lt;/strong&gt;. This is a very competent
scenario recorder/player, and I do like the guys at Minq. But as I
stated earlier, recording HTTP will not test your page the way
HttpUnit does with JavaScript and all.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I am truly happy with the way we do it now. We have a base testcase
class that provides methods like &lt;code&gt;clickButton()&lt;/code&gt;. These methods are
implemented as Strategies by both a remote HTTP implementation and
a local in-process mock implementation.&lt;/p&gt;

&lt;p&gt;Writing the tests are really easy. All you have to do is:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="java"&gt;&lt;span class="lineno"&gt;1&lt;/span&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;testLoginWithCorrectNameSucceeds&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
&lt;span class="lineno"&gt;2&lt;/span&gt;   &lt;span class="k"&gt;goto&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/login)&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="lineno"&gt;3&lt;/span&gt;   &lt;span class="n"&gt;setFormText&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;foo&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt;4&lt;/span&gt;   &lt;span class="n"&gt;setFormTest&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Password&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;foo&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt;5&lt;/span&gt;   &lt;span class="n"&gt;clickButtonWithName&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Login&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="lineno"&gt;6&lt;/span&gt;   &lt;span class="k"&gt;assert&lt;/span&gt;
&lt;span class="lineno"&gt;7&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;After a while you can start pushing common higher level functions
such as login to the base class for easier reuse.&lt;/p&gt;

&lt;p&gt;Since we use a object oriented web API all test fields with labels
are rendered in the same way. This means that we can find the form
by the labe which is a good thing, since it eliminates the need for
artificial id&amp;rsquo;s.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/qeBZRKBQKZA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/09/25/commenting-functional-tests-comments</feedburner:origLink></entry>
  
  <entry>
    <title>Functional testing</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/MRragwXZ0lQ/functional-testing" />
    <updated>2003-09-08T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/09/08/functional-testing</id>
    <content type="html">&lt;p&gt;We are currently in the process of improving our functional
testsuite, some might say getting one. I&amp;rsquo;ve skimmed
&lt;a href="http://www.junit.org" title="JUnit"&gt;the JUnit site&lt;/a&gt; and have found two
alternatives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://jwebunit.sourceforge.net/" title="jWebUnit"&gt;jWebUnit&lt;/a&gt;. It has
a really clear and simple syntax which is why I prefer it over
&lt;a href="http://htmlunit.sf.net" title="HtmlUnit"&gt;HtmlUnit&lt;/a&gt; which I prefer over
&lt;a href="http://www.httpunit.org" title="HttpUnit"&gt;HttpUnit&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://maxq.tigris.org/" title="MaxQ"&gt;MaxQ&lt;/a&gt;. Recorded Jython
scripts.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I am not really sure what to make of it. The functional test suite
must run separately from the rest of the system, which makes it a
good candidate for a scripted language. However, being able to use
IDEA is always better than any alternative. I am not sure either if
recording is a good or bad thing.&lt;/p&gt;

&lt;p&gt;I am leaning towards jWebUnit. You could then easily use JUnitPerf
for basic load testing.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/MRragwXZ0lQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/09/08/functional-testing</feedburner:origLink></entry>
  
  <entry>
    <title>IDEA vs Eclipse</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/JTcu2X6GR-8/idea-vs-eclipse" />
    <updated>2003-08-31T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/31/idea-vs-eclipse</id>
    <content type="html">&lt;p&gt;At &lt;a href="http://www.lecando.com" title="Lecando"&gt;Lecando&lt;/a&gt; we are long time
licensees of IntelliJ IDEA. But since Eclipse is free and open
source is good, I have given it a serious try in my spare time.
After 2 months I&amp;rsquo;ve returned to IDEA. &lt;strong&gt;Much&lt;/strong&gt; faster, more
intuitive and less weird views of everything (&amp;ldquo;Do you want to
switch to the Java view for your Java project?&amp;rdquo; Uhhm &amp;hellip; yes?). As
&lt;a href="http://blogs.codehaus.org/people/jutopia/" title="Jutopia"&gt;Jon&lt;/a&gt; once
said: Eclipse is bloat, IDEA is not.&lt;/p&gt;

&lt;p&gt;Eclipse strongest points in my view are incremental compiling and a
nice JUnit integration.&lt;/p&gt;

&lt;p&gt;The worst part though: it is slow. Really. If you&amp;rsquo;re an Eclipse
user and don&amp;rsquo;t agree, try IDEA out and see for yourself.&lt;/p&gt;

&lt;p&gt;Also, I find it not really focused on what is trying to do. It is a
Java IDE, but with it&amp;rsquo;s micro kernel architecture it can also
handle your PHP, Python, Ruby and it can be that IDE toaster oven
you always wanted. But editing anything else but Java is done in a
very basic fashion. &lt;a href="http://www.jedit.org" title="JEdit"&gt;JEdit&lt;/a&gt; does IMO
a better job of being your versatile handle-everything editor.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/JTcu2X6GR-8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/31/idea-vs-eclipse</feedburner:origLink></entry>
  
  <entry>
    <title>Simon!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/GmBR3Dw9tSs/simon" />
    <updated>2003-08-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/30/simon</id>
    <content type="html">&lt;p&gt;Förra onsdagen föddes mitt och Cecilias andra barn. Det blev en
kille som skall heta Simon. Allt är toppen.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/GmBR3Dw9tSs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/30/simon</feedburner:origLink></entry>
  
  <entry>
    <title>Stockholm Syndrome and blameability</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/mcXQ63aAUDg/stockholm-syndrome-and-blameability" />
    <updated>2003-08-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/29/stockholm-syndrome-and-blameability</id>
    <content type="html">&lt;p&gt;Sometimes I get the feeling that a lot of people in programming
suffer from some sort of developers Stockholm Syndrome. I mean,
everybody whines about clueless management, we&amp;rsquo;re not allowed to do
this and that, yadda-yadda whine-whine.&lt;/p&gt;

&lt;p&gt;But then when presented with a option like Agile methodologies and
XP which actually provides the power to decide about the things
that should matter them as techies (because that is what XP is all
about, you have the right to produce quality code given clear
guidance under your own estimates and you go home by five etc),
what happens? More whining.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s so comfy to blame clueless management for giving to little
time, selecting a inferior platform and prioritize features over
quality code. Many developers are simply not used to accepting full
responsibility for their work. They&amp;rsquo;ve grown accustomed to the
safetynet of blameability and need somebody else to take the
responsibility if something should fail.&lt;/p&gt;

&lt;p&gt;Kent Beck mentions courage as a essential factor for success. It is
very true.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/mcXQ63aAUDg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/29/stockholm-syndrome-and-blameability</feedburner:origLink></entry>
  
  <entry>
    <title>Snurrar just nu</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/8LixNXN-aR8/snurrar-just-nu" />
    <updated>2003-08-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/29/snurrar-just-nu</id>
    <content type="html">&lt;p&gt;Lyssnar mest nu på:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Sounds&lt;/li&gt;
&lt;li&gt;Queens of the Stone Age&lt;/li&gt;
&lt;li&gt;Ladytron&lt;/li&gt;
&lt;li&gt;Marilyn Manson&lt;/li&gt;
&lt;li&gt;White Stripes&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/8LixNXN-aR8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/29/snurrar-just-nu</feedburner:origLink></entry>
  
  <entry>
    <title>New home</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/TtAdcW690Dg/new-home" />
    <updated>2003-08-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/29/new-home</id>
    <content type="html">&lt;p&gt;I moved my stuff over from freeroller to here. I used to have a
more personal blog here and leave the techie stuff at freeroller,
but it got kinda old. This is the tech department and is gonna be
in english. If you happen to wander into the other parts, they are
in melodic swedish. Translations can be made available upon
request.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/TtAdcW690Dg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/29/new-home</feedburner:origLink></entry>
  
  <entry>
    <title>Moving out</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/KsikWy0H-E8/moving-out" />
    <updated>2003-08-29T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/08/29/moving-out</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;m moving out of here, and into
&lt;a href="http://ahnve.com/marcus/blogs/tech_blog.php"&gt;my own home&lt;/a&gt;. Thanks
a lot freeroller.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/KsikWy0H-E8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/08/29/moving-out</feedburner:origLink></entry>
  
  <entry>
    <title>Whatever</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/l4-ofNtmGDM/whatever" />
    <updated>2003-05-13T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/05/13/whatever</id>
    <content type="html">&lt;p&gt;Bäst, bäst, bäst just nu: &amp;ldquo;United States of Whatever&amp;rdquo; med Liam
Lynch. Måste ses och höras. Jag lyssnar på den på repeat &amp;ndash; och den
är 1 minut och 26 sekunder lång.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/l4-ofNtmGDM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/05/13/whatever</feedburner:origLink></entry>
  
  <entry>
    <title>Jag var d</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/MOVdmugTcw8/jag-var-d" />
    <updated>2003-04-23T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/04/23/jag-var-d</id>
    <content type="html">&lt;p&gt;Jag var där. Jag var där. Jag var där.&lt;/p&gt;

&lt;p&gt;Jag lyckades för många pengar komma över en biljett till &amp;ldquo;A Night
With Martin L Gore&amp;rdquo;. Och det var värt varenda öre. Nalen är ingen
optimal lokal, scenen är låg, men jag hade tur och lyckades få en
riktigt bra plats. Jag stod i mitten, sju meter från scenen,
samtidigt som Martin sjunger Shake the Disease och In Your Room med
endast pianoackompangemang. Hur djävla fantastiskt som helst.&lt;/p&gt;

&lt;p&gt;Det var extremt vanligt att folk sände vidare spelningen via
mobiltelefon. Själv vill jag fokusera på konserten, men det är väl
kul för den som får lyssna. På slutet av Shake the Disease, som
avslutade hela konserten, tog Martin mobilen av en i publiken och
sjöng in i den. Undrar om den som lyssnade fattade vad som hände.&lt;/p&gt;

&lt;p&gt;Från och med nu delas världen in i två delar. Vi som var där och ni
andra.&lt;/p&gt;

&lt;p&gt;Jag var där.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/MOVdmugTcw8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/04/23/jag-var-d</feedburner:origLink></entry>
  
  <entry>
    <title>Christian Kjellvander</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/HgWIbGgSjPg/christian-kjellvander" />
    <updated>2003-03-27T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/03/27/christian-kjellvander</id>
    <content type="html">&lt;p&gt;Inte riktigt vad jag brukar lyssna på men &amp;hellip; tokigt bra. Känns
lika oundgängligt i varje manlig skivback som Chris Isaac. Manligt
vemod som lockar får en att längta till någon odefinierad lägereld
med öl och goda vänner. Rekommenderas varmt.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/HgWIbGgSjPg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/03/27/christian-kjellvander</feedburner:origLink></entry>
  
  <entry>
    <title>Time estimates</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Jr7TVGx0Rvs/time-estimates" />
    <updated>2003-02-27T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/02/27/time-estimates</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.freeroller.net/page/jduska/20030225#any_suggestions_on_project_plans"&gt;Joe&lt;/a&gt;
is asking for ideas regarding time estimates.&lt;/p&gt;

&lt;p&gt;First of all, read Planning Extreme Programming by Martin Fowler
and Kent Beck. Even if you don&amp;rsquo;t want to do XP it provides
excellent ideas for planning.&lt;/p&gt;

&lt;p&gt;The book promotes &amp;ldquo;the gummi bears principle&amp;rdquo; meaning that
estimates should not translate to calendar time. Instead stories
should be measured relatively to each other. So if story A is a 2
and story B is slightly harder, then it is a 3. This requires an
upstart period where you &amp;ldquo;calibrate&amp;rdquo; your measures. But after a
while you get quite good at it.&lt;/p&gt;

&lt;p&gt;To really get away from calendar time thinking, we give stories
&amp;ldquo;time points&amp;rdquo; which can be from 1 to 5. This helps developers to
not think in terms if time, but instead sort of grading the
stories.&lt;/p&gt;

&lt;p&gt;At the end of each iteration, we sum up how many time points we
did. This is our velocity and stories for the same amount of time
points are planned for the next week.&lt;/p&gt;

&lt;p&gt;It is by no means perfect, but better than any other technique I&amp;rsquo;ve
tried.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Jr7TVGx0Rvs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/02/27/time-estimates</feedburner:origLink></entry>
  
  <entry>
    <title>Palm Tungsten</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/P_bgXxhq0U8/palm-tungsten" />
    <updated>2003-02-08T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/02/08/palm-tungsten</id>
    <content type="html">&lt;p&gt;Jag har haft min Palm Tungsten i typ tre veckor nu. I förrgår kom
ljudpatchen som går att man kan använda den som mp3-spelare.&lt;/p&gt;

&lt;p&gt;Ovärderlig pryl.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/P_bgXxhq0U8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/02/08/palm-tungsten</feedburner:origLink></entry>
  
  <entry>
    <title>XP, One Last Thing</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/S-B_NCn8wIc/xp-one-last-thing" />
    <updated>2003-01-30T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/30/xp-one-last-thing</id>
    <content type="html">&lt;p&gt;I realized that after defending PP vigourously, it would be a good
idea to second what
&lt;a href="http://freeroller.net/page/tirsen/20030124"&gt;Jon&lt;/a&gt; wrote about XP
and the synergies of the practices. Which of course, Kent Beck
stated already in the white book. (The XP'ers know what I&amp;rsquo;m talking
about. To the rest, it&amp;rsquo;s the first of the commie XP books.). PP is
a part of a bigger, grander scheme, and seeing is believing. (Now,
this might be mistaken for some Scientology offspring. One of the
main differences is that you are allowed to read the books. :&amp;ndash;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/S-B_NCn8wIc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/30/xp-one-last-thing</feedburner:origLink></entry>
  
  <entry>
    <title>XP shop.</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/n2YmutM-53E/xp-shop" />
    <updated>2003-01-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/29/xp-shop</id>
    <content type="html">&lt;p&gt;&lt;a href="http://freeroller.net/page/chiara/20030115"&gt;Chiara&lt;/a&gt; wants to work
where Jon works, which is where I work too.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I wanna work where that boy works.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Just so you know, we&amp;rsquo;re an XP shop :&amp;ndash;).&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;What time did Mr.Tirsen arrive?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Our morning meetings are at ten. I believe he was in by then.&lt;/p&gt;

&lt;p&gt;As for the rest, sticking to architectural guidelines etc &amp;hellip; too
bad. &amp;ldquo;Do the simplest thing that can possibly work&amp;rdquo; and &amp;ldquo;You Ain&amp;rsquo;t
Gonna Need It&amp;rdquo; are our mottos. Works wonders with architecture too,
but it requires them &amp;ldquo;best and brightest&amp;rdquo; to come down from their
ivory towers and start contributing to the code. I know a few
people who feel that coding is below their skill level and dignity,
so they won&amp;rsquo;t. Whatever, they will be the first to go when the
revolution comes :&amp;ndash;).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/n2YmutM-53E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/29/xp-shop</feedburner:origLink></entry>
  
  <entry>
    <title>TFL</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Gj29_KHUuF8/tfl" />
    <updated>2003-01-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/29/tfl</id>
    <content type="html">&lt;p&gt;Tyskarna Från Lunds platta är unik. Den bästa beskrivning jag kan
ge är att de är synthmusikens Victor Borge, ni vet den där skojige
danske farbrorn som spexade vid pianot.&lt;/p&gt;

&lt;p&gt;Musik och humor brukar bli Svenne Rubins. Kul text, kass låt.
Grejen med TFL är att de lyckas skapa musik som i sig refererar
till annan, gärna tysk, musik. Alphaville-slingor i
Scorpions-covern &amp;ldquo;Still Loving You&amp;rdquo; är enormt tyskt och enormt kul.
Min dassiga tyska gjorde att jag inte kopplade vad &amp;ldquo;Eis Auto&amp;rdquo;
handlade om genom att läsa titeln. Nu vet jag hur det hade låtit om
Ralf och Florian hade fått uppdraget att skriva glassbilslåten.&lt;/p&gt;

&lt;p&gt;Victor Borge skämtade på samma sätt med den klassiska musiken som
TFL går med synthen. Stort. Detta är en humorfylld
kärleksförklaring till synthmusiken, rekommenderas för er som kan
er Kraftwerk.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Gj29_KHUuF8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/29/tfl</feedburner:origLink></entry>
  
  <entry>
    <title>Pair Programming</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/271ioH0UiR8/pair-programming" />
    <updated>2003-01-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/29/pair-programming</id>
    <content type="html">&lt;p&gt;The pair programming thing turned up on TSS and ended up with the
usual &amp;ldquo;You suck&amp;rdquo; enlighments with the occasional, surprisingly
non-embarassed, opinions on whether or not the Struts API is easy
to understand (sic).&lt;/p&gt;

&lt;p&gt;Whatever.&lt;/p&gt;

&lt;p&gt;If you don&amp;rsquo;t like to pair program don&amp;rsquo;t do it. I am not going to
tell people what to do.&lt;/p&gt;

&lt;p&gt;Unless of course you work where I work. In that case, share the
(wireless) keyboard. The reason being code quality, and development
speed.&lt;/p&gt;

&lt;p&gt;We used to have a problem with code quality. Not code resulting in
bugs necessarily, but code that was not 100% in terms of
maintainability etc. We did of course have code reviews but it
seemed that we could not get enough of them. Enter PP, with
continuous code reviews. Code quality has never been better. Of
course, all of you people out there who don&amp;rsquo;t like PP are probably
very, very good programmers who don&amp;rsquo;t never had this kind of
problem, right? :&amp;ndash;)&lt;/p&gt;

&lt;p&gt;PP answers our need for speed. No, I have no benchmarks, but take
my word for it. At our place development is faster since we
switched to PP.
&lt;a href="http://www.freeroller.net:80/page/cbeust/20030121#extreme_programming_is_evil"&gt;Cedric&lt;/a&gt;,
normally somebody whose opinion I highly respect, has started
sharing the managerial opinion of two people at keyboard equals
half the productivity:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;[&amp;hellip;] the combination of developers + QA engineers can work wonder,
and you will get twice as much done than XP will ever allow.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Please! I don&amp;rsquo;t know who said it first, but the speed of
development hardly depend on how fast you can type, whatever the
superpowers of your QA department. I can accept a lot of reasons
against PP, but that one is, in my very humble opinion, plain
rubbish. Sorry.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.freeroller.net:80/page/rickard/20030122#xp_and_pair_programming"&gt;Rickard&lt;/a&gt;
is from what I understand an ultra talented programmer.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The point of pair programming, as I&amp;rsquo;ve understood it, is not
actually the programming itself, but the exchange of ideas.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;However, he&amp;rsquo;s missed the full point of PP. Exchange of ideas is
good, of course, but in my opinion it&amp;rsquo;s the notion of continuous
code reviews, which incorporates a lot more, that does it.&lt;/p&gt;

&lt;p&gt;This almost turned into one of those TSS rants. Ouch.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/271ioH0UiR8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/29/pair-programming</feedburner:origLink></entry>
  
  <entry>
    <title>I never imagined I'd defend Kent Beck.</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/HLuM02XULZk/i-never-imagined-id-defend-kent-beck" />
    <updated>2003-01-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/29/i-never-imagined-id-defend-kent-beck</id>
    <content type="html">&lt;p&gt;Long time, no blog. Too much holiday and managemental duties to
keep me away from the development trenches. But I keep up with what
others are writing and it has mostly been discussions about code
standards and how stupid people think George W. Bush is. Oh, and
that really weird C# vs Java thingy.&lt;/p&gt;

&lt;p&gt;But hey presto! Things are living up again! And let&amp;rsquo;s start of with
that good girl &lt;a href="http://freeroller.net/page/chiara/20030119"&gt;Chiara&lt;/a&gt;
who I enjoy immensely but not necessarily agree with.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I don&amp;rsquo;t think Kent Beck has neither the expertise nor the talent to
make decisions about how programmers should work.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Uhhm &amp;hellip; how shall I put it &amp;hellip; how can I express how much I
disagree? When I first was introduced to XP I hated it, since it
was shoved down my throat, much the way french geese are fed.
Turning point #1 was when I went to, the most excellent, JAOO
conference where Kent held a keynote speech. That sort of took my
blind hatred away. Then at next years JAOO Martin Fowler had a
half-day tutorial in the planning game. My world has not been the
same since. We now run our home-grown version of it,
pair-programming and all. We twist the idea of the customer on site
since we&amp;rsquo;re a product company, we use JIRA instead of the orthodox
way of the cards and a few other things. Oh yeah, we sit down at
our morning meetings too.&lt;/p&gt;

&lt;p&gt;The point I&amp;rsquo;m trying too make is that there in my mind are few
people in the world better suited to speak out on developer
practices than Kent Beck. He, Martin Fowler and Alistair Cockburn
my top three sources of wisdom.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I think Rickard is an alien!!&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;From what I&amp;rsquo;ve read I wouldn&amp;rsquo;t be surprised if he thought you were
one too ;&amp;ndash;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/HLuM02XULZk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/29/i-never-imagined-id-defend-kent-beck</feedburner:origLink></entry>
  
  <entry>
    <title>Super Sunday</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/itY9Lf827-4/super-sunday" />
    <updated>2003-01-26T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/26/super-sunday</id>
    <content type="html">&lt;p&gt;Om två timmar brakar det loss. NFL:s bästa anfall (Oakland
Raiders) mot NFL:s bästa försvar (Tampa Bay Bucs). Jag hoppas på
Oakland.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/itY9Lf827-4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/26/super-sunday</feedburner:origLink></entry>
  
  <entry>
    <title>Nya skivor</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/RbAidafTuf4/nya-skivor" />
    <updated>2003-01-26T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/26/nya-skivor</id>
    <content type="html">&lt;p&gt;Det har landat nya skivor i högen. The Klerks, Tyskarna från Lund,
Saint Etienne samt Melody Club. Recensioner kommer.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/RbAidafTuf4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/26/nya-skivor</feedburner:origLink></entry>
  
  <entry>
    <title>Toppen</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FgUEjL9gVRQ/toppen" />
    <updated>2003-01-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/14/toppen</id>
    <content type="html">&lt;p&gt;Bästa jullåten alla kategorier var i alla fall Tyskarna Från Lunds
&amp;ldquo;Actung Xmas&amp;rdquo;. Jag föll som en sten första gången jag hörde den på
P3. Klockren Kraftwerkpastich. Det enda man undrar är om bandet är
&amp;ldquo;på riktigt&amp;rdquo; eftersom det verkar vara någon slags avknoppning från
Varanteatern. Texterna är ju ganska humor i och för sig.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ahnve.com/marcus/images/TFL_video_still1_72.jpg" alt="image" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FgUEjL9gVRQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/14/toppen</feedburner:origLink></entry>
  
  <entry>
    <title>Long time ...</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/8l5xreKjIPc/long-time" />
    <updated>2003-01-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2003/01/14/long-time</id>
    <content type="html">&lt;p&gt;Det var ett tag sedan, en hel december har passerat. Julen
tillbringades i tur och ordning i Stockholm (Julafton), Uppsala
(Juldagen); Grövelsjön (Fram till nyår) och sedan hemma i Beverly
Ängby igen.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/8l5xreKjIPc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2003/01/14/long-time</feedburner:origLink></entry>
  
  <entry>
    <title>V?der</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/sLWz7XOxEVM/vder" />
    <updated>2002-12-05T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/12/05/vder</id>
    <content type="html">&lt;p&gt;Detta är definitivt den tid på året då man undrar varför man inte
flyttar söderut. Mulet, fuktigt och kallt.&lt;/p&gt;

&lt;p&gt;En pensionsrådgivare sade en gång att om man bor mer 50% av året i
tex Frankrike så får man ut sin pensionsförsäkring oskattad. Just
idag känns det som extra bra argument att tillbringa de senare
oktober-mars i ens liv någon annanstans.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/sLWz7XOxEVM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/12/05/vder</feedburner:origLink></entry>
  
  <entry>
    <title>The name</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/82D7PZ5eySY/the-name" />
    <updated>2002-12-02T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/12/02/the-name</id>
    <content type="html">&lt;p&gt;Why &amp;ldquo;Head On&amp;rdquo;? Because it&amp;rsquo;s a really awesome song by
never-as-famous-as-they-deserved The Jesus and Mary Chain. And a
good attitude when tackling problems.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/82D7PZ5eySY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/12/02/the-name</feedburner:origLink></entry>
  
  <entry>
    <title>Bra</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/tJ5ilnWEfks/bra" />
    <updated>2002-12-02T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/12/02/bra</id>
    <content type="html">&lt;p&gt;The Faint är extremt ojämna, men &amp;ldquo;Amorous in a Bauhaus Fashion&amp;rdquo; är grymt bra.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/tJ5ilnWEfks" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/12/02/bra</feedburner:origLink></entry>
  
  <entry>
    <title>Ride</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/7Vr3AtpE1Zk/ride" />
    <updated>2002-12-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/12/01/ride</id>
    <content type="html">&lt;p&gt;I avdelningen inspirerande låttitlar kom jag idag tillbaka till
Ride&amp;rsquo;s makalösa &amp;ldquo;Leave them All Behind&amp;rdquo;. Man kanske skulle sätta
ihop en lista på låtar som får en att känna sig lite bättre än alla
andra.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/7Vr3AtpE1Zk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/12/01/ride</feedburner:origLink></entry>
  
  <entry>
    <title>Apples and oranges</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/FX4lgh8ubGU/apples-and-oranges" />
    <updated>2002-12-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/12/01/apples-and-oranges</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.kalixia.com/weblogs/space/2002-11-29"&gt;Bernard&lt;/a&gt; replies
to my reply:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Me: My thoughts were that it is easier to transform bare data as it
is less to transform. You take the old data and insert it into the
new code, which is all you need because you don&amp;rsquo;t want the old
implementation anyway.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Bernard: I guess you are somehow comparing apples and oranges. If you
want to compare data storage then instead of storing Java objects with data and
business logic, just store some objects having data only.  Sure, if you store
objects with only data you are quite close to the tabular data model. But
remember, I only want to be able to &amp;ldquo;offer&amp;rdquo; it for OLAP purposes and for
upgrades, if then.&lt;/p&gt;

&lt;p&gt;I don&amp;rsquo;t want to degrade my business objects, I want them to carry
as much info as possible. This to ensure that the state is all set
and verified before the Command executes, as discussed
&lt;a href="http://www.prevayler.org/wiki.jsp?topic=RollbackIsNeedless"&gt;on the Prevayler site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To sum up the upgrade story: when moving an application between
version, the persistent state needs to be transformed. The less
info in the persistent model, the less to transform. That is why I,
initially, believe that the tabular data model is good for
upgrades. But as mentioned, I&amp;rsquo;m intrigued by the XSL approach, and
we will most certainly try it out.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Me: However, we may have to provide a tabular data model for
analysis purposes outside the scope of our application. The
standard way to access this is using SQL. This is the only reason I
want it.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Bernard: At least if your external application could use JCA you
could think of a JCA implementation for Prevayler.
Very nice thought. We want to provide as a broad support for data
extraction as possible which probably would make a connector a good
choice.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Me: This morning Jon had a good way of formulating what I wrote on
the two persistence needs: &amp;ldquo;RDBMS do two things: OnLine Transaction
Processing and OnLine Analysis Processing. After Prevayler we only
need OLAP.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Agree. This is an empty room for Prevayler. We might have a look at
some integration with
&lt;a href="http://apoptosis.dyndns.org:8080/open/mondrian/doc/index.html"&gt;Mondrian&lt;/a&gt;
which is rougly a Java OLAP implementation working in-memory.
Mondrian looks way cool. Will look into it more.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/FX4lgh8ubGU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/12/01/apples-and-oranges</feedburner:origLink></entry>
  
  <entry>
    <title>SQL</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/VNnR88PE6nU/sql" />
    <updated>2002-11-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/29/sql</id>
    <content type="html">&lt;p&gt;&lt;a href="http://www.kalixia.com/weblogs/space/2002-11-29"&gt;Bernard&lt;/a&gt;
commented on my thoughts on schema evolution.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I do not see why schema evolution is harder to handle in Prevayler
than it is with a relational database. Changing relations is always
a problem whatever the storage strategy you use.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Hmm, let&amp;rsquo;s see. Maybe I was very using traditional thinking. My
thoughts were that it is easier to transform bare data as it is
less to transform. You take the old data and insert it into the new
code, which is all you need because you don&amp;rsquo;t want the old
implementation anyway.&lt;/p&gt;

&lt;p&gt;But you&amp;rsquo;re saying that with &lt;a href="http://www.skaringa.com/"&gt;Skaringa&lt;/a&gt; I
transform the Java object graph to XML, transform that XML data
using XSL to a new XML format matching the new code and deserialize
it. Whoomp, there it is? Sounds very nice.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Next, do you truly believe SQL is the best way to query your object
model?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;No, not my object model, not at all. However, we may have to
provide a tabular data model for analysis purposes outside the
scope of our application. The standard way to access this is using
SQL. This is the only reason I want it&lt;/p&gt;

&lt;p&gt;I also have this nagging feeling that many customers will want
their data in a RDBMS because just because it has always been
there. What would we do there? Delete and insert for every
snapshot?&lt;/p&gt;

&lt;p&gt;This morning Jon had a good way of formulating what I wrote on the
two persistence needs: &amp;ldquo;RDBMS do two things: OnLine Transaction
Processing and OnLine Analysis Processing. After Prevayler we only
need OLAP.&amp;rdquo;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Well, stay tuned, or better help the people working on the XML
export for Prevayler. As said before, SQL is in my opinion not the
best thing because it requires mappings between your objects and
your relation database. And ODMG API would probably be better.
Carlos Villela wrote a XPath query demo&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;We will definitely work with Prevayler to enhance this
functionality. As for JXPath, already there :&amp;ndash;).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/VNnR88PE6nU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/29/sql</feedburner:origLink></entry>
  
  <entry>
    <title>My name</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/K6WzLeF5we8/my-name" />
    <updated>2002-11-29T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/29/my-name</id>
    <content type="html">&lt;p&gt;By the way I realized that my name is not mentioned here, and Jon
keeps on calling me &amp;ldquo;boss&amp;rdquo;. This is corrected now.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/K6WzLeF5we8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/29/my-name</feedburner:origLink></entry>
  
  <entry>
    <title>Schema evolution</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9b1x_lmk-Og/schema-evolution" />
    <updated>2002-11-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/28/schema-evolution</id>
    <content type="html">&lt;p&gt;Jon and I had a pretty heated discussion today over serialized
objects. The background is as follows:&lt;/p&gt;

&lt;p&gt;Using Prevayler, you will have a file on your disk with your
serialized object graph. This stores the state of your application,
but, very important, also the implementation of that state. When
deserializing the object graph, you do not retrieve properties that
are set on &amp;ldquo;new&amp;rdquo; objects, you are retrieving the object itself.
Like, duh.&lt;/p&gt;

&lt;p&gt;This introduces a problem when changing the object schema. If you
update your application and the new runtime has a different set of
classes, you&amp;rsquo;re screwed. Sure, changing the name of a property or
class can easily be done, but what if relations are changed?&lt;/p&gt;

&lt;p&gt;Now to my thoughts: The problem is that the serialized object holds
too much info in the upgrade scenario. We don&amp;rsquo;t want to know the
implementation then, we only want the state. We thus need to
transfer our snapshot from a serialized form to a form with less
info. If we can do this we get away from what Joshua Bloch in
&amp;ldquo;Effective Java&amp;rdquo; describes as making our private code be a part of
the API. Using this, we can insert this data into a upgrade program
and setup the new object graph. This is not ideal but it works.
(Agree so far Jon? :&amp;ndash;)&lt;/p&gt;

&lt;p&gt;One good thing about a relational database is that it stores a bare
minimum of information regarding system state. This means that the
dynamic implementation, your runtime, can change and the static,
stored, state is changed with a minimal effort. This is truly Good.&lt;/p&gt;

&lt;p&gt;But that is not really what is good with a relational database.
What is good is the tabular data model. It could as well be
described in another format such as any homegrown xml-format. So
what is good about relational databases?&lt;/p&gt;

&lt;p&gt;I can&amp;rsquo;t believe I&amp;rsquo;m writing this, but the good part about
relational databases is, argh!, SQL. It is the standard way of
retrieving information that is the catch. It is Crystal Reports and
Excel. People want this. Not me. Other people. I wish we could just
do a XML-serialization, which is all we need for updates, but I
know customers will want the SQL support so that they can use their
tools. Anyone know of any XML tools with SQL support? (Probably
very common, I haven&amp;rsquo;t looked yet)&lt;/p&gt;

&lt;p&gt;A long time ago somebody suggested that Java should provide a
versioning system, so that a class is not only defined by its name
but also by it&amp;rsquo;s version. I suddenly realize that this is new no 1
of my &amp;ldquo;Things I want included in Java&amp;rdquo; list. This would solve the
schema evolution problem since every new version of a class could
have a constructor that took the old version of the class as an
argument.&lt;/p&gt;

&lt;p&gt;As I see it, persistence is needed in two different ways.
1.  In the running application where the data is strongly coupled&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;with the code and performance is very important.
&lt;/code&gt;&lt;/pre&gt;

&lt;ol&gt;
&lt;li&gt;Snapshots for data analysis and updates. This data needs to be
&amp;ldquo;flexible&amp;rdquo; but performance is generally not an issue&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;To me, RDBMS solves number 2 very well. I used to think it was half
decent at no 1 as well.&lt;/p&gt;

&lt;p&gt;Ok, to sum it up, I want to be able to convert the Prevayler
snapshot to an XML equivalent. I want that to be readable through
SQL. I want a Java to handle versions. I want World Peace and free
ice cream.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9b1x_lmk-Og" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/28/schema-evolution</feedburner:origLink></entry>
  
  <entry>
    <title>Ray Davies, forts</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/5FXt-tRWvLE/ray-davies-forts" />
    <updated>2002-11-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/28/ray-davies-forts</id>
    <content type="html">&lt;p&gt;&amp;hellip; och man bör hålla med.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/5FXt-tRWvLE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/28/ray-davies-forts</feedburner:origLink></entry>
  
  <entry>
    <title>Ray Davies</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9YY8nI6LSlA/ray-davies" />
    <updated>2002-11-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/28/ray-davies</id>
    <content type="html">&lt;p&gt;Man bör lyssna på Kinks &amp;ldquo;I&amp;rsquo;m Not Like Everybody Else&amp;rdquo; åtminstone en gång i
veckan.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9YY8nI6LSlA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/28/ray-davies</feedburner:origLink></entry>
  
  <entry>
    <title>Data, encapsulation etc.</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/-ekb5KRZnhk/data-encapsulation-etc" />
    <updated>2002-11-28T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/28/data-encapsulation-etc</id>
    <content type="html">&lt;p&gt;We&amp;rsquo;re right now trying out &lt;a href="http://www.prevayler.org"&gt;Prevayler&lt;/a&gt; as
a persistence layer for our products. It is basically the coolest
think I&amp;rsquo;ve seen since I became an OO-afficionado. I did start out
with Smalltalk, and it sort of set the tone for what I believe in.&lt;/p&gt;

&lt;p&gt;I need to check out if &lt;a href="http://www.freeroller.net/page/tirsen"&gt;Jon&lt;/a&gt;
has mentioned this on his blog. Nope, he hasn&amp;rsquo;t so I&amp;rsquo;ll be first
then.&lt;/p&gt;

&lt;p&gt;Here we go: What Prevayler basically does is store your object
graph in memory, recording every transaction as a serialized
Command. Every 24 hrs a snapshot of the full object graph is
written to disk and the log is cleared. Crash recovery is performed
by taking the latest snapshot and redo all the commands that is
deserialized from the log.&lt;/p&gt;

&lt;p&gt;This basically means complete transparency, wow-whiz-bang
performance, database independance and a call to your local
RAM-dealer for more memory. It is also very reliable, the full
package is something like ten classes, meaning very few dark
corners for bugs to hide. We&amp;rsquo;ve tried it in development and yes, it
rocks. I could dance the funky AOP-chicken here and tell you how
fast it was done since we only removed the OJB interceptor and
added a Prevayler interceptor, but I won&amp;rsquo;t. Seriously, sure, that
rocks too, but haven&amp;rsquo;t we sort of agreed on that by now?&lt;/p&gt;

&lt;p&gt;So what&amp;rsquo;s the backside? Schema evolution. I&amp;rsquo;ll save that for a
separate post.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/-ekb5KRZnhk" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/28/data-encapsulation-etc</feedburner:origLink></entry>
  
  <entry>
    <title>Hurra!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/2J8DprONHdQ/hurra" />
    <updated>2002-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/16/hurra</id>
    <content type="html">&lt;p&gt;Jag har passerat 33-årsstrecket och är nu riktigt 30-something.
Känns förvänansvärt bra. Jag tror att mångas 30-årskriser är helt
onödiga, det visar sig att det faktiskt är roligare att vara 35 än
25.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/2J8DprONHdQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/16/hurra</feedburner:origLink></entry>
  
  <entry>
    <title>Bakis</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/yE44QtrRutU/bakis" />
    <updated>2002-11-16T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/16/bakis</id>
    <content type="html">&lt;p&gt;Var på herrmiddag hos Henrik D igår, otroligt trevligt och makalöst
god mat. Dock visar det sig dagen efter att man inte riktigt hänger
med som man gjorde förr. Huvudvärken släppte lite lagom när jag var
med Ellinor och babysimmade &amp;ndash; 30-gradigt vatten är bra för kroppen.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/yE44QtrRutU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/16/bakis</feedburner:origLink></entry>
  
  <entry>
    <title>Thunderbird</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/gy9CWrSy9t4/thunderbird" />
    <updated>2002-11-14T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/14/thunderbird</id>
    <content type="html">&lt;p&gt;I&amp;rsquo;ve always been a fan of Netscape, but at the same time I never
liked the Communicator idea &amp;ndash; everything in one package. I don&amp;rsquo;t
have a one piece stereo either, I&amp;rsquo;m just not that kind of guy. The
Phoenix webbrowser is just right for me, it&amp;rsquo;s fast and lightweight
and does not bring anything else down with it if something goes
wrong. If Mozilla blows up it takes the mail session with it. If,
using Windows, IE blows up everything is gone, reboot and grab a
coffee.&lt;/p&gt;

&lt;p&gt;It was therefore a pleasure to see the announcement of Thunderbird
which is the mail client version of Phoenix. I have always
preferred the Netscape mail client so this is truly good news. Now,
if somebody could fix a Palm address book integration to go with
it, I&amp;rsquo;m would be incredibly happy.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/gy9CWrSy9t4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/14/thunderbird</feedburner:origLink></entry>
  
  <entry>
    <title>Client OS</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/WARDq8eA4jw/client-os" />
    <updated>2002-11-09T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/09/client-os</id>
    <content type="html">&lt;p&gt;I looked at the logs for freeroller and realized that 75% of client
OS&amp;rsquo;s accessing it was Windows. This is of course a lower percentage
than would be expected from a more generic set of computer users (I
assume we&amp;rsquo;re all geeks here, right :&amp;ndash;), but still, 75%.&lt;/p&gt;

&lt;p&gt;I most certainly don&amp;rsquo;t want to start another
Windozesuckslinuxisugly debate, but I was thinking that most sites
accessed on freeroller have a strong connection to Java, and often
business system Java &amp;ndash; as opposed to embedded etc.&lt;/p&gt;

&lt;p&gt;The main competitor to Java as business systems go is of course
.NET. How come that 75% of the programmers who have made the Java
their choice of programming language use Windows as their operating
system? Why are they not preferring .NET?&lt;/p&gt;

&lt;p&gt;Is it that they consider Windows a superior client os, but want the
freedom of choice on the server? That they love the Java syntax?
Someone else made the choice? Is this a small indication that .NET
is a failure? Just curious.&lt;/p&gt;

&lt;p&gt;Up until two years ago I also used Windows as my client os for
programming. But then Sun started releasing the JDK&amp;rsquo;s for Linux at
the same time as for Windows and Solaris. I made the switch and
never looked back.&lt;/p&gt;

&lt;p&gt;For the sake of it, I&amp;rsquo;m writing this using Phoenix on Windows on my
home machine, which dual boots Win XP and Red Hat 8. I strongly
prefer RH8, my wife Windows.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/WARDq8eA4jw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/09/client-os</feedburner:origLink></entry>
  
  <entry>
    <title>Svensk fotboll</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/r6JVpVfym7M/svensk-fotboll" />
    <updated>2002-11-07T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/07/svensk-fotboll</id>
    <content type="html">&lt;p&gt;Man får fälla ned blicken, bita ihop och erkänna att Djurgården är värdiga
svenska mästare i fotboll, och att det nog dessutom är bra för svensk fotboll
att de är det. De spelar en offensiv och modern fotboll som är den sorts spel
som behövs spridas för attvi någon gång skall ha chans att passera kvarten i
VM.&lt;/p&gt;

&lt;p&gt;Däremot är det deppigt hur dålig allsvenskan är. Djurgården och
Malmö etta och tvåa, två lag som kommit upp de senaste åren. Vad
säger det om standarden? Lägg till detta det faktum att vi får gå
tillbaka till AIK&amp;rsquo;s Champions League äventyr för att hitta den
senaste insatsen som ett svenskt klubblag gjort utanför våra
gränser som inte kändes direkt pinsam.&lt;/p&gt;

&lt;p&gt;Jag skulle nästan bli glad om DIF fixar hem Linderoth och/eller
Zetterberg och ser till att kanske med lite tur ta sig till CL. Det
skulle nog vara bra för alla.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/r6JVpVfym7M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/07/svensk-fotboll</feedburner:origLink></entry>
  
  <entry>
    <title>Amphetadesk rocks!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/DbhET0jXRcU/amphetadesk-rocks" />
    <updated>2002-11-07T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/07/amphetadesk-rocks</id>
    <content type="html">&lt;p&gt;There has been a lot of talk about news aggregators. Personally I&amp;rsquo;m
using &lt;a href="http://www.disobey.com/amphetadesk/"&gt;Amphetadesk&lt;/a&gt; which does
the trick and more. One must know the little secret to using it
though. The basic setup works just fine, but the fun starts when
you go for this
&lt;a href="http://www.decafbad.com/news_archives/000228.phtml"&gt;addon&lt;/a&gt; which
adds expand/collapse of news feeds, time since posting etc.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/DbhET0jXRcU" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/07/amphetadesk-rocks</feedburner:origLink></entry>
  
  <entry>
    <title>Sjukstuga</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/pkCaUJ9h7UQ/sjukstuga" />
    <updated>2002-11-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/06/sjukstuga</id>
    <content type="html">&lt;p&gt;Hela huset är en sjukstuga, Ellinor är fortfarande sjuk och har
dragit med sig Cissi i fallet. Jag håller dock ställningarna.
Dessutom fick humöret sig en skjuts uppåt igår när posten kom med
min nya &lt;a href="http://www.xbox.com"&gt;xbox&lt;/a&gt;. Ja, jag är en prylbög. Jag
plockade hem den på Tradera för ett överkomligt pris, och fick med
tre spel jag ville ha, och två som jag skall till
&lt;a href="http://www.tvspelsborsen.se"&gt;TVspelsbörsen&lt;/a&gt; med för lite
bytesverksamhet. Jag vill ha nya FIFA.&lt;/p&gt;

&lt;p&gt;Annars är det bara att fortsätta planera min födelsedag som
infaller i övermorgon.&lt;/p&gt;

&lt;p&gt;Dessutom har jag startat en
&lt;a href="http://www.freeroller.net/page/ahnve"&gt;techie weblog&lt;/a&gt;. För den
tekniskt intresserade.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/pkCaUJ9h7UQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/06/sjukstuga</feedburner:origLink></entry>
  
  <entry>
    <title>Phoenix</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EwWlPi1Pw6c/phoenix" />
    <updated>2002-11-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/06/phoenix</id>
    <content type="html">&lt;p&gt;&lt;a href="http://roller.anthonyeden.com/page/rickard/20021106#upgrades_galore"&gt;Rickard&lt;/a&gt;
is using mozilla 1.2b. I used it until I stumbled into the
&lt;a href="http://www.mozilla.org/projects/phoenix/"&gt;Phoenix&lt;/a&gt; world, where
everything is lighter and oh so fast.&lt;/p&gt;

&lt;p&gt;Seeing is believing, try it out.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EwWlPi1Pw6c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/06/phoenix</feedburner:origLink></entry>
  
  <entry>
    <title>Getting Things Done</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/AdlXAhbQ91Y/getting-things-done" />
    <updated>2002-11-06T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/06/getting-things-done</id>
    <content type="html">&lt;p&gt;Huge kudos to
&lt;a href="http://radio.weblogs.com/0107789/2002/10/18.html"&gt;Mike&lt;/a&gt; for
hinting about &amp;ldquo;Getting Things Done&amp;rdquo;. I&amp;rsquo;ve only made it to page 75
so far, but it has already resulted in my desk being &lt;strong&gt;clean&lt;/strong&gt;.
This is something that no coworker of mine has ever seen. I wonder
what the rest of the book will do to me.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/AdlXAhbQ91Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/06/getting-things-done</feedburner:origLink></entry>
  
  <entry>
    <title>Helg igen</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/pVNoAoM8gPs/helg-igen" />
    <updated>2002-11-01T00:00:00-08:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/11/01/helg-igen</id>
    <content type="html">&lt;p&gt;Sådärja, då var det fredag igen. Ellinor har fått feber som endast 1,5-?ringar
kan så man hade ett litet oroligt värmeelement i sängen i natt.&lt;/p&gt;

&lt;p&gt;Förra veckan var jag i Luxemburg på ett groteskt tråkigt möte. Mötet ramades
dessutom in a vad som måste vara Europas tråkigaste och otrevligaste stad. Vart
vi än kom lyckades den lokale luxemburgaren få oss övertygade om att vi
egentligen borde stannat hemma, men om vi ändå var på plats så kunde han ju ta
hutlöst betalt för vad han än ägnade sig halvdant åt.&lt;/p&gt;

&lt;p&gt;Denna vecka har varit en helt vanlig Svenssonvecka med dagis-jobb-dagis. Nästa
vecka är som alla vet en högtidsvecka eftersom jag fyller år på fredag. Oskar
Lins fyller fyra på lördag dessutom. Stort.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/pVNoAoM8gPs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/11/01/helg-igen</feedburner:origLink></entry>
  
  <entry>
    <title>Helgen </title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/7aYqTLsqByY/helgen" />
    <updated>2002-10-20T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/20/helgen</id>
    <content type="html">&lt;p&gt;Har varit ensam hemma med Ellinor i helgen, C har varit i Schweiz på studieresa
med jobbet. Fantastiskt lite vad man hinner med egentligen, idag har vi hunnit
med storhandling B&amp;amp;W (Jag vet, Coop Forum Sydsydväst eller nåt) på förmiddagen
och middag hos farmor på eftermiddagen. Sen sova.&lt;/p&gt;

&lt;p&gt;Nu borde C snart vara hemma, om flyget landat som det ska. Kom just på att det
kan ju se på nätet ju &amp;ndash; och det hade landat. Bra.&lt;/p&gt;

&lt;p&gt;Vad gjorde man egentligen innan nätet? Dagens studenter måste ha
det så mycket ~~enklare~~ roligare. Och så kan de ladda ned all
musik de vill ha från n?tet om pengarna tryter. Jag antar att
&amp;ldquo;blandband&amp;rdquo; är ett ord som snart är lika glömt som &amp;ldquo;stencil&amp;rdquo;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/7aYqTLsqByY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/20/helgen</feedburner:origLink></entry>
  
  <entry>
    <title>Jay-Jay!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/dx78kEBf68M/jay-jay" />
    <updated>2002-10-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/18/jay-jay</id>
    <content type="html">&lt;p&gt;Jay-Jay Johanssons &amp;ldquo;Antenna&amp;rdquo; är det bästa Pet Shop Boys inte gjort sedan 1992.
Klockren melankolisk pop á la PSB:s &amp;ldquo;Rent&amp;rdquo; med vissa stänk Portishead går den
fullständigt gjuten. Ett impulsköp eftersom jag gillade singeln &amp;ldquo;On the radio&amp;rdquo;
som klart förtjänar sin plats i lådan.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/dx78kEBf68M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/18/jay-jay</feedburner:origLink></entry>
  
  <entry>
    <title>Ginza</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/hHYQ6SpXtMI/ginza" />
    <updated>2002-10-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/18/ginza</id>
    <content type="html">&lt;p&gt;Beställde &lt;a href="http://www.thevines.com"&gt;the Vines&lt;/a&gt; på
&lt;a href="http://www.ginza.se"&gt;Ginza&lt;/a&gt;. Det visade sig att Ginza kan skicka
upp till fyra skivor direkt hem för efterskottsbetalning &amp;ndash; så
slipper man postförskottet. Strålande.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/hHYQ6SpXtMI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/18/ginza</feedburner:origLink></entry>
  
  <entry>
    <title>Covenants nya</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/EQSkCH4mYck/covenants-nya" />
    <updated>2002-10-18T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/18/covenants-nya</id>
    <content type="html">&lt;p&gt;Covenants nya dunsade ned för en vecka sedan och har surrat i hörlurarna
mycket. De inledande två spåren Monochrome och Call the Ships To Port är
briljanta, 6:an We Stand Alone är bra och 8:an We Want Revolution funkar. I
övrigt blir det tunt. Det är snyggt producerat och coola ljud men &amp;hellip; segt. Som
det ofta blir när synthband inte riktigt får till det. Det blir självupptaget,
pretto och liksom synth-Hammerfall.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/EQSkCH4mYck" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/18/covenants-nya</feedburner:origLink></entry>
  
  <entry>
    <title>RedHat 8</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/hiU2tXHaEVQ/redhat-8" />
    <updated>2002-10-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/02/redhat-8</id>
    <content type="html">&lt;p&gt;Har precis fått in RH8 hemma, och det ser helt enligt ryktena riktigt bra ut.
De antialiasade fonterna blir riktigt bra, synd bara att de inte funkar i alla
program. Däremot blir det lite antigeek varning på att det inte finns en
konsol-knapp default i menyraden.&lt;/p&gt;

&lt;p&gt;Inte heller denna version är en Windows-killer, men om de får fortsÃ¤tta lite
så kan det nog bli något riktigt bra. Personligen blir jag glad den dag jag
slipper Windows helt och hållet. Idag använder jag det för spel och musik.
Spel kan med fördel spelas på ett TV-spel och musik skulle jag gärna ha en
Mac för. Med det skulle jag kunna slippa MS helt och hållet &amp;ndash; toppen.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/hiU2tXHaEVQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/02/redhat-8</feedburner:origLink></entry>
  
  <entry>
    <title>Kroppen</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/Ib7sDmf4jmQ/kroppen" />
    <updated>2002-10-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/10/02/kroppen</id>
    <content type="html">&lt;p&gt;Tycker att det är förbannat synd att Göran Kropp gick bort. Jag lyssnade på två
av hans föredrag nör jag jobbade på Enator och hade förmånen att få möta honom
efteråt när han sålde sin bok. En extremt fascinerande människa. Vila i frid.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/Ib7sDmf4jmQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/10/02/kroppen</feedburner:origLink></entry>
  
  <entry>
    <title>Synten lever</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/cY4fuUFsYuc/synten-lever" />
    <updated>2002-09-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/30/synten-lever</id>
    <content type="html">&lt;p&gt;Fick hem Soft Cells nya singel &amp;ldquo;Mono Culture&amp;rdquo; i fredags. Toppen. Lite Chemical,
samtidigt som Dave Ball är lika bra som vanligt på arrangemang.&lt;/p&gt;

&lt;p&gt;Skall snart få hem hela albumet, samtidigt som
&lt;a href="http://www.covenant.dk"&gt;Covenants&lt;/a&gt; nya landar. Vad vore man utan
&lt;a href="http://www.hotstuff.se"&gt;Hot Stuff&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;Tung musikhöst, snart kommer Suedes nya också.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/cY4fuUFsYuc" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/30/synten-lever</feedburner:origLink></entry>
  
  <entry>
    <title>NFL p? Viasat</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/lg3MYlthVtA/nfl-p-viasat" />
    <updated>2002-09-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/30/nfl-p-viasat</id>
    <content type="html">&lt;p&gt;15 års väntan är över &amp;ndash; äntligen kan man se amerikansk fotboll i svensk tv.
Viasat Sport kommer att köra Monday Night Football live (kl 03.00 &amp;hellip;) med
repris dagen efter. Kommersiell tv när den är som bäst.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/lg3MYlthVtA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/30/nfl-p-viasat</feedburner:origLink></entry>
  
  <entry>
    <title>18 maj 2002</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/MlUXvZaiEbw/18-maj-2002" />
    <updated>2002-09-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/30/18-maj-2002</id>
    <content type="html">&lt;p&gt;Blir liksom aldrig inaktuellt.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://ahnve.com/marcus/images/brollop-liten.jpg" alt="image" /&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/MlUXvZaiEbw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/30/18-maj-2002</feedburner:origLink></entry>
  
  <entry>
    <title>Bäst just nu</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/9MYiNGkXhqI/bst-just-nu" />
    <updated>2002-09-27T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/27/bst-just-nu</id>
    <content type="html">&lt;p&gt;Caesars Palace första är ju faktiskt vansinnigt bra.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I wanna smoke crack
Because you&amp;rsquo;re never coming back
I wanna shoot speedballs
Bang my head against the wall
I wanna sniff glue
Cause I can&amp;rsquo;t get over you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Sort it out&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Det är ju toppen.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/9MYiNGkXhqI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/27/bst-just-nu</feedburner:origLink></entry>
  
  <entry>
    <title>Soft Cell?</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/-YcY4bJA_7c/soft-cell" />
    <updated>2002-09-09T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/09/soft-cell</id>
    <content type="html">&lt;p&gt;Säg just i &lt;a href="http://www.hotstuff.se"&gt;hotstuffs&lt;/a&gt; mail att Soft Cell
släppt ny singel. Hallå, varför säger ingen nåt? Beställning på g.
Skall kolla Diskodiktator också, namnet är värt 139 pix. Och så är
det dags att skaffa Covenants alla skivor &amp;ndash; &lt;em&gt;så&lt;/em&gt; bra!&lt;/p&gt;

&lt;p&gt;Annars kan jag varmt rekommendera Olle Ljungströms nya. Inga direkta hittar,
men skönt eget.&lt;/p&gt;

&lt;p&gt;Ellinor headbangar till Metallicas Sad But True. :&amp;ndash;)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/-YcY4bJA_7c" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/09/soft-cell</feedburner:origLink></entry>
  
  <entry>
    <title>Deltidsarbete</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/2xGyLSC0FWE/deltidsarbete" />
    <updated>2002-09-02T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/09/02/deltidsarbete</id>
    <content type="html">&lt;p&gt;Från och med idag och till och med december kommer jag att jobba 75%, i
praktiken innebär korta dagar utom på onsdagar då jag jobbar fullt. Om någon
vill leka med mig och Ellinor på eftermiddagarna är det bara att säga till.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/2xGyLSC0FWE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/09/02/deltidsarbete</feedburner:origLink></entry>
  
  <entry>
    <title>First Post!</title>
    <link href="http://feedproxy.google.com/~r/HeadOn/~3/tIVo9OPvLkQ/first-post" />
    <updated>2002-08-30T00:00:00-07:00</updated>
    <id>http://marcus.ahnve.net/blog/2002/08/30/first-post</id>
    <content type="html">&lt;p&gt;This is the infancy of the new site. Whatever brought you here, stay tuned.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/HeadOn/~4/tIVo9OPvLkQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://marcusahnve.org/blog/blog/2002/08/30/first-post</feedburner:origLink></entry>
  

</feed>

