<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>robot campfire &#187; english</title>
	<atom:link href="http://www.planetraven.de/blog/tags/english/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.planetraven.de/blog</link>
	<description>davids weblog</description>
	<lastBuildDate>Sun, 10 Jan 2010 19:46:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/de/</creativeCommons:license>
		<item>
		<title>Using HSV to build a traffic light</title>
		<link>http://www.planetraven.de/blog/2009/09/27/using-hsv-to-build-a-traffic-light/</link>
		<comments>http://www.planetraven.de/blog/2009/09/27/using-hsv-to-build-a-traffic-light/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 21:19:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://www.planetraven.de/blog/?p=86</guid>
		<description><![CDATA[A small tip for anyone working on some sort of data visualization. If you have values that lie between 0.0 and 1.0 (or 0% and 100%, or $some_value and $some_other_value), you can use a simple interpolation in the HSV (or HSB) color space to get a nice &#8220;traffic light&#8221; range of colors from red to [...]]]></description>
			<content:encoded><![CDATA[<p>A small tip for anyone working on some sort of data visualization. If you have values that lie between 0.0 and 1.0 (or 0% and 100%, or <em>$some_value</em> and <em>$some_other_value</em>), you can use a simple interpolation in the HSV (or HSB) color space to get a nice &#8220;traffic light&#8221; range of colors from red to green via yellow in the middle, which is fine for displaying something that is &#8220;OK&#8221; if the values are low and gets &#8220;critical&#8221;  or &#8220;dangerous&#8221; for higher values (or vice versa). Just set the saturation and value (or brightness) parameters to 100% and use your data to vary the hue between 0° (which means red) and 120° (which is green). Since yellow sits right in the middle of that scale at 60° this gives you a smooth transition from red to yellow to green, which may look like this:</p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 210px"><img class="size-full wp-image-92" title="processing output" src="http://www.planetraven.de/blog/wp-content/uploads/output.png" alt="hue scale from 0° to 120°" width="200" height="30" /><p class="wp-caption-text">hue scale from 0° to 120°</p></div>
<p>Now this might be common knowledge, but i just stumbled upon it some time ago and thought it was a useful tidbit that i wanted to share.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.planetraven.de/blog/2009/09/27/using-hsv-to-build-a-traffic-light/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/de/</creativeCommons:license>
	</item>
		<item>
		<title>Quest for a working Android on the FreeRunner</title>
		<link>http://www.planetraven.de/blog/2009/06/22/quest-for-a-working-android-on-the-freerunner/</link>
		<comments>http://www.planetraven.de/blog/2009/06/22/quest-for-a-working-android-on-the-freerunner/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 21:44:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[openmoko]]></category>

		<guid isPermaLink="false">http://www.planetraven.de/blog/?p=56</guid>
		<description><![CDATA[So, i have been trying again to turn my Openmoko FreeRunner into a usable device, despite its uncertain future. One that you can really use to make calls, send/receive SMS, surf the web (over WiFi or GPRS) and do other things you should normally be able to expect from a working smartphone. This is a [...]]]></description>
			<content:encoded><![CDATA[<p>So, i have been trying again to turn my Openmoko <a title="FreeRunner description in the Openmoko wiki" href="http://wiki.openmoko.org/wiki/Neo_FreeRunner">FreeRunner</a> into a usable device, despite <a title="Engadged article about Openmoko company problems" href="http://www.engadget.com/2009/04/06/openmoko-freerunner-canceled-staff-slashed/">its uncertain future</a>. One that you can really use to make calls, send/receive SMS, surf the web (over WiFi or GPRS) and do other things you should normally be able to expect from a working smartphone. This is a little write-up of how far i&#8217;ve gotten in that quest.<span id="more-56"></span></p>
<p>Since i have repeatedly been frustrated by the apparent lack of progress in getting a usable (from the standpoint of someone willing and wanting to do some application level tinkering but not wanting to do any lower level hackery) platform using the Openmokos &#8220;native&#8221; distributions (SHR, Om200x etc.), i turned to <a title="Android in the Openmoko wiki" href="http://wiki.openmoko.org/wiki/Android">Android</a>. This has made quite some steps since i tried one of the first <a title="Koolu homepage" href="http://koolu.com/">Koolu</a> beta versions, but it doesn&#8217;t seem to be totally there yet, either.</p>
<p>I first tried using Koolu <a title="Koolu releases" href="http://freerunner.android.koolu.com/release-files">beta 7</a> and was quite impressed by how many things worked out of the box (WiFi, sending SMS). But, alas, some things also did not work, receiving SMS for example. The phone just didn&#8217;t do anything when it was supposed to have received (according to a delivery report on the sending phone) a message.</p>
<p>I then tried <a title="Michale Trimarchis Android images" href="http://panicking.kicks-ass.org/download/">the images</a> by <a title="Michale Trimarchis blog" href="http://panicking.kicks-ass.org/blog/">Michael Trimarchi</a> (mostly for trying out something based on the newer <a title="Cupcake explanation by Google" href="http://source.android.com/roadmap/cupcake">cupcake</a> development branch of Android), and they are definitely going in the right direction. I can even receive SMS with them. Haven&#8217;t tried using GPRS, yet. Strangely, the freerunner-v14.6-cupcake image worked better for me than the newer freerunner-cupcake-snapshot-v6. The latter gives me a lot of crashing applications (com.android.media right at startup, and seemingly in a loop, com.android.phone after ending a phone call, the settings app when trying to enter the &#8220;Wireless&#8221; settings&#8230;) and i haven&#8217;t managed to get WiFi working on both of them.</p>
<p>All in all there still sadly is no Android-on-FreeRunner image where everything i need &#8220;just works&#8221;(tm). But, seeing all the development happening right now, i am <span style="text-decoration: line-through;">confident</span> hoping that a cupcake based image where all the important stuff works is not too far off.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.planetraven.de/blog/2009/06/22/quest-for-a-working-android-on-the-freerunner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/de/</creativeCommons:license>
	</item>
		<item>
		<title>Using a custom smart pointer with Boost.Python</title>
		<link>http://www.planetraven.de/blog/2009/06/13/using-a-custom-smart-pointer-with-boostpython/</link>
		<comments>http://www.planetraven.de/blog/2009/06/13/using-a-custom-smart-pointer-with-boostpython/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 18:35:25 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.planetraven.de/blog/?p=49</guid>
		<description><![CDATA[I&#8217;m currently working on creating a python wrapper for XCF using Boost.Python. During that project i stumbled upon the problem that i was wrapping some classes that used a custom smart pointer (i.e. not one from the boost library). Boost.Python is quite good at wrapping classes using smart pointers, but it has to know some [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on creating a python wrapper for <a title="XCF" href="http://xcf.sf.net">XCF</a> using <a title="Boost.Python homepage" href="http://boost.org/libs/python/">Boost.Python</a>. During that project i stumbled upon the problem that i was wrapping some classes that used a custom smart pointer (i.e. not one from the boost library). Boost.Python is quite good at wrapping classes using smart pointers, but it has to know some things about the smart pointer used first.<span id="more-49"></span></p>
<p>Most importantly, it has to know how to get the &#8220;raw&#8221; pointer from the smart pointer and how to determine the type of the object that is being pointed to (given the type of the smart pointer). Finding documentation about telling Boost.Python how to work with an unknown type of smart pointer wasn&#8217;t easy (which is why i am blogging this), but fortunately at some point i stumbled upon <a title="How to expose a custom smart pointer?" href="http://www.language-binding.net/pyplusplus/troubleshooting_guide/smart_ptrs/smart_ptrs.html">this</a>. It&#8217;s from the documentation of the Py++-package, but you don&#8217;t have to be using Py++ to use the technique described in there.</p>
<p>You have to keep a lot of things in mind when implementing this (especially when the class your smart pointer is pointing to might also have some derived subclasses, in which case you should <strong>really</strong> take a look at the original example), but in essence it all boils down to <a title="Example from the XCF SVN" href="http://xcf.svn.sourceforge.net/viewvc/xcf/tools/xcf-python/IceHandlePython.hpp?view=markup&amp;revision=1262">this</a>. In that case, IceUtil::Handle&lt;T&gt; is the smart pointer i am working with. This class is coming from <a title="The Internet Communications Engine - ZeroC" href="http://www.zeroc.com/ice.html">Ice</a>, so if you&#8217;re also using that, you might try creating something similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.planetraven.de/blog/2009/06/13/using-a-custom-smart-pointer-with-boostpython/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/de/</creativeCommons:license>
	</item>
	</channel>
</rss>
