<?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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rickard Lindberg</title>
	<atom:link href="http://rickardlindberg.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rickardlindberg.wordpress.com</link>
	<description>This is my personal homepage where I publish content of various topics that interest me.</description>
	<lastBuildDate>Sun, 04 Jul 2010 18:55:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rickardlindberg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Rickard Lindberg</title>
		<link>http://rickardlindberg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rickardlindberg.wordpress.com/osd.xml" title="Rickard Lindberg" />
	<atom:link rel='hub' href='http://rickardlindberg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Closing the feedback loop</title>
		<link>http://rickardlindberg.wordpress.com/2010/07/04/closing-the-feedback-loop/</link>
		<comments>http://rickardlindberg.wordpress.com/2010/07/04/closing-the-feedback-loop/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 13:41:43 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=157</guid>
		<description><![CDATA[I have recently spent some time reading the book Working Effectively with Legacy Code by Michael Feathers. I find it interesting because it describes techniques for making bad code better. Feathers defines legacy code as code that does not have tests and further argues that code without tests is bad code. If you believe in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=157&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have recently spent some time reading the book <em>Working Effectively with Legacy Code</em> by Michael Feathers. I find it interesting because it describes techniques for making bad code better.</p>
<p>Feathers defines legacy code as code that does not have tests and further argues that code without tests is bad code. If you believe in this statement and have the intention of converting a piece of legacy code to code that is tested you face a problem: legacy code is often hard to test because it often has many dependencies that are hard to construct in tests. The main part of the book describes techniques for solving this problem: getting tests in place for legacy code.</p>
<p>In one of the introductory chapters the author talks about the effect that feedback has on changing code. Feedback here means the time it takes before you see the effect of a change in the code. If you have to manually perform some action in a GUI to see the effect of a change it will probably take you a minute ore two. If you have to do that many times you will perhaps become frustrated and bored. If you instead can run a set of automated tests to ensure that your change is good, the thing that you are working on can be implemented faster. The shorter the feedback loop, the better.</p>
<p>If you work in this modify-test fashion, you are likely leaving your editor and pressing a button to run your tests after you have finished an edit. In the book, Feathers suggests that this cycle can be shortened by running the tests continuously. In particular, the tests could be run as soon as you type a key in your IDE. That sounded interesting to me so I decided to implement a simple application for use in the Timeline project that do something similar.</p>
<p>The application is a small GUI application that looks like in the pictures below. When you start it, it will run all tests (using the console based test script) and display the output. If all tests passed the top part will become green, otherwise it will become red. The special thing with this application is that it monitors the file system for changes and whenever it detects a change, it runs the tests again. So as soon as you hit save in your editor, the tests will run again automatically. That way you never have to leave your editor to find out how the change you made in the code affected the system. (Of course this relies on writing tests as well as code.)</p>
<div id="attachment_158" class="wp-caption aligncenter" style="width: 346px"><a href="http://rickardlindberg.files.wordpress.com/2010/07/running.png"><img class="size-full wp-image-158" title="GUI Test Runner: Running" src="http://rickardlindberg.files.wordpress.com/2010/07/running.png?w=336&#038;h=229" alt="" width="336" height="229" /></a><p class="wp-caption-text">The application is running the tests on start-up. It will also re-run them every time it detects a change in a file.</p></div>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 346px"><a href="http://rickardlindberg.files.wordpress.com/2010/07/success.png"><img class="size-full wp-image-159  " title="GUI Test Runner: Success" src="http://rickardlindberg.files.wordpress.com/2010/07/success.png?w=336&#038;h=229" alt="" width="336" height="229" /></a><p class="wp-caption-text">The application ran the tests and they all passed.</p></div>
<div id="attachment_160" class="wp-caption aligncenter" style="width: 346px"><a href="http://rickardlindberg.files.wordpress.com/2010/07/failure.png"><img class="size-full wp-image-160  " title="GUI Test Runner: Failure" src="http://rickardlindberg.files.wordpress.com/2010/07/failure.png?w=336&#038;h=229" alt="" width="336" height="229" /></a><p class="wp-caption-text">The application ran the tests and some of them failed. You can quickly edit your code to try to fix the errors, and when you save, you find out if you fixed them or not.</p></div>
<p>I will start using this tool when working on Timeline and see how it affects my productivity and code quality.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=157&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2010/07/04/closing-the-feedback-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>

		<media:content url="http://rickardlindberg.files.wordpress.com/2010/07/running.png" medium="image">
			<media:title type="html">GUI Test Runner: Running</media:title>
		</media:content>

		<media:content url="http://rickardlindberg.files.wordpress.com/2010/07/success.png" medium="image">
			<media:title type="html">GUI Test Runner: Success</media:title>
		</media:content>

		<media:content url="http://rickardlindberg.files.wordpress.com/2010/07/failure.png" medium="image">
			<media:title type="html">GUI Test Runner: Failure</media:title>
		</media:content>
	</item>
		<item>
		<title>Can I connect a microphone to line-in?</title>
		<link>http://rickardlindberg.wordpress.com/2010/01/23/can-i-connect-a-microphone-to-line-in/</link>
		<comments>http://rickardlindberg.wordpress.com/2010/01/23/can-i-connect-a-microphone-to-line-in/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 10:55:14 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Questions]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[card]]></category>
		<category><![CDATA[mic]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=150</guid>
		<description><![CDATA[These are a few notes from reading articles on the web trying to answer this question. A simple sound card usually has line-in, line-out, and mic connections. Line (line level) refers to the strength of the signal. Signals from microphones (or pickups from guitars) are typically weaker than line level and have to be amplified. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=150&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These are a few notes from reading articles on the web trying to answer this question.</p>
<p>A simple sound card usually has line-in, line-out, and mic connections. Line (line level) refers to the strength of the signal. Signals from microphones (or pickups from guitars) are typically weaker than line level and have to be amplified.</p>
<p>The mic input on a sound card probably has some amplifier but I was not able find out exactly how this worked. There also seems to be a difference between &#8220;computer microphones&#8221; and more advanced microphones. If you use a more advanced microphone you probably plug it into a mixer which has a preamp. The output from the mixer can then be connected to the line-in on the sound card.</p>
<p>Or is the only difference between a &#8220;computer microphone&#8221; and a more advanced microphone the connector? It feels like a more advanced microphone requires a better preamp than the one that (presumably) sits behind the mic input on sound cards.</p>
<p>Furthermore, the difference between a sound card and an audio interface only seems to be that an audio interface is a more advanced sound card: better AD/DA converters, lower sampling latency, and better sampling rates and bit depth. It is also common for audio interfaces to be external. Maybe because they often provide more inputs and outputs.</p>
<p>If you know anything about how the mic input on regular sound cards works I would be happy to read your comments about it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=150&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2010/01/23/can-i-connect-a-microphone-to-line-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>Unit testing revisited</title>
		<link>http://rickardlindberg.wordpress.com/2010/01/04/unit-testing-revisited/</link>
		<comments>http://rickardlindberg.wordpress.com/2010/01/04/unit-testing-revisited/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 20:57:40 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=128</guid>
		<description><![CDATA[Every time I make a new release of Timeline I get a little nervous. Nervous that the program will not work or do something unexpected. One obvious activity that helps find bugs in the program is testing. Usually when I work on a new feature I try it out as I go and make sure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=128&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Every time I make a new release of Timeline I get a little nervous. Nervous that the program will not work or do something unexpected. One obvious activity that helps find bugs in the program is testing. Usually when I work on a new feature I try it out as I go and make sure it works. The problem is that I can&#8217;t say with confidence that other features still work: features I haven&#8217;t touched for this release or haven&#8217;t used in a long time.</p>
<p>One solution is to test all features before every release. That is a tedious job. Especially when you make releases often as we do (once a month). I have experimented a little with unit testing but find it quite difficult. We only use it in a few places to ensure correctness of a few functions. A podcast and an article pushed me intro trying unit testing again and also working in a test driven development fashion.</p>
<h3>The podcast</h3>
<p>In <a href="http://twit.tv/floss87">FLOSS Weekly 87: Extreme Prgramming With Kent Beck</a> topics such as extreme programming (XP), test driven development (TDD), pair programming, and design patterns are discussed. It does a great job of demystifying these buzzwords and makes you understand the core ideas behind them.</p>
<p>In particular I like the fact that they go back and talk about a well designed program as one that has low coupling and high cohesion. Later they talk about how techniques such as TDD help achieve that.</p>
<p>The real eye-opener for me after listening to this show was that the purpose of writing unit tests is not only to test the correctness of a function: it is also designing your code in such a way that it can be tested. And if it can be tested it probably has low coupling and high cohesion which in turn makes it a well designed program. Kent mentions in the show that having the correctness of a function tested is just &#8220;a really nice side effect&#8221; of writing unit tests.</p>
<h3>The article</h3>
<p>Now I had a slightly more positive attitude towards unit testing and I wanted to try it out in practice by refactoring some code for Timeline. One thing that is typically difficult to test automatically is GUIs. In Timeline there is at least one GUI component that is quite large and contains much logic. I would be really happy if we can test it automatically somehow.</p>
<p>Browsing the net for answers I came across this excellent article: <a href="http://www.objectmentor.com/resources/articles/TheHumbleDialogBox.pdf">The Humble Dialog Box</a> by Michael Feathers (found via <a href="http://stackoverflow.com/questions/215458/how-can-i-unit-test-a-gui">How can I unit test a GUI?</a>). It describes a totally different approach to designing GUIs that really fascinated me. You remove almost all logic from the GUI and instead put it into another object which can much more easily be tested.</p>
<h3>The experiment</h3>
<p>I decided to try the idea with a humble dialog box on the category editor in Timeline. It is a very simple dialog which makes it suitable for trying this approach.</p>
<p><a href="http://rickardlindberg.files.wordpress.com/2010/01/category_editor.png"><img class="aligncenter size-full wp-image-130" title="Category Editor" src="http://rickardlindberg.files.wordpress.com/2010/01/category_editor.png?w=217&#038;h=149" alt="" width="217" height="149" /></a></p>
<p>For those of you interested, you can read the source code for this dialog <a href="http://thetimelineproj.hg.sourceforge.net/hgweb/thetimelineproj/main/file/f33a8af2e46a/timelinelib/gui/dialogs/categoryeditor.py">before</a> and <a href="http://thetimelineproj.hg.sourceforge.net/hgweb/thetimelineproj/main/file/b871ab46d8cd/timelinelib/gui/dialogs/categoryeditor.py">after</a> (<a href="http://thetimelineproj.hg.sourceforge.net/hgweb/thetimelineproj/main/file/b871ab46d8cd/tests/category_editor.py">source code for test</a>).</p>
<h3>Conclusions</h3>
<p>Although the overall length of the code increased I think the separation between the GUI and the controller (the logic that was previously in the GUI) is slightly more readable. Most of the code fore the GUI is now extremely simple. So the increase in code size is not such a big issue I think. It also feels quite nice to be able to test the simple logic of this dialog.</p>
<p>I am still not convinced that unit testing is the answer to all problems regarding ensuring high quality. And maybe that is not the case either. After all it is just one means to get high quality code. I think doing code review is another good means to that same end. I might try this approach again on a more advanced dialog.</p>
<h3>A side note</h3>
<p><a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2008/06/the-flawed-theo.html">The Flawed Theory Behind Unit Testing</a> (from Michael Feathers&#8217; Blog) expands on the idea that unit testing is just a means to an end where the end is high quality code. From the post:</p>
<blockquote><p>In the software industry, we’ve been chasing quality for years.  The interesting thing is there are a number of things that work.  Design by Contract works.  Test Driven Development works.  So do Clean Room, code inspections and the use of higher-level languages.</p></blockquote>
<p>Go read the whole article if you are interested in knowing what it is that makes the above mentioned things work.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=128&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2010/01/04/unit-testing-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>

		<media:content url="http://rickardlindberg.files.wordpress.com/2010/01/category_editor.png" medium="image">
			<media:title type="html">Category Editor</media:title>
		</media:content>
	</item>
		<item>
		<title>Multiple Mercurial repositories on SourceForge</title>
		<link>http://rickardlindberg.wordpress.com/2009/10/01/multiple-mercurial-repositories-on-sourceforge/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/10/01/multiple-mercurial-repositories-on-sourceforge/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 06:19:51 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Timeline]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=110</guid>
		<description><![CDATA[When SourceForge announced support for multiple Mercurial repositories I was eager to try it out for our project. I found the documentation on the wiki a bit lacking and I had to ask around on the IRC channel for help. Below I present the problem I had and the solution to it. After reading Creating [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=110&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When SourceForge announced support for multiple Mercurial repositories I was eager to try it out for our project. I found the documentation on the wiki a bit lacking and I had to ask around on the IRC channel for help. Below I present the problem I had and the solution to it.</p>
<p>After reading <a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Mercurial#CreatingMultpleRepositories">Creating Multple Repositories</a> on the Mercurial wiki page I had successfully created multiple repositories and was able to access them. I also read <a href="http://sourceforge.net/apps/trac/sourceforge/wiki/Mercurial%20permission%20management">Mercurial permissions management</a> and granted another member of my project write access. It turned out though that this was not enough.</p>
<p>You also need to change the permission on the Mercurial repositories using the interactive shell service so that the group also has write permissions:</p>
<pre>chmod g+w .hg .hg/* .hg/store/*</pre>
<p>And if you have any files under .hg/store/data you also need to assign the same permissions to them.</p>
<p>Even if you assign write permission to the group, only the ones that you granted access in the admin interface will be able to write to the repository. (The guys on the IRC channel told me that only the ones granted access in the admin interface will get the Mercurial mount.)</p>
<p>I think it would be good if this information was available on the SourceForge wiki. But in the meantime, I publish it here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=110&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/10/01/multiple-mercurial-repositories-on-sourceforge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>Remembering the tones in Mandarin</title>
		<link>http://rickardlindberg.wordpress.com/2009/09/11/remembering-the-tones-in-mandarin/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/09/11/remembering-the-tones-in-mandarin/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 16:58:07 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Chinese]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=96</guid>
		<description><![CDATA[This post was originally published on October 8, 2008 on another blog that I no longer use. I therefore move this post over here in hope that it will be useful to someone. For a newbie like me on the Chinese language and Mandarin, remembering the tones of words is very difficult. One technique that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=96&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>This post was originally published on </em><em>October 8, 2008 on </em><em>another blog that I no longer use. I therefore move this post over here in hope that it will be useful to someone.<br />
</em></p>
<p>For a newbie like me on the Chinese language and Mandarin, remembering the <a href="http://en.wikipedia.org/wiki/Standard_Mandarin#Tones">tones</a> of words is very difficult.</p>
<p>One technique that I&#8217;ve been using to remember the tones is to associate a person with each tone. Since there are four tones in Mandarin, and my family consists of four people, I have assigned one family member to represent each tone.</p>
<p>For example, the word shū (书) means book and has the first tone. Since the character looks kinda like a sail on a boat, in order to remember this word, I imagine my dad lying on a boat reading a book in the sunshine. My dad <strong>always</strong> represents the first tone.</p>
<p>This technique works quite well for words that consist of only one character. It does not work so well for words that consist of more than one character. That is because those words have multiple tones (one for each character). When I place my family members in a scene somewhere, it is difficult to remember the order in which the tones come. Maybe if I place me behind my dad, I can remember that the tone that I represent (which is tone three) comes before the first tone, but it gets messy.</p>
<p>Another disadvantage with this technique is that it is difficult to remember the tones for words like mom, dad, and sister if the tones do not correspond to the the ones that I&#8217;ve assigned my family members.</p>
<p>For example. The word for mom is mā ma (妈妈). A first tone followed by a neutral tone. But since I have associated the first tone with my dad, I can easily get confused here. But I guess I can learn these exceptions in some other way.</p>
<p>To address the problems of my current technique I have a new idea. I think it might work well, but I have not tried it yet. The basic idea is that you assign a combination of tones to a specific object and then associate that object with a word. For example, the word for Chinese language is Hàn yǔ (汉语). A fourth tone followed by a third tone. Lets say that I associate this tone combination with a panda. Then a panda will <strong>always</strong> represent this tone combination.</p>
<p>Now I have to learn two associations: that this particular tone combination is represented by a panda (I have to learn this once), and that a panda is related to Chinese language somehow (I have to relate the panda to all words with this tone combination).</p>
<p>For each tone combination I have to come up with an association to an object. This is a bit of work, but once it is done, it is done. For two character words, there should be only 4*4=16 such combinations (and maybe a few others if the fifth neutral tone is included). But I think this will help in the long run.</p>
<p>Another possible positive side of this is that I can maybe remember how a tone combination sounds like by associating a sound with the object associated with the combination.</p>
<p>But I have to experiment a bit more with this to be able to tell if it is useful or not.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=96&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/09/11/remembering-the-tones-in-mandarin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>A new help system</title>
		<link>http://rickardlindberg.wordpress.com/2009/09/09/a-new-help-system/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/09/09/a-new-help-system/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 16:59:36 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=94</guid>
		<description><![CDATA[The last couple of days I have been working on a new help system for Timeline. Instead of having a single user manual document which is hard to navigate, the new help system is more like a wiki with many small pages covering specific topics. All pages can also link to related pages. This approach [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=94&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The last couple of days I have been working on a new help system for <em>Timeline</em>. Instead of having a single user manual document which is hard to navigate, the new help system is more like a wiki with many small pages covering specific topics. All pages can also link to related pages. This approach has some advantages over a singe user manual document:</p>
<ul>
<li>It is easier to write a help page about a topic because you do not need to figure out where in the manual to put it or be concerned that it will not fit the structure of the manual</li>
<li>It is easier for translators to translate a short isolated page instead of a long manual</li>
<li>It is easier for users to find information because you can organize the pages in any way you want: popular help topics can be linked to on the first page for example</li>
</ul>
<p>The new help system is available in the development repository now and will appear in the 0.5.0 release scheduled for October 1, 2009. I believe it will make working with help easier for everyone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=94&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/09/09/a-new-help-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>Morning mist</title>
		<link>http://rickardlindberg.wordpress.com/2009/09/06/morning-mist/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/09/06/morning-mist/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 10:07:28 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=89</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=89&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_88" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-88" title="Morning mist" src="http://rickardlindberg.files.wordpress.com/2009/09/dscn0199.jpg?w=600&#038;h=800" alt="The view that I woke up to this morning." width="600" height="800" /><p class="wp-caption-text">The view that I woke up to this morning.</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=89&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/09/06/morning-mist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>

		<media:content url="http://rickardlindberg.files.wordpress.com/2009/09/dscn0199.jpg" medium="image">
			<media:title type="html">Morning mist</media:title>
		</media:content>
	</item>
		<item>
		<title>Automatically rotate pictures from digital camera</title>
		<link>http://rickardlindberg.wordpress.com/2009/09/05/automatically-rotate-pictures-from-digital-camera/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/09/05/automatically-rotate-pictures-from-digital-camera/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 09:30:43 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=80</guid>
		<description><![CDATA[A simple command that I use to automatically rotate pictures from my digital camera is this: jhead -autorot *.JPG<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=80&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A simple command that I use to automatically rotate pictures from my digital camera is this:</p>
<pre>jhead -autorot *.JPG</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=80&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/09/05/automatically-rotate-pictures-from-digital-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>From idea to reality</title>
		<link>http://rickardlindberg.wordpress.com/2009/09/02/from-idea-to-reality/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/09/02/from-idea-to-reality/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 10:49:52 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=28</guid>
		<description><![CDATA[Many times I&#8217;ve had ideas for programs to write: sometimes because I felt the need for a particular application and other times just because the programming task seemed challenging. Many of the ideas I&#8217;ve had never turned into more than incomplete drafts or half-broken programs. When I started The Timeline Project on of the goals [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=28&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many times I&#8217;ve had ideas for programs to write: sometimes because I felt the need for a particular application and other times just because the programming task seemed challenging. Many of the ideas I&#8217;ve had never turned into more than incomplete drafts or half-broken programs. When I started <em>The Timeline Project</em> on of the goals was to actually finish this project and not stop halfway because of lack of motivation. Below I continue to list and discuss what I think are the most important reasons why I succeeded.</p>
<h3>I made it public and real</h3>
<p>Before I wrote a single line of code I registered the project on <a href="http://www.sourceforge.net/">SourceForge</a>. That forced me to write a description for the project: now the whole world, or at least all the SourceForge visitors, would know the purpose of my program. Since I decided to make this a free software project, everyone would also be able to see everything I did. Suddenly it was not just a couple of files sitting on my local harddrive. This was something real that I could tell people to have a look at.</p>
<h3>I had guidance</h3>
<p>I had no previous experience in neither running a free software project nor participating in one. I figured the best way to learn was to just to start a project. Without the guidance from <a href="http://www.producingoss.com/"><em>Producing Open Source Software</em></a> I don&#8217;t think I had been as successful. It was particularly useful for figuring out what documentation to write and what tools to use. (SourceForge also provided many of the tools mentioned in the book.)</p>
<h3>I was not alone</h3>
<p>Right from the beginning I involved another person in this project: my dad. Now everything I did in terms of coding and documenting also <em>had</em> to be comprehensible to someone else. This also made the project feel more real. Another benefit was that we could discuss problems and solutions with each other.</p>
<h3>Other people got interested</h3>
<p>Despite the reasons for success mentioned above my motivation still dropped at one point. Mostly because I felt the application would not be useful for me. That changed one day when an unexpected email reached my inbox: someone was interested in using <em>Timeline</em>. That person made me believe in the idea again and several improvements were made to the program after that.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=28&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/09/02/from-idea-to-reality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing good documentation</title>
		<link>http://rickardlindberg.wordpress.com/2009/08/31/writing-good-documentation/</link>
		<comments>http://rickardlindberg.wordpress.com/2009/08/31/writing-good-documentation/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 08:54:53 +0000</pubDate>
		<dc:creator>rickardlindberg</dc:creator>
				<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://rickardlindberg.wordpress.com/?p=58</guid>
		<description><![CDATA[One subject that interests me is how to write good documentation. Trying to explain to someone else what is perfectly clear in your mind is a challenging task. In The Timeline Project I get to practice writing many types of documentation such as comments in source code, user manual, instructions for volunteers how to participate, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=58&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One subject that interests me is how to write good documentation. Trying to explain to someone else what is perfectly clear in your mind is a challenging task. In <em>The Timeline Project</em> I get to practice writing many types of documentation such as comments in source code, user manual, instructions for volunteers how to participate, and replies to emails on the mailing list.</p>
<p>I am interested in improving my ability to write good documentation and I think one prerequisite is good writing skills. Therefore I was browsing the web for podcasts about writing and I found a website called <em><a href="http://www.idratherbewriting.com">I&#8217;d Rather Be Writing</a></em>. In addition to some interesting podcasts I found this informing article: <em><a href="http://www.idratherbewriting.com/2009/04/28/documentation-usability-a-few-things-i%e2%80%99ve-learned-from-watching-users/">Documentation Usability: A Few Things I’ve Learned from Watching Users</a></em>. The author has some really interesting suggestions how to improve documentation for applications. In particular he claims that the user manual might not be the best type of documentation for a user. I definitely have to read more on his website. Maybe I can implement some of the ideas in <em>Timeline</em>.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">
<h2><a title="Permanent Link: Documentation Usability: A Few Things I’ve Learned from Watching Users" rel="bookmark" href="http://www.idratherbewriting.com/2009/04/28/documentation-usability-a-few-things-i%e2%80%99ve-learned-from-watching-users/">Documentation Usability: A Few Things I’ve Learned from Watching Users</a></h2>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rickardlindberg.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rickardlindberg.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rickardlindberg.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rickardlindberg.wordpress.com&amp;blog=4001238&amp;post=58&amp;subd=rickardlindberg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rickardlindberg.wordpress.com/2009/08/31/writing-good-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d7592ca0c010e05bded933af39ac7b0e?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">rickardlindberg</media:title>
		</media:content>
	</item>
	</channel>
</rss>
