<?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/"
	>

<channel>
	<title>Persistent Cloud</title>
	<atom:link href="http://christopher.rasch-olsen.no/feed/" rel="self" type="application/rss+xml" />
	<link>http://christopher.rasch-olsen.no</link>
	<description>Ramblings of a technophile</description>
	<lastBuildDate>Mon, 27 Jun 2011 11:32:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Useful tidbits</title>
		<link>http://christopher.rasch-olsen.no/2011/06/27/useful-tidbits/</link>
		<comments>http://christopher.rasch-olsen.no/2011/06/27/useful-tidbits/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 11:01:38 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Tidbits]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=116</guid>
		<description><![CDATA[<p>During my day to day work I often stumble upon problems I&#8217;ve not encountered before. Usually I find solutions quickly, either by thrawling manual pages (oh &#8216;man&#8217; how I love thee), StackOverflow or Google. When I discover good solutions I think to myself &#8220;must remember to share this with someone&#8221;, and then I forget all [...]]]></description>
			<content:encoded><![CDATA[<p>During my day to day work I often stumble upon problems I&#8217;ve not encountered before. Usually I find solutions quickly, either by thrawling manual pages (oh &#8216;man&#8217; how I love thee), <a title="StackOverflow" href="http://stackoverflow.com">StackOverflow</a> or <a title="Google" href="http://google.com">Google</a>. When I discover good solutions I think to myself &#8220;must remember to share this with someone&#8221;, and then I forget all about it. This post is my attempt at rectifying that.</p>
<p>The things I will present are fairly trivial in themselves, and may very well be available through documentation, but have some aspect that I find worth noting. We&#8217;ll start off easy.</p>
<h1>Cancel CouchDB replication</h1>
<p>Today I needed to cancel one of the replications that were running between two <a title="CouchDB" href="http://couchdb.apache.org/">couchdb</a>-instances. The manual tells you that you can restart the couchdb server, since that clears the list of replication jobs. I wanted to leave the other replications running and just kill the one I <span style="text-decoration: underline;">really</span> needed to die.</p>
<p>If you read the <a title="CouchDB replication documentation" href="http://wiki.apache.org/couchdb/Replication">documentation on replication</a> you will learn how easy it is to do it using curl.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="" style="font-family:monospace;">curl \
-X POST \
-H 'Content-Type: application/json' \
-d '<span class="br0">&#123;</span>&quot;source&quot;:&quot;mydb&quot;,&quot;target&quot;:&quot;http://mytargethost.com:<span style="">5984</span>/mydb/&quot;, &quot;cancel&quot;: true<span class="br0">&#125;</span>' \
http://mysourcehost.com:<span style="">5984</span>/_replicate</pre></td></tr></table></div>

<p>The only problem is that this will not do anything if it is set up to be a continuous replication. To cancel a running continuous replication you have to explicity tell CouchDB that &#8220;yeah, I know what I am doing, I really do want to cancel thins continuous replication&#8221;. Like so;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="" style="font-family:monospace;">curl \
-X POST \
-H 'Content-Type: application/json' \
-d '<span class="br0">&#123;</span>&quot;source&quot;:&quot;mydb&quot;,&quot;target&quot;:&quot;http://mytargethost.com:<span style="">5984</span>/mydb/&quot;, &quot;continuous&quot;:true, &quot;cancel&quot;: true<span class="br0">&#125;</span>' \
http://mysourcehost.com:<span style="">5984</span>/_replicate</pre></td></tr></table></div>

<p>Do you see the difference? I added &#8220;continuous&#8221;:true to the json structure. That&#8217;s really all there is to it!</p>
<p>Stay tuned for more of these. I&#8217;ll try to update on a day to day basis.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2011/06/27/useful-tidbits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lemon cheesecake with physalis and jelly topping</title>
		<link>http://christopher.rasch-olsen.no/2011/04/22/lemon-cheesecake-with-physalis-and-jelly-topping/</link>
		<comments>http://christopher.rasch-olsen.no/2011/04/22/lemon-cheesecake-with-physalis-and-jelly-topping/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 00:25:33 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=108</guid>
		<description><![CDATA[<p>Yesterday I made a very nice cheesecake that I thought I should share with the world. Well, the recipe that is. The cake disappeared as by magic.  </p>
<p>I started with this excellent recipe: Helt Vilt &#8211; Ostekake . It&#8217;s in Norwegian so if you&#8217;re not a native try Google translate.</p>
<p>The first thing I changed [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I made a very nice cheesecake that I thought I should share with the world. Well, the recipe that is. The cake disappeared as by magic. <img src='http://christopher.rasch-olsen.no/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I started with this excellent recipe: <a title="Ostekake @ Helt Vilt" href="http://heltvilt-godmat.blogspot.com/2009/07/ostekake.html">Helt Vilt &#8211; Ostekake</a> . It&#8217;s in Norwegian so if you&#8217;re not a native try <a title="Google Translate" href="http://translate.google.com">Google translate</a>.</p>
<p>The first thing I changed was the order in which I made the layers. I started with the bottom and worked my way up. &#8216;Why?&#8217; you ask?  Because I only have those springform cakepans. The thing with those is that they are 100% unable to hold liquid inside. So if you follow the recipe and pour the jelly in the bottom (to make the top) then you will have some cleaning to do pretty soon.</p>
<p>So start from the bottom if you have a springform. I blended the biscuits  and poured the melted butter in and put it in the fridge. Let it sit there until cool and firm.</p>
<p>Make the cheese filling and pour over. Smooth out with a spatula or other similar tool. I have discovered that when working with semi-solids like this cheese filling you would do much like you do with concrete to make it smooth. Apply gentle strokes and vibrations and the filling (or concrete) will do the rest of the job for you, suddenly transforming into a nice smooth surface. Pop it in the fridge again until firm. I let it sit there for a couple of hours. Remember, you should rather leave it in too long than too short.</p>
<p>When I took it out of the fridge came my second alteration of the recipe. I made 1.5mm thick slices of <a title="Physalis @ Wikipedia" href="http://en.wikipedia.org/wiki/Physalis">Physalis</a> and made a layer that covered the cheese filling. Only one slice thick though. Don&#8217;t bother laying it out in a fancy pattern like I did. You&#8217;ll just (like I did) discover that the darn things float <em>pretty darn well</em>. Oh and one more thing: <strong>do not</strong> apply jelly until the liquid is <strong>maximum at room temperature!</strong></p>
<p>If you do indeed want a fancy pattern then first apply a very thin layer of jelly on top of the cheese filling before you add the physalis slices. This only works if the cheese filling is smooth and level AND the surface on which the cake is resting is level. When I say thin I mean about 1/3 of the thickness of the slices. Wait a couple of minutes and gently place the physalis slices into the jelly however you want. Let it sit in the fridge for a couple of minutes until it&#8217;s become more solid. You can then take it out from the fridge and apply however much jelly you want without the darn things floating up.</p>
<p>Pop the whole thing into the fridge again and let it sit until the jelly is all solid. And again; you should rather wait too long that too short. Cover it with something and let it sit over night for example. Why cover it? That&#8217;s because you do not want the other things you have in your fridge to &#8220;contaminate&#8221; your treat with the wrong scents.</p>
<p>So that&#8217;s it. One delicious cake all done. Sorry for not posting any pictures. It got eaten too quickly. I&#8217;ll try to be quicker the next time around.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2011/04/22/lemon-cheesecake-with-physalis-and-jelly-topping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tip Of The Day: Rescan faces in Picasa 3</title>
		<link>http://christopher.rasch-olsen.no/2010/12/13/tip-of-the-day-rescan-faces-in-picasa-3/</link>
		<comments>http://christopher.rasch-olsen.no/2010/12/13/tip-of-the-day-rescan-faces-in-picasa-3/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 23:32:32 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Picasa]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=101</guid>
		<description><![CDATA[<p>Picasa is a wonderful application, it really is. The feature that lets you scan for face in pictures and tag people is simply put brilliant. It has worked much better than what I expected. However, like everything else, it has some flaws.</p>
<p>When you start the initial scan the application will hog whatever resources your machine [...]]]></description>
			<content:encoded><![CDATA[<p>Picasa is a wonderful application, it really is. The feature that lets you scan for face in pictures and tag people is simply put brilliant. It has worked much better than what I expected. However, like everything else, it has some flaws.</p>
<p>When you start the initial scan the application will hog whatever resources your machine has available (at least on single/low-core machines). This is not a bad thing, and not the problem which I encountered. The problem is actually related to the developers solution to the resource-hogging. If you start messing around in the program while the scan is running, then the program will in fact queue / pause or simply cancel the running job (so you will have a snappy, not laggy interface), never to resume it again. At least this is what I assume from observing the behavior of the application.</p>
<p>The result of this is that everything is seemingly fine, and you have gotten a lot of faces to tag with names. What you do not get any indication of is how many of the pictures were scanned. When you discover that not all of the pictures were scanned it&#8217;s natural to ask the question &#8220;Where is the &#8216;rescan for new faces&#8217;-button?&#8221;. The short answer is; &#8220;There is none!&#8221;. At least not as of this writing.</p>
<p>There is however a solution to the problem. Go to &#8220;Tools&#8221;-&gt;&#8221;Folder Manager&#8221;, highlight the topmost directory that contains pictures / folders of pictures and click the option &#8220;Face detection&#8221; from &#8220;On&#8221; to &#8220;Off&#8221; then back to &#8220;On&#8221; again. When you then click &#8220;Ok&#8221; the application should start scanning again. At this point you should go grab a cold one, write a note to your spouse so he / she does not disturb it and go do something else. It&#8217;ll take it&#8217;s time to complete. Do NOT click &#8220;Ok&#8221; before you have switched the &#8220;Face detection&#8221;-option back to &#8220;On&#8221;. If you press &#8220;Ok&#8221; while it is &#8220;Off&#8221; then Picasa will forget everyone you have already tagged and you&#8217;ll have to tag everyone again.</p>
<p>Oh, and dear Picasa developers: please make it so that Picasa can use more resources while performing these tasks. Here it&#8217;s using only one core, and very little available disc-bandwidth. It&#8217;s got 7 idle cores, 6 GB ram not being used for anything and a disc that&#8217;s screaming to be utilized. You could provide a configuration-parameter / slider that indicates how much of the available &#8216;juice&#8217; it can use: &#8220;Please be gentle&#8230;&#8221; -&gt; &#8220;You think you can take me?&#8221; -&gt; &#8220;USE ME BABY! USE ME!&#8221;</p>
<p>I&#8217;l let you decide on the labels. <img src='http://christopher.rasch-olsen.no/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/12/13/tip-of-the-day-rescan-faces-in-picasa-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting contacts from old phone into a Google account on Android</title>
		<link>http://christopher.rasch-olsen.no/2010/04/25/getting-contacts-from-old-phone-into-a-google-account-on-android/</link>
		<comments>http://christopher.rasch-olsen.no/2010/04/25/getting-contacts-from-old-phone-into-a-google-account-on-android/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 01:49:45 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Gizmos]]></category>
		<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/2010/04/25/getting-contacts-from-old-phone-into-a-google-account-on-android/</guid>
		<description><![CDATA[<p>I recently decided it was about time to replace my old phone with some new and shiny gizmo. The choice fell on the HTC Desire. It is a very slick device with capabilities and a level of freedom that far exceeds other similar devices I have considered.</p>
<p>I set out to have the contacts from my [...]]]></description>
			<content:encoded><![CDATA[<p>I recently decided it was about time to replace my old phone with some new and shiny gizmo. The choice fell on the HTC Desire. It is a very slick device with capabilities and a level of freedom that far exceeds other similar devices I have considered.</p>
<p>I set out to have the contacts from my old phone transferred to the new one and placed in my Google Contacts account so I would have access to them from other devices and on my desktop computers.</p>
<p>In the new phone I had configured my Google account and things seemed to work. Calendar synced along with a few test-contacts I had created online. I then started the work on getting the old contacts imported.</p>
<p>That part was also fairly easy. Activated Bluetooth on both devices and hit the send button. Contacts appeared in the Desire and all seemed well. At least until I discovered that the new contacts were not synchronized to Google.</p>
<p>After some poking around in the menus I discovered that you get to choose where to store a contact when creating one manually. The options were &#8220;Phone&#8221;, &#8220;SIM&#8221; and &#8220;Google Applications&#8221;. When choosing the latter, contacts appeared in the online contacts application.</p>
<p>I checked the imported contacts and found that all the ones I looked at were marked with &#8220;Phone&#8221;. So, how do you get them moved into the Google account? The interface provided no apparent simple way of doing what I wanted. Going through each and every one and changing where it was stored was simply out of the question.</p>
<p>My solution? Go into the contacts view and choose the &#8220;Import / Export&#8221; option. There I chose to export to the memorycard. I then deleted all contacts. Again into the &#8220;Import / Export&#8221; menu, but that time around I chose to import from memorycard. The program asked me where I wanted to save the contacts and I picked &#8220;Google Applications&#8221;.</p>
<p>When it was done importing the contacts were magically synchronized to my online Google account. Mission accomplished.</p>
<p>Also, this post was written on my new Desire. It does actually work very well. Though a nice old keyboard with solid tactile feedback beats a touchscreen hands down any day. That being said, HTC have done a great job with this phone.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/04/25/getting-contacts-from-old-phone-into-a-google-account-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kontact &amp; Google Calendar</title>
		<link>http://christopher.rasch-olsen.no/2010/04/21/kontact-google-calendar/</link>
		<comments>http://christopher.rasch-olsen.no/2010/04/21/kontact-google-calendar/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 10:51:23 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[kontact]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=96</guid>
		<description><![CDATA[<p>Have you ever been annoyed at the fact that there has been no straightforward and easy way of having a two-way synchronization between Kontact and the perhaps biggest online calendaring-service Google Calendar? I certainly have. The good news is that the wait is now over. Kontact now talks to Google Calendar.</p>
<p>Historically you would have to [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever been annoyed at the fact that there has been no straightforward and easy way of having a two-way synchronization between <a title="Kontact @ Kde" href="http://www.kontact.org" target="_blank">Kontact</a> and the perhaps biggest online calendaring-service <a title="Calendar @ Google" href="http://google.com/calendar" target="_blank">Google Calendar</a>? I certainly have. The good news is that the wait is now over. Kontact now talks to Google Calendar.</p>
<p>Historically you would have to go through the tedious steps of setting up <a title="GCalDaemon" href="http://gcaldaemon.sourceforge.net" target="_blank">GCalDaemon</a> to read / write to a local iCal-file and have Kontact read / write to that again. I am not going to go into detail on the issues with the above approach. What I feel that I must say is even though it was cumbersome, error prone and generally not how I like things; it did work. Most of the time.</p>
<p>What we have now is a brand new KDE ( 4.3.2 here on my desktop ) which sport some pretty decent advances. One of these is <a title="Akonadi @ Wikipedia" href="http://en.wikipedia.org/wiki/Akonadi" target="_blank">Akonadi</a>. Akonadi seeks to facilitate easy administration and utilization of various data sources for personal information, such as mail, contacts, calendaring, etc.</p>
<p>To get Google Calendar working in KDE you now need to install the &#8220;googledata&#8221; Akonadi resource. In Debian this is done by issuing the following command:</p>
<pre>sudo aptitude install akonadi-kde-resource-googledata</pre>
<p>After that you open Kontact and do the following:</p>
<ul>
<li>Click [Calendar] in the sidebar (usually in the left hand side of the window)</li>
<li>In the resources view (field in bottom left corner) right-click and select &#8220;Add new resource&#8221;</li>
<li>Choose &#8216;Akonadi resource&#8217; in the dialog that pops up</li>
<li>A new dialog will pop up. Here you should click &#8220;Edit calendar resources&#8221; (translations may vary)</li>
<li>Click &#8216;Add&#8217; in the new dialog. Choose &#8216;Akonadi Google Calendar Resource&#8217;</li>
<li>Enter username and password when prompted</li>
<li>Press the &#8216;Close&#8217;-button</li>
<li>A new resource with a name similar to &#8216;akonadi_gcal_resource_X&#8217; should now be visible</li>
<li>Select it and press &#8216;Synchronize folder&#8217; to do an initial sync</li>
<li>Press the &#8216;Ok&#8217;-button to return to your calendar view</li>
</ul>
<p>The items you have in your Google Calendar should now be present in Kontact.</p>
<p>I hope someone will find this helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/04/21/kontact-google-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress and Twitter</title>
		<link>http://christopher.rasch-olsen.no/2010/03/25/wordpress-and-twitter/</link>
		<comments>http://christopher.rasch-olsen.no/2010/03/25/wordpress-and-twitter/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 08:16:24 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=92</guid>
		<description><![CDATA[<p>At this point my twitter-account and my blog should be nicely tied together using a couple of very nifty plugins. I chose to use separate plugins for displaying latest tweets in the WordPress sidebar and posting on Twitter when I post something new here on the blog. I guess this will be a test of [...]]]></description>
			<content:encoded><![CDATA[<p>At this point my twitter-account and my blog should be nicely tied together using a couple of very nifty plugins. I chose to use separate plugins for displaying latest tweets in the WordPress sidebar and posting on Twitter when I post something new here on the blog. I guess this will be a test of wether or not it is really working.</p>
<p>Check out the WordPress plugin directory for a lot of pretty decent Twitter-plugins. The two I landed on (after some trial and error) was the following:</p>
<ul>
<li><a title="Twitter Widget Pro" href="http://xavisys.com/wordpress-plugins/wordpress-twitter-widget/" target="_blank">Twitter Widget Pro</a> (for displaying posts in the sidebar)</li>
<li><a title="WP To Twitter" href="http://www.joedolson.com/articles/wp-to-twitter/" target="_blank">WP To Twitter</a> (for sending notifications on new posts to Twitter)</li>
</ul>
<p>Anyone else have something interesting to share about Twitter-plugins for WordPress?</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/03/25/wordpress-and-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kudos: Petter Haukeland</title>
		<link>http://christopher.rasch-olsen.no/2010/03/18/kudos-petter-haukeland/</link>
		<comments>http://christopher.rasch-olsen.no/2010/03/18/kudos-petter-haukeland/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 10:50:22 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[kudos]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=86</guid>
		<description><![CDATA[<p>So for a while I&#8217;ve been meaning to write a little something about people or things I have taken a liking to or been satisfied with from a consumer perspective. Up today is Petter Haukeland a naprapat and personal trainer at SATS Nesttun.</p>
<p>I contacted Petter because I wanted to gain weight. It may seem silly [...]]]></description>
			<content:encoded><![CDATA[<p>So for a while I&#8217;ve been meaning to write a little something about people or things I have taken a liking to or been satisfied with from a consumer perspective. Up today is <a title="Petter Haukeland" href="http://www.totalkropp.no" target="_blank">Petter Haukeland</a> a <a title="Naprapath at Wikipedia.org" href="http://en.wikipedia.org/wiki/Naprapath" target="_blank">naprapat</a> and <a title="Petter Haukeland at SATS" href="http://www.sats.com/no/Start/Personlig-Tranare/Petter-Haukeland/" target="_blank">personal trainer</a> at SATS Nesttun.</p>
<p>I contacted Petter because I wanted to gain weight. It may seem silly to a lot of you, but I do fit the stereotypical geek when it comes to being a bit on the scrawny side. So my goal was to increase mass, but do that in such a way that I do not get any injuries in muscles or joints and also do it in a manner where we focus on keeping the workout healthy.</p>
<p>Petter has a high level of attention to detail when it comes to how exercises are performed and perceives and corrects where it is needed. His knowledge about dietary things have also been very valuable. He has helped me to find the things to eat that will benefit me and my health the most when working out.</p>
<p>So, if you need to loose weight, gain weight, get rid of injuries or just need some advice on health; do contact him. It is well worth the expense. Thumbs up Petter!</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/03/18/kudos-petter-haukeland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantis and Subversion-integration</title>
		<link>http://christopher.rasch-olsen.no/2010/03/17/mantis-and-subversion-integration/</link>
		<comments>http://christopher.rasch-olsen.no/2010/03/17/mantis-and-subversion-integration/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 10:58:06 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[kudos]]></category>
		<category><![CDATA[mantis]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=80</guid>
		<description><![CDATA[<p>The last couple of years I&#8217;ve been using Mantis for issue-tracking and have been really pleased with it. It&#8217;s simple, does what it&#8217;s supposed to do and is simple enough that my customers can be given access and gain some feeling with what&#8217;s happening in the projects I&#8217;m running for them.</p>
<p>I have also been using [...]]]></description>
			<content:encoded><![CDATA[<p>The last couple of years I&#8217;ve been using <a title="Mantis Bug Tracker" href="http://www.mantisbt.org" target="_blank">Mantis</a> for issue-tracking and have been really pleased with it. It&#8217;s simple, does what it&#8217;s supposed to do and is simple enough that my customers can be given access and gain some feeling with what&#8217;s happening in the projects I&#8217;m running for them.</p>
<p>I have also been using <a title="Subversion" href="http://subversion.apache.org/" target="_blank">Subversion</a> for version control. I&#8217;m happy with that as well (was a nice step up from CVS). A very non-steep learning curve makes it a very nice tool even for people who have never user VC systems before. And yes, some of you will probably comment about how I should be using Git instead. To you I have this to say; git have it&#8217;s uses and is well suited for some things. For me and the way my business is structured though, Subversion is a better tool. But, that was not what this post was supposed to be about.</p>
<p>Ever since I started using Mantis I wanted to integrate it with Subversion so that when I write &#8220;Fixed issue #1234. A good description of whatever bug I fixed / feature I implemented.&#8221; then the corresponding issue in Mantis will be marked as &#8216;fixed&#8217; automatically. I did that first in the 1.1.x-series of Mantis-releases and it worked well. By that I mean that once you had hacked on Mantis enough it would actually do what you wanted and all was good.</p>
<p>With the release of 1.2 the team behind Mantis gave us a plugin-system and we saw the emergence of a multitude of plugins for email-handling, extending various forms in Mantis, providing links to wiki-engines and integration with VC systems. In the latter category you find the <a title="Mantis Source Integration Plugin" href="http://git.mantisforge.org/w/source-integration.git" target="_blank">Mantis Source Integration Plugin</a> by John Reese. It&#8217;s a nice piece of work that makes it a LOT easier to get a link between Mantis and various VC systems.</p>
<p>If you want to get this set up then you should have a look at <a title="Guide to setting up Mantis with the Source Integration plugin by John Reese" href="http://www.unitz.com/u-notez/2009/10/subversion-svn-integration-mantisbt/" target="_blank">this post</a> by Chris Dornfeld in addition to <a title="Integrating Mantis with Subversion, by John Reese" href="http://leetcode.net/blog/2009/01/integrating-git-svn-with-mantisbt/" target="_blank">this post</a> by John Reese. Just be mindful that the screenshots there are somewhat outdate. The plugin-page and configration looks a little different today, but it&#8217;s nothing you won&#8217;t figure out if you just use your head a little.</p>
<p>So, thanks to Chris and John for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/03/17/mantis-and-subversion-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Been a while&#8230;</title>
		<link>http://christopher.rasch-olsen.no/2010/02/01/been-a-while/</link>
		<comments>http://christopher.rasch-olsen.no/2010/02/01/been-a-while/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 09:31:50 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Mindfarts]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=77</guid>
		<description><![CDATA[<p>To those of you who keep visiting and commenting on my posts; thank you. I really appreciate the feedback. I figure it&#8217;s about time I do my part now, and that is responding to what you&#8217;ve told me.</p>
<p>I have gotten a lot of feedback on my post about getting the MySQL-driver built for Qt on [...]]]></description>
			<content:encoded><![CDATA[<p>To those of you who keep visiting and commenting on my posts; thank you. I really appreciate the feedback. I figure it&#8217;s about time I do my part now, and that is responding to what you&#8217;ve told me.</p>
<p>I have gotten a lot of feedback on my <a href="http://christopher.rasch-olsen.no/2009/04/14/qt-45-and-mysql-plugin-with-mingw-on-windows-xp/">post</a> about getting the MySQL-driver built for Qt on Windows (using MinGW). For some reason people are having difficulties getting the procedure I used to work, even though it has worked for me on several occasions.</p>
<p>This post is just to say that I&#8217;m about to start reworking the original article and see what it is I do (and have neglected to write down) that makes it work for me and not some people.</p>
<p>On a similar note; There will probably be a great deal more technical posts here now that things have calmed down a bit in my private life and I have time to actually sit down and write here.</p>
<p>Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2010/02/01/been-a-while/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt 4.5 and MySQL-plugin with Mingw on Windows XP</title>
		<link>http://christopher.rasch-olsen.no/2009/04/14/qt-45-and-mysql-plugin-with-mingw-on-windows-xp/</link>
		<comments>http://christopher.rasch-olsen.no/2009/04/14/qt-45-and-mysql-plugin-with-mingw-on-windows-xp/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 21:20:58 +0000</pubDate>
		<dc:creator>christopher</dc:creator>
				<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://christopher.rasch-olsen.no/?p=44</guid>
		<description><![CDATA[<p>This is meant to be a quick howto / tutorial on how to setup a build-enviroment for C++ / Qt with Qt Creator ( Trolltech / Nokias new Qt IDE) where you use Mingw to compile your applications and have a MySQL-plugin available.</p>
<p></p>
Getting the required files
<p>You will be needing three files to get started.</p>
<p>First get [...]]]></description>
			<content:encoded><![CDATA[<p>This is meant to be a quick howto / tutorial on how to setup a build-enviroment for C++ / Qt with Qt Creator ( Trolltech / Nokias new Qt IDE) where you use Mingw to compile your applications and have a MySQL-plugin available.</p>
<p><span id="more-44"></span></p>
<h2>Getting the required files</h2>
<p>You will be needing three files to get started.</p>
<p>First get the latest GA-release of MySQL. Go to their <a href="http://dev.mysql.com/downloads/mysql/">download-section</a> and find the &#8220;Windows MSI Installer&#8221; for your architecture (x86 or x64). Save the file to your desktop.</p>
<p>Then go to Trolltech / Nokias <a href="http://www.qtsoftware.com/downloads/sdk-windows-cpp">download-section</a> to get the LGPL&#8217;ed Qt SDK. Save the file to your desktop.</p>
<p>Finally go to the Mingw <a href="https://sourceforge.net/project/showfiles.php?group_id=2435">download-section</a> to get the Mingw Utilities. I downloaded version 0.3 (latest version as of this writing). Save the file mingw-utils-0.3.tar.gz to your desktop.</p>
<p>In addition to the three files mentioned above you might need <a href="http://www.rarlab.com/rar/wrar380.exe">WinRAR</a> or a similar tool to unpack tar.gz-files.</p>
<h2>Installing MySQL</h2>
<p>I always start by installing MySQL. This is not a requirement and the order in which you install MySQL and Qt does not matter.</p>
<p>Start the MySQL-installer you have on your desktop. Choose the advanced install options. I usually remove the MySQL server instance from the install as I have several external database-servers I do tests against. No need to clutter the dev-box if you have it available other places.</p>
<p>What&#8217;s important here is that you choose to install &#8220;Development Components&#8221; and all sub-features. These are the ones that&#8217;ll enable Qt to know how to reach a given MySQL database.</p>
<p>Another important step here is to install directly to c:\mysql, not c:\Program Files\Mysql\MySQL Server\whatnot. Spaces in pathnames confuse certain of the items in the toolchain. If you do install somewhere with spaces in the path then you have to remember to always use the old style-pathnames: c:\Progra~1\etc .</p>
<p>Proceed with the install, and after completion verify that you have libmysql.dll under c:\mysql\bin, and that there is a directory c:\mysql\include with header-files (.h) in it.</p>
<h2>Installing Qt SDK</h2>
<p>Start the Qt SDK installer and choose to install it in c:\Qt\2009.01 or whatever path it propose, as long as it is a path without spaces in it. Choose to install all the components, including Mingw.</p>
<h2>Installing Mingw Utilities</h2>
<p>The Mingw Utilities is simply a collection of executables, plus a couple of dlls. Open the file you downloaded earlier with a suitable program like WinRAR and copy the _contents_ of the bin-directory into C:\Qt\2009.01\mingw\bin.</p>
<h2>Fixing (?) QMake</h2>
<p>It might just be me having this problem, but I had to rebuild QMake even before configure would run and not crash spewing something about not finding stuff in &#8216;c:\Progra~1\Trolltech..&#8217;. Anyway, it&#8217;s not exactly rocketscience. Locate the &#8216;Qt Command Prompt&#8217; and start that. It will upon execution add a couple of locations to PATH so that you&#8217;ll have the tools you need easily available. From there you do the following.<br />
<code>C:\Qt\2009.01> cd qt\qmake<br />
C:\Qt\2009.01\qt\qmake> mingw32-make clean<br />
C:\Qt\2009.01\qt\qmake> mingw32-make</code><br />
After that QMake should start looking for mkspecs and other candy in the appropriate locations.</p>
<h2>Preparing Qt for building</h2>
<p>The next thing you want to do is run configure with a handful of arguments. For the sake of simplicity I&#8217;ll just include the arguments you need to have Qt build with the MySQL-plugin.<br />
Again, in the Qt Command Prompt:<br />
<code>C:\Qt\2009.01\qt> configure.exe -debug-and-release -plugin-sql-mysql</code><br />
The above will create Makefiles and things for all the sub-projects in the Qt directory-tree. This might take a little while so you might want to have some knitting-needles or a book at hand.</p>
<p>See &#8216;configure.exe -help&#8217; for more options.</p>
<h2>Configuring the MySQL-plugin</h2>
<p>The <a href="http://doc.trolltech.com/latest">Qt Reference Documentation</a> is one of the best pieces of documentation I&#8217;ve ever seen. It&#8217;s full of working examples of how to use the API Trolltech / Nokia provide and generally have a very high level of quality.</p>
<p>However when it comes to how to build Qt with certain plugins it can be a bit lacking. The documentation <a href="http://doc.trolltech.com/latest/sql-driver.html#qmysql">here</a> states that you do the following to build the MySQL-plugin on Windows:<br />
<code>cd %QTDIR%\src\plugins\sqldrivers\mysql<br />
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server\lib\opt\libmysql.lib" mysql.pro<br />
nmake</code><br />
That&#8217;s great, _if you use nmake_. Alot of us rely on Mingw to build our applications on Windows, and for us the above simply will not work. That is due to differences in object and lib-format between MSVC  (which the mysql-dll&#8217;s are built with) and the GNU-toolchain. To solve this you have to do some magic on the dll and produce something that the GNU-toolchain can work with.</p>
<p>Proceed by doing this in the &#8220;Qt Command Prompt&#8221;:<br />
<code>C:\Qt\2009.01\qt> cd src\plugins\sqldrivers\mysql<br />
C:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql> set MYSQL_PATH=c:mysql<br />
C:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql> reimp -d %MYSQL_PATH%\lib\opt\libmysql.lib<br />
C:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql> dlltool -k --input-def LIBMYSQL.def --dllname libmysql.dll --output-lib libmysql.a<br />
C:\Qt\2009.01\qt\src\plugins\sqldrivers\mysql> qmake "INCLUDEPATH+=%MYSQL_PATH%include" "LIBS+=-L. -lmysql" mysql.pro</code></p>
<h2>Building Qt</h2>
<p>When all of the above has been done all you have to do is start the Qt build process. Again in the &#8220;Qt Command Prompt&#8221;:<br />
<code>C:\Qt\2009.01\qt&gt; mingw32-make sub-src</code><br />
That&#8217;s it! You should now have qmysql*.dll in pluginssqldrivers. To use it just make sure that you have the path where you find libmysql.dll (usually C:\mysql\bin) as a part of the environment variable PATH.</p>
<p>Questions and comments are as always welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://christopher.rasch-olsen.no/2009/04/14/qt-45-and-mysql-plugin-with-mingw-on-windows-xp/feed/</wfw:commentRss>
		<slash:comments>65</slash:comments>
		</item>
	</channel>
</rss>

