<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://planet-soc.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Blog entries from KDE SoC students and mentors</title>
 <link>http://planet-soc.com/organization/KDE/universe</link>
 <description>Organization universe blog entries</description>
 <language>en</language>
<item>
 <title>Amarok &amp; NPR :: 13 Years of News Media Now Available at Your Fingertips</title>
 <link>http://planet-soc.com/node/4422</link>
 <description>&lt;p&gt;Earlier this summer I had noticed that National Public Radio (&lt;a href=&quot;http://www.npr.org&quot; title=&quot;NPR.org&quot;&gt;NPR&lt;/a&gt;) launched a brand new &lt;a href=&quot;http://www.npr.org/blogs/inside/2008/07/npr_api_is_live_on_nprorg.html&quot; title=&quot;NPR API Announcement&quot;&gt;open API&lt;/a&gt; based on open source technologies. My initial reaction was at best skeptical. I assumed any sort of &amp;#8220;API&amp;#8221; released by a major media outlet would turn out to be nothing more than a few customizable RSS feeds. If the company was particularly progressive the RSS feeds might include full articles, rather than the neutered one-sentence teasers you find in &lt;a href=&quot;http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml&quot; title=&quot;NYT&amp;#039;s neutered feed&quot;&gt;all&lt;/a&gt; &lt;a href=&quot;http://www.foxnews.com/xmlfeed/rss/0,4313,0,00.rss&quot; title=&quot;Fox News&amp;#039; neutered feed&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://feeds.cbsnews.com/CBSNewsMain&quot; title=&quot;CBS&amp;#039; neutered feed&quot;&gt;big&lt;/a&gt; &lt;a href=&quot;http://rss.cnn.com/rss/cnn_topstories.rss&quot; title=&quot;CNN&amp;#039;s neutered feed&quot;&gt;name&amp;#8217;s&lt;/a&gt; syndicated content.&lt;br /&gt;
I couldn&amp;#8217;t have been more mistaken. NPR&amp;#8217;s API is no small potatoes. Just take a look at the comprehensive &lt;a href=&quot;http://www.npr.org/api/queryGenerator.php&quot; title=&quot;NPR API Query Generator&quot;&gt;Query Generator&lt;/a&gt; to get an inkling of the types of complex queries you can create. Looking at the Query Generator also sheds some light on the content you can retrieve using the API. The &lt;a href=&quot;http://www.npr.org/api/index.php&quot; title=&quot;NPR API Overview&quot;&gt;API&amp;#8217;s main page&lt;/a&gt; says the API exposes the &lt;em&gt;entire&lt;/em&gt; NPR archive of content starting from the launch of the NPR website in 1995. Just how big is this archive? Over 250,000 stories including text, images, video, and audio!&lt;br /&gt;
This quote from the article announcing the API caught my eye immediately:&lt;/p&gt;

&lt;p&gt;There were quite a few questions that we addressed when developing the API, but one thing that was not really in question was the need to open as much of our content as possible.1&lt;/p&gt;

&lt;p&gt;This isn&amp;#8217;t the first open media API. BBC was the first to offer a public open access API, however BBC&amp;#8217;s API is restricted to the content from the past 7-days. Seven days! That&amp;#8217;s nothing compared to the (approx.) 4748 days - and counting - that NPR&amp;#8217;s API offers. NPR and the BBC are two large companies leading the technological shift towards open and free information.&lt;br /&gt;
But that&amp;#8217;s only half the story.&lt;br /&gt;
After discovering this fantastic API I had to do something with it, and the new service architecture in &lt;a href=&quot;http://www.amarok.kde.org&quot;&gt;Amarok 2&lt;/a&gt; provided the perfect platform to build a NPR mashup. That was several months ago, and at the time the scripting API in Amarok was still being flesh out (Thanks to &lt;a href=&quot;http://amarok.kde.org/en/aggregator/sources/16&quot; title=&quot;Peter&amp;#039;s Amarok syndicated blog&quot;&gt;Peter&lt;/a&gt;). On Monday I noticed the BBC scriptable service &lt;a href=&quot;http://amarok.kde.org/blog/archives/826-There-is-a-BBC-in-my-Amarok.html&quot; title=&quot;There is a BBC in my Amarok&quot;&gt;Nikolaj had created&lt;/a&gt; for Amarok 2. I happened to have several hours of free time, so I cooked up a similar service for NPR:&lt;br /&gt;
&lt;a href=&quot;http://www.binaryelysium.com/images/Amarok_npr2.png&quot;&gt;&lt;img width=&quot;400&quot; height=&quot;239&quot; src=&quot;http://www.binaryelysium.com/images/Amarok_npr2_thumb.png&quot; /&gt;&lt;a /&gt;&lt;a href=&quot;http://www.binaryelysium.com/images/Amarok_npr3.png&quot;&gt;&lt;img width=&quot;400&quot; height=&quot;239&quot; src=&quot;http://www.binaryelysium.com/images/Amarok_npr3_thumb.png&quot; /&gt;&lt;/a&gt;&lt;a img width=&quot;400&quot; height=&quot;239&quot; src=&quot;http://www.binaryelysium.com/images/Amarok_npr1_thumb.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
You can get it at &lt;a href=&quot;http://www.kde-apps.org/content/show.php?content=92543&quot; title=&quot;kde-apps NPR Service&quot;&gt;kde-apps&lt;/a&gt; or via the &amp;#8220;Get More Scripts&amp;#8221; button in Amarok 2&amp;#8217;s Script Manager.&lt;br /&gt;
There is definitely room for improvement and in fact here are a few things I plan to do with it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Display more than 20 stories under a category&lt;/li&gt;
&lt;li&gt;Sort content by date&lt;/li&gt;
&lt;li&gt;Support searching&lt;/li&gt;
&lt;li&gt;Display the full articles, with images, in the context view&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Major props and thanks go out to the entire NPR technical team and all the contributors who made API a reality.&lt;/p&gt;

&lt;ol class=&quot;footnotes&quot;&gt;
&lt;li id=&quot;footnote_0_49&quot; class=&quot;footnote&quot;&gt; &lt;a href=&quot;http://www.npr.org/blogs/inside/2008/07/npr_api_is_live_on_nprorg.html&quot; title=&quot;NPR API is Live on NPR.org&quot;&gt;NPR API is Live on NPR.org&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
 <comments>http://planet-soc.com/node/4422#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Thu, 06 Nov 2008 05:21:21 +0100</pubDate>
 <dc:creator>ramblurr</dc:creator>
 <guid isPermaLink="false">4422 at http://planet-soc.com</guid>
</item>
<item>
 <title>Exporting contacts from Verizon to Gmail</title>
 <link>http://planet-soc.com/node/4223</link>
 <description>&lt;p&gt;I got a &lt;a href=&quot;http://www.t-mobileg1.com/&quot;&gt;G1&lt;/a&gt; today.&lt;br /&gt;
That deserves a post unto itself, but I wanted to share a solution an annoying issue regarding switching from Verizon to T-Mobile. Before I got the G1 I had a LG-VX9800 (yes, ancient, I know) with around 200 contacts. Obviously one of the first things I wanted to do when I got my G1 was transfer all my contacts from the LG to the G1. There are several ways to do this&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Go to a Verizon store and pay $10 for data backup&lt;/li&gt;
&lt;li&gt; Buy a USB Cable for the LG-VX9800, and use &lt;a href=&quot;http://www.bitpim.org/&quot;&gt;bitpim&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; Manually copy (type) your contacts into the G1/Gmail&lt;/li&gt;
&lt;li&gt; Use my method&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There was no way I was going to pay $10 for what should be a simple &amp;#8220;Export,&amp;#8221; so #1 was crossed out. I&amp;#8217;m impatient and didn&amp;#8217;t want to wait for a cable to be delivered and neither did I want to pay the money for one. There goes #2. I didn&amp;#8217;t even consider #3; I just listed it for completeness sake.&lt;br /&gt;
That leaves my somewhat difficult and unreliable method. Basically, what I do is use Verizon&amp;#8217;s &amp;#8220;Backup Assistant&amp;#8221; tool to send my contacts to Verizon&amp;#8217;s website. Then I save the source of the &amp;#8220;Print Contacts&amp;#8221; page - because there is no export feature. With a little ruby I parse the file into Gmail&amp;#8217;s &lt;a href=&quot;http://theregoesdave.com/2008/10/17/importing-contacts-into-gmail-guide-to-google-contact-csv-fields/&quot;&gt;CSV format&lt;/a&gt; and import the file via the Gmail contacts page.&lt;br /&gt;
Here&amp;#8217;s a quick howto.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; On your Verizon phone go to &amp;#8220;Get Going -&amp;gt; Get a New App -&amp;gt; Backup Assistant&amp;#8221; and install it for $1.50 a month.&lt;/li&gt;
&lt;li&gt; Follow the prompts and backup your contacts.&lt;/li&gt;
&lt;li&gt; Go to the &lt;a href=&quot;http://www.verizonwireless.com/backupassistant&quot;&gt;Verizon backup website &lt;/a&gt;and sign in.&lt;/li&gt;
&lt;li&gt; View your contacts and click the &amp;#8220;Print Contacts&amp;#8221; link. Save the source of this page to a file&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.binaryelysium.com/code/vzwparser.rb&quot;&gt;Download this&lt;/a&gt; script and run it against the saved html file. Save the output in &amp;#8220;contacts.csv&amp;#8221;&lt;/li&gt;
&lt;li&gt; Go to the Contacts page in Gmail and select Import, and upload &amp;#8220;contacts.csv&amp;#8221; &lt;em&gt;Note:&lt;/em&gt; I suggest using the &amp;#8220;add these imported contacts to&amp;#8221; a new group feature. Because you will likely have to merge and cleanup the imported contacts.&lt;/li&gt;
&lt;li&gt; Import and Enjoy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; My script only grabs the following information from the Verizon contact list: Name, Email, Work Phone, Mobile Phone, and Home Phone.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/4223#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Fri, 24 Oct 2008 01:10:30 +0200</pubDate>
 <dc:creator>ramblurr</dc:creator>
 <guid isPermaLink="false">4223 at http://planet-soc.com</guid>
</item>
<item>
 <title>Why Nepomuk could not fully replace (My)SQL in Amarok (yet)</title>
 <link>http://planet-soc.com/node/4064</link>
 <description>&lt;p&gt;This is another post about collection backends in Amarok. The others posts explained the switch to MySQL embedded and tried to address some of the concerns. Jefferai also &lt;a href=&quot;http://amarok.kde.org/blog/archives/812-MySQL-in-Amarok-2-The-Reality.html&quot; target=&quot;_blank&quot;&gt;wrote&lt;/a&gt; a few things about Nepomuk in Amarok (and why it will not fully replace the sql based collections) which I want to comment on and add to.&lt;br /&gt;
There are user asking: &amp;#8220;There is Nepomuk in KDE for storing meta data why the switch to MySQL embedded you could just use Nepomuk and drop sql collection all together.&amp;#8221; With reasons like: &amp;#8220;Nepomuk can do this and that better and one storage in KDE for everything is best.&amp;#8221;  They are not complete wrong, there are good reasons to use Nepomuk (data sharing between applications, system wide searching, using strigi(and taglib) for collection scanning at a central place for all applications once, interconnect the data with other data (like let Kmail store where I got that song from), and others)&lt;br /&gt;
But Jefferai is right when he says that Nepomuk can not replace the sql collection for everyone and every use case. At least not for the short and longer midterm (;-)).&lt;br /&gt;
Why? Not everyone will or could run Nepomuk for different reasons. The most  important one: It  is a quite complex big software in terms of memory usage (though I think that will improve in time and the amount of available memory in computers is growing fast) and CPU usage.  Another issue is: At least in the short and midterm it it will be significant slower than the MySQL based collection. It is not useless slow but well sqlite isn&amp;#8217;t useless slow either (faster than Nepomuk atm) and people complained. So: For slower older computers, lightweight media devices, mobile devices, big collections,  java &amp;#8220;haters&amp;#8221; even a perfect done Nepomuk collection with a bug free Nepomuk (we are not there yet&amp;#8230;) would be out of question.&lt;/p&gt;

