<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Katastrophos.net Blog &#187; Development</title>
	<atom:link href="http://katastrophos.net/andre/blog/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://katastrophos.net/andre/blog</link>
	<description>Chaotic solutions and random thoughts from the restless mind of a notorious problem solver (TM), by Andre Beckedorf</description>
	<lastBuildDate>Wed, 08 Feb 2012 00:04:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>QuasarMX, Qt, QML and the experiments</title>
		<link>http://katastrophos.net/andre/blog/2011/12/30/quasarmx-qt-qml-and-the-experiments/</link>
		<comments>http://katastrophos.net/andre/blog/2011/12/30/quasarmx-qt-qml-and-the-experiments/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 02:34:17 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Harmattan]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[Nokia N9]]></category>
		<category><![CDATA[Nokia N950]]></category>
		<category><![CDATA[QML]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Qt Quick]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=577</guid>
		<description><![CDATA[Some of you following my micro-blogging on Twitter might already know about it: In the last few months I have been busy developing a new application. What initially just started out as a re-write of the user interface of Quasar Media Player has turned into a completely new application called QuasarMX. It is based on [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you following my micro-blogging on Twitter might already know about it: In the last few months I have been busy developing a new application. What initially just started out as a re-write of the user interface of <a href="http://katastrophos.net/quasar" title="Quasar Media Player Homepage" target="_blank">Quasar Media Player</a> has turned into a completely new application called QuasarMX. It is based on the very core of Quasar Media Player but stripped of all the legacy and third-party code. The completely new UI is based on <a href="https://qt.nokia.com/qtquick/" title="Qt Quick homepage" target="_blank">Qt Quick / QML</a>, a new technology which simplicity and elegance I fell in love with over the past year. For me QuasarMX also marks the start of two experiments: </p>
<p>1. How many platforms and operating systems can I port my app to?<br />
2. Is there any commercial viability at all in publishing the software to various app stores (Nokia Ovi store, Android Market etc.) ?</p>
<p>The first experiment is important to me. Now that Nokia put the <a href="http://qt-project.org" title="Qt Project" target="_blank">Qt project into open governance</a>, the Qt community has the unique opportunity to extend primary platform support to Android, iOS and possibly even Windows Phone 7, thus extending the possible market cap and audience for mobile apps based on Qt dramatically. This experiment is largely about experiencing first hand what changes are required to get my application running on these platforms and as a matter of fact what needs to be done in projects like Necessitas (Qt on Android) to make that goal happen.</p>
<p>As for the second experiment I am actually just interested in getting to know the mechanics of the various app stores. I am pretty confident that there is little to no money to be made from yet another music player app. Yet, it is still interesting to see what happens, what works and what not, especially in regards to future apps.</p>
<p>In July Nokia accepted my application and invited me into the Qt Ambassador program. As part of this program Nokia loaned a N950 developer device to me, which I extensively used to develop and test the Harmattan UI for QuasarMX. The new user interface is very much inspired by the simplicity of the MeeGo Harmattan Swipe UI.</p>
<p><a href="http://katastrophos.net/quasarmx" title="QuasarMX homepage" target="_blank"><img src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/12/quasarmx_blog1.png" alt="" title="quasarmx_blog" border="0" style="border: none" width="475" height="241" class="noframe aligncenter size-full wp-image-587" /></a></p>
<p>As of yesterday the open Beta 1 of <a href="http://katastrophos.net/quasarmx" title="QuasarMX homepage" target="_blank">QuasarMX is available</a> for the <a href="http://swipe.nokia.com" title="Nokia N9 Swipe Homepage" target="_blank">Nokia N9</a> and N950. Releases for other platforms will follow shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2011/12/30/quasarmx-qt-qml-and-the-experiments/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>FHEM module for ELV ESA1000 (WZ/Z/GAS) series of devices</title>
		<link>http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/</link>
		<comments>http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 13:27:24 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=515</guid>
		<description><![CDATA[FHEM, the amazing home-automation server software, already has support for several sensors, meters and switches produced by ELV. In October 2010 I bought two meters, ESA1000WZ and ESA1000GAS for my house in the hope that FHEM would support them. Unfortunately it did not (at the time). I quickly found some hints that somebody, namely Gerd [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fhem.de" target="_blank">FHEM</a>, the amazing home-automation server software, already has support for several sensors, meters and switches produced by <a href="http://www.elv.de" target="_blank">ELV</a>. In October 2010 I bought two meters, <a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=22049" target="_blank">ESA1000WZ</a> and <a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=25408" target="_blank">ESA1000GAS</a> for my house in the hope that FHEM would support them. Unfortunately it did not (at the time). I quickly found some hints that somebody, namely Gerd K., was working on adding support. So I contacted him and a day later received his module for testing. In the meantime eager in anticipation I was hacking away, duplicating the existing EM1000 extension and customizing it to read the raw strings coming from my <a href="http://busware.de" target="_blank">Busware.de</a> CUL 868 MHz USB adapter. While I got the power meter&#8217;s values (<a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=22049" target="_blank">ESA1000WZ</a>) figured out pretty quickly, it was a bit more involving to get correct readings from the gas meter (<a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=25408" target="_blank">ESA1000GAS</a>). Unfortunately Gerd&#8217;s code did not include support for the gas meter, so I emailed him my changes, but sadly never received feedback.<br />
So today I am releasing my code on a works-for-me basis:</p>
<p><strong>Download</strong></p>
<p><a class="downloadlink" href="http://katastrophos.net/downloads/FHEM/CUL_ESA.tar.gz"><strong>CUL_ESA.tar.gz</strong> Version: Oct 25th 2010</a></p>
<ul>
<li>Supports <a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=22049" target="_blank">ESA1000WZ</a> power meter (infrared version, possibly others as well)</li>
<li>Supports ESA1000Z and <a href="http://www.elv.de/output/controller.aspx?cid=74&#038;detail=10&#038;detail2=25408" target="_blank">ESA1000GAS</a> gas meters (infrared version and version using impulse transducer for the Elster-Kromschroeder BK-G4)</li>
<li>Features proper graph files to plot current and cumulated day/month consumption</li>
</ul>
<p><strong>Photos / Screenshots</strong><br />

<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/20110625_002/' title='Elster-Kromschroeder BK-G4 and impulse transducer'><img width="113" height="150" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/20110625_002-113x150.jpg" class="attachment-thumbnail" alt="Elster-Kromschroeder BK-G4 and impulse transducer" title="Elster-Kromschroeder BK-G4 and impulse transducer" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/20110625_003/' title='Elster-Kromschroeder BK-G4 and impulse transducer'><img width="150" height="112" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/20110625_003-150x112.jpg" class="attachment-thumbnail" alt="Elster-Kromschroeder BK-G4 and impulse transducer" title="Elster-Kromschroeder BK-G4 and impulse transducer" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/20110625_004/' title='ESA1000Z gas meter 868 MHz transmitting unit'><img width="112" height="150" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/20110625_004-112x150.jpg" class="attachment-thumbnail" alt="ESA1000Z gas meter 868 MHz transmitting unit" title="ESA1000Z gas meter 868 MHz transmitting unit" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/20110625_005/' title='Power meter with attached infrared sensor on the outside'><img width="150" height="113" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/20110625_005-150x113.jpg" class="attachment-thumbnail" alt="Power meter with attached infrared sensor on the outside" title="Power meter with attached infrared sensor on the outside" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/20110625_006/' title='ESA1000WZ power meter 868 MHz transmitting unit'><img width="113" height="150" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/20110625_006-113x150.jpg" class="attachment-thumbnail" alt="ESA1000WZ power meter 868 MHz transmitting unit" title="ESA1000WZ power meter 868 MHz transmitting unit" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/gasmeter/' title='FHEM: Day and cumulated day/month plots for the gas meter ESA1000GAS'><img width="150" height="76" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/gasmeter-150x76.png" class="attachment-thumbnail" alt="FHEM: Day and cumulated day/month plots for the gas meter ESA1000GAS" title="FHEM: Day and cumulated day/month plots for the gas meter ESA1000GAS" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/gasmeterdetails/' title='FHEM: Detailed settings for the gas meter ESA1000GAS'><img width="129" height="150" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/gasmeterdetails-129x150.png" class="attachment-thumbnail" alt="FHEM: Detailed settings for the gas meter ESA1000GAS" title="FHEM: Detailed settings for the gas meter ESA1000GAS" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/powermeter/' title='FHEM: Day and cumulated day/month plots for the power meter ESA1000WZ'><img width="150" height="78" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/powermeter-150x78.png" class="attachment-thumbnail" alt="FHEM: Day and cumulated day/month plots for the power meter ESA1000WZ" title="FHEM: Day and cumulated day/month plots for the power meter ESA1000WZ" /></a>
<a href='http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/powermeterdetails/' title='FHEM: Detailed settings for the power meter ESA1000WZ'><img width="128" height="150" src="http://katastrophos.net/andre/blog/wp-content/uploads/2011/06/powermeterdetails-128x150.png" class="attachment-thumbnail" alt="FHEM: Detailed settings for the power meter ESA1000WZ" title="FHEM: Detailed settings for the power meter ESA1000WZ" /></a>
</p>
<p><strong>Installation</strong></p>
<p>Copy <strong>19_CUL_ESA.pm</strong> and all <strong>.gplot files</strong> to your FHEM directories.<br />
Sadly adding autocreate support and extending the CUL module to understand the raw message strings requires patching. Check <strong>cul_esa-for-fhem-5.0.patch</strong> to patch the files. This was diffed against the Debian package of FHEM 5.0. The very same version of FHEM as tar.gz has some differences in the sourcecode and some files missing. I contacted the author of FHEM about this issue but he has not updated the packages yet. So if you run into issues here it is probably due to these differences.</p>
<p><strong>UPDATE:</strong> Here is a completely patched version based on the Debian package of FHEM 5.0: <a class="downloadlink" href="http://katastrophos.net/downloads/FHEM/fhem-5.0-cul_esa.tar.gz"><strong>fhem-5.0-cul_esa.tar.gz</strong> Version: Oct 25th 2010</a></p>
<p><strong>Here are some notes in German I made while developing the module, mostly concerning the different behavior of the ESA1000GAS compared to the ESA1000WZ:</strong></p>
<p>Der ESA1000GAS mit dem ESA1000Z-Messgerät verhält sich leider anders als das ESA1000WZ, sodaß ich wieder die Korrektur-Faktoren einbinden mußte.<br />
Ich konnte nicht herausfinden, wozu der übermittelte Tick beim ESA1000Z dient. Zwar ändert sich dieser mit geänderter Zählerkonstante, allerdings ergibt der Wert im Zusammenhang mit den von der Einheit übermittelten Werten keinen Sinn, sodaß ich hier direkt mit der Zählerkonstante multipliziere, um die Kubikmeter zu erhalten, und dann zusätzlich noch mit dem Umrechnungsfaktor (bei der EWE ergibt sich dieser aus der Zustandszahl * Brennwert Hs) multipliziere, um die Kilowattstunden aus der Gasmenge zu erhalten.<br />
Leider ändern sich damit die Parameter bei der Definition:</p>
<p>Stromzähler:<br />
<strong>define CUL_ESA_286 CUL_ESA 1925 286 1 1 23.086</strong><br />
also:<br />
corr1 = corr2 = 1 (und damit wirkungslos)<br />
CostPerUnit = 23.086 Cent/kWh</p>
<p>Gaszähler:<br />
<strong>define CUL_ESA_798 CUL_ESA 1429 798 0.001 9.5154 4.5339</strong><br />
also:<br />
corr1 = 0.001<br />
corr2 = 9.5154 kWh/m3<br />
CostPerUnit = 4.5339 Cent/kWh</p>
<p>Ich habe ebenfalls noch einen Durchschnittswert in Kilowatt implementiert, sodaß man die Durchschnittleistung einigermaßen sinnvoll in einem Diagramm darstellen kann. Hier gab es allerdings bei meinem Drehstromzähler Probleme mit Unterabtastung, weil sich die Drehscheibe bei geringem Verbrauch zu langsam dreht, sodaß das Meßgerät zwischendurch schon Nullwerte zurückmeldet, weil kein Impuls eingegangen ist. Dafür habe ich einen entsprechenden Schwellenwert bei der Berechnung des Durchschnittswertes implementiert. Nicht schön, funktioniert aber für meine Zwecke.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2011/06/25/fhem-module-for-elv-esa1000-wzzgas-series-of-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quasar Media Player 0.96 beta 4 available</title>
		<link>http://katastrophos.net/andre/blog/2010/03/28/quasar-media-player-0-96-beta-4-available/</link>
		<comments>http://katastrophos.net/andre/blog/2010/03/28/quasar-media-player-0-96-beta-4-available/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 20:00:33 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zaurus]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=298</guid>
		<description><![CDATA[I am pleased to announce beta 4 of Quasar Media Player. This new version introduces some new features and big improvements in terms of performance and memory-usage. The previously separate last.fm Audioscrobbler QScrobbler has been integrated into Quasar as add-on. This release also marks the introduction of the Cover Art Downloader which uses the new [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://katastrophos.net/quasar"><img src="http://katastrophos.net/zaurus/sources/quasar/quasar_logo.png" class="noframe" border="0" style="border: none" alt="Quasar Media Player" /></a></p>
<p>I am pleased to announce beta 4 of Quasar Media Player.<br />
This new version introduces some new features and big improvements in terms of performance and memory-usage.<br />
The previously separate last.fm Audioscrobbler <a href="http://katastrophos.net/andre/blog/software/qscrobbler/"><strong>QScrobbler</strong></a> has been integrated into Quasar as add-on.<br />
This release also marks the introduction of the <strong>Cover Art Downloader</strong> which uses the new <a href="http://katastrophos.net/andre/blog/software/cover-art-providers/"><strong>open-source katastrophos.net Cover Art search engine</strong></a> to download cover art images for the new <strong>Cover Art Flow album browser</strong>.</p>
<p><center><a href="http://katastrophos.net/andre/blog/wp-content/uploads/2007/10/QuasarWin1.PNG" rel="lightbox[298]"><img src="http://katastrophos.net/andre/blog/wp-content/uploads/2007/10/QuasarWin1-150x122.PNG" alt="Quasar Media Player on Windows 7" title="Quasar Media Player on Windows 7" width="150" height="122" class="size-thumbnail wp-image-301" /></a><a href="http://katastrophos.net/andre/blog/wp-content/uploads/2007/10/QuasarOSX2.png" rel="lightbox[298]"><img src="http://katastrophos.net/andre/blog/wp-content/uploads/2007/10/QuasarOSX2-150x122.png" alt="Cover Art Downloader on OS X" title="Cover Art Downloader on OS X" width="150" height="122" class="size-thumbnail wp-image-303" /></a></center></p>
<p>Binaries for the previous platforms (Sharp Qtopia and pdaXrom) along with new binaries for Windows and OS X (universal) are available on the <a href="http://katastrophos.net/quasar">project&#8217;s homepage</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2010/03/28/quasar-media-player-0-96-beta-4-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nightly Builds of Quasar Media Player available</title>
		<link>http://katastrophos.net/andre/blog/2009/07/29/nightly-builds-of-quasar-media-player-available/</link>
		<comments>http://katastrophos.net/andre/blog/2009/07/29/nightly-builds-of-quasar-media-player-available/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 22:38:51 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zaurus]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=199</guid>
		<description><![CDATA[It&#8217;s been some time since the last update. In my previous post I mentioned I was in the process of setting up a nightly build system. This system has been running silently since May. I guess it is finally time for me to officially announce the nightly builds of Quasar Media Player: http://www.katastrophos.net/downloads/quasar/nightly/ Along with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://katastrophos.net/quasar"><img src="http://katastrophos.net/zaurus/sources/quasar/quasar_logo.png" class="noframe" border="0" style="border: none" alt="Quasar Media Player" /></a></p>
<p>It&#8217;s been some time since the last update. In my previous post I mentioned I was in the process of setting up a nightly build system. This system has been running silently since May.<br />
I guess it is finally time for me to officially announce the nightly builds of Quasar Media Player:</p>
<p><a href="http://www.katastrophos.net/downloads/quasar/nightly/" class="websitelink" target="_blank">http://www.katastrophos.net/downloads/quasar/nightly/</a></p>
<p>Along with the most <a href="http://www.katastrophos.net/downloads/quasar/nightly/source/" target="_blank">current sourcecode tarball</a>, binaries are available for 4 platforms:<br />
<a href="http://www.katastrophos.net/downloads/quasar/nightly/win32/" target="_blank">Windows (win32)</a>, <a href="http://www.katastrophos.net/downloads/quasar/nightly/osx/" target="_blank">OS X (universal binary)</a>, <a href="http://www.katastrophos.net/downloads/quasar/nightly/sharp-qtopia/" target="_blank">Sharp Qtopia</a> and <a href="http://www.katastrophos.net/downloads/quasar/nightly/pdaxrom/" target="_blank">pdaXrom</a> Linux (both for Zaurus PDA)<br />
The Windows version comes in two styles: a generic setup (EXE) and a self-contained portable version (7z archive)</p>
<p>Enjoy and please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2009/07/29/nightly-builds-of-quasar-media-player-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up the Inno Setup compiler on Debian</title>
		<link>http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/</link>
		<comments>http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 23:36:22 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Findings]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=180</guid>
		<description><![CDATA[I&#8217;m currently setting up a nightly build system for Quasar on my Linux box which is running Debian. This system also cross-compiles Quasar for Windows. The Windows version of Quasar is going to be available in two fashions: one self-contained, portable version and one version that can be installed. I&#8217;m not a huge fan of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently setting up a nightly build system for Quasar on my Linux box which is running Debian. This system also cross-compiles Quasar for Windows.<br />
The Windows version of Quasar is going to be available in two fashions: one self-contained, portable version and one version that can be installed.<br />
I&#8217;m not a huge fan of installers. But when it comes to creating a setup program for a given Windows application I&#8217;m quite accustomed to <a href="http://www.innosetup.com" target="_blank">Inno Setup</a> having used it for years. Unfortunately there is no native Linux version of the Inno Setup compiler available for Linux. <a href="http://nsis.sourceforge.net" target="_blank">NSIS</a> exists as package for Debian but I am not fond of using it, largely because I am a Delphi guy. :)<br />
So, here is a small guide on how to get the Inno Setup compiler up and running on Debian:</p>
<p>First step is to install <a href="http://www.winehq.org" target="_blank">Wine</a> either as super user or by using <strong>sudo</strong>:</p>
<pre name="code" class="bash:nocontrols">
sudo apt-get install wine
</pre>
<p>As normal user fire up your X server and your favourite terminal application and get the latest <a href="http://www.innosetup.com/isdl.php#qsp" target="_blank">Inno Setup QuickStart pack</a>:</p>
<pre name="code" class="bash:nocontrols">
mkdir /tmp/innosetup
cd /tmp/innosetup
wget http://files.jrsoftware.org/ispack/ispack-5.2.3.exe
wine ./ispack-5.2.3.exe
</pre>
<p>This will start the installer in Wine. Note, for the installation you will need a running X11 server since the installer obviously is graphical. If you have not set up Wine before, the default location <strong>C:\Program Files\Inno Setup 5</strong> will install to <strong>~/.wine/drive_c/Programme/Inno Setup 5</strong>.</p>
<p>Luckily the Inno Setup compiler offers a command line interface, ISCC.exe, which will run in Wine without the necessity of having a X server running. So it is ideally suited for automated runs.</p>
<p>Here is a simple wrapper shell script called <strong>iscc</strong>:</p>
<pre name="code" class="bash:nocontrols">
#!/bin/sh
unset DISPLAY
scriptname=$1
[ -f "$scriptname" ] &#038;&#038; scriptname=$(winepath -w "$scriptname")
wine "C:\Program Files\Inno Setup 5\ISCC.exe" "$scriptname" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
</pre>
<p>I installed this script in my local bin directory (~/bin) and added it to the PATH environment variable.<br />
This will allow running the Inno Setup compiler from anywhere and it also makes it very easy to integrate into a build script. You can even feed a script via stdin, e.g. something like:</p>
<pre name="code" class="bash:nocontrols">
iscc - < ./myscript.iss</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2009/03/16/setting-up-the-inno-setup-compiler-on-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing the &#8220;Reveal In Explorer&#8221; functionality</title>
		<link>http://katastrophos.net/andre/blog/2009/03/15/implementing-the-reveal-in-explorer-functionality/</link>
		<comments>http://katastrophos.net/andre/blog/2009/03/15/implementing-the-reveal-in-explorer-functionality/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 20:48:33 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=173</guid>
		<description><![CDATA[Update: I seems like Microsoft changed the behavior of the Explorer&#8217;s command line parameters in Vista and Windows 7. Below is the fixed version of my code that addresses the problem. So, I was wondering the other day how to implement a functionality similar to Firefox&#8217;s &#8220;Open Containing Folder&#8221; or OS X&#8217;s &#8220;Reveal In Finder&#8221;. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update: I seems like Microsoft changed the behavior of the Explorer&#8217;s command line parameters in Vista and Windows 7. Below is the fixed version of my code that addresses the problem.</strong></p>
<p>So, I was wondering the other day how to implement a functionality similar to Firefox&#8217;s &#8220;Open Containing Folder&#8221; or OS X&#8217;s &#8220;Reveal In Finder&#8221;.<br />
It turned out to be extremely simple. Here is the Pascal/Delphi-Code:</p>
<pre name="code" class="delphi:nocontrols">
uses
  ShellAPI;

function RevealInExplorer(const Filename: string; ShowExplorerWithFoldersBar: Boolean = True): Boolean;
var
  Params: string;
begin
  if FileExists(Filename) or DirectoryExists(Filename) then
  begin
    Params := Format('/select,"%s"', [Filename]);

    if ShowExplorerWithFoldersBar then
      Params := '/e,' + Params;

    ShellExecute(0, 'open', 'explorer.exe', PChar(Params), nil, SW_SHOWNORMAL);

    Result := True;
  end
  else
    Result := False;
end;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2009/03/15/implementing-the-reveal-in-explorer-functionality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lazy source code comment stunts</title>
		<link>http://katastrophos.net/andre/blog/2008/12/30/lazy-source-code-comment-stunts/</link>
		<comments>http://katastrophos.net/andre/blog/2008/12/30/lazy-source-code-comment-stunts/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 00:31:08 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Findings]]></category>
		<category><![CDATA[Hack]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/?p=71</guid>
		<description><![CDATA[Double-Slash-Whole-Block-Commenting Here is a simple way to disable or enable whole code blocks with just two slashes: PHP / C++: /* Block (commented block) //*/ ///* Block (active block) //*/ Object Pascal/Delphi: (* Block (commented block) //*) //(* Block (active block) //*) Alternatively you can use { and } in the Object Pascal/Delphi example. Double-Slash-Whole-Block-Switching [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Double-Slash-Whole-Block-Commenting</strong></p>
<p>Here is a simple way to disable or enable whole code blocks with just two slashes:</p>
<p><strong>PHP / C++:</strong></p>
<pre name="code" class="c++:nocontrols">
/*
  Block (commented block)
//*/
</pre>
<pre name="code" class="c++:nocontrols">
///*
  Block (active block)
//*/
</pre>
<p><strong>Object Pascal/Delphi:</strong></p>
<pre name="code" class="delphi:nocontrols">
(*
  Block (commented block)
//*)
</pre>
<pre name="code" class="delphi:nocontrols">
//(*
  Block (active block)
//*)
</pre>
<p>Alternatively you can use <code>{</code> and <code>}</code> in the Object Pascal/Delphi example.</p>
<p><strong><br />
Double-Slash-Whole-Block-Switching (Object Pascal/Delphi only)</strong></p>
<p>The Object Pascal dialect used in Delphi supports three ways of commenting code, two for commenting whole blocks ( <code>{ }</code> and <code>(* *)</code> ) and one for commenting lines ( <code>//</code> ).<br />
We can exploit this feature to switch between two code blocks easily and fast:</p>
<p>Block 2 is in the enabled state:</p>
<pre name="code" class="delphi:nocontrols">
{
  Block 1  (commented block)
(*}
  Block 2  (active block)
//*)
</pre>
<p>Note, I am just adding two slashes in front of the first comment block to activate it again &#8211; similar to Double-Slash-Whole-Block-Commenting trick above. This will also magically disable the second block due to the way the comment marks are arranged:</p>
<pre name="code" class="delphi:nocontrols">
//{
  Block 1  (active block)
(*}
  Block 2  (commented block)
//*)
</pre>
<p>These tricks are probably applicable to other programming languages as well. Please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2008/12/30/lazy-source-code-comment-stunts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Q&#8230;/Free: Bug in QProcess writeToStdin</title>
		<link>http://katastrophos.net/andre/blog/2008/03/15/qfree-bug-in-qprocess-writetostdin/</link>
		<comments>http://katastrophos.net/andre/blog/2008/03/15/qfree-bug-in-qprocess-writetostdin/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 15:57:14 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Findings]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/2008/03/15/qfree-bug-in-qprocess-writetostdin/</guid>
		<description><![CDATA[All right, this post is just to stop somebody else&#8217;s suffering in figuring out why writing to stdin in QProcess on Version 3.3.x-8 of Q&#8230;/Free doesn&#8217;t work on Windows. Well, actually it works but just for the first line you write to stdin. There is a bug in qprocess.cpp at line 730: void QProcess::writeToStdin( const [...]]]></description>
			<content:encoded><![CDATA[<p>All right, this post is just to stop somebody else&#8217;s suffering in figuring out why writing to stdin in QProcess on <a href="http://sourceforge.net/project/showfiles.php?group_id=49109&#038;package_id=42335" target="_blank">Version 3.3.x-8</a> of <a href="http://qtwin.sourceforge.net" target="_blank">Q&#8230;/Free</a> doesn&#8217;t work on Windows. Well, actually it works but just for the first line you write to stdin. There is a bug in qprocess.cpp at line 730:</p>
<pre name="code" class="c++:nocontrols:firstline[727]">
void QProcess::writeToStdin( const QString&#038; buf )
{
    QByteArray tmp = buf.local8Bit();
    tmp.resize( tmp.size() - 1 ); // drop the implicit \0
    writeToStdin( tmp );
}
</pre>
<p>should be:</p>
<pre name="code" class="c++:nocontrols:firstline[727]">
void QProcess::writeToStdin( const QString&#038; buf )
{
    QByteArray tmp = buf.local8Bit();
    tmp.resize( buf.length() );
    writeToStdin( tmp );
}
</pre>
<p>Verision 3.3.7-7 includes the latter method, same as the latest Qt 4.3 sources. So, it&#8217;s actually a regression in 3.3.x-8. If you require the latest Qt 3 / Q&#8230;/Free for your open source application and need to write to some other processes&#8217; stdin, you can just use a wrapper workaround that uses the latter method and directly uses writeToStdin( const QByteArray&#038; buf ) instead of the QString variant.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2008/03/15/qfree-bug-in-qprocess-writetostdin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rdesktop: Connect to Windows 7 and Vista with ClearType font smoothing enabled</title>
		<link>http://katastrophos.net/andre/blog/2008/03/10/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled/</link>
		<comments>http://katastrophos.net/andre/blog/2008/03/10/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 23:12:01 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Findings]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/2008/03/10/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled/</guid>
		<description><![CDATA[So Windows Vista finally allows to enable ClearType font smoothing for Remote Desktop / Terminal Services sessions. Update: Windows XP SP3 does too! If you try to connect to a machine running Windows XP SP 3 or later using rdesktop, you won&#8217;t get smoothed font typing since at the time of this writing rdesktop does [...]]]></description>
			<content:encoded><![CDATA[<p>So Windows Vista finally allows to enable ClearType font smoothing for Remote Desktop / Terminal Services sessions. <strong>Update:</strong> Windows XP SP3 does too!<br />
If you try to connect to a machine running Windows XP SP 3 or later using <a href="http://www.rdesktop.org" target="_blank">rdesktop</a>, you won&#8217;t get smoothed font typing since at the time of this writing <a href="http://www.rdesktop.org" target="_blank">rdesktop</a> does not officially offer an option to control this feature. However, here is a workaround:<br />
<span id="more-68"></span><br />
<a href="http://www.rdesktop.org" target="_blank">rdesktop</a> allows to specify the RDP5 experience via the -x experience switch.<br />
One can either define one of three default experiences (modem, broadband, lan) or one can specify a raw hex value that is send to the server. </p>
<p><strong>NOTE: You can skip over this rather technical part, if you&#8217;re not interested in the details. You&#8217;ll find the workaround below.</strong></p>
<p>This hex value is actually a combination of defined bit flags. After some tinkering I found that the hex value 0&#215;80 will enable font smoothing for the connection.<br />
The file constants.h of the rdesktop sources contains these flags:</p>
<pre name="code" class="c:nogutter:nocontrols">
#define RDP5_DISABLE_NOTHING	0x00
#define RDP5_NO_WALLPAPER	0x01
#define RDP5_NO_FULLWINDOWDRAG	0x02
#define RDP5_NO_MENUANIMATIONS	0x04
#define RDP5_NO_THEMING		0x08
#define RDP5_NO_CURSOR_SHADOW	0x20
#define RDP5_NO_CURSORSETTINGS	0x40	/* disables cursor blinking */
</pre>
<p>So, naturally an additional flag constant can be defined like this:</p>
<pre name="code" class="c:nogutter:nocontrols">
#define RDP5_ENABLE_FONT_SMOOTHING 0x80
</pre>
<p>The file rdesktop.c would have to be extended preferably with an additional argument that controls the font smoothing.<br />
If you want to use font smoothing with rdesktop now you have to combine the flags (bitwise OR, addition will do too) and specify the result via the -x switch.</p>
<p><strong>Here is the workaround for the three defaults mentioned above:</strong></p>
<p><code><strong>rdesktop -x 0x8F</strong> mywinserver</code>&nbsp;&nbsp;&nbsp;# equals the <strong>modem default</strong> + font smoothing<br />
<code><strong>rdesktop -x 0x81</strong> mywinserver</code>&nbsp;&nbsp;&nbsp;# equals the <strong>broadband default</strong> + font smoothing<br />
<code><strong>rdesktop -x 0x80</strong> mywinserver</code>&nbsp;&nbsp;&nbsp;# equals the <strong>LAN default</strong> + font smoothing</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2008/03/10/rdesktop-connect-to-windows-vista-with-cleartype-font-smoothing-enabled/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>QScrobbler</title>
		<link>http://katastrophos.net/andre/blog/2007/12/24/qscrobbler/</link>
		<comments>http://katastrophos.net/andre/blog/2007/12/24/qscrobbler/#comments</comments>
		<pubDate>Mon, 24 Dec 2007 15:44:59 +0000</pubDate>
		<dc:creator>Andre Beckedorf</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quasar Media Player]]></category>
		<category><![CDATA[Zaurus]]></category>

		<guid isPermaLink="false">http://katastrophos.net/andre/blog/2007/12/24/qscrobbler/</guid>
		<description><![CDATA[Today I&#8217;m releasing QScrobbler: a Last.fm / Audioscrobbler add-on for Quasar Media Player. As with Quasar, I&#8217;ve been using QScrobbler for almost a year now and finally decided it is ready for the public. ;) For more details please visit the project&#8217;s homepage here.]]></description>
			<content:encoded><![CDATA[<p><a href="http://katastrophos.net/qscrobbler"><img src="http://www.katastrophos.net/zaurus/sources/qscrobbler/qscrobbler_logo.png" class="noframe" border="0" style="border: none" alt="QScrobbler" /></a></p>
<p>Today I&#8217;m releasing <a href="http://katastrophos.net/qscrobbler">QScrobbler</a>: a <a href="http://www.last.fm" target="_blank">Last.fm / Audioscrobbler</a> add-on for <a href="http://katastrophos.net/quasar" target="_blank">Quasar Media Player</a>.</p>
<p>As with Quasar, I&#8217;ve been using QScrobbler for almost a year now and finally decided it is ready for the public. ;)<br />
For more details please visit the project&#8217;s homepage <a href="http://katastrophos.net/qscrobbler">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://katastrophos.net/andre/blog/2007/12/24/qscrobbler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

