<?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>Enrico Ros &#187; planetqt</title>
	<atom:link href="http://www.enricoros.com/blog/tag/planetqt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.enricoros.com/blog</link>
	<description>Focused ideas, bleeding edge madness and code recipes.</description>
	<lastBuildDate>Sun, 21 Apr 2013 22:51:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>I&#8217;m going Multi-Touch</title>
		<link>http://www.enricoros.com/blog/2009/12/im-going-multi-touch/</link>
		<comments>http://www.enricoros.com/blog/2009/12/im-going-multi-touch/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 14:30:45 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[multi-touch]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[x.org]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=407</guid>
		<description><![CDATA[This is one of the hottest topics of the moment: Multi-Touch (see the trends here). Every review of the just released Qt 4.6 mentions the Touch-and-Gestures framework and KDE is getting ready to use the technology &#8212; still it doesn&#8217;t work on X11 (yet). MultiTouch can be Fun ! I couldn&#8217;t resist, so for 99€ (120$) I [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>This is one of the <em>hottest topics</em> of the moment: <a href="http://en.wikipedia.org/wiki/Multi-touch" target="_blank">Multi-Touch</a> (see the trends <a href="http://www.google.com/trends?q=multitouch" target="_blank">here</a>). Every review of the <a href="http://labs.trolltech.com/blogs/2009/12/01/qt-460-released-early-due-to-good-behaviour/" target="_blank">just released</a> Qt <a href="http://doc.trolltech.com/4.6/">4.6</a> mentions the Touch-and-Gestures framework and KDE is <a href="http://www.notmart.org/index.php/Software/Multitouch_screencast_overload" target="_blank">getting ready to use the technology</a> &#8212; <span style="text-decoration: underline;">still it doesn&#8217;t work on X11</span> (<em>yet</em>).</p>
<h3>MultiTouch can be <em>Fun </em>!</h3>
<p><img class="alignright size-full wp-image-413" title="Wacom_Bamboo-Fun-small" src="http://www.enricoros.com/blog/wp-content/uploads/2009/12/Wacom_Bamboo-Fun-small1.png" alt="Wacom_Bamboo-Fun-small" width="197" height="124" />I couldn&#8217;t resist, so for 99€ (120$) I bought a <em>Bamboo Fun Pen &amp; Touclh</em> tablet. I find this really affordable, since you get: A. the precision of a graphics tablet (with 1024 pressure levels, back eraser, etc..) and B. a real 2-Pointers input device!</p>
<p>I tried the tablet on vista, with the latest drivers and the bundled applications bot I got disappointed because:<br />
<em>1.</em> <em>the scroll gesture is remapped to the mouse wheel</em>.. so you lose all the &#8216;analog&#8217; fun and it feels unconfortable.<br />
<em>2. the zoom gesture is remapped to CTRL+wheel</em>, awkward fixed-steps again.<br />
<em>3. the rotate gesture is not supported by any app</em> even the bundled ones i tried.</p>
<p>In the end I thought this was not &#8220;multi-touch&#8221;, but some silly gesture-detection broken hardware. <em>I was wrong</em>.</p>
<h3>Linux to the rescue</h3>
<p><a href="http://www.enricoros.com/blog/wp-content/uploads/2009/12/gesture-vortex-2H.png"><img class="size-full wp-image-438 aligncenter" title="gesture-vortex-2S" src="http://www.enricoros.com/blog/wp-content/uploads/2009/12/gesture-vortex-2S1.png" alt="gesture-vortex-2S" width="425" height="299" /></a><br />
<span style="text-decoration: underline;">Step 1</span>. After loading the wacom.ko module (updated with <a href="http://ubuntuforums.org/showthread.php?t=1321238#1" target="_blank">this</a> patch) the Linux kernel prints out stuff like this:</p>
<pre class="brush: plain; title: ; notranslate">
[default   ] data: 02 00  00 00 00 00 00  00 00 00 00  00 00 00 00 00  00 00 00 00
[finger 1  ] data: 02 00  7d 80 fe 00 8a  80 fc 00 87  00 00 00 00 00  81 11 00 00
[finger 1+2] data: 02 00  ae 80 b6 00 72  81 08 00 70  87 81 5b 00 72  81 21 00 00
[finger   2] data: 02 00  00 00 00 00 00  81 59 00 b4  6d 81 59 00 ba  80 11 00 00
</pre>
<p>Can you see it ? This <strong>is</strong> a 2-finger device! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span style="text-decoration: underline;">Step 2</span>. The Kernel understands the data and splits it into 2 input devices that Udev maps to <em>/dev/input/wacom</em> and <em>/dev/input/wacom-touch</em>. From here you can read higher level information <strong>for each finger</strong> such as the decoded <strong>position</strong>, <strong>pressure</strong>, click type (<strong>tap</strong>, <strong>doubletab</strong>), and more.</p>
<h3>I WANT QTouchEvents AND QGestures !!</h3>
<p>I do too <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  And I wanted to hack something about that. But I stopped here:</p>
<p><img class="aligncenter size-full wp-image-436" title="schema-problem" src="http://www.enricoros.com/blog/wp-content/uploads/2009/12/schema-problem.png" alt="schema-problem" width="507" height="207" /></p>
<p>We get the input from <em>evdev</em> and the Application needs <a href="http://doc.trolltech.com/4.6/qtouchevent.html" target="_blank">QTouchEvent</a>s and <a href="http://doc.trolltech.com/4.6/qgesture.html" target="_blank">QGesture</a>s, so the easy way would be to hack up a touchpoint feeder to the Qt framework that directly reads from evdev (<strong>evdev -&gt; qt</strong>). This would work fine for 1 application, but what about two? And what about moving the X cursor too? I think <strong>evdev-&gt;Xdriver-&gt;XInput2-&gt;qt</strong> is the solution, but we must be sure that <em>no valuable information is lost in the chain</em>, that the <em>event filtering is done in the right place</em> and obviously, that the X driver does a good job. Unfortunately <a href="http://cgit.freedesktop.org/~whot/xf86-input-wacom/" target="_blank">xf86-input-wacom</a> (X input driver for wacom&#8217;s kernel driver) doesn&#8217;t support my Bamboo Fun Touch &amp; Pen yet and moreover I don&#8217;t see MPX support in the sources, so I&#8217;m wondering how far away is the Qt multi-touch backend from seeing the light.</p>
<h3>Conclusion</h3>
<p>I don&#8217;t know which way the multi-touch will happen on linux, but I know for sure that we want to play with gestures and we want it soon <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>For more information:</p>
<ul>
<li>Peter Hutterer&#8217;s <a href="http://who-t.blogspot.com/" target="_parent">blog</a>. Peter is the MPX (Multi Pointer X) author and plays a big role in the X.org community.</li>
<li>X Input Extension 2.0 <a href="http://fedoraproject.org/wiki/Features/XI2" target="_blank">features</a>.</li>
<li>The <a href="http://linuxwacom.sourceforge.net/" target="_blank">Linux Wacom</a> project. A community-driven effort to develop kernel and X drivers.</li>
</ul>
<div class="shr-publisher-407"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/12/im-going-multi-touch/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>AddiQted to 4.6</title>
		<link>http://www.enricoros.com/blog/2009/10/addiqted/</link>
		<comments>http://www.enricoros.com/blog/2009/10/addiqted/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 18:15:51 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amarok]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[qtsoftware]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=354</guid>
		<description><![CDATA[note for planetkde readers: check the original article to see the video! I confess, I&#8217;m addiQted. You obviously think it&#8217;s normal (you&#8217;re not reading this blog by accident, aren&#8217;t you?) but it wasn&#8217;t always like this: I&#8217;ve liked some previous versions, but the upcoming Qt 4.6 really rocks! The Fotowall case As I shown previosly, [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>note for <a href="http://www.planetkde.org">planetkde</a> readers: check the <a href="http://www.enricoros.com/blog/2009/10/addiqted/">original article</a> to see the video!</strong></p>
<p>I confess, I&#8217;m addi<em>Qt</em>ed. You obviously think it&#8217;s normal (you&#8217;re not reading this blog by <em>accident</em>, aren&#8217;t you?) but it wasn&#8217;t always like this: I&#8217;ve liked some previous versions, but the upcoming Qt <strong>4.6</strong> really <a href="http://www.missouri-vacations.com/images/elephant-rocks-body.jpg">rocks</a>!</p>
<h4>The Fotowall case</h4>
<p>As I shown <a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/">previosly</a>, <a href="http://www.enricoros.com/opensource/fotowall">Fotowall</a> already uses some features of Qt 4.6. How much?<br />
Qt 4.6 is referenced in <em>32 places</em>, for example in snippets like this:</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
    // center the path
    QPointF pathCenter = path.boundingRect().center();
    #if QT_VERSION &gt;= 0x040600
        path.translate(-pathCenter);
    #elif QT_VERSION &gt;= 0x040500
        path = QTransform::fromTranslate(-pathCenter.x(), -pathCenter.y()).map(path);
    #else
        QTransform tx;
        tx.translate(-pathCenter.x(), -pathCenter.y());
        path = tx.map(path);
    #endif
</pre>
<p>From simple <a href="http://doc.trolltech.com/4.6-snapshot/qpainterpath.html#translate">path translations</a> to more complex <a href="http://doc.trolltech.com/4.6-snapshot/qmetaproperty.html#notifySignalIndex">property manipulations</a>, everything got better. See this code snipped about extending QGraphicsObject in 4.6 versus 4.5 and 4.4.</p>
<pre class="brush: cpp; collapse: false; title: ; notranslate">
    #if QT_VERSION &gt;= 0x040600
    class AbstractContent : public QGraphicsObject
    #else
    class AbstractContent : public QObject, public QGraphicsItem
    #endif
    {
        Q_OBJECT
    #if QT_VERSION &lt; 0x040600
        Q_PROPERTY(QPointF pos READ pos WRITE setPos)
        Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
    #endif
    #if QT_VERSION &lt; 0x040600 &amp;&amp; QT_VERSION &gt;= 0x040500
        Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity)
    #endif
</pre>
<p><em>Do you feel the pain</em>?</p>
<h4>I Need it</h4>
<p>I need a world with Qt 4.6 only, because:</p>
<ul>
<li>It&#8217;s too much of a <strong>pain to support older versions</strong> in the same codebase</li>
<li>It&#8217;s not even fair, because <strong>non-4.6 users won&#8217;t enjoy the program as it&#8217;s meant to be</strong></li>
<li><strong>I can&#8217;t use A TON of new features</strong> because they&#8217;ll either <strong>simplify too much the code</strong>, or just because they don&#8217;t have a pre-4.6 equivalent</li>
<li>and because I&#8217;d like to finally use
<ul>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qgraphicseffect.html">QGraphicsEffect</a> for Fotowall&#8217;s content</li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qvector3d.html">QVector3D</a> to say goodbye to <a href="http://github.com/enricoros/fotowall/raw/master/3rdparty/enricomath.h"><em>enricomath.h</em></a></li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qgesture.html">QGesture</a> for multi-finger interaction</li>
<li><a href="http://doc.qt.nokia.com/4.6-snapshot/qpropertyanimation.html">QPropertyAnimation</a> to its full potential!</li>
</ul>
</li>
</ul>
<h4>More 4.6 TEASING</h4>
<ol>
<li>As <a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/">you seem to like videos</a>, here is a preview of something we&#8217;re working on for <a href="http://amarok.kde.org">Amarok</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <span style="text-decoration: underline;">Qt 4.6 only!!</span><br />
<p><a href="http://www.enricoros.com/blog/2009/10/addiqted/"><em>Click here to view the embedded video.</em></a></p></li>
<li>Also, since I&#8217;m <em>soooo much a giver</em>, see the new Fotowall&#8217;s <a href="http://www.enricoros.com/opensource/fotowall/assets/screenshots/teaser-wordcloud-1.png">Word Cloud</a> feature, coming in 0.9 <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ol>
<h4>See you  @ Munich</h4>
<p>I&#8217;m packing for the <a href="http://qt.nokia.com/qtdevdays2009">DevDays 2009</a> Munich. See you there <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="shr-publisher-354"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/10/addiqted/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Cuteness 4.6</title>
		<link>http://www.enricoros.com/blog/2009/09/cuteness-4-6/</link>
		<comments>http://www.enricoros.com/blog/2009/09/cuteness-4-6/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 05:01:34 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Computer Graphics]]></category>
		<category><![CDATA[Interests]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[figosità]]></category>
		<category><![CDATA[fotowall]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=319</guid>
		<description><![CDATA[Seven days after the release of the Tech Preview 1, we released the latest stable Windows build of Fotowall [1] that was based on Qt 4.6. Somebody could argue that this is a bit imprudent. We did that because the benefits of the 4.6 release are worth the risk of the move! Indirect Benefits, or [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Seven days after the release of the <a href="http://labs.qt.nokia.com/blogs/2009/09/09/qt-460-tech-preview-1/">Tech Preview 1</a>, we released the latest stable Windows build of <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> [1] that was based on Qt 4.6. Somebody could argue that this is a bit <em>imprudent</em>. We did that because <strong>the benefits of the 4.6 release are worth the risk of the move</strong>!</p>
<h4>Indirect Benefits, or &#8216;what you get for free&#8217;</h4>
<ul>
<li><em>Improved quality</em> and <em>better speed</em> in the OpenGL QPainter</li>
<li><em>Better speed </em>in <a href="http://doc.trolltech.com/4.6-snapshot/graphicsview.html">the GraphicsView framework</a></li>
</ul>
<h4>Direct Benefits</h4>
<ul>
<li><a href="http://qt.nokia.com/doc/4.6-snapshot/animation-overview.html"><em>Animation Framework</em></a>: this simply r0cks! I don&#8217;t know about the whole Kinetic stuff, I just mean the ability to create <em>simple property animations</em>.<br />
I don&#8217;t have a video to show you but just take a look at the Fotowall&#8217;s Top-Bar, the tabs appear and disappear with a nice and smooth grow-shrink animation, that make the program look soo 2009-ish! finally!</li>
<li><a href="http://doc.trolltech.com/4.6-snapshot/qnetworkreply.html#isFinished"><em>QNetworkReply::isFinished</em>()</a>: thanks to this method I could implement a smart time-saver: when the user starts to drag a flickr picture, Fotowall starts downloading it. It can happen that, upon drop, the content has already been completely downloaded (so it can be placed in the canvas) or partially downloaded (so the used only needs to wait for the missing percent)</li>
</ul>
<h4>Drawbacks</h4>
<ul>
<li>There are some<em> graphics glitches</em> when animating the opacity property of a QGaphicsProxyWidget (in OpenGL)</li>
<li>Even by setting the <a href="http://doc.trolltech.com/4.6-snapshot/qgraphicsitem.html#GraphicsItemFlag-enum">QGraphicsItem::ItemSendsGeometryChanges</a> flag, the previous <em>behavior</em> is <em>not perfectly restored</em> (we used itemChange, and the new behavior doesn&#8217;t allow Fotowall&#8217;s mirrors to sync properly to the objects)</li>
</ul>
<h4>Movie Time!</h4>
<p>I&#8217;ve tried hard to record a screencast about the <em>Cuteness &amp; Performance</em> of Qt 4.6, but in the end I had to use my camera.</p>
<p><a href="http://www.enricoros.com/blog/2009/09/cuteness-4-6/"><em>Click here to view the embedded video.</em></a></p>
<p style="text-align: center;">Thanks Nokia for this great release! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>[1] <a href="http://www.enricoros.com/opensource/fotowall/">Fotowall</a> is a creative program to mix local and online graphics content and build original work.</p>
<div class="shr-publisher-319"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/09/cuteness-4-6/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Fotowall 0.8</title>
		<link>http://www.enricoros.com/blog/2009/09/fotowall-0-8-2/</link>
		<comments>http://www.enricoros.com/blog/2009/09/fotowall-0-8-2/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 11:00:54 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[figosità]]></category>
		<category><![CDATA[fotowall]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://www.enricoros.com/blog/?p=295</guid>
		<description><![CDATA[Fotowall 0.8.2 has just been released and we&#8217;re already getting some great feedback Cherry picked  features from the delicious 0.8 release: Now you&#8217;ll be able to deform text changing the shape of its baseline visually (see the &#8220;Fotowall&#8221; string in the image above and its Bezier control points) Pictures can be cropped to a certain [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong><a href="http://www.enricoros.com/opensource/fotowall">Fotowall</a></strong> 0.8.2 has just been released and we&#8217;re already getting some <strong>great feedback</strong> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><img class="size-full wp-image-299" style="margin-left: auto; margin-right: auto;" title="Fotowall 0.8" src="http://www.enricoros.com/blog/wp-content/uploads/2009/09/0.8.blog.png" alt="New features in Fotowall 0.8" width="489" height="368" /></p>
<p>Cherry picked <img class="alignnone size-full wp-image-311" title="cherry" src="http://www.enricoros.com/blog/wp-content/uploads/2009/09/cherry.png" alt="cherry" width="19" height="16" /> features from the delicious 0.8 release:</p>
<ul>
<li>Now you&#8217;ll be able to <strong>deform text</strong> changing the shape of its baseline visually (see the &#8220;Fotowall&#8221; string in the image above and its <a href="http://en.wikipedia.org/wiki/B%C3%A9zier_curve">Bezier</a> control points)</li>
<li>Pictures can be <strong>cropped</strong> to a certain area, for example to select a single person from a group. Also picture&#8217;s <strong>transparency</strong> can be adjusted, to create nice fading effects</li>
<li>A lot of work has been put into enabling <strong><a href="http://www.opengl.org">OpenGL</a> acceleration</strong>, really useful if your canvas has 100+ semi-transparent objects <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>You can now work with a transparent window (or <a href="http://www.enricoros.com/opensource/fotowall/assets/screenshots/0.8-vista-blur-1.jpg">blurred</a>, on Vista)</li>
<li>The top-bar is now <strong>context-sensitive</strong>. We&#8217;ll move more and more content properties to that instead of the old content configuration window</li>
</ul>
<p>Plus a lot of user suggestions and fixes have been implemented to make Fotowall always <em>easier and intuitive to use</em>. The 0.8 release now ships in 6 different languages: english, italian, french, german, brazilian, polish. You can even <a href="http://www.enricoros.com/opensource/fotowall/translate">contribute your own translations</a>.</p>
<p>But our favorite news is that <a href="http://www.enricoros.com/opensource/fotowall">Fotowall now has it&#8217;s official website</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>What about next: we&#8217;re  working hard on the 0.9 release and we already have lots of new features! You&#8217;ll be surprised by what you&#8217;ll be able to achieve with the next version <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>A final special thank to <a href="http://zrusin.blogspot.com/">Zack Rusin</a> who created the <a href="http://zrusin.blogspot.com/2006/11/text-on-path.html">Text on path</a> example that was the basis of our shaped text.</p>
<div class="shr-publisher-295"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/09/fotowall-0-8-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Quax 4 &#8211; a tale of porting</title>
		<link>http://www.enricoros.com/blog/2009/08/quax4/</link>
		<comments>http://www.enricoros.com/blog/2009/08/quax4/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 21:42:59 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/?p=219</guid>
		<description><![CDATA[Note for planetqt readers: the title should be &#8216;Quax 4 &#8211; a tale of porting&#8217; Once upon a time, a little application called quax was landed on kde-apps. As imagination is better served by a picture, here is what quax looks like: It&#8217;s nothing but a simple and easy to use screen magnifier. You can [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>Note for <a href="http://www.planetqt.org" target="_blank">planetqt</a> readers: the title should be &#8216;Quax 4 &#8211; a tale of porting&#8217;<br />
</strong></p>
<p>Once upon a time, a little application called <a href="http://www.kde-apps.org/content/show.php/Quax?content=10436" target="_blank">quax</a> was landed on <a href="http://www.kde-apps.org" target="_blank">kde-apps</a>. As imagination is better served by a picture, here is what quax looks like:</p>
<div id="attachment_220" class="wp-caption aligncenter" style="width: 386px"><img class="size-full wp-image-220" title="Quax 1.2 Screenshot" src="http://enricoros.files.wordpress.com/2009/08/quax-1-2-screenshot-1.png" alt="Quax after being ported to Qt 4.5." width="376" height="265" /><p class="wp-caption-text">Quax after being ported to Qt 4.5.</p></div>
<p>It&#8217;s nothing but a <em>simple and easy to use screen magnifier</em>. You can move it around and place it near the detail to magnify. Plus it lets you pick the color of a pixel. It&#8217;s the perfect tool when you&#8217;re tuning the style, pixels and gradients of your <a href="http://www.enricoros.com/opensource/fotowall/" target="_blank">beloved app</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  It had only one drawback: it was build with Qt 3.</p>
<h4>Porting Quax to Qt4</h4>
<p>It was the first time I had to port an application from Qt3 to Qt4. Here are some stats:</p>
<ul>
<li>The porting took <strong>3 hours</strong> (you can see it from the <a href="http://gitorious.org/quax/quax/commits/master" target="_blank">git history</a>, dinner included <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</li>
<li>I did the following:
<ul>
<li>create the project files</li>
<li>use qt3to4 with that files</li>
<li>make it compile disabling some code chunks</li>
<li>re-enable the disabled code in a qt4 way</li>
<li>disabled qt3 support from the .pro file and fixed all until it compiled</li>
<li>update the packaging informations, readme&#8217;s</li>
<li>published Quax 4 in kde-apps</li>
</ul>
</li>
<li> The source code dropped from 670 to 547 lines of code. So <strong>Qt4 saved 14% of code</strong> compared to Qt3 for this project.</li>
<li>The <strong>cleanness went drastically up</strong>, the API of Qt4 is a big improvement over that of Qt3.</li>
<li>I can&#8217;t talk about speed or graphics improvements.. but if you look at the <a href="http://www.kde-apps.org/content/preview.php?preview=2&amp;id=10436&amp;file1=10436-1.jpg&amp;file2=10436-2.jpg&amp;file3=10436-3.jpg&amp;name=Quax" target="_blank">old screenshots</a> you&#8217;ll see that the font rendering was really improved in Qt4</li>
</ul>
<h4>Conclusion</h4>
<p>Finally I have quax back, and <a href="http://gitorious.org/quax" target="_blank">you can have it too</a>! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  The source code is on <a href="http://gitorious.org/quax/quax" target="_blank">gitorious</a>, and here is the <a href="http://www.kde-apps.org/content/show.php/Quax+%284%29?content=110929" target="_blank">kde-apps page</a>. A final thank word to Claudiu Costin (the original author) and Vlad Oancea (the skin designer). I won&#8217;t maintain quax4 and I don&#8217;t plan to add any features, I&#8217;m just glad I can keep my box Qt3 free while designing pixel-perfect graphics thanks to this cute little utility <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="shr-publisher-219"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/08/quax4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fotowall 0.7</title>
		<link>http://www.enricoros.com/blog/2009/07/fotowall-0-7/</link>
		<comments>http://www.enricoros.com/blog/2009/07/fotowall-0-7/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:07:25 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[figosità]]></category>
		<category><![CDATA[fotowall]]></category>
		<category><![CDATA[graphicsview]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/?p=197</guid>
		<description><![CDATA[Fotowall 0.7.1 has been released today! Get it while it&#8217;s hot With this release Fotowall integrates with the deep web. You can now search the network with the embedded flickr search pane and add the images to the canvas. This opens up an infinite can of content, all available for your pleasure . Other relevant [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong><a href="http://www.enricoros.com/opensource/fotowall/" target="_blank">Fotowall</a> 0.7.1</strong> has been released today! <a href="http://www.enricoros.com/opensource/fotowall/binaries" target="_blank">Get it</a> while it&#8217;s hot <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div id="attachment_199" class="wp-caption aligncenter" style="width: 520px"><img class="size-full wp-image-199" title="FotoWall 0.7" src="http://enricoros.files.wordpress.com/2009/07/0-7-1-1.jpg" alt="FotoWall 0.7" width="510" height="376" /><p class="wp-caption-text">New features in Fotowall 0.7. In the top left area you can see the web image selector.</p></div>
<p>With this release Fotowall <strong>integrates with the deep web</strong>. You can now search the network with the embedded <a href="http://www.flickr.com" target="_blank">flickr</a> search pane and add the images to the canvas. This opens up an infinite can of content, all available for your pleasure <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>Other relevant features include:</p>
<ul>
<li>support for Qt 4.6 (brings animations and transparencies)</li>
<li>usability fixes (rubberband selection, deletion, etc..)</li>
<li>cleaner design (new icons, loadable frames, better property dialogs)</li>
<li>italian, french and german translation</li>
<li>check for updates and web links</li>
</ul>
<p>Don&#8217;t hesitate to ask for missing features and always remember that you can <span style="text-decoration: underline;">rotate pictures by dragging corners with the right mouse button</span> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Enjoy your Fotowall!! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div class="shr-publisher-197"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/07/fotowall-0-7/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>AutoGram &#8211; The machine Vs The machine</title>
		<link>http://www.enricoros.com/blog/2009/06/autogram/</link>
		<comments>http://www.enricoros.com/blog/2009/06/autogram/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 06:00:35 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[cheating]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/?p=141</guid>
		<description><![CDATA[Hello, it&#8217;s me again, back on the cheating bandwagon Last time we talked about BioCheat, and now we add another piece of the web-automation jigsaw puzzle: AutoGram. Please enjoy this HQ stream of deceptive video pixels while I explain this fine new piece of trickery As you can see, this other frustration-driven program lets you [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Hello, it&#8217;s me again, back on the <a href="http://enricoros.wordpress.com/2009/05/26/biocheat/" target="_blank">cheating</a> <a href="http://labs.trolltech.com/blogs/?s=cheat" target="_blank">bandwagon</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Last time we talked about <a href="http://enricoros.wordpress.com/2009/05/26/biocheat/" target="_blank">BioCheat</a>, and now we add another piece of the <a href="http://www.gitorious.org/web-automation" target="_blank">web-automation</a> jigsaw puzzle: <a href="http://www.gitorious.org/web-automation/autogram" target="_blank">AutoGram</a>.</p>
<p>Please enjoy this HQ stream of deceptive video pixels while I explain this fine new piece of trickery <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a href="http://www.enricoros.com/blog/2009/06/autogram/"><em>Click here to view the embedded video.</em></a></p>
<p>As you can see, this other <a href="http://enricoros.wordpress.com/2009/05/26/biocheat/#frustration" target="_blank">frustration-driven</a> program lets you climb the ladder of a typical facebook game while drinking coffee or feeding your pet!</p>
<p>So, before starting you need:<span id="more-141"></span></p>
<ol>
<li>a dictionary file for your language of choice (1 word per line)</li>
<li>a dictionary file with the names of your facebook friends (for the &#8216;bonus&#8217; levels)</li>
<li>a compiler, because I&#8217;m not making binary packages this time <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>the source code of AutoGram, <a href="http://www.gitorious.org/web-automation/autogram/trees/master" target="_blank">published here</a> and available as a <a href="http://www.gitorious.org/web-automation/autogram/archive-tarball/master" target="_blank">tar.gz here</a>.</li>
</ol>
<p><strong>Build it</strong> with your favourite compiler (tested on Linux with gcc and on Windows with msvc) or your favourite IDE (you can download <a href="http://www.qtsoftware.com/products/developer-tools" target="_blank">QtCreator</a> if you don&#8217;t know what an IDE is and click on the <em>autogram.pro</em> project file). Then <strong>Run it</strong> and embarass your friends <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Here is how the program works:</p>
<ol>
<li><strong>grabs the screen</strong> image and cuts off the 6 images representing the letters.  [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/ScreenCapture.cpp" target="_blank">ScreenCapture</a>.h</em>]</li>
<li><strong>recognizes each character</strong> by comparing the image to the alphabet and picks the match that has less differential energy. (is like xor-ing 2 pictures and computing the energy of that)  [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/ocr/Ocr.cpp" target="_blank">Ocr</a>.h</em>]</li>
<li>performs all the <strong>permutations</strong> of the characters, to find out all the words that can be made out of the given alphabet. [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/Scrambler.cpp" target="_blank">Scrambler</a>.h</em>]</li>
<li><strong>validates with a dictionary</strong> to filter out unknown words. the dictionary is the &#8220;<em>main language dictionary</em>&#8221; if the screen is yellow-ish (indicating normal game) or the &#8220;<em>bonus game dictionary</em>&#8221; if the screen is red-ish (indicating a bonus game, where all the words are picked from the names of your friends).  [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/Scrambler.cpp" target="_blank">Scrambler</a>.h</em>]</li>
<li><strong>injects the words</strong> (as keystrokes + return) to the browser window.  [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/InputUtils.h" target="_blank">InputUtils</a>.h</em>]</li>
<li>there is a timer-based <strong>loop</strong> that performs the operations 1-5 while updating the GUI.  [<em><a href="http://gitorious.org/web-automation/autogram/blobs/master/WCGame.cpp" target="_blank">WCGame</a>.h</em> contains the logic, <em><a href="http://gitorious.org/web-automation/autogram/blobs/master/AppWidget.cpp" target="_blank">AppWidget</a>.h</em> handles the GUI]</li>
</ol>
<p>If you run AutoGram on a virtual machine, <em>please remember to switch it off after a while</em>! I take no responsability of any score overflow <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Again <a rel="#someid7" href="http://gitorious.org/web-automation/autogram" target="_blank">here is the source code</a>, stay tuned for more <em>web automation</em> articles, and <strong>enjoy</strong> <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif" alt="AutoGram - The machine Vs The machine;-)" /></p>
<div class="shr-publisher-141"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/06/autogram/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BioCheat &#8211; The machine Vs The machine</title>
		<link>http://www.enricoros.com/blog/2009/05/biocheat/</link>
		<comments>http://www.enricoros.com/blog/2009/05/biocheat/#comments</comments>
		<pubDate>Tue, 26 May 2009 16:00:48 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[avanguardia]]></category>
		<category><![CDATA[cheating]]></category>
		<category><![CDATA[planetqt]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/?p=116</guid>
		<description><![CDATA[update: XP/Vista download here You are happily wasting time on facebook (that site with all the ignore buttons, with noisy stuff from people who call themselves &#8216;friends&#8217; of you.. you know..) when you unfortunately get hooked up with Biotronic. This flash game is quite nice, but there is a rank ladder on bottom and you&#8217;re [...]]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>update: XP/Vista <a href="http://code.google.com/p/biocheat/downloads/list" target="_blank">download here</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </strong></p>
<p>You are happily wasting time on <a href="http://www.facebook.com/" target="_blank">facebook</a> (that site with all the ignore buttons, with noisy stuff from people who call themselves &#8216;friends&#8217; of you.. you know..) when you <em>unfortunately get hooked up with <a href="http://apps.facebook.com/biotronic/" target="_blank">Biotronic</a></em>. This flash game is quite nice, but there is a rank ladder on bottom and you&#8217;re <strong>last</strong>. So you play and play &#8230; still <strong>last</strong>, play even more.. still <strong>last</strong>.. can you see the <strong><a title="frustration" name="frustration">frustration</a></strong>?! The layman&#8217;s answer is to play (aka waste hours) to get better and climb the ladder..</p>
<p>And then there&#8217;s the programmer&#8217;s answer: <em>I&#8217;ll write a Qt program to get me on top!! </em> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  (yes, and still waste hours <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) &#8212; Here is the result: <a href="http://gitorious.org/web-automation/biocheat" target="_blank">BioCheat</a> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a href="http://www.enricoros.com/blog/2009/05/biocheat/"><em>Click here to view the embedded video.</em></a></p>
<p>The game is in FLASH, so no HTML or DOM tricks, you have to emulate <em>eyes</em>, <em>brains</em> and <em>hands</em> (only 1). <span id="more-116"></span>Or in other words you have to <em>see</em>, <em>think</em> and <em>act</em>. Or in other words you have to <strong>recognize the image</strong>, <strong>solve the puzzle</strong> and <strong>send the clicks</strong> back.</p>
<p>Not only I became the first among my friends, <em>I was the world #1</em> for a month (with 5Million points) <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Then they wisely reset my score to zero (was too high for a human player) and many people started using and modifying BiCheat!</p>
<p>Here is the simple work flow of the program:</p>
<p><img class="aligncenter size-full wp-image-122" src="http://enricoros.files.wordpress.com/2009/05/path3464.png" alt="BioCheat Workflow" width="450" height="352" /></p>
<p>Plus when there is near 60% of recognized blocks, a condition telling that the level is finished, we press the &#8220;next&#8221; button (a mouse click at an absolute position) to go to the next level. Then you can go grooming your cat while BioCheat plays for you.</p>
<p>In the end it&#8217;s a <strong>machine vs machine fight</strong>, not a human-to-machine one <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Again <a href="http://gitorious.org/web-automation/biocheat" target="_blank">here is the source code</a>, stay tuned for more <em>web automation</em> articles, and <strong>enjoy</strong> <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="shr-publisher-116"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/05/biocheat/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Hello PlanetQt</title>
		<link>http://www.enricoros.com/blog/2009/05/hello-planetqt/</link>
		<comments>http://www.enricoros.com/blog/2009/05/hello-planetqt/#comments</comments>
		<pubDate>Sun, 24 May 2009 10:24:34 +0000</pubDate>
		<dc:creator>Enrico Ros</dc:creator>
				<category><![CDATA[Interests]]></category>
		<category><![CDATA[planetqt]]></category>

		<guid isPermaLink="false">http://enricoros.wordpress.com/?p=109</guid>
		<description><![CDATA[Hello PlanetQt readers! Thanks to Ben I&#8217;ve just been aggregated here! I&#8217;m Enrico Ros, from Italy, and I share your passion for good design, great code and awesome APIs Stay tuned&#8230; ^_^]]></description>
				<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Hello PlanetQt readers! <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Thanks to Ben I&#8217;ve just been aggregated here!</p>
<p>I&#8217;m Enrico Ros, from Italy, and I share your passion for good design, great code and awesome APIs <img src='http://www.enricoros.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Stay tuned&#8230; ^_^</p>
<div class="shr-publisher-109"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.enricoros.com/blog/2009/05/hello-planetqt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