&lt;p&gt;I expect some of those issues to improve over time. (I hope we will see a faster C/C++ based storage backend for Nepomuk). But still Nepomuk is a new technology and there is not much experience with it yet amoung users, developers and important here &amp;#8220;developing users&amp;#8221; (those who create small scripts and apps to work on the sql data from amarok to do different things with that, mostly for their own usage).&lt;/p&gt;

&lt;p&gt;Don&amp;#8217;t get me wrong: I like Nepomuk and it possibilities for Amarok. It is not useless slow. In fact I am using it as my main collection backend in Amarok for months now. But it is in a similar state as KDE 4 in pre 4.0 days. You could use it but it not feature complete, it is not really stable it has its issues and there will be major changes to some of its parts. Well I hoped to have it (and the related Nepomuk service) in a better shape by now. Sorry for that, my time is very limited at the moment but work has not stopped fully and I am still planing to bring it into a useful shape.&lt;/p&gt;

&lt;p&gt;A few words on the Nepomuk service: It will monitor Nepomuk/Strigi for new music and use taglib to read data Strigi can not read (yet?) to fill it. It then creates new music (tracks, artists and so on) resources in the Nepomuk storage. It should also inform interested applications about new music. Overall it aims to have always all music of the user in an easy to access way available for use in media players, music management applications and others.&lt;/p&gt;

