<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Geektalk</title>
	<atom:link href="http://olvemaudal.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://olvemaudal.wordpress.com</link>
	<description>Blog by Olve Maudal</description>
	<pubDate>Wed, 02 Jul 2008 21:39:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>The next generation of superprogrammers</title>
		<link>http://olvemaudal.wordpress.com/2008/06/28/the-next-generation-of-superprogrammers/</link>
		<comments>http://olvemaudal.wordpress.com/2008/06/28/the-next-generation-of-superprogrammers/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 22:43:01 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/?p=28</guid>
		<description><![CDATA[Most students coming out of university these days are completely clueless when it comes to computer programming. This seems to be getting worse for every year. However, in between all the garbage (where garbage in this context means students not really interested in or capable of programming a computer) there are some really exceptional and [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Most students coming out of university these days are completely clueless when it comes to computer programming. This seems to be getting worse for every year. However, in between all the garbage (where garbage in this context means students not really interested in or capable of programming a computer) there are some really exceptional and brilliant talents that might just need a few more years of experiences to become really efficient superprogrammers. This number is growing. The challenge is to find and recognize these talents, and are they willing to work for you?</p>
<p>I believe the next generation of superprogrammers is to be found in the free and open source software communities. They have little motivation to work with traditional closed source and proprietary software. Why should they? Yes, they want to work on challenging and interesting software projects, but also they want to share their best ideas with others - where the latter is perhaps the most important motivation factor. They want their work to be viewed by others, they want respect, recognition and to be admired by their friends, they want to be part of a world-wide community. In order to hire these people you need to realize that money, internal recognition and a &#8220;career&#8221; is not enough. You might need to change your business strategy.</p>
<p>Consider hiring a brilliant poet, painter or musician where the message is that their work can only be presented, displayed or heard inside the company - a ridiculous proposal and of course they will refuse. The same thing is true for the next generation of superprogrammers. Given a choice they will work for a company where their work is visible for the outside world, or even better, where their work is a contribution to the software community as a whole.</p>
<p>We see already that many companies have a hard time realizing the impact of free and open source software. Those who do not get it will die. Those who manage to attract the next generation of superprogrammers will win.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=28&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/06/28/the-next-generation-of-superprogrammers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Daily Stand-up Meetings - Perhaps the third question should go first?</title>
		<link>http://olvemaudal.wordpress.com/2008/05/15/daily-stand-up-meetings-perhaps-the-third-question-should-go-first/</link>
		<comments>http://olvemaudal.wordpress.com/2008/05/15/daily-stand-up-meetings-perhaps-the-third-question-should-go-first/#comments</comments>
		<pubDate>Thu, 15 May 2008 21:36:03 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/?p=27</guid>
		<description><![CDATA[It is about 10 years since the first time I participated in a project using daily stand-up meeting. I was immediately fascinated. Since then I have always encouraged development teams to do daily stand-up meetings and to get rid of the traditional weekly status meeting.
Modern software development is about taking advantage of the fact that [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It is about 10 years since the first time I participated in a project using <a href="http://en.wikipedia.org/wiki/Stand-up_meeting">daily stand-up meeting</a>. I was immediately fascinated. Since then I have always encouraged development teams to do daily stand-up meetings and to get rid of the traditional weekly status meeting.</p>
<p>Modern software development is about taking advantage of the fact that most often you have a group of very intelligent and capable individuals working together as a team. Given accurate information developers will know what is the right thing to do for the project to succeed. Given enough freedom (this is often forgotten) the developers will also be able to do the right thing. The daily stand-up meeting is an effective mechanism for making sure that everybody on the team have enough information to do the right thing.</p>
<p>There are a lot of formats for running the daily stand-up meeting (<a href="http://www.martinfowler.com/articles/itsNotJustStandingUp.html">ref</a>). But common for most of them is that everybody on the team should answer three questions in this particular order:</p>
<p>1. Did?<br />
2. Will Do?<br />
3. Impediments?</p>
<p>Sometimes I observe stand-up meetings where the third question is skipped. Nobody in the team mentions anything about problems, hindrance, obstacles or anything that impedes their work. It is very unlikely that this is true. In a software project there is always something that can be improved to speed up the team.</p>
<p>Actually, of the three questions, the third question is by far the most important in a daily stand-up meeting. The &#8220;Did?&#8221; and &#8220;Will do?&#8221; question is also important, but the information is often also available in the software repository and the task bord. Apart from the daily stand-up meeting, there is often no formal mechanism for making sure that everybody knows about what slows down the team.</p>
<p>Therefore, I propose that we should order the questions according to their importance. Allow me to suggest that in the daily stand-up meeting the team members should answer the following questions:</p>
<p>1. Any impediments in your way?<br />
2. What are you working on today?<br />
3. What have you finished since yesterday?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/27/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/27/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=27&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/05/15/daily-stand-up-meetings-perhaps-the-third-question-should-go-first/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Software Development Community in Oslo</title>
		<link>http://olvemaudal.wordpress.com/2008/04/30/the-software-development-community-in-oslo/</link>
		<comments>http://olvemaudal.wordpress.com/2008/04/30/the-software-development-community-in-oslo/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 23:06:10 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/?p=26</guid>
		<description><![CDATA[Oslo has one of the most active software development communities in the world. For software developers that care about their profession, there are plenty of interesting things happening every week. Here are some activities, groups, meetings and conferences worth mentioning:
The Oslo XP Meetup and The Oslo Lean Meetup often invites hot-shots to present stuff about [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Oslo has one of the most active software development communities in the world. For software developers that care about their profession, there are plenty of interesting things happening every week. Here are some activities, groups, meetings and conferences worth mentioning:</p>
<p>The <a href="http://xp.meetup.com/13/">Oslo XP Meetup</a> and <a href="http://agile.meetup.com/31/">The Oslo Lean Meetup</a> often invites hot-shots to present stuff about agile and lean software developement, but we also have small gatherings and programming experiments. By far, the biggest and most active community is <a href="http://www.java.no">javaBin</a>, they have an active website and monthly meetings. The javaBin people are also responsible for organizing the big annual <a href="http://www.javazone.no">JavaZone</a> conference which attracts more than 2000 delegates. <a href="http://www.dataforeningen.no/">Den Norske Dataforening</a> is the old norwegian computer association, they have a few interesting meetings and they also organizes the annual <a href="http://dataforeningen.no/-mgtbK28.ips">Software</a> conference. On <a href="http://forum.smidig.no/">smidig.no</a> you find an agile software developer community, many of these people are also involved in organizing the <a href="http://smidig.no/smidig2007/">Smidig</a> conference. The <a href="http://irb.no/">Ruby community</a> is also strong, and recently there was a <a href="http://rubyfools.com/ruby-oslo-2008/conference/">Ruby Fools</a> conference in Oslo. We even have a <a href="http://www.ocppug.org">C++ Users Group</a>. The <a href="http://www.ndc2008.no">Norwegian Developers Conference</a> will probably sell out at around 1k delegates in June. I should perhaps also mention <a href="http://ia.meetup.com/7/">UXnet Meetup</a>, <a href="http://www.nnug.no">Norwegian .NET User Group</a> and <a href="http://www.nuug.no">Norwegian UNIX User Group</a>. Last, but not least, a lot of us meet at Bilabong (Bogstadvn 53) on Tuesday evenings every odd numbered weeks to drink beer.</p>
<p>I am an active member of around half of these groups. Knowing norwegian is not a requirement, since many of these events are in english. If you find yourself in Oslo one day - feel free to contact me and I will introduce to the geek-life of Oslo.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=26&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/04/30/the-software-development-community-in-oslo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Being Agile? No Speeding Please!</title>
		<link>http://olvemaudal.wordpress.com/2008/04/14/being-agile-no-speeding-please/</link>
		<comments>http://olvemaudal.wordpress.com/2008/04/14/being-agile-no-speeding-please/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 10:11:38 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/?p=25</guid>
		<description><![CDATA[&#8220;Why do you have brakes in a car? Because then you can drive faster. [1]&#8220; I like this quote, and I find it very relevant to modern software engineering. Teams that know when and how to use the brakes can drive a project fast and still arrive safe and sound at the final destination. But [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>&#8220;Why do you have brakes in a car? Because then you can drive faster. [1]&#8220;</em> I like this quote, and I find it very relevant to modern software engineering. Teams that know when and how to use the brakes can drive a project fast and still arrive safe and sound at the final destination. But some agile teams are speeding; driving too fast, reluctant to actually use the brakes, and so they drive a project off the road. For example, sometimes you see teams being so much focused on implementing customer visible features that they forget about the importance of a sound and solid internal infrastructure. It seems like the old &#8220;nah, we are in a hurry, let&#8217;s write tests and documentation later&#8221; (which nobody did of course) has now been replaced with &#8220;nah, we are in a hurry, let&#8217;s do proper design and architecture later&#8221; (and this will of course never happen either).</p>
<p><span id="more-25"></span></p>
<p>Agile methodologies encourages you to do things in small steps, often in cycles that can be measured in seconds or minutes. It does not really matter if you do &#8216;think/change/test&#8217; or &#8216;add test/change/refactor&#8217;, sometimes you will meet challenges that require many hours or days or even weeks to do properly. Just as we in the old days could spend months on a Big Design Up Front (BDUF) before starting to code, we must now be prepared to pause once in a while and spend some time thinking. For example, suppose you are to implement a feature where you need to store some values for later retrieval. You realize that you need some kind of persistence mechanism - and it is obvious that a big chunk of internal infrastructure is missing. This is a time where you need to slow down and make sure that you do this properly. Being agile should not be used as an excuse for just mocking up some poorly designed ad-hoc persistance mechanism.</p>
<p>If you do not slow down when required you will end up with bad design and architectural rot. Soon developers will start to complain about: &#8220;it is hard to find stuff&#8221;, &#8220;it is hard to add stuff&#8221;. Despite everybody working very hard, the real progress of the project is next to nothing. The project is like a car stuck in the mud, now pressing hard on the accellerator pedal is not what you want to do. This is not a time for more hard work, now you need to start thinking. You have wasted a lot of time and effort already, but if you are willing to backtrack a bit you might be able to fix the bad design, improve the architecture and get the project back on track. Not slowing down when required will cost you a lot in terms of time and effort, but also in frustration and lost confidence from developers and management. Actually, just like when driving a car, the penalty of driving too fast is so high that (most of us) always prefer to have a large security buffer. If you are eager to successfully complete one project after another, then behave and drive sensible. But of course, in software engineering there are no real cops watching you, so if you can see a very long open stretch, then go for it&#8230;</p>
<p>[1] I first heard this quote from Kevlin Henney at ACCU 2008.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=25&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/04/14/being-agile-no-speeding-please/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Report from ACCU 2008</title>
		<link>http://olvemaudal.wordpress.com/2008/04/10/report-from-accu-2008/</link>
		<comments>http://olvemaudal.wordpress.com/2008/04/10/report-from-accu-2008/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 13:23:14 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/?p=23</guid>
		<description><![CDATA[I just came back from 7 days in Oxford attending the annual conference arranged by ACCU. Around 300 delegates (I was told), interesting program, very suitable  conference location and excellent organising comittee lead by Giovanni Asproni. The conference was packed with people that really care about programming like myself and they all behaved as [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just came back from 7 days in Oxford attending the <a href="http://www.accu.org/index.php/conferences">annual conference</a> arranged by <a href="http://www.accu.org">ACCU</a>. Around 300 delegates (I was told), interesting <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_schedule">program</a>, very suitable <a href="http://www.paramount-hotels.co.uk/hotels/central-england/oxford-hotel"> conference location</a> and excellent organising comittee lead by <a href="http://www.giovanniasproni.com/">Giovanni Asproni</a>. The conference was packed with people that really <em>care about programming</em> like myself and they all behaved as if we were long time friends. It was this feeling of&#8230; feeling of&#8230; coming home. The conference was <span id="more-23"></span> a superb experience. I just wish I knew about this conference years ago and I will definitely try to go next year as well.</p>
<p><em>(Disclaimer: this is a report based on what I heard and remember, not necessarily what was actually said or written. I do apologize upfront for any sloppy understanding and recollection of a particular subject, session and happening.)</em></p>
<p>On Tuesday (Day 0) I attended a one-day <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Fun%20with%20Erlang">tutorial</a> about <a href="http://www.erlang.org/">Erlang</a> - the programming language. I do believe that we are about to see a paradigm shift in the way we think about programming computers. Declarative and functional languages might soon play an important role, also in the industry. The tutorial was presented by <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Joe%20Armstrong">Joe Armstrong</a>, Mr Erlang himself. I enjoyed the tutorial very much. I hope to get more time to do play around with Erlang soon.</p>
<p>Tuesday night a group of us went out for a curry at <a href="http://www.oxfordrestaurantguide.co.uk/chutneys/">Chutneys</a>. Highlight: The bill. Why? As someone proudly announced: &#8220;Hey folks. This is fantastic! We are 23 geeks and the bill is of course exactly 529 pounds!&#8221;. When everybody around you smile and find that amusing - then you know you are among friends.</p>
<p>Wednesday started with a <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Value%20delivery%20for%20Agile%20environments">keynote</a> by <a href="http://www.gilb.com">Tom Gilb</a> (<a href="http://www.gilb.com/community/tiki-download_file.php?fileId=169">slides</a>). Tom was concerned about delivering real business value to all stakeholders in a project. He proposed to add an &#8220;agile envelope&#8221; around the agile methodology and lean principles. Several in the audience was provoked when Tom insinuated that agile practitioners are not really trying to deliver business value&#8230; and you know that you are at the right conference when someone just stands up in anger and shouts (something like) &#8220;Tom, what you are saying is wrong!&#8221;. He continues to promote the Impact Estimation Table. And as usual his solutions involves meassuring and quantifying stuff - which makes me sceptical.</p>
<p><a href="http://www.howzatt.demon.co.uk/">Roger Orr</a> talked about <a href="http://www.accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Programming%20on%20a%20network%20-%20writing%20programs%20in%20a%20networked%20world">writing programs in a networked world</a>. I found the talk interesting even if it was not too much new for me here. Having worked with networked applications for over a decade, most of the stuff was known. At the same time, it is always useful to get reassurance on things that you think you know. Key messages: Good networking interfaces are the key to good support and maintenance. Prefer higher level abstractions, allowing for multiple potential transport protocols. Make sure that you handle versioning issues. Security usually conflicts with other goals (eg, supportability) and it is often not possible to add proper security late to a product.</p>
<p><a href="http://www.accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#How%20to%20become%20Agile">How to become Agile</a> was a talk by <a href="http://www.jeckstein.de/">Jutta Eckstein</a> about introducing agility to a project or to an organization. The key idea was that a successful transition is impossible without involving management. But at the same time, introducing agility top-down does not work - trust is lost at the beginning. People are often looking for recipes, which is kind of opposite to what agile methods is all about. It is useful to identify and empower change agents that can assist the process. The change agent is often someone from inside, but they might need some support from outside at first. People tend to listen more to external people than internal people even if the message is the same. As most agile experts seem to agree upon, Jutta claimed that doing <a href="http://en.wikipedia.org/wiki/Retrospective">retrospectives</a> is the most important agile technique. It is a big mistake to skip the retrospetive sessions. Between projects you might need to use a whole day, while an hour might be sufficient between iterations. Useful links (<a href="http://en.wikipedia.org/wiki/The_World_Cafe">The World Cafe</a>, <a href="http://en.wikipedia.org/wiki/Virginia_Satir">Virginia Satir</a>, <a href="http://en.wikipedia.org/wiki/Shuhari">Shuhari</a>, <a href="http://www.amazon.com/dp/0932633579/">Agile Software Development in the Large</a>).</p>
<p>Perhaps the most entertaining talk at the conference was <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Robot%20wars:%20open%20source%20vs%20microsoft">Robot Wars</a> by <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Ed%20Sykes">Ed Sykes</a> and <a href="http://jan.kollhof.net">Jan-Klaas Kollhof</a>. They believe that there is an exciting robotics market about to evolve, and they have been looking into different development tools. They demonstrated how to use <a href="http://msdn.microsoft.com/robotics/">Microsoft Robotics Studio</a> to program <a href="http://mindstorms.lego.com/">Lego NXT robots</a>. Then we got a demo of <a href="http://jan.kollhof.net/wiki/projects/Lego">free alternatives</a> for robot programming. For their final demonstration, Ed and Jan-Klaas added a camera purchased from <a href="http://mindsensors.com">mindsensors.com</a> to show how a robot could chase another using a very simple application. I have an NXT myself and I thought this was really great stuff.</p>
<p><em>There is something in the air&#8230;</em> said <a href="http://research.microsoft.com/~simonpj/"> Simon Peton Jones</a>, Mr Haskell himself, during his opening keynote on Thursday. His talk was about <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Caging%20the%20Effects%20Monster:%20the%20next%20decade's%20big%20challenge">Caging the Effects Monster</a> - the next decade&#8217;s big challenge. The key message was that in order to improve and reach nirvana in programming we need to be able to control the effects and implement large parts of our programs without any side-effects. Simon demonstrated some really nice examples and rationale for functional programming. He also presented strong indicators showing that functional languages are attracting substantially more attention these days. Links: ( <a href="http://en.wikipedia.org/wiki/Haskell_%28programming_language%29">Haskell</a>, <a href="http://en.wikipedia.org/wiki/F_Sharp_%28programming_language%29">F#</a>, <a href="http://en.wikipedia.org/wiki/Erlang">Erlang</a>, <a href="http://en.wikipedia.org/wiki/OCaml">OCaml</a>, <a href="http://en.wikipedia.org/wiki/Scala">Scala</a>, <a href="http://en.wikipedia.org/wiki/Monads_in_functional_programming">monads</a>)</p>
<p><a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#The%20Selfish%20Object">The Selfish Object</a> was a talk by <a href="http://www.curbralan.com/">Kevlin Henney</a>. The key idea was that instead of focusing on what an object can use or be given, you should focus on what it wants. Need and want is not the same thing. The same goes for object interfaces. When extracting interfaces, focus on the usage and not on the implementation, fex, do not name the interface after the implementation, but find a name based on client usage. Avoid singletons, there is never a real need for them, you can always parameterize from above (Pfa) instead. Don&#8217;t use approaches like Template Method (NVI). Through techniques for controlling dependencies, such as Pfa (parameterize from above), dependency inversion, role-based naming, and more, you might end up with a better radial architecture (onion ring) than the more traditional one-way architecture (layer cake). Later same day, John Lakos summerized nicely: &#8220;I want to depend on the interface, the whole interface, and nothing but the interface. So help me Kevlin.&#8221;.</p>
<p>Just after lunch there was a BOF session about local ACCU groups. Since I am involved in a lot of geek activities in the Oslo area, I was interested to hear what kind of things local ACCU groups were discussing. How to get speakers and how to attract people to the events was discussed. Apparently getting a location for events is difficult. In Oslo we often use pubs for small events (up to 120 people), this seems to be more problematic in UK for some reason (perhaps there are not that many pubs in UK?). The ACCU group in London have had success with borrowing meeting rooms from the big banks. Another group had managed to use the computer section of a book store, a really nice idea. Recording of presentations was also discussed. But, first of all recording introduces a lot of work and also the speaker and audience is less likely to interact and engange in interesting discussions if recorded. This aspect is also true for the ACCU conference. Recording the sessions removes the magic.</p>
<p><a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#John%20Lakos">John Lakos</a> ran through 562 slides in his talk: <a href="http://www.accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Toward%20a%20Common%20Intuition%20and%20Reusable%20Testing%20Methodology">Toward a Common Intuition and Reusable Testing Methodology</a>. It was an excellent presentation, but it was deep stuff and I have to admit that was not able to absorb all the ideas - it was like drinking from a fire hose. But there was a very interesting and solid discussion about what it means to be &#8220;the same&#8221; and what the salient attributes of something are. In C++ a lot of errors arises due to ignorance to these subjects. John, what about dividing this talk into two, where the first is named &#8220;The same? What the fuck do you mean?&#8221;, that would be more like sipping a superior single malt.</p>
<p>The next session I attended was about <a href="http://www.accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Memory%20Allocation:%20Either%20Love%20it%20or%20Hate%20It%20(Or%20Think%20It's%20Just%20OK).">Memory Allocation</a> by <a href="http://erdani.org/">Andrei Alexandrescu</a>. The main message was: If you try to write your own allocator, you will fail. Over and over again, we see that the best general purpose memory allocator outperforms a special purpose memory allocator. If you have identified, through proper profiling, that you indeed have some specific needs, then you should use a reaps allocator (regions with free-list), otherwise go for the <a href="http://g.oswego.edu/dl/html/malloc.html">Doug Lea memory allocator</a>.</p>
<p>The last session of Thursday was a special version of <a href="http://www.accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Just%20A%20Minute">Just a Minute</a> hosted by Ewan Milne. Funny, but perhaps not so useful. As I did not know about the &#8220;Just a Minute&#8221; concept, I thought (for some reason) that we would get some sort of <a href="http://en.wikipedia.org/wiki/Lightning_Talk">Lightning talk</a> session. We have used this format (1-10 minutes talks) successfully at several events in Oslo. I would love to see a session of lightning talks at ACCU next year.</p>
<p>The opening <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#May%20You%20Live%20Interesting%20Times">keynote</a> on friday was presented by <a href="http://erdani.org/">Andrei Alexandrescu</a>. He talked about fundamental challanges in programming languages, and briefly introduced Stepanovs litmust tests: If you can&#8217;t implement max, swap or linear search properly, what are your chances to implement really complex stuff? To kind of underline the point, Andrei demonstrated an even more fundamental problem, even implementing the identity() function is really complex in C++. Fortunately, with C++0x we are apparently moving in the right direction.</p>
<p>Despite being a dedicated Emacs power user, I have to admit that I sometimes envy the tools that Java developers have available - <a href="http://www.eclipse.org/">Eclipse</a> being one of them. I wish I could use Eclipse on C++ code as well. For the last few years I have been downloading the latest version of <a href="http://www.eclipse.org/cdt/">Eclipse CDT</a> once in a while to give it a go. For now, I do not see that it adds any value to my C++ development environment, but I am still optimistic because I can see improvements every time. When I saw that <a href="http://wiki.hsr.ch/PeterSommerlad/">Peter Sommerlad</a> was giving a talk about <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#C++%20Refactoring%20and%20TDD%20with%20Eclipse%20CDT">C++ Refactoring and TDD with Eclipse CDT</a> (<a href="http://wiki.hsr.ch/PeterSommerlad/files/C++TDD_Refactoring.pdf">slides</a>). I thought I might learn more about the state of CDT - and I did. Some of the new refactoring tools that have been added looks interesting, but I got the impression that they are still quite fragile for variable C++ coding styles.</p>
<p><em>Testing is a way of showing that you care</em>. This was a key message from Kevlin Henney in his talk <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Know%20Your%20Units">Know Your Units</a>. There are many testing techniques - unit testing being only one of them. But it is important that you distinguish between what is a unit test and what is not. A test is not a unit test if it uses external resources or if it require a particular order of execution. By focusing on doing unit testing correctly, you will often be forced into making sound design and architectural decisions. Tests that are not unit tests according to the definition might also be very useful but they serve another purpose - often they focus on finding bugs. A useful technique when writing unit tests is to prefix the test name with &#8216;require&#8217; as in &#8216;require_that_sqrt_of_4_is_2()&#8217; rather than &#8216;test_sqrt_4_is_2()&#8217;. Your tests should look like requirements and this naming style will guide you into writing better unit tests. Other guidelines: The more general a method gets, the less useful it is for a particular application. Get rid of your singletons, they make your code untestable. Don&#8217;t ever invite a vampire into your house, you silly boy - it renders you powerless.</p>
<p>Before the Speakers Dinner friday night, two teams met at the squash court to settle the long term debate of whether braces should be aligned:<br />
<code><br />
// aligned style<br />
if (is_ready())<br />
{<br />
  do_foo();<br />
  do_bar();<br />
}<br />
</code><br />
or disaligned:<br />
<code><br />
// disaligned style<br />
if (is_ready()) {<br />
  do_foo();<br />
  do_bar();<br />
}<br />
</code><br />
I was (of course) playing for the &#8220;disaligned&#8221; team and it was a fierce competition for about an hour and a half before we gave up&#8230; failing to declare a winner. It was decided to bring in more combatants and do a <a href="http://en.wikipedia.org/wiki/Boat_race_%28game%29">boat race</a> later in the evening to settle the debate. If I remember correctly the &#8216;disaligned style&#8217; team lost, but as you know, in a boat race having most supporters and the biggest team is not an advantage&#8230;</p>
<p>I would have liked to see <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Roger%20Orr">Roger Orr</a> presenting the <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#Seven%20Deadly%20Sins%20of%20Debugging">keynote</a> on Saturday morning, especially since I later was told that it was a really good one. But I did not get to bed before 5am saturday morning and sometimes you have to prioritize hard.</p>
<p><a href="http://www.vollmann.ch/en/index.html">Detlef Vollman</a> gave a talk about <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#C++%20for%20Embedded%20Systems">C++ for Embedded Systems</a>. This was a particularly useful session for me since it is exactly what I do for a living. Some messages: In embedded systems, power consumption is often the biggest problem. Immutable strings make sense, so you might need to implement your own string class. In low-level classes you should not use dynamic memory allocation. Don&#8217;t fall into the OOAD trap where you only analyse a system top-down, for embedded systems you must also use a bottom-up lego approach. C++ is a multi-paradigm language, which is very useful for embedded systems. Only use OO if it really gives you some benefit.</p>
<p>For the last year I have been following the <a href="http://www.open-std.org/jtc1/sc22/wg21/">C++0x process</a> closly, so of course I had to attend <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#The%20complete%20guide%20to%20C++0x">C++ 2009 in 90 minutes</a> by <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Alisdair%20Meredith">Alisdair Meredith</a>. I already know about most of the things that are going into the new standard, but my knowledge is superficial. For example, when I first saw the proposal about rvalue references I did of course realize how useful they are for making dead hard quiz questions, but after Alisdairs talk I understand more about why some of these things are important additions to the language.</p>
<p>Then finally, there was a panel debate about the <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_sessions#State%20Of%20The%20Practice">State of the Practice</a> lead by Giovanni with <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Tom%20Gilb">Tom Gilb</a>, <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Hubert%20Matthews">Hubert Matthews</a>, <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Russel%20Winder">Russel Winder</a>, <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#Peter%20Sommerlad">Peter Sommerlad</a> and <a href="http://accu.org/index.php/conferences/accu_conference_2008/accu2008_speakers#James%20Coplien">James Coplien</a> in the panel. They all seem to agree that as an industry we have really screwed up badly. Sure there was a lot of good points made, but I suspect they have a somewhat biased experience base. Big names like these guys are often brought in to fix stuff in failing projects rather than watching successful projects completing a masterpiece. In addition, it is always comfortable to be the one critisizing instead of being optimisitic - being a pessimist is the safe bet in all things with a large degree of uncertainty. But at the same time, the session was indeed interesting. Some stuff that was dicussed: Are there too many lay programmers out there? Do we need to become a registered profession? Perhaps we must split CS into displines like telecom, banking, military, and so on? Are we going into a cultural rot? Is software development a normative discipline? Do customer buy a service or a product? Does better compilers make it just easier for lay people to write bad software? Will making a registered profession have impact on free and open source software development? Is the free market for software working?</p>
<p>And then the conference was over.</p>
<p>Sunday morning. 6am. Three alarm goes off. Must not be late for my flight back to Oslo. Looking out of window. England covered in snow. Wow! Prepared for a really bad trip home. Luck. Flight was just a few hours delayed. Wife and two kids. It&#8217;s always nice to come home&#8230;</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=23&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/04/10/report-from-accu-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Erlang gives me positive vibes</title>
		<link>http://olvemaudal.wordpress.com/2008/01/04/erlang-gives-me-positive-vibes/</link>
		<comments>http://olvemaudal.wordpress.com/2008/01/04/erlang-gives-me-positive-vibes/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 22:15:50 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[declarative programming]]></category>

		<category><![CDATA[Erlang]]></category>

		<category><![CDATA[multi-core]]></category>

		<category><![CDATA[paradigm shift]]></category>

		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/2008/01/05/erlang-gives-me-positive-vibes/</guid>
		<description><![CDATA[
During my years at university (1992-1996) I was very excited about declarative programming langauges. We studied plenty of examples where a clumsy solution in a typical imperative programming language, such as C and Java, could be replaced by a few elegant lines of code in for example Haskell, ML, Lisp or Prolog.

After leaving academia, 12 [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div>
<div>During my years at university (1992-1996) I was very excited about declarative programming langauges. We studied plenty of examples where a clumsy solution in a typical imperative programming language, such as C and Java, could be replaced by a few elegant lines of code in for example Haskell, ML, Lisp or Prolog.</div>
<div><br class="webkit-block-placeholder" /></div>
<div>After leaving academia, 12 years ago, I have only been working with imparative programming languages, mostly C, C++ and Java. Apart from occationally hacking away in Emacs Lisp there has been little to remind me about the theory and excitement about declarative programming languages. Until recently&#8230;</div>
<div><br class="webkit-block-placeholder" /></div>
<div>A major concern today is how to utilize mulit-core architectures. It is not unlikely that we will soon have processors with thousands of cores each running relatively slowly, rather than a few cores running at several gigahertz. Dispite a massive increase in theoretical processing capacity it is not obvious how traditional imperative programming can use such processors effiently. Even quad core processors today are giving headaches to programmers concerned about performance. OMP, MPI, TBB, Fortress, C++0x and so on might promise some short-term relief, but it is probably wise to prepare for a paradigm shift in how to program computers.</div>
<div><br class="webkit-block-placeholder" /></div>
<div>During the last year, I have read and heard more and more about Erlang. Several of my geek-friends have suggested that Erlang is rapidly climbing on the list of interesting programming languages that can also be used for serious stuff. In particular Erlang has popped up in discussions about how to handle the multi-core &#8220;problem&#8221;. Then suddently I received an invition from Syver Enstad and Marius Mathiesen to join a studygroup in Erlang. Today we had the first meeting, discussing the first chapters of the &#8220;Programming Erland&#8221; book by Joe Armstrong. I would have said yes to their invitation regardless of language (I am a programming language geek), but at the same time it was in particular timely that Erlang was the subject.</div>
<div><br class="webkit-block-placeholder" /></div>
<div>So far I have not read more than a few chapters in the book, installed the intepreter and played around with some toy examples, but I am already feeling an excitement about Erlang and declarative programming again. Considering the attention that Erlang seem to get these days and looking at the installed base of serious applications and libraries, Erlang gives me positive vibes. Perhaps I am right now learning about some technology that will play a central role in an upcoming paradigm shift?</div>
<div><br class="webkit-block-placeholder" /></div>
</div>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=16&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2008/01/04/erlang-gives-me-positive-vibes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Discovering the importance of hygiene in software engineering</title>
		<link>http://olvemaudal.wordpress.com/2007/11/27/discovering-the-importance-of-hygiene-in-software-engineering/</link>
		<comments>http://olvemaudal.wordpress.com/2007/11/27/discovering-the-importance-of-hygiene-in-software-engineering/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 20:45:03 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[software professionalism]]></category>

		<category><![CDATA[test-driven development]]></category>

		<category><![CDATA[test-first]]></category>

		<category><![CDATA[uncle bob]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/2007/11/27/discovering-the-importance-of-hygiene-in-software-engineering/</guid>
		<description><![CDATA[Last month I spent a week with Uncle Bob (Robert C. Martin). First I attended a three day course about &#8220;Test-Driven Development and Refactoring Techniques&#8221; hosted by ProgramUtvikling. Then we hired him for two days at my company to do some direct coaching for a small development team. Of course, I learned a lot about [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Last month I spent a week with <a href="http://www.objectmentor.com/omTeam/martin_r.html">Uncle Bob</a> (Robert C. Martin). First I attended a three day course about &#8220;Test-Driven Development and Refactoring Techniques&#8221; hosted by <a href="http://www.programutvikling.no">ProgramUtvikling</a>. Then we hired him for two days at my company to do some direct coaching for a small development team. Of course, I learned a lot about test-driven development, refactoring, astrophysics and software professionalism. But there was one thing he said that I have been thinking about a lot - he suggested that the &#8220;discovery&#8221; of test-first in software engineering might be compared to the discovery of the importance of hygiene in hospitals by <a href="http://en.wikipedia.org/wiki/Ignaz_Semmelweis">Ignaz Semmelweis</a> in the middle of the 19th century. These days it seems like a lot of professionals are accepting the importance of test-first in software engineering. But there are still large groups of software developers that are very ignorant to what is happening in the industry. Some programmers will probably never get it, these are the once proudly claiming that; &#8220;this new stuff about test first and unit tests applies only to web-kiddies&#8221;, or &#8220;We are real programmers and we know how to write real code&#8221;. While others, in particular C programmers, often uses the lack of tool support as a bad excuse for not following principles of modern software development. I guess the situation we are in software engineering right now is not unlike how the medical establishment rejected Semmelwies&#8217; ideas, just to realize decades later that washing hands before treating patients does make sense.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=14&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2007/11/27/discovering-the-importance-of-hygiene-in-software-engineering/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Test-Driven Development in C</title>
		<link>http://olvemaudal.wordpress.com/2007/11/27/test-driven-development-in-c/</link>
		<comments>http://olvemaudal.wordpress.com/2007/11/27/test-driven-development-in-c/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 01:16:06 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/2007/11/27/test-driven-development-in-c/</guid>
		<description><![CDATA[At Smidig 2007 I gave a 10 minute lightening talk about Test-Driven Development in C. Here is a link to the slides.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>At <a href="http://www.smidig.no/smidig2007">Smidig 2007</a> I gave a 10 minute <a href="http://en.wikipedia.org/wiki/Lightning_Talk">lightening talk</a> about Test-Driven Development in C. Here is a link to the <a href="http://www.pvv.org/~oma/TDDinC_Smidig2007.pdf">slides</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=13&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2007/11/27/test-driven-development-in-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C++0x - A quick and dirty introduction (November 2007)</title>
		<link>http://olvemaudal.wordpress.com/2007/11/23/c0x-a-quick-and-dirty-introduction-november-2007/</link>
		<comments>http://olvemaudal.wordpress.com/2007/11/23/c0x-a-quick-and-dirty-introduction-november-2007/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 21:13:47 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[c++]]></category>

		<category><![CDATA[c++0x]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/2007/11/23/c0x-a-quick-and-dirty-introduction-november-2007/</guid>
		<description><![CDATA[Together with Lars Gullik Bjønnes, I recently gave a quick and dirty introduction to C++0x as of November 2007. We did not have any intention about making a complete and accurate description, but rather present stuff that we find interesting. It includes:constexpr, static_assert, template &#60;typename&#8230; args&#62;, scoped enums, aligned_storage, decltype, auto, defaulted and deleted functions, [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Together with Lars Gullik Bjønnes, I recently gave a quick and dirty introduction to C++0x as of November 2007. We did not have any intention about making a complete and accurate description, but rather present stuff that we find interesting. It includes:constexpr, static_assert, template &lt;typename&#8230; args&gt;, scoped enums, aligned_storage, decltype, auto, defaulted and deleted functions, rvalue reference, delegating constructors, std::array, std::shared_ptr, std::tuple, std::minmax, std::function, std::bind, std::regex, std::thread, &#8230; and more.Here are the <a href="http://www.pvv.org/~oma/cpp0x_aquadi_nov_2007.pdf">slides</a> from this talk.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=15&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2007/11/23/c0x-a-quick-and-dirty-introduction-november-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oslo C++ User Group</title>
		<link>http://olvemaudal.wordpress.com/2007/09/28/oslo-c-user-group/</link>
		<comments>http://olvemaudal.wordpress.com/2007/09/28/oslo-c-user-group/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 00:00:24 +0000</pubDate>
		<dc:creator>olvemaudal</dc:creator>
		
		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://olvemaudal.wordpress.com/2007/09/28/oslo-c-user-group/</guid>
		<description><![CDATA[Oslo C++ User Group (ocppug) had their first meeting this week at The Scotsman. Twelve very knowledgeable men showed up for this meeting (Fredrik, Christian, Igor, Terje, Alf, Johan, Sergey, Samuel, Syver, Frans, Einar Otto and myself). The topic was C++0x, the up-coming C++ standard, hopefully to be finished by 2009.
I opened the meeting by [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.ocppug.org">Oslo C++ User Group</a> (ocppug) had their <a href="http://c.meetup.com/56/calendar/6226611/">first meeting</a> this week at <a href="http://www.scotsman.no/">The Scotsman</a>. Twelve very knowledgeable men showed up for this meeting (Fredrik, Christian, Igor, Terje, Alf, Johan, Sergey, Samuel, Syver, Frans, Einar Otto and myself). The topic was <strong>C++0x</strong>, the up-coming C++ standard, hopefully to be finished by 2009.</p>
<p>I opened the meeting by giving a <strong>&#8220;Quick and dirty introduction to C++0x&#8221;</strong> (<a href="http://files.meetup.com/612395/cpp0x_aquadi_sep2007.pdf">pdf</a>, <a href="http://www.pvv.org/~oma/cpp0x_aquadi_sep2007.html">html</a>). Einar Otto Stangvik provided a solid discussion about why multi-threading in a language not designed for concurrency is difficult. He gave a talk about <strong>&#8220;Threading in C++0x&#8221;</strong> (<a href="http://files.meetup.com/612395/ThreadingInCPP0X_sep2007.pdf">pdf</a>). Terje Slettebø gave a talk about <strong>&#8220;Concepts in C++0x&#8221;</strong> (<a href="http://files.meetup.com/612395/ConceptsInCpp0x_Sep2007.pdf">pdf</a>) and he showed the reasons for introducing it into the language.</p>
<p>The meeting started at 1900, we finished the formal part of the meeting around 2130. Then we went downstairs to have some pizza, more beer and lots of good discussions.  I really enjoyed this meeting, and I am already looking forward to the next meeting.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/olvemaudal.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/olvemaudal.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/olvemaudal.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/olvemaudal.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/olvemaudal.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/olvemaudal.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/olvemaudal.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/olvemaudal.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/olvemaudal.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/olvemaudal.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/olvemaudal.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/olvemaudal.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=olvemaudal.wordpress.com&blog=698714&post=12&subd=olvemaudal&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://olvemaudal.wordpress.com/2007/09/28/oslo-c-user-group/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>