<?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>nAnL.de - hacken, kracken, kacken</title>
	<atom:link href="http://nanl.de/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://nanl.de/blog</link>
	<description>"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird beides verlieren." - Benjamin Franklin</description>
	<lastBuildDate>Thu, 02 Sep 2010 07:18:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>successfully arrived on Bali</title>
		<link>http://nanl.de/blog/2010/09/successfully-arrived-on-bali/</link>
		<comments>http://nanl.de/blog/2010/09/successfully-arrived-on-bali/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 04:05:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[My life]]></category>
		<category><![CDATA[Trips]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=409</guid>
		<description><![CDATA[I successfully arrived in Bali yesterday in the evening. Flight was (as always) not quite enojoyable (Amsterdam -&#62; Singapore more than 12 hours) &#8211; however it was bearable. I was surprised actually by the service offered by KLM and Singapore Airlines in a positive way (food was surprisingly great: both offered fish &#8211; first time [...]]]></description>
			<content:encoded><![CDATA[<p>I successfully arrived in Bali yesterday in the evening. Flight was (as always) not quite enojoyable (Amsterdam -&gt; Singapore more than 12 hours) &#8211; however it was bearable.<br />
I was surprised actually by the service offered by KLM and Singapore Airlines in a positive way (food was surprisingly great: both offered fish &#8211; first time I got fish offered on an airplane as regular meal within economy class; Singapore Airlines additionally had real metal cutlery and a big portion of awesome ice-cream afterwards, for a flight of just two hours).</p>
<p>Met a German couple on the plane going to do professional diving somewhere in the south of Bali for three weeks. They offered me to visit them there and taking a deep look into the water with professional diving equipment. From what they told it has to be really incredible and if any way possible, I&#8217;m going to take that offer whenever I&#8217;ll be in this area.</p>
<p>On the final flight from Singapore to Bali I met an English guy, who is living on Bali with his Balinese wife and daugther for quite some time now and offered me to stay with them in their place for a couple of days which offer I thankfully took, as I had no clue anyway what to do after dropping out of the airplane (I in case of doubt I would have aimed a hostel near the airport mentioned in my guide).<br />
These three people (actually four, there is an attendant living with them who is treated as part of the family) are really lovely, doing everything to make my stay enjoyable &#8211; well, I got in touch with the guy just two hours ago on the plane!</p>
<p>Their place &#8211; they call it &#8220;simple&#8221; &#8211; is wonderful; the whole kind-of 2nd floor is mine, within an own (bed)room, bathroom and an area with chairs and table which is opened to the inside of the whole area which in fact is a little garden &#8211; if I want to just &#8220;relax&#8221; they said&#8230;</p>
<p>Just take a look by yourself:</p>

<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1170-2/' title='DSCF1170'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF11701-150x150.jpg" class="attachment-thumbnail" alt="DSCF1170" title="DSCF1170" /></a>
<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1142/' title='DSCF1142'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF1142-150x150.jpg" class="attachment-thumbnail" alt="DSCF1142" title="DSCF1142" /></a>
<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1146/' title='DSCF1146'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF1146-150x150.jpg" class="attachment-thumbnail" alt="DSCF1146" title="DSCF1146" /></a>
<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1148/' title='DSCF1148'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF1148-150x150.jpg" class="attachment-thumbnail" alt="DSCF1148" title="DSCF1148" /></a>
<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1151/' title='DSCF1151'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF1151-150x150.jpg" class="attachment-thumbnail" alt="DSCF1151" title="DSCF1151" /></a>
<a href='http://nanl.de/blog/2010/09/successfully-arrived-on-bali/dscf1152/' title='DSCF1152'><img width="150" height="150" src="http://nanl.de/blog/wp-content/DSCF1152-150x150.jpg" class="attachment-thumbnail" alt="DSCF1152" title="DSCF1152" /></a>

<p>When writing this text it&#8217;s about 4 &#8216;o clock local time &#8211; bloody jetlag&#8230; _right now_ I just did see Bali at night (arrived at 9 &#8216;o clock); I&#8217;m really curious about how this all looks by day.</p>
<p>I took a walk in the area nearby at about 11PM and have to admit &#8211; I don&#8217;t really feel comfortable just walking around alone&#8230; Overall people offering you every kind of services in a very aggressive way, trying to rip off tourists.<br />
However walking around in this area, tired and a little bit agitated because of the long flight, just wanna have everybody shut-up, might not have been the appropriate preconditions facing the situation in an open-minded way.</p>
<p><strong>UPDATE: </strong>That was really just the first impression&#8230; the people are nice and kind, seriously. Yes, they want to sell their stuff quite often and quite everywhere, however you get used to it&#8230; just saying no, starting ignoring them or taking with them about all the world and his wife or whatever elese  <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So much for now &#8211; as there are lot of things I&#8217;d like to see/visit very close by the place I&#8217;m currently staying, I think I&#8217;ll keep staying here for a couple of days &#8211; trying to figure out where to go and what to do next.</p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2010/09/successfully-arrived-on-bali/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>trip trip &#8211; hurra!</title>
		<link>http://nanl.de/blog/2010/08/trip-trip-hurra/</link>
		<comments>http://nanl.de/blog/2010/08/trip-trip-hurra/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 00:31:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Trips]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[qi-hardware]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=376</guid>
		<description><![CDATA[Long time no news&#8230; some things happened which weren&#8217;t worth a particular post (or I was just too lazy), so I&#8217;ll try to summarize of a few things which happen(ed): == tech stuff OpenWrt is still my focus &#8211; the qt4 package now got libX11 support (besides DirectFB / linuxfb, both accessed by the QWS-part) [...]]]></description>
			<content:encoded><![CDATA[<p>Long time no news&#8230;</p>
<p>some things happened which weren&#8217;t worth a particular post (or I was just too lazy), so I&#8217;ll try to summarize of a few things which happen(ed):</p>
<p>== tech stuff</p>
<p>OpenWrt is still my focus &#8211; the qt4 package now got libX11 support (besides DirectFB / linuxfb, both accessed by the <a href="http://qt.nokia.com/products/platform/qt-for-embedded-linux#compact-efficient-windowing-system" target="_blank">QWS-part</a>) &#8211; thanks a lot to Michael Büsch at this point!</p>
<p>I&#8217;m also very interested in the new features of qt4.7 &#8211; especially the <a href="http://labs.trolltech.com/page/Projects/Graphics/Kinetic/DeclarativeUI" target="_blank">declarative UI</a> part of qt4.7 called <a href="http://doc.qt.nokia.com/4.7-snapshot/qdeclarativeintroduction.html">QML</a> &#8211; an approach of designing UIs in a declarative way, means, from the UI&#8217;s point of view (more in the mentioned links above).</p>
<p>I&#8217;m curious about how/whether it can/will be used/accepted by &#8220;native&#8221; designers to write fully functional GUI applications.</p>
<p>It&#8217;s approach is looking quite promising to me &#8211; the language style as well as the implementation &#8211; really curious about how it&#8217;ll do on embedded devices without graphics acceleration. After some talks to qt developers GL support is not required; a number of animations, effects and transitions were optimized for software processing and should be even smoother than rendered via GL.</p>
<p>First usecase is going to be a picture frame, which has the same SoC built in (<a href="http://www.ingenic.cn/eng/productServ/AppPro/JZ4740/pfCustomPage.aspx" target="_blank">Ingenic JZ4740</a>) as the NanoNote and therewith is pretty well supported.</p>
<p>The picture-frame is an <a href="http://www.amazon.com/Sungale-ID800WT-Cyberus-8-Inch-Digital/dp/B002F9N7W2" target="_blank">ID800WT</a> manufactured by Sungale.</p>
<p>Before somebody is going to think, whether I want to promote/support/recommend this brand/product:</p>
<p><strong>From the board </strong><strong>layout&#8217;s point of view it is the worst product sold in Germany I&#8217;ve ever seen! And it&#8217;s too expensive! And the company violates the GPL!<br />
</strong></p>
<p>Take a look at the board by yourself:</p>
<div id="attachment_391" class="wp-caption alignnone" style="width: 310px"><a href="http://nanl.de/blog/wp-content/sungale_pictureframe_ID800WT_board_2008-03__cut.jpg"><img class="size-medium wp-image-391" title="Sungale pictureframe ID800WT board" src="http://nanl.de/blog/wp-content/sungale_pictureframe_ID800WT_board_2008-03__cut-300x181.jpg" alt="Sungale pictureframe ID800WT board" width="300" height="181" /></a><p class="wp-caption-text">Sungale pictureframe ID800WT board</p></div>
<p>The USB Wifi-stick got hot-glued onto the board, it seems they even   unsoldered the USB-socket manually (because it looks really charred all   around) and connected it with some random wires to a SMD-chip which in   fact is an USB-hub. Around there&#8217;s hot-glue all around, partially   charred, partially way too much. This is really the worst in Germany   sold product ever!</p>
<p>However it serves the purpose &#8211; has supported wifi (atheros), an 800&#215;600-display, a touchscreen, USB-host, etc.</p>
<p>After my holidays I&#8217;ll try to evaluate and play around with qt4.7-features on that device on top of OpenWrt.</p>
<p>== trips</p>
<p>After almost one week spent in Croatia, Split, participating at the &#8220;nothing will happen&#8221; conference &#8211; which was really amazing and organized by very nice people &#8211; I&#8217;m going to travel to Bali for one month, leaving in two days.</p>
<p>Actually I wanted to go to Burma (Myanmar), however I mixed them up and  booked my flight to Bali, Indonesia&#8230; anyway &#8211; more beach and sea this  time&#8230;</p>
<p>This is going to be my third trip to Asia and I&#8217;m really looking forward to it &#8211; this time for holiday, backpacking without any fixed plans.</p>
<p>Actually I also didn&#8217;t want to take a computer with me &#8211; still I bought an EeePC 1015. Resolution is disappointing, however price, weight, battery life (about 8 fucking hours!) and site serve the purpose of just having a terminal perfectly.</p>
<p>See you there <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><del datetime="2010-08-27T22:20:58+00:00"></del></p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2010/08/trip-trip-hurra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qt is working on OpenWrt</title>
		<link>http://nanl.de/blog/2010/02/qt-is-working-on-openwrt/</link>
		<comments>http://nanl.de/blog/2010/02/qt-is-working-on-openwrt/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 00:14:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=361</guid>
		<description><![CDATA[Okay, now some &#8211; really little &#8211; text I promised&#8230; As you can I see Qt is running inside OpenWrt on the Ben NanoNote of qi-hardware. The device has only 32MB of RAM so this &#8211; especially this video I made (qt_openwrt_nanonote.ogm) with it&#8217;s coverflow-like 3d and mirroring-effects &#8211; shows the great potential of even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nanl.de/blog/wp-content/qt_openwrt_nanonote.jpg"><img class="alignnone size-full wp-image-362" title="qt_openwrt_nanonote" src="http://nanl.de/blog/wp-content/qt_openwrt_nanonote.jpg" alt="qt_openwrt_nanonote" width="484" height="503" /></a></p>
<p>Okay, now some &#8211; really little &#8211; text I promised&#8230;</p>
<p>As you can I see Qt is running inside OpenWrt on the <a href="http://sharism.cc/products/ben-nanonote/">Ben NanoNote</a> of <a href="http://www.qi-hardware.com">qi-hardware</a>. The device has only 32MB of RAM so this &#8211; especially this video I made (<a title="qt_openwrt_nanonote.ogm" href="http://nanl.de/blog/wp-content/qt_openwrt_nanonote.ogm">qt_openwrt_nanonote.ogm</a>) with it&#8217;s coverflow-like 3d and mirroring-effects &#8211; shows the great potential of even such embedded hardware.</p>
<p>The Qt packages are not yet committed, I&#8217;ll do some cleanups and testing before.</p>
<p>However it&#8217;s almost ready to get its way into the OpenWrt packages repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2010/02/qt-is-working-on-openwrt/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>QT/KDE on OpenWrt</title>
		<link>http://nanl.de/blog/2010/02/qtkde-on-openwrt/</link>
		<comments>http://nanl.de/blog/2010/02/qtkde-on-openwrt/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 21:28:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[qi-hardware]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=345</guid>
		<description><![CDATA[As you may know OpenWrt&#8217;s collection of ported packages is continuesly growing. Many graphical stuff gets ported, as well as graphical desktops and toolkits (lxde, xfce, gnome based on GTK2 &#8211; e17 based on the enlightenment foundation libraries &#8211; etc.). However there was no approach yet to port the last missing Desktop &#8220;KDE&#8221; and underlying [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know OpenWrt&#8217;s collection of ported packages is continuesly growing.</p>
<p>Many graphical stuff gets ported, as well as graphical desktops and toolkits (lxde, xfce, gnome based on GTK2 &#8211; e17 based on the enlightenment foundation libraries &#8211; etc.).</p>
<p>However there was no approach yet to port the last missing Desktop &#8220;KDE&#8221; and underlying Toolkit &#8220;QT&#8221;.</p>
<p>That&#8217;s why I went to &#8220;Tokamak 4&#8243; this weekend, a meeting organized and founded by the KDE foundation, intended to communicate and hack together related to several KDE software projects.</p>
<p>We were about 25 people from all over the world and I really enjoyed the stay and nice, friendly and mixed party &#8211; surprisingly I was the only one not using KDE (however not for a special reason &#8211; just got used to my current environment) <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>They showed lot&#8217;s of interest in the UCI-System (Unified Configuration Interface) OpenWrt is using.<br />
It&#8217;s a simple, human-readable, easy-to-parse configuration file format and library OpenWrt uses for services to make it easy writing Administration Interfaces for them (e.g. the webinterface &#8220;LuCI&#8221;).<br />
We were spinning around about KDE Plasma applets which will list available OpenWrt-devices ready to get administrated right through native applications.</p>
<p>Key deal for me however was to get in touch with people who know the QT/KDE architecture very well, for sure promoting a bit OpenWrt, qi-hardware and it&#8217;s concept of open hardware and why I think having QT/KDE support within OpenWrt is opening lot&#8217;s of opportunities for both projects.</p>
<p>Since QT is able to use DirectFB (a very powerful but light abstraction for the linux framebuffer) &#8211; and therefore does not require a X11 system necessarily &#8211; it would be also great for limited hardware such as the Ben NanoNote (32MB of RAM) where I got GTK2-based apps running on top of DirectFB quite some time ago.</p>
<p>I expected to get basic support for QT within OpenWrt done this weekend, however I underestimated the size and complexity of QT &#8211; never touched QT-code before.<br />
I realized QT is not just a toolkit as GTK2 is, but a whole framework which tries to abstract as much as possible from the underlying system. It features own backends for multimedia, sound, graphics, even networking &#8211; to achieve a stable API and platform compatibility without the need of code modifications, no matter which backends or systems are used below.</p>
<p>In which way the typical issues of such a abstraction-concept &#8211; such as getting bloated, having performance issues, being feature-limited as you&#8217;re usually just able to support the least common denominator of all supported backends, etc. &#8211; I&#8217;ve no idea yet &#8211; maybe they found a way, will find that out sooner or later.</p>
<p>They also use &#8220;qmake&#8221; as build-system which is structured quite different than e.g. GNU make, so this got another temporary road blocker as I used qmake never before and had to dig in first.</p>
<p>Back to the port of QT to OpenWrt: I&#8217;m having promise to see the first basic QT based application running on a OpenWrt supported device within the next days.</p>
<p>Will let you know <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2010/02/qtkde-on-openwrt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; fooled me once again&#8230;</title>
		<link>http://nanl.de/blog/2010/01/php-fooled-me-once-again/</link>
		<comments>http://nanl.de/blog/2010/01/php-fooled-me-once-again/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 18:22:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=291</guid>
		<description><![CDATA[I was asked to take a look at several free and opensource software web-projects which are capable for so called &#8220;ISP configuration management&#8221;, managing web-, mail-, database-servers, etc. &#8211; handling clients, resellers and admins and having specialized frontends for them&#8230; Anyway&#8230; I trigerred a weird bug in one of the projects where I got into [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked to take a look at several free and opensource software web-projects which are capable for so called &#8220;ISP configuration management&#8221;, managing web-, mail-, database-servers, etc. &#8211; handling clients, resellers and admins and having specialized frontends for them&#8230;</p>
<p>Anyway&#8230; I trigerred a weird bug in one of the projects where I got into an if-condition where I shouldn&#8217;t get into&#8230; which not just caused a weird behaviour of the application but was also a big security hole in this special case.</p>
<p>The code was something like that (simplified and not tested):</p>
<p><code><br />
get_sql($value) {<br />
&nbsp;&nbsp; if ($ret = mysql_query ("SELECT * FROM `table` WHERE foo='%s'"),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysql_real_escape_string($value))<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp; return $ret;<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; else<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp; }<br />
}<br />
<br />
$result = get_sql($foo);<br />
if (count($result) &gt; 0) {<br />
&nbsp;&nbsp; // privileged area...<br />
}<br />
</code><br />
Ugly code &#8211; anyway&#8230; how it was expected to behave by the author?<br />
1) function <code>get_sql()</code> gets executed and therefore a sql-query<br />
2) <code>get_sql()</code> returns an array of results<br />
3) the number of results is checked via <code>count($result)</code> and when the result-array is greater than <code>0</code> jump into the if-block</p>
<p>Okay, so far so good&#8230;</p>
<p>However &#8211; I finally found out the SQL-query in <code>get_sql()</code> fails because of a typo.<br />
No error was thrown in the above code &#8211; so what&#8217;s happening?<br />
1) function <code>get_sql()</code> gets executed and therefore a sql-query<br />
2) <code>get_sql()</code> returns the boolean <code>false</code>, because the sql-query failed<br />
3) <code>count($result)</code>, evaluated <code>count(false)</code> is called</p>
<p>As the software just did behave different and didn&#8217;t throw an error an intermediate result is:</p>
<p><code>count()</code> applied on a boolean is <strong>valid</strong> !</p>
<p>So what&#8217;s <code>count(false)</code> going to return?</p>
<p><strong>1</strong>! &#8211; the integer <strong>one</strong>!</p>
<p><code>count(false)</code> is <strong>1</strong> and in PHP therefore <strong>true</strong>!</p>
<p>Proof:<br />
<code><br />
$ php<br />
&lt;? echo count(false); ?&gt;<br />
1<br />
$<br />
</code></p>
<p>Even better: this behaviour is kind of &#8220;documented&#8221; within an example at <a href="http://php.net/manual/en/function.count.php">http://php.net/manual/en/function.count.php</a> without any comment.</p>
<p>Okay, now guess:<br />
What&#8217;s <code>count(true)</code> returning? And this is <strong>not</strong> documented!</p>
<p><strong>1</strong>! &#8211; the integer <strong>one</strong>!</p>
<p>PHP &#8211; dine in hell&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2010/01/php-fooled-me-once-again/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GTK2 running on top of DirectFB on OpenWrt!</title>
		<link>http://nanl.de/blog/2009/10/gtk2-running-on-top-of-directfb-on-openwrt/</link>
		<comments>http://nanl.de/blog/2009/10/gtk2-running-on-top-of-directfb-on-openwrt/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 05:50:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Openmoko]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[qi-hardware]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=223</guid>
		<description><![CDATA[OpenWrt is now able to run applications based on toolkit GTK+ on top of DirectFB! Using DirectFB avoids having a full blown X11-server (most times Xorg) running, but having the possibiliy of getting nice GTK2 widgets onto your display without altering applications which are using the toolkit. I was quite happy I got that working, [...]]]></description>
			<content:encoded><![CDATA[<p>OpenWrt is now able to run applications based on toolkit GTK+ on top of DirectFB!</p>
<p>Using DirectFB avoids having a full blown X11-server (most times Xorg) running, but having the possibiliy of getting nice GTK2 widgets onto your display without altering applications which are using the toolkit.</p>
<p>I was quite happy I got that working, because unfortunately DirectFB-support on part of gtk2 is quite broken in most versions.</p>

<a href='http://nanl.de/blog/2009/10/gtk2-running-on-top-of-directfb-on-openwrt/ben-directfb-gtkperf/' title='gtkperf on Ben NanoNote'><img width="150" height="150" src="http://nanl.de/blog/wp-content/ben-directfb-gtkperf-150x150.jpg" class="attachment-thumbnail" alt="Ben NanoNote by qi-hardware - running gtkperf on top of DirectFB on OpenWrt" title="gtkperf on Ben NanoNote" /></a>
<a href='http://nanl.de/blog/2009/10/gtk2-running-on-top-of-directfb-on-openwrt/gta02-directfb-gtkperf/' title='gtkperf on GTA02'><img width="150" height="150" src="http://nanl.de/blog/wp-content/gta02-directfb-gtkperf-150x150.jpg" class="attachment-thumbnail" alt="GTA02 (Freerunner) by Openmoko - running gtkperf on top of DirectFB on OpenWrt" title="gtkperf on GTA02" /></a>

<p>Due its incredible slowness of GTK2 on the <a href="http://wiki.openmoko.org/wiki/Neo_FreeRunner">Openmoko Freerunner</a> (400 MHz ARM, 128 MB RAM) I didn&#8217;t expect much of gtk2 on top of DirectFB.</p>
<p>Surprisingly, a simple gtk2 app runs quite well and responsive on my <a href="http://www.qi-hardware.com/products/ben-nanonote/">Ben NanoNote by qi-hardware</a> (366 MHz mips, 32 MB RAM).</p>
<p>I was curious and started some benchmarking with the gtk2 performance testing tool &#8220;gtkperf&#8221;. However I had to patch gtkperf that it&#8217;ll be usable with the qvga-resolution on the Ben NanoNote (otherwise parts of the app were hidden and the benchmark will get falsified because not the whole gets redrawed).</p>
<p><strong>Do not compare your results of an original version of gtkperf with mine &#8211; varieties may be caused due to mentioned changes!</strong> <em>(Patch: <a title="http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch" href="http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch" target="_blank">http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch</a>)</em></p>
<p>What got tested?</p>
<p>gtkperf using GTK2 on:</p>
<ol>
<li>Openmoko Freerunner with DirectFB</li>
<li>Openmoko Freerunner with Xorg and glamo driver</li>
<li>Openmoko Freerunner with Xorg and fbdev driver</li>
<li>qi-hardware Ben NanoNote with DirectFB</li>
<li>qi-hardware Ben NanoNote with Xorg and fbdev driver <em>(not yet done)</em></li>
</ol>
<table border="0">
<tbody>
<tr>
<td><strong>1</strong></td>
<td><strong> </strong></td>
<td><strong>2</strong></td>
</tr>
<tr>
<td>GtkEntry &#8211; time:  0.91<br />
GtkComboBox &#8211; time: 16.01<br />
GtkComboBoxEntry &#8211; time: 10.18<br />
GtkSpinButton &#8211; time:  2.37<br />
GtkProgressBar &#8211; time:  1.04<br />
GtkToggleButton &#8211; time:  2.54<br />
GtkCheckButton &#8211; time:  1.72<br />
GtkRadioButton &#8211; time:  4.16<br />
GtkTextView &#8211; Add text &#8211; time:  9.47</td>
<td><strong> </strong></td>
<td>GtkEntry &#8211; time:  2.08<br />
GtkComboBox &#8211; time: 30.40<br />
GtkComboBoxEntry &#8211; time: 21.65<br />
GtkSpinButton &#8211; time:  3.54<br />
GtkProgressBar &#8211; time:  2.55<br />
GtkToggleButton &#8211; time:  4.66<br />
GtkCheckButton &#8211; time:  2.71<br />
GtkRadioButton &#8211; time:  6.64<br />
GtkTextView &#8211; Add text &#8211; time: 26.06</td>
</tr>
<tr>
<td><strong>3</strong></td>
<td><strong> </strong></td>
<td><strong>4</strong></td>
</tr>
<tr>
<td>GtkEntry &#8211; time:  1.73<br />
GtkComboBox &#8211; time: 22.70<br />
GtkComboBoxEntry &#8211; time: 16.52<br />
GtkSpinButton &#8211; time:  2.60<br />
GtkProgressBar &#8211; time:  1.93<br />
GtkToggleButton &#8211; time:  3.60<br />
GtkCheckButton &#8211; time:  2.28<br />
GtkRadioButton &#8211; time:  5.73<br />
GtkTextView &#8211; Add text &#8211; time: 18.81</td>
<td><strong> </strong></td>
<td>GtkEntry &#8211; time:  1.07<br />
GtkComboBox &#8211; time: 18.61<br />
GtkComboBoxEntry &#8211; time: 10.98<br />
GtkSpinButton &#8211; time:  2.81<br />
GtkProgressBar &#8211; time:  1.51<br />
GtkToggleButton &#8211; time:  4.31<br />
GtkCheckButton &#8211; time:  2.60<br />
GtkRadioButton &#8211; time:  7.42<br />
GtkTextView &#8211; Add text &#8211; time: 12.48</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>The results are really interesting!</p>
<p>On the Openmoko GTA02 (Freerunner) GTK on DirectFB seems to be almost twice as fast as GTK on top of Xorg!</p>
<p>Even though the Hardware of the Ben NanoNote is quite limited compared to the GTA02, the benchmark looks quite promising and GTK2-applications seem to be &#8211; unline I expected &#8211; really usable on that kind of limited hardware.</p>
<p>What&#8217;s really confusing to me: running gtkperf on top of the accelerated Xorg-glamo driver for the glamo graphics chip is slower than using the not accelerated Xorg-fbdev driver. However this myth should not be part of this article; I&#8217;ll get in touch with Lars &#8211; the author of Xorg-glamo &#8211; regarding this issue.</p>
<p><strong>UPDATE:</strong> Lars told me this is related to the glamo-overhead. Data transferred to the framebuffer via fbdev only consists of pure pixmap-data. Data transferred via the glamo-driver consists of data AND special glamo-related commands (telling the chip what to accelerate) which results in more data to be transferred. Normally this shouldn&#8217;t cause such a discrepancy, however the glamo <-> memory-onnection is a bottleneck and only capable of tansferring around 4 MB / second which slows down unacceleraed content. The glamo chip provides the interface for the SD-card, so the whole bus is shared by graphics- and SD-carc-traffic. That&#8217;s the reason why e.g. playing videos (unaccelerated) stored on SD-card is that damn slow!</p>
<p><em>Further tests, benchmarks, evaluation coming soon&#8230;</em></p>
<p>Versions:</p>
<p>gtkperf: 0.40 (with patch: <a title="http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch" href="http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch" target="_blank">http://nanl.de/files/patches/gtkperf/gtkperf-adjust-layout.patch</a>)<br />
DirectFB: 1.4<br />
GTK+: 2.17.0<br />
cairo: 1.8.6<br />
pango:1.26.0<br />
freetype: 2.3.9<br />
glib: 2.22.2<br />
atk: 1.22.0<br />
pixman: 0.14.0<br />
Xorg X11 server: X11R7.4-1.5.1<br />
xorg-driver-glamo: b45d78c927715b8814404fc2a34ae0aa1d003c29</p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2009/10/gtk2-running-on-top-of-directfb-on-openwrt/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>OpenWrt on the Ben NanoNote!</title>
		<link>http://nanl.de/blog/2009/08/openwrt-on-the-ben-nanonote/</link>
		<comments>http://nanl.de/blog/2009/08/openwrt-on-the-ben-nanonote/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 09:46:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[qi-hardware]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=200</guid>
		<description><![CDATA[The Ben NanoNote I got a few weeks ago by qi-hardware is now running OpenWrt! The patch, published by the manufacturer ingenic itself, which provides linux support for their SoC&#8217;s (System-on-a-Chip&#8217;s), is roughly cleaned up, unneeded stuff is cleared out and it&#8217;s levelled up to 2.6.25.20 (originally the patch refers to 2.6.24.3) and &#8211; running! [...]]]></description>
			<content:encoded><![CDATA[<p>The Ben NanoNote I got a few weeks ago by <a href="http://qi-hardware.com">qi-hardware</a> is now running <a href="http://openwrt.org">OpenWrt</a>!</p>
<p>The <a href="ftp://ftp.ingenic.cn/3sw/01linux/02kernel/linux-2.6.24/linux-2.6.24.3-jz-20090506.patch.gz">patch</a>, published by the manufacturer ingenic itself, which provides linux support for their SoC&#8217;s (System-on-a-Chip&#8217;s),  is roughly cleaned up, unneeded stuff is cleared out and it&#8217;s levelled up to 2.6.25.20 (originally the patch refers to 2.6.24.3) and &#8211; running!</p>
<p>That&#8217;s the good news&#8230;</p>
<p>&#8230;now the bad ones:</p>
<ul>
<li>The mentioned patch by ingenic contains not only linux kernel source but also binary data &#8211; ELF-formatted binary code for the mips instruction set! For more details you may want to look at my <a href="http://lists.qi-hardware.com/pipermail/developer/2009-August/000162.html">post</a> on the <a href="http://lists.qi-hardware.com/pipermail/developer/">developer-mailinglist</a> (<a href="http://lists.qi-hardware.com/pipermail/developer/2009-August/000162.html">http://lists.qi-hardware.com/pipermail/developer/2009-August/000162.html</a>). They patch in a proprietary mtdblock-replacement which seems to differ to the original in nand-flash error correction and handling of bad blocks. That&#8217;s a no-go &#8211; not just because of the reaosons of open hardware/software but also as not being able to forward the patchset to a newer kernel version.</li>
<li>Strange problems appear with the MMC / SD-card hardware. Randomly the hardware does not recognize the card correctly (more precisely, the card is recognized but not the partition table why the kernel panics because of not finding it&#8217;s given root device). Spent days not on this issue, but weren&#8217;t able to figure out yet what&#8217;s causing this kind of behaviour <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
<p>What&#8217;s next?</p>
<ul>
<li>get this bloody MMC/SD-card issue fixed</li>
<li>get the NAND flash supported &#8211; either we get the sourcecode of the modified mtdblock driver or get it supported elsewise</li>
<li>further cleanups of the existing patchset</li>
<li>level up the patchset to a recent kernel version (2.6.31 would be best &#8211; much stuff went upstream / is now handled nativly, e.g. nand-chips &gt; 4 GB don&#8217;t need the ingenic hacks anymore, also there&#8217;s a new interface for gpio-based keyboards which should make it pretty easy to write a keyboard-driver and allows us to get rid of the existing stuff).</li>
<li>(re)writing some (of the) drivers (e.g. MMC/SD-card support and support for SDIO, keyboard-driver as mentioned above)</li>
</ul>
<p>I was in Hamburg this weekend meeting Lars for a hack-session on the Ben NanoNote. He&#8217;s also part of the OpenWrt-team and now another proud owner of such a device <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Besides his ongoing contributions to the Openmoko-project, hopefully he will also help us* spending some of his time on the NanoNote &#8211; thank&#8217;s a lot at this point for your great work and efforts!</p>
<p>*i&#8217;m happy to announce that <a href="http://lists.qi-hardware.com/pipermail/developer/2009-August/000157.html">last week</a> I &#8220;became an official developer of the [qi-]core team&#8221; with &#8220;focus<br />
on the OpenWrt integration&#8221; &#8211; let&#8217;s see what will happen <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2009/08/openwrt-on-the-ben-nanonote/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Linksys WRT160NL</title>
		<link>http://nanl.de/blog/2009/07/linksys-wrt160nl/</link>
		<comments>http://nanl.de/blog/2009/07/linksys-wrt160nl/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 21:35:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=182</guid>
		<description><![CDATA[I got a Linksys WRT160NL and because I didn&#8217;t find any pictures of the board nor any data about the serial &#8211; here&#8217;s what I got:]]></description>
			<content:encoded><![CDATA[<p>I got a Linksys WRT160NL and because I didn&#8217;t find any pictures of the board nor any data about the serial &#8211; here&#8217;s what I got:</p>
<div id="attachment_183" class="wp-caption alignnone" style="width: 503px"><a href="http://nanl.de/blog/wp-content/wrt160nl.jpg"><img class="size-full wp-image-183" title="wrt160nl" src="http://nanl.de/blog/wp-content/wrt160nl.jpg" alt="Linksys WRT160NL" width="493" height="370" /></a><p class="wp-caption-text">Linksys WRT160NL (click to enlarge)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2009/07/linksys-wrt160nl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>qi-hardware</title>
		<link>http://nanl.de/blog/2009/07/qi-hardware/</link>
		<comments>http://nanl.de/blog/2009/07/qi-hardware/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 16:50:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Openmoko]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[qi-hardware]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=154</guid>
		<description><![CDATA[qi-hardware is a startup (announced 20th of July on linux.com) which set itself the target of manufacturing and deploying  hardware under the idea of &#8220;Open Source Hardware&#8221; (for details you might want to read the mentioned article on linux.com or on qi-hardware.com itself). This idea might call some analogies to Openmoko and &#8211; indeed &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://qi-hardware.com">qi-hardware</a> is a startup (announced 20th of July on <a href="http://linux.com/news/embedded-mobile/mids/29263-openmoko-layoffs-lead-to-new-open-hardware-venture">linux.com</a>) which set itself the target of manufacturing and deploying  hardware under the idea of &#8220;<a href="http://en.wikipedia.org/wiki/Open_source_hardware">Open Source Hardware</a>&#8221; (for details you might want to read the mentioned article on <a href="http://linux.com/news/embedded-mobile/mids/29263-openmoko-layoffs-lead-to-new-open-hardware-venture">linux.com</a> or on <a href="http://qi-hardware.com">qi-hardware.com</a> itself).</p>
<p>This idea might call some analogies to <a href="http://openmoko.org">Openmoko</a> and &#8211; indeed &#8211; not just the ideas, also the people are almost the same <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Same idea? Same targets? Same people? Let&#8217;s face it: same mistakes? At least qi is saying: &#8220;no!&#8221; as described in their post &#8220;<a href="http://www.qi-hardware.com/2009/07/21/lessons-learned/">Lessons learned</a>&#8221;</p>
<p>Based on the saying &#8220;back to the roots&#8221; aka &#8220;the more basics the fewer problems&#8221; they announced their first device:</p>
<p><a href="http://www.qi-hardware.com/wp-content/uploads/2009/07/ben-nanonote.png"> </a></p>

<a href='http://nanl.de/blog/2009/07/qi-hardware/ben-nanonote-closed/' title='ben-nanonote-closed'><img width="150" height="116" src="http://nanl.de/blog/wp-content/ben-nanonote-closed.png" class="attachment-thumbnail" alt="Ben NanoNote (closed)" title="ben-nanonote-closed" /></a>
<a href='http://nanl.de/blog/2009/07/qi-hardware/ben-nanonote/' title='ben-nanonote'><img width="102" height="150" src="http://nanl.de/blog/wp-content/ben-nanonote.png" class="attachment-thumbnail" alt="Ben NanoNote (opened)" title="ben-nanonote" /></a>

<p>the &#8220;Ben NanoNote&#8221;, which (at least for now) comes with no RF-hardware at all.</p>
<p>Nevertheless the project looks very interesting and promising &#8211; even more when I was told that OpenWrt is going to be used as default operating system.</p>
<p>Shortly after I was asked whether I&#8217;m interested in helping getting OpenWrt running on it &#8211; I agreed, got one and am now hacking on it <img src='http://nanl.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Let&#8217;s see how things will do&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2009/07/qi-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8230;and because everybody likes screenshots :)</title>
		<link>http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/</link>
		<comments>http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 21:40:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[English articles]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Openmoko]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[embedded systems]]></category>

		<guid isPermaLink="false">http://nanl.de/blog/?p=135</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/openwrt_boot/' title='openwrt boot'><img width="112" height="150" src="http://nanl.de/blog/wp-content/openwrt_boot.jpg" class="attachment-thumbnail" alt="OpenWrt boot sequence" title="openwrt boot" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/illume/' title='illume desktop'><img width="112" height="150" src="http://nanl.de/blog/wp-content/illume.jpg" class="attachment-thumbnail" alt="e17 Illume desktop" title="illume desktop" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/paroli_pin/' title='paroli pin'><img width="112" height="150" src="http://nanl.de/blog/wp-content/paroli_pin.jpg" class="attachment-thumbnail" alt="Paroli PIN dialog" title="paroli pin" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/tangogps/' title='tangogps'><img width="112" height="150" src="http://nanl.de/blog/wp-content/tangogps.jpg" class="attachment-thumbnail" alt="TangoGPS" title="tangogps" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/paroli_contacts/' title='paroli contacts'><img width="112" height="150" src="http://nanl.de/blog/wp-content/paroli_contacts.jpg" class="attachment-thumbnail" alt="Paroli Contacts" title="paroli contacts" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/illume_settings/' title='illume settings'><img width="112" height="150" src="http://nanl.de/blog/wp-content/illume_settings.jpg" class="attachment-thumbnail" alt="Illume Settings" title="illume settings" /></a>
<a href='http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/paroli_call/' title='paroli call'><img width="112" height="150" src="http://nanl.de/blog/wp-content/paroli_call.jpg" class="attachment-thumbnail" alt="call in paroli" title="paroli call" /></a>

]]></content:encoded>
			<wfw:commentRss>http://nanl.de/blog/2009/07/and-because-everybody-likes-screenshots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