&lt;p&gt;That should make it easier (and faster!) for Amarok (and others) to use the data.&lt;/p&gt;

&lt;p&gt;For example at the moment (ontology not final) to get a QStringList of all artists of the music on the computer in your application is as easy as (when using Strigi, Nepomuk and the unreleased service) :&lt;/p&gt;

&lt;pre&gt;QStringList artists;&lt;/pre&gt;&lt;pre&gt;QList&amp;lt;Nepomuk::Resource&amp;gt; artistsResources
    = Nepomuk::ResourceManager::allResourcesOfType( &quot;http://purl.org/ontology/mo/MusicArtist&quot; );&lt;/pre&gt;&lt;pre&gt;foreach( Nepomuk::Resource &amp;amp;artistResource, artistResources)&lt;/pre&gt;&lt;pre&gt;{&lt;/pre&gt;&lt;pre&gt;    artists &amp;lt;&amp;lt; artistResource.label();&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;
</description>
 <comments>http://planet-soc.com/node/4064#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 11 Oct 2008 19:05:01 +0200</pubDate>
 <dc:creator>DanielW</dc:creator>
 <guid isPermaLink="false">4064 at http://planet-soc.com</guid>
</item>
<item>
 <title>Why Nepomuk could not fully replace (My)SQL in Amarok (yet)</title>
 <link>http://planet-soc.com/node/4066</link>
 <description>&lt;p&gt;This is another post about collection backends in Amarok. The others posts explained the switch to MySQL embedded and tried to address some of the concerns. Jefferai also &lt;a href=&quot;http://amarok.kde.org/blog/archives/812-MySQL-in-Amarok-2-The-Reality.html&quot; target=&quot;_blank&quot;&gt;wrote&lt;/a&gt; a few things about Nepomuk in Amarok (and why it will not fully replace the sql based collections) which I want to comment on and add to.&lt;br /&gt;
There are user asking: &amp;#8220;There is Nepomuk in KDE for storing meta data why the switch to MySQL embedded you could just use Nepomuk and drop sql collection all together.&amp;#8221; With reasons like: &amp;#8220;Nepomuk can do this and that better and one storage in KDE for everything is best.&amp;#8221;  They are not complete wrong, there are good reasons to use Nepomuk (data sharing between applications, system wide searching, using strigi(and taglib) for collection scanning at a central place for all applications once, interconnect the data with other data (like let Kmail store where I got that song from), and others)&lt;br /&gt;
But Jefferai is right when he says that Nepomuk can not replace the sql collection for everyone and every use case. At least not for the short and longer midterm (;-)).&lt;br /&gt;
Why? Not everyone will or could run Nepomuk for different reasons. The most  important one: It  is a quite complex big software in terms of memory usage (though I think that will improve in time and the amount of available memory in computers is growing fast) and CPU usage.  Another issue is: At least in the short and midterm it it will be significant slower than the MySQL based collection. It is not useless slow but well sqlite isn&amp;#8217;t useless slow either (faster than Nepomuk atm) and people complained. So: For slower older computers, lightweight media devices, mobile devices, big collections,  java &amp;#8220;haters&amp;#8221; even a perfect done Nepomuk collection with a bug free Nepomuk (we are not there yet&amp;#8230;) would be out of question.&lt;/p&gt;

