<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5674163510758480535</id><updated>2012-01-02T15:02:47.764+02:00</updated><category term='Clutter'/><category term='QML'/><category term='Qt'/><category term='maemo'/><category term='hacking'/><category term='MeeGo'/><category term='GTK+'/><category term='Beagle'/><category term='life'/><title type='text'>tHeBloG</title><subtitle type='html'>Technical chit-chat, leaning boldly towards work-issues.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>43</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-6008134022930103313</id><published>2011-12-31T12:16:00.007+02:00</published><updated>2011-12-31T12:45:06.526+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Games for the Next Billion</title><content type='html'>Catchy title right? Don't worry, content partly matches to that description... ;)&lt;br /&gt;&lt;br /&gt;It seems that I quite often include videos in my blog posts. There is no reason to stray away from that habit now, so here's a video showing a beta version of "Smoke the Bugs!" game on N950 &amp; N8:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Kz3ucpzUueg?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Kz3ucpzUueg?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;By looking at the graphics, effects, dynamic lights etc. what you saw was a pretty average OpenGL (ES 2.0) game, right? Well yes and no... Yes, GLSL shaders have been used for the effects. But no, there is zero lines of OpenGL and in fact also zero lines of C/C++ in the game. It's all QML + GLSL + JavaScript.&lt;br /&gt;&lt;br /&gt;To work on current Harmattan &amp; Symbian devices, game uses Qt 4.7 with the shaders plugin. This is an okay-ish platform, as you see from the video: N8@680MHz runs at smooth ~60fps. But I have also smelled, tasted and floated in the sweet velvet of Qt5 and can tell you as a fact that it will be much better. With Qt5 &amp; QtQuick 2.0, applications will get a healthy boost of performance, smoothness and possibility for even better effects.&lt;br /&gt;&lt;br /&gt;Here is a short list of improvements QtQuick-based games will gain from Qt5:&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;Performance:&lt;/span&gt; QML Scene Graph will render everything faster than Qt4 QGraphicsView-based renderer, especially when the amount and complexity of (animated) items rises.&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;Performance2:&lt;/span&gt; New V8 JavaScript engine performs much better than the JavaScriptCore engine in Qt4. Also thanks to this integration work, there is deeper co-operation between QML and JavaScript. &lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;Smoothness:&lt;/span&gt; Qt5 moves rendering into a separate thread which makes UI feel much smoother.&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;Effects:&lt;/span&gt; QtQuick 2.0 supports shader effects to make QML UI's much more dynamic. Using shaders with Qt4 is possible with the shader plugin as shown above, but Qt5 native support will be more complete.&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;Particles:&lt;/span&gt; QtQuick 1.0 contains particles plugin but it's very basic when compared to QtQuick 2.0 particles. No game can survive without particles!&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;QML features:&lt;/span&gt; There are additions in QML which will suit games very well like SpriteImage for sprite animations and PathAnimation &amp; PathInterpolator to animate along a custom path instead of linear path.&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;QtCreator:&lt;/span&gt; Had to mention this one still as the work done in QtCreator Qt5 integration, QML debugger &amp; analyzer etc. will improve the developer (that's me) productivity.&lt;br /&gt;&lt;br /&gt;Now look at the video again to see what the old 2011 QML looked like, add all the above improvements to it and use your imagination... For me it feels like Qt5 &amp; QtQuick 2.0 can offer a great platform not just for applications but also for games. Billion or two, I don't really care... ;) Happy New Year 2012 Everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-6008134022930103313?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/6008134022930103313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=6008134022930103313&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6008134022930103313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6008134022930103313'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/12/games-for-next-billion.html' title='Games for the Next Billion'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-1344091616907931188</id><published>2011-10-28T21:04:00.007+03:00</published><updated>2011-10-29T17:13:44.427+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>5inarow @ N9</title><content type='html'>Hey! Qt Developer Days '11 are over and I want to thank all organizers &amp; attendees, what a great event again!!&lt;br /&gt;&lt;br /&gt;For fresh owners of N9 (congratulations!), I'll say that 5inarow game is now available through Nokia Store. Here's how to get beaten by medium level:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ASdnWXShRVE?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ASdnWXShRVE?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Symbian version may follow later, but for now game is only available on N9/N950. It's free and contains no ads so if you feel like it, go grab it from &lt;a href="http://store.ovi.com/content/209023"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;PS.&lt;/span&gt; If this tickles your &lt;span style="font-style:italic;"&gt;"How to implement a Qt game like that?"&lt;/span&gt; or &lt;span style="font-style:italic;"&gt;"I could do much better than that!"&lt;/span&gt; -nerves, source codes and Qt Quick Game Programming tutorial are still available from &lt;a href="http://quitcoding.com/?page=work#qtquick"&gt;here&lt;/a&gt;. These are for the older N900 version, without e.g. sounds and computer AI. But an idea of updating the document for Qt5 &amp; shader effects is floating in my mind, we'll see, we'll see...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-1344091616907931188?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/1344091616907931188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=1344091616907931188&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1344091616907931188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1344091616907931188'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/10/5inarow-n9.html' title='5inarow @ N9'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4192928911395730494</id><published>2011-08-21T13:40:00.008+03:00</published><updated>2011-08-21T14:19:09.517+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Qt5 + Distance Field Effects</title><content type='html'>Yoann Lopes blogged recently about &lt;a href="http://labs.qt.nokia.com/2011/07/15/text-rendering-in-the-qml-scene-graph/"&gt;Text Rendering in the QML Scene Graph&lt;/a&gt; using distance field alpha testing. This technique brings smoothly scalable fonts with fast OpenGL rendering to Qt5.&lt;br /&gt;&lt;br /&gt;Distance field is of course not limited for just fonts (although they are the most usual use-case), same technique can be used also with suitable images. Here is a video of an example application running on PC and N950 which demonstrates the effect:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/__NBFqCOGqs?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/__NBFqCOGqs?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the original image becomes quite pixelated when zooming in, which is expected as &lt;span style="font-weight:bold;"&gt;image is only 256x160 pixels&lt;/span&gt; (smiley 64x64 pixels). But enabling smoothing with distance field shader makes it very scalable with nice anti-aliasing, outline and transparency. As the pixmap required for this is so small, GPU / fragment shader has less to process leading to better performance. Like with fonts, adding effects such as outline, smoothing, glow and shadow can be implemented very effectively.&lt;br /&gt;&lt;br /&gt;This application is under 300 lines of QML with a GLSL shader, including slider and toggle button components. So if you have &lt;a href="https://qt.gitorious.org/qt/qt5"&gt;Qt5&lt;/a&gt; built up and want to give it a try, source codes are available from &lt;a href="http://quitcoding.com/?page=work#QUItDistFieldFX"&gt;here&lt;/a&gt;. Creative usage ideas and astonishing shaders are welcomed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4192928911395730494?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4192928911395730494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4192928911395730494&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4192928911395730494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4192928911395730494'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/08/qt5-distance-field-effects-yoann-lopes.html' title='Qt5 + Distance Field Effects'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-8293033753642698340</id><published>2011-06-13T22:53:00.005+03:00</published><updated>2011-06-13T23:13:27.661+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Qt Contributors' Summit</title><content type='html'>&lt;a href="http://bit.ly/qcswiki"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 196px; height: 121px;" src="http://2.bp.blogspot.com/-ncEN95_QyTw/TfZvSpmnAQI/AAAAAAAAALE/07iq2Zys_7M/s320/summit_01.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5617799951387394306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will be mostly interested in discussions about Qt5 graphics stack, qml-box2d, QtQuick 2.0 and of course QML Scene Graph. So whenever something related to these is going on, please grab me in!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-8293033753642698340?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/8293033753642698340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=8293033753642698340&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8293033753642698340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8293033753642698340'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/06/qt-contributors-summit.html' title='Qt Contributors&apos; Summit'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ncEN95_QyTw/TfZvSpmnAQI/AAAAAAAAALE/07iq2Zys_7M/s72-c/summit_01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-8839943821992274533</id><published>2011-05-06T16:19:00.007+03:00</published><updated>2011-05-06T22:33:28.430+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>QML Metaballs</title><content type='html'>Kimi, the man with excellent genes, blogged few days ago &lt;a href="http://labs.qt.nokia.com/2011/05/03/qml-shadereffectitem-on-qgraphicsview/"&gt;in here&lt;/a&gt; about QML extension plugin that provides shader effects for QGraphicsView based Qt Quick 1.x. What makes this magnificent, is the fact that API matches to what QML Scene Graph (at least currently) has, making it a perfect solution to start experimenting with the future. Also, as it is a separate plugin sitting on top of standard Qt 4.7.x, it turns "Qt everywhere" to "shaders everywhere" right now while waiting for the full Scene Graph glory.&lt;br /&gt;&lt;br /&gt;All you need is 1) Qt 4.7 installed in suitable environment (Linux, Windows, Symbian etc.) 2) the qml1-shadersplugin and 3) imagination for writing QML &amp; GLSL.&lt;br /&gt;&lt;br /&gt;What I came up with using the plugin is something they call &lt;a href="http://en.wikipedia.org/wiki/Metaballs"&gt;metaballs&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2nYk2eO-wRE?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/2nYk2eO-wRE?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Source codes are available &lt;a href="http://quitcoding.com/?page=work#metaballs"&gt;in here&lt;/a&gt;, go wild! And kudos to Nokia/Qt team for providing this plugin!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-8839943821992274533?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/8839943821992274533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=8839943821992274533&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8839943821992274533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8839943821992274533'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/05/qml-metaballs.html' title='QML Metaballs'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-7469127049032962512</id><published>2011-02-21T00:23:00.003+02:00</published><updated>2011-02-21T01:43:23.823+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Superior technology</title><content type='html'>I decided not to blog anything right after Nokia &amp; Microsoft deal was published. And I'm glad about that, because I have now reached the state where I'm actually excited again! Volker Hilsheimer made a very good &lt;a href="http://labs.qt.nokia.com/2011/02/18/buckets-of-cold-water/"&gt;summary about the situation from Qt perspective&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Instead of going deep into politics and sales speeches, I decided to approach this from a technical perspective. Keeping things simple and concrete, here's one example UI implemented in few hours with Qt Quick &amp; QML Scene Graph:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VMz5Z_vdDSA?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/VMz5Z_vdDSA?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Please spend a bit time looking at what is really happening in there: wave, colorize, fading, water, text highlight... This is ~300 lines of QML + GLSL, performing smoothly on good ol' N900 hardware. Same can not be done using WP7 Silverlight &amp; XAML, period.&lt;br /&gt;&lt;br /&gt;Qt is still the best platform for "mobile phones" and we have also here good ingredients for the "future disruption" like Nokia management has outlined. But technology is nothing without a community (a.k.a. "ecosystem"), so question is that are we going to continue the work and do it? While you think about that, I'll continue hacking with my superior technology! =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-7469127049032962512?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/7469127049032962512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=7469127049032962512&amp;isPopup=true' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7469127049032962512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7469127049032962512'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/02/superior-technology.html' title='Superior technology'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-5185609673579296880</id><published>2011-01-16T18:00:00.004+02:00</published><updated>2011-01-16T18:27:44.044+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>QML Scene Graph demo</title><content type='html'>Here is a small demo of QML animations combined with OpenGL shader effects, running on &lt;a href="http://qt.gitorious.org/qt-labs/scene-graph"&gt;QML Scene Graph&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7ecjf0WlvwU?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/7ecjf0WlvwU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;At first, everything is gray and plain. But once you enable &lt;a href="http://quitcoding.com"&gt;QUIt&lt;/a&gt; mode, the whole world feels a lot more colorful and dynamic. Some call this feeling &lt;a href="http://labs.qt.nokia.com/2010/12/02/velvet-and-the-qml-scene-graph/"&gt;velvet&lt;/a&gt;, I call it.. exciting 2011!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-5185609673579296880?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/5185609673579296880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=5185609673579296880&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/5185609673579296880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/5185609673579296880'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2011/01/qml-scene-graph-demo.html' title='QML Scene Graph demo'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-934204050597391834</id><published>2010-11-14T23:41:00.004+02:00</published><updated>2010-11-15T10:54:41.317+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>MeeGo Conference &amp; SteelRat</title><content type='html'>I'm personally not attending to MeeGo Conference this year. Past two Maemo Summits have been great, so I'm sure this time things will be even &lt;span style="font-style:italic;"&gt;Harder, Better, Faster, Stronger!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But in a way part of me is attending, as one thing I have been working with recently is a UX prototype called "SteelRat". It will be shown in Nomovok booth, running on top of MeeGo in different ARM development boards. This is what SteelRat looked like in Freescale i.MX51 during Qt Developer Days:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/osDlTdl5lAk?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/osDlTdl5lAk?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;But anyway, wishing good times for all you attending!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-934204050597391834?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/934204050597391834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=934204050597391834&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/934204050597391834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/934204050597391834'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/11/meego-conference-steelrat.html' title='MeeGo Conference &amp; SteelRat'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-2804539726498274977</id><published>2010-10-24T17:15:00.006+03:00</published><updated>2010-11-13T21:09:59.561+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Qt Quick Game Programming</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://quitcoding.com/?page=work#qtquick"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 140px; height: 181px;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/TMRBBgF941I/AAAAAAAAAKI/_QsdpyCXKXk/s320/qt_quick_game_programming_cover.png" alt="" id="BLOGGER_PHOTO_ID_5531617736368448338" border="0" /&gt;&lt;/a&gt;Are you interested about Qt Quick? Want to get jiggy with it and develop mad skillz? Wanna become first Qt Quick OVI Store millionaire? Good news, we have a (partial) solution!&lt;br /&gt;&lt;br /&gt;We've been working with Qt Quick / QML for quite some time now and decided to write ~30 pages short tutorial which goes through step-by-step the implementation of &lt;a href="http://quitcoding.com/?page=work#5inarow"&gt;5-in-a-row game&lt;/a&gt;. My recommendation would be to read the tutorial while browsing game sources and reaching towards &lt;a href="http://doc.qt.nokia.com/4.7/qtquick.html"&gt;Qt Quick API documentation&lt;/a&gt; whenever interested in more details.&lt;br /&gt;&lt;br /&gt;Download the "Qt Quick Game Programming" tutorial from &lt;a href="http://quitcoding.com/?page=work#qtquick"&gt;here&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-2804539726498274977?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/2804539726498274977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=2804539726498274977&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2804539726498274977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2804539726498274977'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/10/qt-quick-game-programming.html' title='Qt Quick Game Programming'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/TMRBBgF941I/AAAAAAAAAKI/_QsdpyCXKXk/s72-c/qt_quick_game_programming_cover.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-6240260345720713323</id><published>2010-10-24T17:01:00.005+03:00</published><updated>2010-11-13T21:10:40.845+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>5-in-a-row</title><content type='html'>We released today a game called 5-in-a-row. It's implemented with Qt Quick / QML and designed for 2 players playing next to each other:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0cfzkKtnzfg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/0cfzkKtnzfg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Want it? Package for N900 as well as source codes are available from &lt;a href="http://quitcoding.com/?page=work#5inarow"&gt;here&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-6240260345720713323?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/6240260345720713323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=6240260345720713323&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6240260345720713323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6240260345720713323'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/10/5-in-row.html' title='5-in-a-row'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-2613891746122508688</id><published>2010-10-01T22:27:00.008+03:00</published><updated>2010-11-13T21:11:24.475+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Thanks &amp; Qt Dev Days</title><content type='html'>Today postman brought to me a package from Norway, containing this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/TKY3Jq-BAuI/AAAAAAAAAJ0/AejRppu7nuM/s1600/ambassador_tshirt.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/TKY3Jq-BAuI/AAAAAAAAAJ0/AejRppu7nuM/s320/ambassador_tshirt.JPG" alt="" id="BLOGGER_PHOTO_ID_5523162632309244642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Thanks! My contributions to ambassador program have been distracted by work... Which is of course filled with Qt, but mostly behind closed doors and not directly visible to anywhere.&lt;br /&gt;&lt;br /&gt;But I want to improve this and right here, right now&lt;span style="font-weight: bold;"&gt;*&lt;/span&gt; promise to release both source code and documentation soonish available. I will also attend to Qt Developer Days in Munich and hang around Nomovok booth, demoing and praising Qt &amp;amp; QML. Mention the keyword "fidelio", and I'll tell just for you how current Qt Quick is only the beginning and what will happen during 2011 to rule the world... Hoping to see You there!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/TKY3yiZDCaI/AAAAAAAAAJ8/nhtSWurDD-o/s1600/blog_banner.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 358px; height: 96px;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/TKY3yiZDCaI/AAAAAAAAAJ8/nhtSWurDD-o/s400/blog_banner.png" alt="" id="BLOGGER_PHOTO_ID_5523163334381341090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;*&lt;/span&gt;) This reminded me a &lt;a href="http://www.youtube.com/watch?v=ub747pprmJ8"&gt;Fatboy Slim classic&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-2613891746122508688?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/2613891746122508688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=2613891746122508688&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2613891746122508688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2613891746122508688'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/10/thanks-qt-dev-days.html' title='Thanks &amp; Qt Dev Days'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/TKY3Jq-BAuI/AAAAAAAAAJ0/AejRppu7nuM/s72-c/ambassador_tshirt.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-1653162623042647192</id><published>2010-02-25T16:44:00.005+02:00</published><updated>2010-11-13T21:11:40.777+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MeeGo'/><category scheme='http://www.blogger.com/atom/ns#' term='QML'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Desktop widgets with Qt &amp; QML</title><content type='html'>Writing desktop widgets for N900 using Qt is now possible, as &lt;a href="http://labs.trolltech.com/blogs/2010/02/24/qt-for-maemo-5-home-screen-widgets/"&gt; Harald Fernengel explained yesterday&lt;/a&gt; in Qt Labs.&lt;br /&gt;&lt;br /&gt;What I wanted to test based on this is that can desktop widgets be made also using QML? So I hacked together a Clock widget and with the similar technique also slightly modified Samegame widget:&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ElYHePoh4ng&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ElYHePoh4ng&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Source code for the simple clock is available in my &lt;a href="http://qt.gitorious.org/%7Ekgronholm/qt-labs/kgronholm-maemo5-homescreen"&gt;Gitorious branch&lt;/a&gt; so everyone can test and start to build cool Qt QML widgets in no time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-1653162623042647192?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/1653162623042647192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=1653162623042647192&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1653162623042647192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1653162623042647192'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/02/desktop-widgets-with-qt-qml.html' title='Desktop widgets with Qt &amp; QML'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4106891340282003178</id><published>2010-01-27T11:52:00.004+02:00</published><updated>2010-01-27T12:37:19.931+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Creating fluid user experiences</title><content type='html'>Recently we have been co-operating with &lt;a href="http://www.linjadesign.fi"&gt;Linja Design,&lt;/a&gt; brainstorming and prototyping UI/UX ideas. One of their concept is branded as "Zax 2.0", idea being to tilt the flickable area so that it reveals more content into the direction user is panning so he/she will see "further ahead". To understand what I'm talking about, please check &lt;a href="http://www.youtube.com/watch?v=6I3x04uDh3E"&gt;this video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I know there already is &lt;a href="http://www.cooliris.com"&gt;Cooliris&lt;/a&gt; and friends using similar method, but do you think this could be utilized still a bit more? Where and how would you use this if it would be easily available in the platform?&lt;br /&gt;&lt;br /&gt;I'm open to all ideas and to prove it, show here a world premiere of "Powered by Zax 2.0" 5-in-a-row game in N900:&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EHeU_7aHkMM&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/EHeU_7aHkMM&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;(And no, game is not available from anywhere yet, just under construction ;-) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4106891340282003178?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4106891340282003178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4106891340282003178&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4106891340282003178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4106891340282003178'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2010/01/creating-fluid-user-experiences.html' title='Creating fluid user experiences'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-2246378660845990768</id><published>2009-12-22T20:38:00.008+02:00</published><updated>2009-12-22T21:16:50.456+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Snowtter + Merry Xmas!</title><content type='html'>We released today a small application called "Snowtter" to bring N900 users that "Xmas is here, time to relax and enjoy!" - feeling. Basically it just shows Twitter messages related to holiday times, floating around with snowflakes &amp;amp; accelerometer support. But it's the idea that counts, right? =)&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5vA7NS2ezIw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/5vA7NS2ezIw&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If you want to see this in your N900:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure that you have the necessary Qt libraries installed (libqt4-gui, libqt4-network, libqt4-xml, libqt4-opengl). Qt 4.5 will do, but for better performance and graphics quality Qt 4.6 is highly recommended! (Instructions on how to install latest Qt 4.6 packages from extras-devel &lt;a href="http://wiki.maemo.org/Qt"&gt;here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Download the application package from &lt;a href="http://quitcoding.com/?page=work#snowtter"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Install the package with "dpkg -i snowtter_1.0_armel.deb". So ssh connection, sudo gainroot or &lt;a href="http://thenokiablog.com/2009/12/21/video-how-to-install-deb-files-on-nokia-n900/"&gt;red-pill-mode&lt;/a&gt; required (no install-file available for now, sorry)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Thanks to all the cool Maemo/Nokia/Qt people for this year and Merry Xmas For Everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-2246378660845990768?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/2246378660845990768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=2246378660845990768&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2246378660845990768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2246378660845990768'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/12/snowtter-merry-xmas.html' title='Snowtter + Merry Xmas!'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-1454348663664858962</id><published>2009-10-19T23:33:00.008+03:00</published><updated>2009-10-20T00:47:50.840+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>WebKit on (multitouch) steroids!</title><content type='html'>While being in Maemo Summit or in Qt Developer Days, did you notice this guy below? Did you ask from him "Have you been working with multitouch-enabled WebKit lately?" Why not? ;-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/StzNguPJmjI/AAAAAAAAAIQ/yFlcGCmid0s/s1600-h/starlight_in_qt_days.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/StzNguPJmjI/AAAAAAAAAIQ/yFlcGCmid0s/s320/starlight_in_qt_days.jpg" alt="" id="BLOGGER_PHOTO_ID_5394412415734094386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kimgro.blogspot.com/"&gt;Kimi&lt;/a&gt; has been working in project called "Starlight" and part of the project is to bring multitouch into WebKit. So while you look at the video below and think "Hmm, just another multitouch photo rotate&amp;amp;scale demo..." please notice that this is all done inside browser with just HTML, CSS &amp;amp; JavaScript! In other words: It's just a normal web page without any black magic.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;object height="246" width="400"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WCW561oVVxQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/WCW561oVVxQ&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="246" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Starlight has now public website &lt;a href="http://opensource.nokia.com/Starlight"&gt;here&lt;/a&gt;, more videos available in &lt;a href="http://opensource.nokia.com/Starlight/Videos"&gt;here&lt;/a&gt;, and a developer guide with API &amp;amp; examples &lt;a href="http://www.starlight-webkit.org/Devguide/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Isn't it just convenient that this was published about simultaneously with the information that &lt;a href="http://arstechnica.com/open-source/news/2009/10/next-gen-nokia-linux-devices-will-get-multitouch-and-qt-ui.ars"&gt;Maemo 6 will support multitouch&lt;/a&gt;... Sure beats my lame N810 &lt;a href="http://kgronholm.blogspot.com/2009/07/n810-multitouch-f-f-f-fun.html"&gt;multitouch hack&lt;/a&gt;! ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-1454348663664858962?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/1454348663664858962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=1454348663664858962&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1454348663664858962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1454348663664858962'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/10/webkit-on-multitouch-steroids.html' title='WebKit on (multitouch) steroids!'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/StzNguPJmjI/AAAAAAAAAIQ/yFlcGCmid0s/s72-c/starlight_in_qt_days.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-3798588132879889990</id><published>2009-10-15T22:25:00.004+03:00</published><updated>2009-10-15T22:36:50.278+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Maemo Summit + Qt Dev Days</title><content type='html'>We got back to Finland last night from our longish Helsinki-&gt;Amsterdam-&gt;Munich-&gt;Helsinki trip! Full load of excellent presentations, nice discussions with people and a strong feeling that things are proceeding into right direction!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/Std4AXEtVhI/AAAAAAAAAII/22zPI5Jkb-w/s1600-h/Qt_dev_days.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/Std4AXEtVhI/AAAAAAAAAII/22zPI5Jkb-w/s320/Qt_dev_days.jpg" alt="" id="BLOGGER_PHOTO_ID_5392911026388555282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Blogging with real content later, now I just want to thank everyone for participating!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-3798588132879889990?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/3798588132879889990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=3798588132879889990&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3798588132879889990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3798588132879889990'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/10/maemo-summit-qt-dev-days.html' title='Maemo Summit + Qt Dev Days'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/Std4AXEtVhI/AAAAAAAAAII/22zPI5Jkb-w/s72-c/Qt_dev_days.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-3947397105657188493</id><published>2009-09-28T22:32:00.008+03:00</published><updated>2009-09-29T15:01:24.668+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Animated Tabs</title><content type='html'>During the weekend I got inspired with the question: What could a tab-widget look like when implemented as a QGraphicsWidget and armed with QGraphicsEffects &amp;amp; Qt Animation framework?&lt;br /&gt;&lt;br /&gt;This is the first try:&lt;br /&gt;&lt;object width="420" height="348" class="BLOG_video_class" id="BLOG_video-ff35fae5bfeb6d00" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v19.nonxt3.googlevideo.com/videoplayback?id%3Dff35fae5bfeb6d00%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6E57BD0B42A41724FDE3A3D0FB56C20D82EF57F6.480E936144BB4042FCA9AD4DFA44F3CD53506A8A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dff35fae5bfeb6d00%26offsetms%3D5000%26itag%3Dw160%26sigh%3DVbKQe2yqSXrleE8BMRBa4f1RP7I&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="420" height="348" bgcolor="#FFFFFF"flashvars="flvurl=http://v19.nonxt3.googlevideo.com/videoplayback?id%3Dff35fae5bfeb6d00%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6E57BD0B42A41724FDE3A3D0FB56C20D82EF57F6.480E936144BB4042FCA9AD4DFA44F3CD53506A8A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dff35fae5bfeb6d00%26offsetms%3D5000%26itag%3Dw160%26sigh%3DVbKQe2yqSXrleE8BMRBa4f1RP7I&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Without explaining any further what/why/how (except that "mouse" icon is there just to show when button is down), I'd like to ask comments on how would you want tabs to behave? Note that the goal here is to have eye candy and usability, not necessarily long battery life... ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; To demo how this looks (and performs) in tablets, I built Qt 4.6 tp1 for N810. With reduced effects (it's after all just N810), the prototype behaves like this:&lt;br /&gt;&lt;object width="420" height="348" class="BLOG_video_class" id="BLOG_video-34dae6fcb16cf9cf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v18.nonxt5.googlevideo.com/videoplayback?id%3D34dae6fcb16cf9cf%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4FFFA073B143BB712EBD9C85075373502D7AEA55.CF84DB9CFA054615B50B6692E0CCC183C5BB18F%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D34dae6fcb16cf9cf%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7upbxnskNeXbsdGDafTY7B1p5zA&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="420" height="348" bgcolor="#FFFFFF"flashvars="flvurl=http://v18.nonxt5.googlevideo.com/videoplayback?id%3D34dae6fcb16cf9cf%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4FFFA073B143BB712EBD9C85075373502D7AEA55.CF84DB9CFA054615B50B6692E0CCC183C5BB18F%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D34dae6fcb16cf9cf%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7upbxnskNeXbsdGDafTY7B1p5zA&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Graphics:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Background: Aamos &amp;amp; Eelis&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Icons: Tango http://tango.freedesktop.org&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-3947397105657188493?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/3947397105657188493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=3947397105657188493&amp;isPopup=true' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3947397105657188493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3947397105657188493'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/09/animated-tabs.html' title='Animated Tabs'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-2849891334380405626</id><published>2009-07-27T14:54:00.005+03:00</published><updated>2009-07-28T09:16:16.197+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>N810 Multitouch F-F-F-Fun</title><content type='html'>I'm back from vacation, summer went fast as always! Tried to stay away from computers, spending the time with family &amp;amp; friends and enjoying the weather while it lasts... But I did have little coding fun also, testing how well "multitouch" would work in N810 ;-)&lt;br /&gt;&lt;br /&gt;Here comes video:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="350" height="290" class="BLOG_video_class" id="BLOG_video-effc1fbc9c390613" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v13.nonxt6.googlevideo.com/videoplayback?id%3Deffc1fbc9c390613%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D79F8FD944E3895BE0F10B179E22F7D004CF27FE8.4FBBBA90F76720DFFAA167BCE81418DC5612F091%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Deffc1fbc9c390613%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqfidsjMDA0XKenP3i8Bp3c1pwP0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="350" height="290" bgcolor="#FFFFFF"flashvars="flvurl=http://v13.nonxt6.googlevideo.com/videoplayback?id%3Deffc1fbc9c390613%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D79F8FD944E3895BE0F10B179E22F7D004CF27FE8.4FBBBA90F76720DFFAA167BCE81418DC5612F091%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Deffc1fbc9c390613%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqfidsjMDA0XKenP3i8Bp3c1pwP0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Like all respected magicians, I'll show how this trick works for the ones who didn't already know the behavior of (resistive, single-touch) touchscreens under multiple touches. As thp first commented, it is "using the 'merged' blob position that you get with the single touch screen and interpreting it as the middle of two or more equal-pressure points".&lt;br /&gt;&lt;br /&gt;Now here is a video showing the same demo in PC, with "cheat mode" turned on:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="350" height="290" class="BLOG_video_class" id="BLOG_video-295b9c48bc273d19" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt8.googlevideo.com/videoplayback?id%3D295b9c48bc273d19%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D449465AD4D0FFA92C525F226DC1BC9E7B1C1754B.3D614E9F88059FD235697A23D5349581C3F85307%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D295b9c48bc273d19%26offsetms%3D5000%26itag%3Dw160%26sigh%3DguOH_g3RjlgStSG8cmcjv6dqEu0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="350" height="290" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt8.googlevideo.com/videoplayback?id%3D295b9c48bc273d19%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D449465AD4D0FFA92C525F226DC1BC9E7B1C1754B.3D614E9F88059FD235697A23D5349581C3F85307%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D295b9c48bc273d19%26offsetms%3D5000%26itag%3Dw160%26sigh%3DguOH_g3RjlgStSG8cmcjv6dqEu0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So it's mostly useless... but somewhat f-f-f-fun :)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-2849891334380405626?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=295b9c48bc273d19&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=effc1fbc9c390613&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/2849891334380405626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=2849891334380405626&amp;isPopup=true' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2849891334380405626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2849891334380405626'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/07/n810-multitouch-f-f-f-fun.html' title='N810 Multitouch F-F-F-Fun'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-8835418360872286375</id><published>2009-06-15T15:54:00.004+03:00</published><updated>2009-06-15T20:08:25.509+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='GTK+'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Carl Worth, performance, GtkPerf</title><content type='html'>Carl Worth blogged &lt;a href="http://cworth.org/intel/performance_measurement/"&gt;here&lt;/a&gt; about Cairo 2D performance measurements:&lt;br /&gt;&lt;blockquote&gt;Various attempts at 2D-rendering benchmark suites have appeared and even become popular. Notable examples are x11perf and gtkperf. My claim is that these tools range from useless to actively harmful when the task is understanding performance of real applications.&lt;br /&gt;...&lt;br /&gt;Unfortunately, the workload of things like x11perf and gtkperf rarely come close to simulating practical workloads.&lt;/blockquote&gt;&lt;br /&gt;Should I be offended and sad as someone as respected as Carl blames my precious GtkPerf? Well of course not! Citing myself from &lt;a href="http://gtkperf.sourceforge.net/"&gt;GtkPerf website&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;I know that bencmarking tools (including GtkPerf) can be fooled and don't give real-life results. Yet, I belive that GtkPerf can be helpful to solve for example this kind of things:&lt;br /&gt;...&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So as seen, I fully agree (and have always agreed) that GtkPerf is not the tool to use for getting real-life application performance measurements. But what it is, is a very easy and fast way to get a view of the GTK+/GDK/Cairo performance of your system.&lt;br /&gt;&lt;br /&gt;These days I spend my time mostly with Qt and often benchmark the actual frame rate of the application, which with QGraphicsView-based UI is easily done for the whole view using the paintEvent() callback. And keeping the FPS visible when developing your new flashy UI really helps (at least me!) to spot &amp;amp; fix the performance regressions while they happen.&lt;br /&gt;&lt;br /&gt;The last thing Carl says is:&lt;br /&gt;&lt;blockquote&gt;The punchline is that we now have an easy way to benchmark 2D rendering in actual, real-world applications. If you see someone benchmarking with only toys like x11perf or gtkperf, go ahead and point them to this post, or the the cairo-perf-trace entry in the cairo FAQ, and insist on benchmarks from real applications.&lt;/blockquote&gt;&lt;br /&gt;So pointing: When measuring GTK+/Cairo performance trying to get accurate real-world results, please don't use GtkPerf. Instead use the cairo-perf-trace as noted, thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-8835418360872286375?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/8835418360872286375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=8835418360872286375&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8835418360872286375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8835418360872286375'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/06/carl-worth-performance-gtkperf.html' title='Carl Worth, performance, GtkPerf'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-9196392064662408550</id><published>2009-05-12T11:53:00.004+03:00</published><updated>2009-05-12T12:02:48.742+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Qt opens some more</title><content type='html'>I think offering &lt;a href="http://labs.trolltech.com/blogs/2009/01/14/nokia-to-license-qt-under-lgpl/"&gt;Qt with LGPL&lt;/a&gt; was already a good change towards openness, but now &lt;a href="http://labs.trolltech.com/blogs/2009/05/11/qt-public-repository-launched/"&gt;Qt opens some more&lt;/a&gt; with public &lt;a href="http://qt.gitorious.org/"&gt;Gitorious repository&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-9196392064662408550?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/9196392064662408550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=9196392064662408550&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9196392064662408550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9196392064662408550'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/05/qt-opens-some-more.html' title='Qt opens some more'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-3018625314959706190</id><published>2009-04-08T11:16:00.010+03:00</published><updated>2009-04-08T13:02:01.098+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Qt Animation framework</title><content type='html'>I've been working recently with &lt;a href="http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtanimationframework/"&gt;Qt Animation Framework&lt;/a&gt;, trying to learn how to utilize it efficiently. Below is a video showing circular carousel widget which uses the animation framework.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5cb9553f235bb90d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3D5cb9553f235bb90d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1704D29046464D0A6F80940F91C4DA1129C965F0.7CF55BD689941EF3D883D994139431839F973663%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5cb9553f235bb90d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DhlGHddKQwNgtL7yYFHIlBHYEpnY&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3D5cb9553f235bb90d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1704D29046464D0A6F80940F91C4DA1129C965F0.7CF55BD689941EF3D883D994139431839F973663%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5cb9553f235bb90d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DhlGHddKQwNgtL7yYFHIlBHYEpnY&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I need to still continue experimenting how to really extend the animation classes and use the whole state machine framework, but so far I'm impressed by the latest 2.2 API version. Originally my biggest concern about this whole "Kinetic" was that it would be too high-level and have suboptimal performance in embedded devices, but luckily that doesn't seem to be the case. Now with Qt 4.5, QGraphicsView starts to be very usable also in N810 and one just needs to know tips &amp;amp; tricks how to utilize it efficiently. Below is the same carousel widget in N810, using the "raster" graphics backend:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-fbfb84e2710c891d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt4.googlevideo.com/videoplayback?id%3Dfbfb84e2710c891d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D37DF4CF16E553ABBBB4F98333F371E121F7B7708.793A6005193218480F76E3CAB8A89979459B810E%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfbfb84e2710c891d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DlS_1yeU_X7k3ZHMta34W5rxZeyk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt4.googlevideo.com/videoplayback?id%3Dfbfb84e2710c891d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D37DF4CF16E553ABBBB4F98333F371E121F7B7708.793A6005193218480F76E3CAB8A89979459B810E%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfbfb84e2710c891d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DlS_1yeU_X7k3ZHMta34W5rxZeyk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;FPS up there means how many times QGraphicsView paintEvent() is called, so it drops when more drawing to view is needed, but stays quite healthy &amp;amp; usable anyway. Back to coding!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Special thanks for graphics used goes to:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Background: Tribe, by Alexander Timonov  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Icons: Kreski-Lines, by Holger Bauer&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-3018625314959706190?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=5cb9553f235bb90d&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=fbfb84e2710c891d&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/3018625314959706190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=3018625314959706190&amp;isPopup=true' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3018625314959706190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3018625314959706190'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/04/qt-animation-framework.html' title='Qt Animation framework'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-5058691431966344972</id><published>2009-03-27T09:36:00.006+02:00</published><updated>2009-03-27T09:47:29.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Latest OpenGL release</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_drxpHw1TyzE/ScyD2a6tMWI/AAAAAAAAAG4/KSfpPtZf4R8/s1600-h/opengl_logo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 136px;" src="http://1.bp.blogspot.com/_drxpHw1TyzE/ScyD2a6tMWI/AAAAAAAAAG4/KSfpPtZf4R8/s200/opengl_logo.jpg" alt="" id="BLOGGER_PHOTO_ID_5317770230979440994" border="0" /&gt;&lt;/a&gt;OpenGL 3.1 was &lt;a href="http://www.khronos.org/news/press/releases/khronos-releases-streamlined-opengl-3.1-specification/"&gt;released&lt;/a&gt; few days ago, and after the OpenGL 3.0 release fiasco, there are good news: &lt;span style="font-weight: bold;"&gt;OpenGL is not dead!&lt;/span&gt; This 3.1 release is getting close to what has been waited for long time and what was promised already in SIGGRAPH 2007 OpenGL BOF, offering new beginning for OpenGL in modern programmable GPUs without huge fixed API. Backwards compatibility is still hanging around with "GL_ARB_compatibility" but the future for clean cross-platform 3D API looks now much brighter than few months ago! Go on and download latest OpenGL 3.1 and GLSL 1.4 specifications from &lt;a href="http://www.opengl.org/registry/"&gt;OpenGL registry&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-5058691431966344972?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/5058691431966344972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=5058691431966344972&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/5058691431966344972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/5058691431966344972'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/03/latest-opengl-release.html' title='Latest OpenGL release'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_drxpHw1TyzE/ScyD2a6tMWI/AAAAAAAAAG4/KSfpPtZf4R8/s72-c/opengl_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4179796532944970491</id><published>2009-02-04T21:51:00.016+02:00</published><updated>2009-02-04T22:37:51.944+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>UI Pimpin'</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/SYn4P_6RluI/AAAAAAAAAGA/NXOOIHEfGI4/s1600-h/Screenshot-AnalogPad-5.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 90px; height: 90px;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/SYn4P_6RluI/AAAAAAAAAGA/NXOOIHEfGI4/s200/Screenshot-AnalogPad-5.png" alt="" id="BLOGGER_PHOTO_ID_5299039390315681506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The Qt widget contest results &lt;a href="http://www.qtsoftware.com/developer/pimp-my-widgets-developer-contest"&gt;have been announced&lt;/a&gt; and although segway slipped away this time, we got our 15s of fame with AnalogPad!&lt;br /&gt;&lt;br /&gt;But what I want to share here is the story behind our entry:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Most importantly: Although only my name is mentioned there, it was full teamwork with my brother Kim "The Webkit" Grönholm!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All started when I got backflash about the competition due after christmas and decided to hack 5-way analog navigator&lt;/li&gt;&lt;li&gt;I designed and implemented the thing for 2 evenings, it started to look OK but behaved badly...&lt;/li&gt;&lt;li&gt;Kimi offered to join the fun, although he happened to be in Korea(!) at the same time&lt;/li&gt;&lt;li&gt;So last 3 days before the due, I spent my evenings with this, sent sources to Kimi and received fresh code for next evening&lt;/li&gt;&lt;li&gt;I implemented mostly features, Kimi fixed them to work nicely and cleaned the code. Time difference between Finland and Korea didn't matter, it just added extra coolness into this co-operation as we worked kinda in two shifts!&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;And the rest is history... Project is now in &lt;a href="http://github.com/kgronholm/analogpad"&gt;Github&lt;/a&gt; and sources are GPLv3, so fork away!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4179796532944970491?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4179796532944970491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4179796532944970491&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4179796532944970491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4179796532944970491'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2009/02/ui-pimpin.html' title='UI Pimpin&apos;'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/SYn4P_6RluI/AAAAAAAAAGA/NXOOIHEfGI4/s72-c/Screenshot-AnalogPad-5.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-7595869565146536830</id><published>2008-12-31T14:05:00.003+02:00</published><updated>2008-12-31T14:14:37.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Happy New Year!</title><content type='html'>Here is our teamwork results for Qt Software "&lt;a href="http://trolltech.com/developer/pimp-my-widgets-developer-contest"&gt;Pimp My Widgets&lt;/a&gt;" Developer Contest:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Jkm5FiffuGU&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Jkm5FiffuGU&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Hacking was fun as always! Telling more about this later, but now: Happy New Year for you all!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-7595869565146536830?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/7595869565146536830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=7595869565146536830&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7595869565146536830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7595869565146536830'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/12/happy-new-year.html' title='Happy New Year!'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-9210650567154207195</id><published>2008-11-03T14:54:00.013+02:00</published><updated>2008-11-03T20:16:34.598+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Qt VKB</title><content type='html'>Realized last week that what I need (or want, luckily those match quite nicely these days) to do is a virtual keyboard prototype based on Qt... Got the basic UI in there during the weekend, so what we have now:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ea87ded1adee063" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt2.googlevideo.com/videoplayback?id%3D0ea87ded1adee063%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D544BC03595E1C21D0C82EFD8CA8A44430DAA54B4.2B285C059EBA81E708B14E8D1CE93D55CFC0B098%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dea87ded1adee063%26offsetms%3D5000%26itag%3Dw160%26sigh%3DV72PKN7pL_n1Z7wy7FrJWpTmL1w&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt2.googlevideo.com/videoplayback?id%3D0ea87ded1adee063%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D544BC03595E1C21D0C82EFD8CA8A44430DAA54B4.2B285C059EBA81E708B14E8D1CE93D55CFC0B098%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dea87ded1adee063%26offsetms%3D5000%26itag%3Dw160%26sigh%3DV72PKN7pL_n1Z7wy7FrJWpTmL1w&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Works also in N810 but the performance is lacking, it's not totally fluid.&lt;br /&gt;&lt;br /&gt;Plans:&lt;br /&gt;- Have to figure out proper layout(s), wouldn't want to copy directly e.g. from iPhone or N810&lt;br /&gt;- Support gestures and other usability tricks&lt;br /&gt;- After this, make more eye candy, animations etc. Not too much, but to help usability&lt;br /&gt;- Supporting word prediction and hit prediction is totally doable but would need more AI &amp;amp; grammar database integration, so not right now for this UI testing&lt;br /&gt;&lt;br /&gt;Anyway: If you got good layout &amp;amp; feature ideas, please share!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-9210650567154207195?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ea87ded1adee063&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/9210650567154207195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=9210650567154207195&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9210650567154207195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9210650567154207195'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/11/qt-vkb.html' title='Qt VKB'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-7138093940752203304</id><published>2008-10-26T09:45:00.011+02:00</published><updated>2008-10-26T11:45:35.630+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Brisbane</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SQQgS2UYkQI/AAAAAAAAAFU/1GCnqgCppFs/s1600-h/brisbane1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SQQgS2UYkQI/AAAAAAAAAFU/1GCnqgCppFs/s200/brisbane1.JPG" alt="" id="BLOGGER_PHOTO_ID_5261365772866326786" border="0" /&gt;&lt;/a&gt;I was in Brisbane this week, meeting Tro..Nokia Qt / Qt Extended developers. Weather was kinda variable: Tuesday morning started as very nice and sunny, but before evening it was raining and thundering heavily... Not that there would have been time to enjoy fresh air anyway, we spent it pretty efficiently in office.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal outcome of the trip was:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Qt (Extended) 4.5 will rock! (Note: first technology preview was just &lt;a href="http://trolltech.com/developer/preview-qt-4.5"&gt;released&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Future Qt versions will rock even more ;-)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Special thanks goes to Aaron, for good discussions and for having similar UI thoughts as yours truly. Hopefully there is more time to spend next time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-7138093940752203304?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/7138093940752203304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=7138093940752203304&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7138093940752203304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7138093940752203304'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/10/brisbane.html' title='Brisbane'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/SQQgS2UYkQI/AAAAAAAAAFU/1GCnqgCppFs/s72-c/brisbane1.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4516564907333249821</id><published>2008-09-29T11:27:00.010+03:00</published><updated>2008-09-29T12:47:53.477+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>QEdje</title><content type='html'>During the weekend I tested briefly &lt;a href="http://dev.openbossa.org/trac/qedje/"&gt;QEdje&lt;/a&gt; 0.3.0, here are my thoughts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;QZion canvas which is used for graphics rendering in QEdje has two implementations: QPainter based and QGraphicsView based, former being currently faster in embedded environments lacking FPU power. QZion API is still very light, containing basic canvas objects (rectangle, image, text) with under 2kLOC / implementation.&lt;/li&gt;&lt;li&gt;QEdje is the real beef, containing parser for &lt;a href="http://wiki.enlightenment.org/index.php/Edje"&gt;Edje&lt;/a&gt; theme files. What I like about Edje format is that it's not based on XML and it still gets compiled into binary mode when deploying, which should minimize the theming performance hit. I tested now only with provided samples, have to check how QEdje handles more complicated Edje themes.&lt;/li&gt;&lt;li&gt;Thinking why Edje, Evas, E17 etc. haven't become more popular, is the reason technical, just (lack of) community or what?&lt;/li&gt;&lt;li&gt;My ideas for QEdje developers would be to concentrate more on QGraphicsView backend as it offers more features and should get nice boost with &lt;a href="http://labs.trolltech.com/blogs/2008/09/22/sorry-guys/"&gt;performance improvements in Qt 4.5&lt;/a&gt;. Think if inheriting QGraphicsWidgets as QZion objects would offer more than current QGraphicsItems, like layouts and native QWidgets with QGraphicsProxyWidget. IMO Clutter API is currently a good compromize between features and simplicity, so analyze it and copy all suitable ideas into QZion ;-) &lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_drxpHw1TyzE/SOCYZv_GayI/AAAAAAAAAFE/hrSSnhEwbtI/s1600-h/qzion_n810.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_drxpHw1TyzE/SOCYZv_GayI/AAAAAAAAAFE/hrSSnhEwbtI/s200/qzion_n810.png" alt="" id="BLOGGER_PHOTO_ID_5251364733659278114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have to study some more Edje format and whether QZion is already providing "enough" features for it, please comment if I have missed something obvious here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4516564907333249821?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4516564907333249821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4516564907333249821&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4516564907333249821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4516564907333249821'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/qedje.html' title='QEdje'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_drxpHw1TyzE/SOCYZv_GayI/AAAAAAAAAFE/hrSSnhEwbtI/s72-c/qzion_n810.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-6787452689991442433</id><published>2008-09-24T15:31:00.016+03:00</published><updated>2008-09-24T22:18:12.737+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Summit #3</title><content type='html'>...bit late here, but summing up visually what I &lt;span style="font-style: italic; font-weight: bold;"&gt;really&lt;/span&gt; learned during the Maemo summit trip.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SNozfFHtcbI/AAAAAAAAAEU/rWCMearsAMs/s1600-h/IMG_3401.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SNozfFHtcbI/AAAAAAAAAEU/rWCMearsAMs/s200/IMG_3401.JPG" alt="" id="BLOGGER_PHOTO_ID_5249564924697211314" border="0" /&gt;&lt;/a&gt;Watch out, there are bears also in Berlin! Although they seemed a bit more friendly and colorful than the ones living in our forests.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SNo0VI4Za8I/AAAAAAAAAEk/-jGzJfLY-Sc/s1600-h/IMG_3430.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SNo0VI4Za8I/AAAAAAAAAEk/-jGzJfLY-Sc/s200/IMG_3430.JPG" alt="" id="BLOGGER_PHOTO_ID_5249565853419662274" border="0" /&gt;&lt;/a&gt;If (when) aliens attack, c-base is the place to go to locate suitable guns. GYR1 is reserved for me!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_drxpHw1TyzE/SNo0ezqZCHI/AAAAAAAAAEs/lud52TAnbZU/s1600-h/IMG_3428.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_drxpHw1TyzE/SNo0ezqZCHI/AAAAAAAAAEs/lud52TAnbZU/s200/IMG_3428.JPG" alt="" id="BLOGGER_PHOTO_ID_5249566019522463858" border="0" /&gt;&lt;/a&gt;There are actually beer (ok, "beer") that I can drink!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/SNo0l_r8kvI/AAAAAAAAAE0/NToWpjIuYdw/s1600-h/IMG_3434.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/SNo0l_r8kvI/AAAAAAAAAE0/NToWpjIuYdw/s200/IMG_3434.JPG" alt="" id="BLOGGER_PHOTO_ID_5249566143009297138" border="0" /&gt;&lt;/a&gt;Shopping and eating should be handled in public side of Berlin airport, as opposite to Helsinki where most of the shops appear after checking in. Doing this prevents situations where all you eat whole day is bread-based...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks to everybody attending and especially the ones who helped to organize the event!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-6787452689991442433?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/6787452689991442433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=6787452689991442433&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6787452689991442433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6787452689991442433'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/summit-3.html' title='Summit #3'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/SNozfFHtcbI/AAAAAAAAAEU/rWCMearsAMs/s72-c/IMG_3401.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-1715555944190168809</id><published>2008-09-19T22:09:00.004+03:00</published><updated>2008-09-19T22:21:54.557+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clutter'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Summit #2 (and Clutter)</title><content type='html'>As people have blogged (e.g.&lt;a href="http://jaaksi.blogspot.com/2008/09/c-base.html"&gt; here&lt;/a&gt; &amp;amp; &lt;a href="http://losca.blogspot.com/2008/09/clutter-usage-increases-in-future-nokia.html"&gt;here&lt;/a&gt;), maemo will get Clutter support! On related news, haven't had time to really hack clutteroad forward but last time I left it looking this:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-3070b312bbfe0fae" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt3.googlevideo.com/videoplayback?id%3D3070b312bbfe0fae%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2F89794B30E975C2AAEEB4D503662BB31C615EBB.677AA155C66E6DE392FD3645CA48F9BFA58B9B7D%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3070b312bbfe0fae%26offsetms%3D5000%26itag%3Dw160%26sigh%3DM-dsQwJ-B2jqFUjDWa4uU45raIM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt3.googlevideo.com/videoplayback?id%3D3070b312bbfe0fae%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330237814%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2F89794B30E975C2AAEEB4D503662BB31C615EBB.677AA155C66E6DE392FD3645CA48F9BFA58B9B7D%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D3070b312bbfe0fae%26offsetms%3D5000%26itag%3Dw160%26sigh%3DM-dsQwJ-B2jqFUjDWa4uU45raIM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-1715555944190168809?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=3070b312bbfe0fae&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/1715555944190168809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=1715555944190168809&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1715555944190168809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1715555944190168809'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/summit-2-and-clutter.html' title='Summit #2 (and Clutter)'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-9163432481152720416</id><published>2008-09-19T10:57:00.004+03:00</published><updated>2008-09-22T11:34:31.188+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Summit #1</title><content type='html'>Yes, summit has started and Ari's opening speech was promising, meaning the future of more open maemo and nokia! (..and that we should trust Yannick even though he is French and appeared late here.. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-9163432481152720416?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/9163432481152720416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=9163432481152720416&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9163432481152720416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/9163432481152720416'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/summit-1.html' title='Summit #1'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-6480966783103538725</id><published>2008-09-16T23:29:00.005+03:00</published><updated>2008-09-16T23:55:26.904+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Maemo Summit</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/SNAYd6TaaTI/AAAAAAAAAD4/A-3IKIObPZA/s1600-h/C-logo_claim_blue.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/SNAYd6TaaTI/AAAAAAAAAD4/A-3IKIObPZA/s200/C-logo_claim_blue.png" alt="" id="BLOGGER_PHOTO_ID_5246720468032579890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'll be having my part of fun later this week as I'm also attending to &lt;a href="https://wiki.maemo.org/Maemo_Summit_2008"&gt;Maemo Summit&lt;/a&gt;! Together with &lt;a href="http://losca.blogspot.com/"&gt;Timo&lt;/a&gt; we'll arrive in Berlin on Thursday evening and leave on Saturday evening, so we should experience most of the scheduled sessions. By looking at the &lt;a href="http://maemo.org/news/events/maemo_summit-001/"&gt;attendee list&lt;/a&gt;, there will be "long-time-no-see" -moments with many originals, but plenty of new faces have also appeared since my Ruoholahti-days. So waiting to meet you all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-6480966783103538725?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/6480966783103538725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=6480966783103538725&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6480966783103538725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6480966783103538725'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/maemo-summit.html' title='Maemo Summit'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/SNAYd6TaaTI/AAAAAAAAAD4/A-3IKIObPZA/s72-c/C-logo_claim_blue.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-24196103187937518</id><published>2008-09-03T11:25:00.003+03:00</published><updated>2008-09-03T18:38:10.533+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Chrome</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_drxpHw1TyzE/SL5Lev_QeQI/AAAAAAAAADo/_508AFubZzY/s1600-h/chrome1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_drxpHw1TyzE/SL5Lev_QeQI/AAAAAAAAADo/_508AFubZzY/s200/chrome1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5241710007955781890" /&gt;&lt;/a&gt;&lt;br /&gt;Yep, I tested the Google &lt;a href="http://www.google.com/chrome"&gt;Crome&lt;/a&gt; and &lt;a href="http://code.google.com/p/v8/"&gt;V8&lt;/a&gt; also. But as there are &lt;a href="http://www.techzilo.com/google-chrome-review/"&gt;so&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/Joe/archive/2008/09/02/google-chrome---review.aspx"&gt;many&lt;/a&gt; &lt;a href="http://www.synergymx.com/page.php?Title=Google_Chrome_Review/"&gt;reviews&lt;/a&gt;&lt;a href="http://www.techradar.com/news/internet/hands-on-google-s-chrome-462474"&gt; already&lt;/a&gt; &lt;a href="http://www.pcworld.com/article/150579/google_chrome_web_browser.html"&gt;floating&lt;/a&gt; in 'net, I'll just state: Google has entered nicely into browser war!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-24196103187937518?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/24196103187937518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=24196103187937518&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/24196103187937518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/24196103187937518'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/09/chrome.html' title='Chrome'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_drxpHw1TyzE/SL5Lev_QeQI/AAAAAAAAADo/_508AFubZzY/s72-c/chrome1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-294608941208557712</id><published>2008-08-04T23:56:00.007+03:00</published><updated>2008-11-15T12:17:37.061+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Beagle'/><title type='text'>Who let the dogs out!?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdtf7mZhUI/AAAAAAAAACs/Qo4GS3ZgTi4/s1600-h/beagle1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdtf7mZhUI/AAAAAAAAACs/Qo4GS3ZgTi4/s200/beagle1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5230769887556240706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdtqnaGgZI/AAAAAAAAAC0/OdphRA9vQxQ/s1600-h/beagle2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdtqnaGgZI/AAAAAAAAAC0/OdphRA9vQxQ/s200/beagle2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5230770071114514834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_drxpHw1TyzE/SJdtzgLfUPI/AAAAAAAAAC8/0lZd9LDrAQ8/s1600-h/beagle3.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_drxpHw1TyzE/SJdtzgLfUPI/AAAAAAAAAC8/0lZd9LDrAQ8/s200/beagle3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5230770223793000690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdt8vMK_YI/AAAAAAAAADE/9Ahi5q7jHYM/s1600-h/beagle4.png"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SJdt8vMK_YI/AAAAAAAAADE/9Ahi5q7jHYM/s200/beagle4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5230770382441217410" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-294608941208557712?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/294608941208557712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=294608941208557712&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/294608941208557712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/294608941208557712'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/08/who-let-dog-out.html' title='Who let the dogs out!?'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/SJdtf7mZhUI/AAAAAAAAACs/Qo4GS3ZgTi4/s72-c/beagle1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-2247493138626524113</id><published>2008-07-31T23:06:00.007+03:00</published><updated>2008-11-15T12:17:37.211+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Beagle'/><title type='text'>Beagle Board #2</title><content type='html'>How am I involved with &lt;a href="http://beagleboard.org"&gt;Beagle Board&lt;/a&gt;? Here are the steps to find out:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Go to Beagleboard Digi-Key &lt;a href="http://dkc1.digikey.com/us/en/PTM/296_BeagleBoard.html"&gt;training site&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Browse into slide 13 (and while on it, read all juicy details about bb!)&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Spot "Clutter &amp; Qt development" from there and compare it with my blog &lt;a href="http://kgronholm.blogspot.com/2008/07/wordle-of-this-blog-thanks-carlos.html"&gt;wordie output&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;That's how. Waiting for mine to arrive from UPS!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Edit:&lt;/b&gt;&lt;/i&gt; OK, OK, those who want faster access, slide 13 with minor tips below.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_drxpHw1TyzE/SJIds_H6QOI/AAAAAAAAACk/1Iy1cuoshtU/s1600-h/what_to_do_with_beagle.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand; width: 320px;" src="http://2.bp.blogspot.com/_drxpHw1TyzE/SJIds_H6QOI/AAAAAAAAACk/1Iy1cuoshtU/s400/what_to_do_with_beagle.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5229274776026628322" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-2247493138626524113?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/2247493138626524113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=2247493138626524113&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2247493138626524113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/2247493138626524113'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/07/beagle-board-2.html' title='Beagle Board #2'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_drxpHw1TyzE/SJIds_H6QOI/AAAAAAAAACk/1Iy1cuoshtU/s72-c/what_to_do_with_beagle.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-8863423486027353434</id><published>2008-07-23T22:46:00.006+03:00</published><updated>2008-07-24T00:42:42.999+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clutter'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Clutteroad</title><content type='html'>So as expected, I gave &lt;a href="http://www.clutter-project.org"&gt;Clutter 0.8&lt;/a&gt; a little test drive. Literally... =)&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/k9Eif4BXxLQ"&gt;  &lt;embed src="http://www.youtube.com/v/k9Eif4BXxLQ" type="application/x-shockwave-flash" width="425" height="350"&gt;&lt;/embed&gt;  &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Going to add a bit more eye candy in there and push Clutter API further, we'll see what comes out. Currently the biggest problem is collision detection, tried to utilize:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.clutter-project.org/docs/clutter/0.8/ClutterStage.html#clutter-stage-get-actor-at-pos"&gt;clutter_stage_get_actor_at_pos()&lt;/a&gt; - Separated road &amp; background into own images/actors, but having a problem that clutter_stage_get_actor_at_pos() doesn't seem to ignore the transparent part of the image in picking.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.clutter-project.org/docs/clutter/0.8/ClutterStage.html#clutter-stage-read-pixels"&gt;clutter_stage_read_pixels()&lt;/a&gt; - The RGBA color could be used to see if car is on grass (green) or on road (brown). But for some reason the outcome was not clear, even when making sure the pixel is taken next to car (not _from_ the car) and driving on top of a black&amp;white chess board...&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Collisions to other cars etc. should not be a problem with clutter_stage_get_actor_at_pos() but what could be cleanest way to detect the track? Flash has &lt;a href="http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary534.html"&gt;hitTest&lt;/a&gt; for this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-8863423486027353434?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/8863423486027353434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=8863423486027353434&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8863423486027353434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/8863423486027353434'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/07/clutteroad.html' title='Clutteroad'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-6986397122226794039</id><published>2008-07-04T22:06:00.005+03:00</published><updated>2008-11-15T12:17:37.374+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>One picture is worth...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_drxpHw1TyzE/SG50_k1w_qI/AAAAAAAAACc/jJgXgfbf6mc/s1600-h/wordle.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_drxpHw1TyzE/SG50_k1w_qI/AAAAAAAAACc/jJgXgfbf6mc/s200/wordle.png" alt="" id="BLOGGER_PHOTO_ID_5219237653738749602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://wordle.net/"&gt;Wordle&lt;/a&gt; of this blog, thanks &lt;a href="http://www.notacloud.com/blog/?p=39"&gt;Carlos&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-6986397122226794039?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/6986397122226794039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=6986397122226794039&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6986397122226794039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/6986397122226794039'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/07/wordle-of-this-blog-thanks-carlos.html' title='One picture is worth...'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_drxpHw1TyzE/SG50_k1w_qI/AAAAAAAAACc/jJgXgfbf6mc/s72-c/wordle.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4843638376411654525</id><published>2008-06-26T23:29:00.006+03:00</published><updated>2008-06-27T00:59:04.171+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clutter'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='GTK+'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Clutter</title><content type='html'>The 0.8 version of &lt;a href="http://www.clutter-project.org/"&gt;Clutter&lt;/a&gt; is coming out soonish from the excellent &lt;a href="http://o-hand.com/"&gt;ohand&lt;/a&gt; people, containing again &lt;a href="http://www.clutter-project.org/blog/?p=57"&gt;massive improvements&lt;/a&gt;! I started to love Clutter when 0.2 was released ~1.5 years ago, it was just so easy to create functional &amp;amp; eye candy applications with its refreshingly clean API.&lt;br /&gt;&lt;br /&gt;All started with the question "How can one make effect [XYZ] using GTK+?" and after some pondering my answer was "You can't"... Of course these requested things would have been possible with Cairo (too low-level, hard &amp;amp; slow) and/or "just" forking GTK+ and adding ugly magic which would make it API&amp;amp;ABI incompatible with 2.x (no-no-no). After some studying Clutter appeared to be the best candidate for the job, and I had a lot of fun with it during 0.2-0.4 versions. Sadly GTK+ hasn't progressed much since then when it comes to GUIs, layouts &amp;amp; theming are quite static, &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=444659"&gt;timeline&lt;/a&gt; is not in, no native canvas etc. Luckily &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=318807"&gt;offscreen rendering&lt;/a&gt; is progressing in trunk and GTK+ 3.x work is going on so we have hope for sweeter future =)&lt;br /&gt;&lt;br /&gt;Anyway, I've been spending recently most of the hacking time with Qt (and btw liking what trolls have done with &lt;a href="http://doc.trolltech.com/4.4/graphicsview.html"&gt;Graphics View Framework&lt;/a&gt; in 4.4) but wanna-wanna-wanna refresh myself also with Clutter now when 0.8 comes out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4843638376411654525?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4843638376411654525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4843638376411654525&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4843638376411654525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4843638376411654525'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/06/clutter.html' title='Clutter'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4099717340354303466</id><published>2008-06-05T11:43:00.011+03:00</published><updated>2008-11-15T12:17:37.619+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Beagle'/><title type='text'>Beagle Board</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://beagleboard.org/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/SEenr3EPkCI/AAAAAAAAACU/Mr_04H2fMNk/s200/beagleboard.jpg" alt="" id="BLOGGER_PHOTO_ID_5208315866035228706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm waiting to get one of &lt;a href="http://beagleboard.org/"&gt;these&lt;/a&gt; in my hands!&lt;br /&gt;&lt;blockquote style="font-family: trebuchet ms; color: rgb(102, 102, 102);"&gt;         The Beagle Board is a         &lt;i&gt;low-cost, fan-less&lt;/i&gt;         single-board         &lt;i&gt;computer&lt;/i&gt;         based on Texas Instruments'         &lt;a href="http://www.ti.com/omap35x"&gt;OMAP35x device family,&lt;/a&gt;         with all of the expandability of today's desktop machines, but         &lt;i&gt;without the bulk, expense, or noise.&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4099717340354303466?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4099717340354303466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4099717340354303466&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4099717340354303466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4099717340354303466'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/06/beagle-board.html' title='Beagle Board'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/SEenr3EPkCI/AAAAAAAAACU/Mr_04H2fMNk/s72-c/beagleboard.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-3476318229026289128</id><published>2008-05-28T11:33:00.005+03:00</published><updated>2008-11-15T12:17:37.875+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>T61 + Hardy == Perfect match?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_drxpHw1TyzE/SD0b4ruqmII/AAAAAAAAACM/IUcLFKJ_jiM/s1600-h/ubn00055.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_drxpHw1TyzE/SD0b4ruqmII/AAAAAAAAACM/IUcLFKJ_jiM/s200/ubn00055.png" alt="" id="BLOGGER_PHOTO_ID_5205347404935239810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have always been a bit "late adopter" when it comes to upgrading into newer distro. As a Ubuntu user I switched my laptop into Hardy-time ~2 weeks ago, and for all you Lenovo T61 users: It's worth it! Currently I have no problems whatsoever, slight annoyances with Gutsy (wlan disconnects, screen brightness, HW-keys, suspend) are all working and haven't even found any regressions... =)&lt;br /&gt;&lt;br /&gt;So I can fully recommend T61 as a nice Linux/Ubuntu workhorse for everyone, check &lt;a href="http://www.thinkwiki.org/wiki/Installation_instructions_for_the_ThinkPad_T61"&gt;ThinkWiki&lt;/a&gt; for configuration tips on different distros.&lt;br /&gt;&lt;br /&gt;Now I'd need to make a clean install for desktop PC as upgrading it all the way from Breezy means it's not as sleek and clean as it could be... Not sure if I'm brave enough to test the Kubuntu KDE4 Remix -version &lt;a href="http://losca.blogspot.com/"&gt;Timo&lt;/a&gt; kindly offered, we'll see!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-3476318229026289128?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/3476318229026289128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=3476318229026289128&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3476318229026289128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3476318229026289128'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/05/t61-hardy-heaven.html' title='T61 + Hardy == Perfect match?'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_drxpHw1TyzE/SD0b4ruqmII/AAAAAAAAACM/IUcLFKJ_jiM/s72-c/ubn00055.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-7865258039222536749</id><published>2008-05-18T16:13:00.006+03:00</published><updated>2008-09-10T08:38:51.330+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='GTK+'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>GtkPerf &amp; Qt</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gtkperf.sourceforge.net/images/sc_main.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://gtkperf.sourceforge.net/images/sc_main.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The reason why &lt;a href="http://gtkperf.sourceforge.net/"&gt;GtkPerf&lt;/a&gt; exists is that at that time I needed an easy tool to test the performance of GTK+ widgets &amp;amp; graphics. Mainly it was used to spot performance regressions and test how theme changes affected the performance, as well as different patches in GTK+.&lt;br /&gt;&lt;br /&gt;There has been some requests like this floating around: "&lt;span style="font-style: italic;"&gt;Would you also make QtPerf, with similar widgets and features. This way it would be possible to make GTK+ vs. Qt testing...&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Short answer: No&lt;br /&gt;&lt;br /&gt;A bit longer one: No, that would be bad and could lead into unneeded flamings&lt;br /&gt;&lt;br /&gt;Extensive answer: The actual result  ( = score) of GtkPerf is quite meaningless as there are plenty of moving parts which affect to score. It would be totally possible to create similar application with Qt, using Qt widgets. But in wrong hands it could lead into "See, X-toolkit is faster than Y-toolkit, here are the results"-kind of things where X and Y can switch places based on the moon phase... So GtkPerf is mostly only usable when you know your system, do some tweaking, test again etc.&lt;br /&gt;&lt;br /&gt;BUT: I'm considering implementing something to test performance of &lt;a href="http://doc.trolltech.com/4.4/qgraphicsview.html"&gt;QGraphicsView&lt;/a&gt;, the canvas in Qt. This would test drawing speed, rotation, scaling etc. for different items, pimaps, &lt;a href="http://doc.trolltech.com/4.4/graphicsview.html#embedded-widget-support"&gt;widgets-on-canvas&lt;/a&gt; and so forth. In case there exist such tool already, please let me know?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-7865258039222536749?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/7865258039222536749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=7865258039222536749&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7865258039222536749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/7865258039222536749'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/05/gtkperf-qt.html' title='GtkPerf &amp; Qt'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-3521148593695526351</id><published>2008-05-15T00:47:00.010+03:00</published><updated>2008-05-18T16:10:08.548+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Hackergotchi</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/kgronholm/SCtnRKvHz_I/AAAAAAAAAB8/BG4ogNJ5dCI/kaitsu.png"&gt;&lt;img style="margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; border: 0;" src="http://lh3.ggpht.com/kgronholm/SCtnRKvHz_I/AAAAAAAAAB8/BG4ogNJ5dCI/kaitsu.png" alt="" border="0" /&gt;&lt;/a&gt;Ah, how can I have survived my life without a &lt;a href="http://en.wikipedia.org/wiki/Hackergotchi"&gt;Hackergotchi&lt;/a&gt;! When inspiration strikes, I might try more cartoonish version and learn to use Inkscape like &lt;a href="http://howto.nicubunu.ro/inkscape_face_draw/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-3521148593695526351?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/3521148593695526351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=3521148593695526351&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3521148593695526351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/3521148593695526351'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/05/hackergotchi.html' title='Hackergotchi'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/kgronholm/SCtnRKvHz_I/AAAAAAAAAB8/BG4ogNJ5dCI/s72-c/kaitsu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-4611983303710189918</id><published>2008-05-14T11:23:00.007+03:00</published><updated>2008-11-15T12:17:38.310+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='Qt'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Qt &amp; N810</title><content type='html'>Aamos (just like his father) has always been into &lt;a href="http://www.gnome.org/"&gt;Gnomes&lt;/a&gt;, but for the past months he has started digging also &lt;a href="http://trolltech.com/"&gt;Trolls.&lt;/a&gt; As a fee-minded father I have decided to let him play with them (Trolls don't bite, do they?), within certain boundaries. After all, you can't decide what/who you wanna hack with when you are older unless you try, right?&lt;br /&gt;&lt;br /&gt;Aamos is still too young to sit (babies should not be standing/sitting on their own until ~3 months old), so today he decided to test Qt in his N810 using &lt;a href="http://qtablet.laginen.net/"&gt;QTablet&lt;/a&gt;. This allowed him to enjoy &lt;a href="http://doc.trolltech.com/4.4/graphicsview-collidingmice.html"&gt;Colliding Mice&lt;/a&gt; while laying on his playing carpet. I'm quite positive that after this he will open terminal in N810 and use vi to create some cool experiments testing the limits of Qt 4.4 in N810!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_drxpHw1TyzE/SCqisavHz6I/AAAAAAAAAAY/dAAmhidG5qA/s1600-h/n810_aamos.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_drxpHw1TyzE/SCqisavHz6I/AAAAAAAAAAY/dAAmhidG5qA/s320/n810_aamos.png" alt="" id="BLOGGER_PHOTO_ID_5200147603727568802" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_drxpHw1TyzE/SCqi_avHz7I/AAAAAAAAAAg/sWnI0foei3c/s1600-h/n810_mice.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_drxpHw1TyzE/SCqi_avHz7I/AAAAAAAAAAg/sWnI0foei3c/s320/n810_mice.png" alt="" id="BLOGGER_PHOTO_ID_5200147930145083314" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-4611983303710189918?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/4611983303710189918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=4611983303710189918&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4611983303710189918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/4611983303710189918'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/05/qt-n810.html' title='Qt &amp; N810'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_drxpHw1TyzE/SCqisavHz6I/AAAAAAAAAAY/dAAmhidG5qA/s72-c/n810_aamos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5674163510758480535.post-1499915582584931463</id><published>2008-05-13T18:37:00.008+03:00</published><updated>2008-05-18T16:11:54.788+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Blogging?</title><content type='html'>&lt;span style="font-style: italic;"&gt;Pros:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Able to reveal for world what you're thinking &amp;amp; doing (like someone is reading...)&lt;/li&gt;&lt;li&gt;Everybody does it&lt;/li&gt;&lt;li&gt;Take a break from hectic work&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Cons:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Might reveal something semi-confidential (so stay tuned! ;-)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Everybody does it&lt;/li&gt;&lt;li&gt;Your brake from work results to hectic increase..&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Result:&lt;/span&gt; Bloggin is so 90's but so am I -&gt; Here we go! [&lt;a href="http://www.youtube.com/watch?v=IQR9bw-4R08"&gt;*&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5674163510758480535-1499915582584931463?l=kgronholm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kgronholm.blogspot.com/feeds/1499915582584931463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5674163510758480535&amp;postID=1499915582584931463&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1499915582584931463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5674163510758480535/posts/default/1499915582584931463'/><link rel='alternate' type='text/html' href='http://kgronholm.blogspot.com/2008/05/blogging.html' title='Blogging?'/><author><name>Kaitsu</name><uri>http://www.blogger.com/profile/12803965758063269561</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://bp3.blogger.com/_drxpHw1TyzE/SCnRIavHz4I/AAAAAAAAAAM/F9gI-PausXE/S220/kaj_and_eelis.png'/></author><thr:total>0</thr:total></entry></feed>