&lt;p&gt;I expect some of those issues to improve over time. (I hope we will see a faster C/C++ based storage backend for Nepomuk). But still Nepomuk is a new technology and there is not much experience with it yet amoung users, developers and important here &amp;#8220;developing users&amp;#8221; (those who create small scripts and apps to work on the sql data from amarok to do different things with that, mostly for their own usage).&lt;/p&gt;

&lt;p&gt;Don&amp;#8217;t get me wrong: I like Nepomuk and it possibilities for Amarok. It is not useless slow. In fact I am using it as my main collection backend in Amarok for months now. But it is in a similar state as KDE 4 in pre 4.0 days. You could use it but it not feature complete, it is not really stable it has its issues and there will be major changes to some of its parts. Well I hoped to have it (and the related Nepomuk service) in a better shape by now. Sorry for that, my time is very limited at the moment but work has not stopped fully and I am still planing to bring it into a useful shape.&lt;/p&gt;

&lt;p&gt;A few words on the Nepomuk service: It will monitor Nepomuk/Strigi for new music and use taglib to read data Strigi can not read (yet?) to fill it. It then creates new music (tracks, artists and so on) resources in the Nepomuk storage. It should also inform interested applications about new music. Overall it aims to have always all music of the user in an easy to access way available for use in media players, music management applications and others.&lt;/p&gt;

&lt;p&gt;That should make it easier (and faster!) for Amarok (and others) to use the data.&lt;/p&gt;

&lt;p&gt;For example at the moment (ontology not final) to get a QStringList of all artists of the music on the computer in your application is as easy as (when using Strigi, Nepomuk and the unreleased service) :&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;QStringList artists;&lt;/pre&gt;&lt;pre&gt;QList&amp;lt;Nepomuk::Resource&amp;gt; artistsResources
    = Nepomuk::ResourceManager::allResourcesOfType( &quot;http://purl.org/ontology/mo/MusicArtist&quot; );&lt;/pre&gt;&lt;pre&gt;foreach( Nepomuk::Resource &amp;amp;artistResource, artistResources)&lt;/pre&gt;&lt;pre&gt;{&lt;/pre&gt;&lt;pre&gt;    artists &amp;lt;&amp;lt; artistResource.label();&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;p&gt;The flexible Amarok 2 collection framework will allow both (Sql and Nepomuk) collection living together at users choice and maybe in a few years Nepomuk (with faster backend?) could become the default.&lt;/p&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/4066#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Sat, 11 Oct 2008 19:05:01 +0200</pubDate>
 <dc:creator>DanielW</dc:creator>
 <guid isPermaLink="false">4066 at http://planet-soc.com</guid>
</item>
<item>
 <title>Gas measuring: Source, some charts, accuracy</title>
 <link>http://planet-soc.com/node/3861</link>
 <description>&lt;p&gt;There was quite a lot of interest in my gas measuring project using a mobile phone. Thanks for that. For all who requested the source: I packed it together and wrote a small readme. You can &lt;a href=&quot;http://arch.der-winti.de/gas/gas-measuring-0.01.tar.gz&quot;&gt;download it&lt;/a&gt; now.&lt;br /&gt;
There were doubts about the accuracy and if it will work at all. It is running for over a week now without any crash or other problems. It measured a gas usage of 14.81 m³ while the gas meter is showing 13.85 m³. That is a difference of 6.9%. Not perfect, but i can live with that and can try to reset the &amp;#8220;burning duration -&amp;gt; volume&amp;#8221; factor to reflect the difference.&lt;br /&gt;
I also have first usage graphs:&lt;br /&gt;
&lt;img title=&quot;Gas usage for September 2008&quot; src=&quot;http://chart.apis.google.com/chart?cht=bvs&amp;amp;chs=505x158&amp;amp;chd=e:Ui7Jn0V9gClnnFQLqmpGNuRq&amp;amp;chxt=y,x&amp;amp;chxl=1:|17|18|19|20|21|22|23|24|25|26|27|28&amp;amp;chxr=0,0,33&amp;amp;chbh=34&quot; alt=&quot;Gas usage for September 2008&quot; width=&quot;505&quot; height=&quot;158&quot; /&gt;Gas usage for September 2008&lt;br /&gt;
Day of month on x axis and used energy in kWh on y axis.&lt;br /&gt;
Does it mean a lot: No, not yet. Not enough days and also to much playing around with settings (temperature on thermostat in the kitchen, setting on the radiators).&lt;br /&gt;
One interesting fact is that it will always do exact 11 &amp;#8220;burning sessions&amp;#8221; every hour as long the temperature in the room with the thermostat has not reached the target temperature. But the duration of each of those sessions depends on the real needed energy from the radiators. Even if they do not request any energy it will do 11 burning starts but all of them very short.&lt;br /&gt;
That means: At least here is quite some room for optimization. I need to make sure that it only starts when at least one room requests energy. That is quite hard to achieve because there is only a thermostat for controlling it in one room.  &lt;img src=&quot;http://blog.danielwinter.de/wp-includes/images/smilies/icon_sad.gif&quot; alt=&quot;:-(&quot; class=&quot;wp-smiley&quot; /&gt;&lt;br /&gt;
Here a chart for an average day:&lt;br /&gt;
&lt;img title=&quot;Gas usage graph for 2008/09/21&quot; src=&quot;http://chart.apis.google.com/chart?cht=bvs&amp;amp;chs=505x158&amp;amp;chd=e:XWWy2macZpZMcgcKaraObBd.W5Y2Wj6RbITlUfVTWGVaTWWN&amp;amp;chxt=y,x&amp;amp;chxl=1:|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23&amp;amp;chxr=0,0,559&amp;amp;chbh=15&quot; alt=&quot;Gas usage graph for 2008/09/21&quot; width=&quot;505&quot; height=&quot;158&quot; /&gt;Gas usage graph for 2008/09/21&lt;br /&gt;
Hour of the day on x, burning duration in seconds on y&lt;br /&gt;
The two peaks are from the warm water heating. That starts about two times a day and takes about 250 seconds or 0.7 kWh each, means about 2 kWh (ca. 0.15 EUR ) a day for warm water.&lt;br /&gt;
Anyone still reading? &lt;img src=&quot;http://blog.danielwinter.de/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt;&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3861#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Sun, 28 Sep 2008 12:48:05 +0200</pubDate>
 <dc:creator>DanielW</dc:creator>
 <guid isPermaLink="false">3861 at http://planet-soc.com</guid>
</item>
<item>
 <title>It’s getting cold: Measuring gas usage with S60 camera phone</title>
 <link>http://planet-soc.com/node/3811</link>
 <description>&lt;p&gt;The last two weeks I haven&amp;#8217;t done anything on KDE/Nepomuk/Amarok (Does that statement qualify for posting this on planetkde? &lt;img src=&quot;http://blog.danielwinter.de/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt; ), but for a good reason: It&amp;#8217;s getting cold outside.&lt;br /&gt;
So time to get back to an old project of me: I wanted to measure the gas usage of my gas heating in real-time and come up with the idea to use a mobile phone with a camera for that. The plan was to have the camera of a mobile phone looking on the burner and recognize if the flame is there or not. That should work under the assumption, that the burning duration is directly related to the used gas volume.&lt;br /&gt;
So I picked my old Nokia 6680 (Symbian S60 2nd FP2) (oh I am glad that you can now program it in Python using PyS60) and started work on a proof of concept.&lt;br /&gt;
To make it short: After not working on it for about 10 month, I manged to get it to work.&lt;br /&gt;
A small Python program calculates the amount of blue in a section of the camera view once every second and if it gets above some threshold it assumes the flame to be on and writes a record to a SQL DB on the phone. It also calculates the current gas meter reading and makes all that data available over Bluetooth on request.&lt;br /&gt;
Now a picture of the setup:&lt;br /&gt;
&lt;a href=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/21092008111.jpg&quot;&gt;&lt;img class=&quot;size-medium wp-image-15&quot; src=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/21092008111-300x225.jpg&quot; alt=&quot;The gas heating with the phone looking on it (door open)&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;The gas heating with the phone looking on it (door open)&lt;br /&gt;
If the isn&amp;#8217;t the coolest usage of a mobile phone &lt;img src=&quot;http://blog.danielwinter.de/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt; And now a picture of what the phone is seeing when the flame is burning:&lt;br /&gt;
&lt;a href=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/gas.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-16&quot; src=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/gas-243x300.png&quot; alt=&quot;&quot; width=&quot;243&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
A am pretty satisfied with the accuracy of the measuring. The last day I had a measuring error of about 1,3%.&lt;br /&gt;
I also wrote a small Qt application to get the data from the phone (over a bluetooth spp connection) and visualize it. Also a screenshot:&lt;br /&gt;
&lt;a href=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/dayview.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-12&quot; src=&quot;http://blog.danielwinter.de/wp-content/uploads/2008/09/dayview-300x187.png&quot; alt=&quot;Screenshot of gas monitor app&quot; width=&quot;300&quot; height=&quot;187&quot; /&gt;&lt;/a&gt;Screenshot of gas monitor app&lt;br /&gt;
The next months it will be fun (OK, only energy saving addicts like me will consider this fun) to analyze the usage and see how it relates to the temperature. Hopefully it helps to save energy (and money ;-)). If someone is interested to build something similar, just ask me for the source. (But don&amp;#8217;t expect it to be well written&amp;#8230;)&lt;br /&gt;
Oh, and to somehow justify the syndication to the planet: I am back to work on the Nepomuk music service to hopefully get it into KDE 4.2 (the next post will be about that) so that it can get used in the first Amarok 2 feature release after KDE 4.2 (2.1 or 2.2)&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3811#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Sun, 21 Sep 2008 06:06:40 +0200</pubDate>
 <dc:creator>DanielW</dc:creator>
 <guid isPermaLink="false">3811 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC Wrap Up</title>
 <link>http://planet-soc.com/node/3790</link>
 <description>&lt;p&gt;If there was a blogger award for &amp;#8220;Most likely to make timely posts&amp;#8221;, then in no possible world would I even be considered for the award. I could list some excuses that sound legit in my head, but the real reason I don&amp;#8217;t feel motivated to post often (or on time) is because I&amp;#8217;d rather spend that time in Google Reader reading everyone else&amp;#8217;s exciting content (that was not sarcastic).&lt;br /&gt;
So, lets see&amp;#8230; last time I posted I was en route to Akademy 2008 (the KDE developers conference). That was July 30th, now, a month and a half later I am back from Europe (which was amazing), GSoC is over (sad), and class has started (jury&amp;#8217;s still out).&lt;br /&gt;
&lt;strong&gt;Current Status of the MP3tunes Amarok Service&lt;/strong&gt;&lt;br /&gt;
The Good (Works)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browsing &amp;#038; Streaming&lt;/li&gt;
&lt;li&gt;Querymaker is as functional as possible with the current API&lt;/li&gt;
&lt;li&gt;Manual Downloading from MP3tunes to Local Collection&lt;/li&gt;
&lt;li&gt;Manual Uploading from any Collection to MP3tunes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Bad (Doesn&amp;#8217;t work)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AutoSync - 80%- &lt;em&gt;The code is there, however there are problems with the daemon not receiving signals from the MP3tunes&amp;#8217; servers&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;MP3tunes playlists support - 0%- &lt;em&gt;Never got started on this&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Ugly&lt;br /&gt;
There is one large issue I am still wrestling with. The details of the issue are complicated, but essentially it deals with the way Amarok handles remote tracks in playlists across sessions. Generally, remote tracks&amp;#8217; metadata isn&amp;#8217;t cached by Amarok for use between multiple sessions. So, if you add an mp3tunes track to a playlist in Amarok, then restart Amarok and try to play that playlist the mp3tunes track is blank. Now, there exists a method for retrieving that metadata, however it was originally implemented synchronously. When you are retrieving metadata for any significant number of tracks (10+) synchronously, and each one of those retreivals is an HTTP Get request you end up blocking the GUI thread. At Akademy I hacked a way to do this asynchronously, but it is a really nasty hack. I&amp;#8217;ve got code on my computer that implements this feature correctly, but it has the nasty habit of crashing Amarok every so often.&lt;br /&gt;
Between classes, marching band, homework, and other responsibilities I&amp;#8217;m working on getting this ironed out and committed. Hopefully this will happen before the 2.0 release, because right now using MP3tunes in Amarok across sessions is slow and annoying.&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3790#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/182">Universe SoC</category>
 <pubDate>Thu, 18 Sep 2008 16:33:40 +0200</pubDate>
 <dc:creator>ramblurr</dc:creator>
 <guid isPermaLink="false">3790 at http://planet-soc.com</guid>
</item>
<item>
 <title>Some statistics: sloccount</title>
 <link>http://planet-soc.com/node/3679</link>
 <description>&lt;p&gt;Here is the statistics made with sloccount. &lt;br /&gt;wc -l result I like more (~8500) :D&lt;br /&gt;&lt;a href=&quot;http://www.eclipse.org/dsdp/tm/development/committer_howto.php#sloccount&quot;&gt;lcp script&lt;/a&gt; shows 8904 contributed lines (for generated patch).&lt;/p&gt;

&lt;p&gt;Lines:&lt;br /&gt;SLOC    Directory       SLOC-by-Language (Sorted)&lt;br /&gt;1752    dvcs            cpp=1751,sh=1&lt;br /&gt;1220    git             cpp=1219,sh=1&lt;br /&gt;610     bazaar          cpp=513,ansic=97&lt;br /&gt;416     mercurial       cpp=415,sh=1&lt;/p&gt;

&lt;p&gt;Totals grouped by language (dominant language first):&lt;br /&gt;cpp:           3898 (97.50%)&lt;br /&gt;ansic:           97 (2.43%)&lt;br /&gt;sh:               3 (0.08%)&lt;/p&gt;

&lt;p&gt;FileCount:&lt;br /&gt;#Files  Directory       #Files-by-Language (Sorted)&lt;br /&gt;23      dvcs            cpp=22,sh=1&lt;br /&gt;13      git             cpp=12,sh=1&lt;br /&gt;11      bazaar          cpp=10,ansic=1&lt;br /&gt;10      mercurial       cpp=9,sh=1&lt;/p&gt;

&lt;p&gt;Totals grouped by language (dominant language first):&lt;br /&gt;cpp:             53 (92.98%)&lt;br /&gt;sh:               3 (5.26%)&lt;br /&gt;ansic:            1 (1.75%)&lt;/p&gt;

&lt;p&gt;Total Number of Files = 57&lt;br /&gt;Total Number of Source Code Files = 57&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3679#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Wed, 03 Sep 2008 12:50:00 +0200</pubDate>
 <dc:creator>powerfox</dc:creator>
 <guid isPermaLink="false">3679 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC is over</title>
 <link>http://planet-soc.com/node/3559</link>
 <description>&lt;p&gt;Unfortunately GSoC has finished. It was a wonderful adventure: I got new friends, wrote some code (~8350 lines) and learnt new interesting things. I can say that after today&amp;#8217;s commit to my git repo (with a lot of changes to yesterday&amp;#8217;s commit, which is evaluted) I implemented all things I promised. But some things still require a lot of love.&lt;br /&gt;I want to thank all people helped me during this summer:&lt;br /&gt;  Alexander Dymo(adymo, KDevelop) — My mentor who is strong both in GUI and Git. &lt;br /&gt;  Andreas Pakulat(apaku, KDevelop) — The man who can help with any part of KDevelop(or maybe even ith whole KDE &amp;amp;&amp;amp; Qt).&lt;br /&gt;  Shawn O. Pearce (spearce, Git) — A man who is not in KDE, but who contacted my mentor and me to suggest his help.&lt;br /&gt;  Marco Costalba — QGit author, explained a lot of code from QGit.&lt;br /&gt;  Paul Mackerras — Gitk author, explained some basic algorithm (building rev history).&lt;br /&gt;  All guys from different IRC channels, mailinglist. &lt;br /&gt;  And of course Google for the amazing Open Source Program: Google summer of Code!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3559#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Wed, 20 Aug 2008 00:01:00 +0200</pubDate>
 <dc:creator>powerfox</dc:creator>
 <guid isPermaLink="false">3559 at http://planet-soc.com</guid>
</item>
<item>
 <title>GSoC is over</title>
 <link>http://planet-soc.com/node/3680</link>
 <description>&lt;p&gt;Unfortunately GSoC has finished. It was a wonderful adventure: I got new friends, wrote some code (~8350 lines counted by &amp;#8220;wc -l&amp;#8221;, so it includes all crap) and learnt new interesting things. I can say that after today&amp;#8217;s commit to my git repo (with a lot of changes to yesterday&amp;#8217;s commit, which is evaluted) I implemented all things I promised. But some things still require a lot of love.&lt;br /&gt;I want to thank all people helped me during this summer:&lt;br /&gt;  Alexander Dymo(adymo, KDevelop) — My mentor who is strong both in GUI and Git. &lt;br /&gt;  Andreas Pakulat(apaku, KDevelop) — The man who can help with any part of KDevelop(or maybe even ith whole KDE &amp;amp;&amp;amp; Qt).&lt;br /&gt;  Shawn O. Pearce (spearce, Git) — A man who is not in KDE, but who contacted my mentor and me to suggest his help.&lt;br /&gt;  Marco Costalba — QGit author, explained a lot of code from QGit.&lt;br /&gt;  Paul Mackerras — Gitk author, explained some basic algorithm (building rev history).&lt;br /&gt;  All guys from different IRC channels, mailinglist. &lt;br /&gt;  And of course Google for the amazing Open Source Program: Google summer of Code!&lt;/p&gt;
</description>
 <comments>http://planet-soc.com/node/3680#comments</comments>
 <category domain="http://planet-soc.com/taxonomy/term/64">KDE</category>
 <category domain="http://planet-soc.com/taxonomy/term/181">Planet SoC</category>
 <pubDate>Wed, 20 Aug 2008 00:01:00 +0200</pubDate>
 <dc:creator>powerfox</dc:creator>
 <guid isPermaLink="false">3680 at http://planet-soc.com</guid>
</item>
</channel>
</rss>
