<?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>blog.elsdoerfer.name</title>
	<atom:link href="http://blog.elsdoerfer.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.elsdoerfer.name</link>
	<description>Contributing back to the Google Index.</description>
	<lastBuildDate>Sat, 10 Dec 2011 00:04:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Installing su/Superuser.apk in ICS/Android 4.0 emulator</title>
		<link>http://blog.elsdoerfer.name/2011/12/10/installing-susuperuser-apk-in-icsandroid-4-0-emulator/</link>
		<comments>http://blog.elsdoerfer.name/2011/12/10/installing-susuperuser-apk-in-icsandroid-4-0-emulator/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 00:04:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=409</guid>
		<description><![CDATA[To avoid the Out of memory error when trying to copy the su-executable to /system/bin, you need to start the emulator manually with a large &#8211;partion-size argument: $ emulator -avd MYNAME -partition-size 300 Then: $ adb remount $ adb push ~/Desktop/rootfiles/su /system/bin/su $ adb shell chmod 06755 /system/bin/su]]></description>
			<content:encoded><![CDATA[<p>To avoid the <em>Out of memory</em> error when trying to copy the su-executable to <em>/system/bin</em>, you need to start the emulator manually with a large &#8211;partion-size argument:</p>
<p><code>
<pre>
$ emulator -avd MYNAME -partition-size 300
</pre>
<p></code></p>
<p>Then:</p>
<p><code>
<pre>
$ adb remount
$ adb push ~/Desktop/rootfiles/su /system/bin/su
$ adb shell chmod 06755 /system/bin/su
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/12/10/installing-susuperuser-apk-in-icsandroid-4-0-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python: Make simplejson.dumps output raw Javascript code</title>
		<link>http://blog.elsdoerfer.name/2011/12/03/python-make-simplejson-dumps-output-raw-javascript-code/</link>
		<comments>http://blog.elsdoerfer.name/2011/12/03/python-make-simplejson-dumps-output-raw-javascript-code/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 10:54:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=406</guid>
		<description><![CDATA[class JSRaw(int): """Hack to allow including raw Javascript code in simplejson.dumps output. Objects of this sort are dumped as raw strings. """ def __new__(self, string): instance = int.__new__(self, 0) instance.string = string return instance def __repr__(self): return self.string def __unicode__(self): return self.string def __str__(self): return self.string Example: s = jsondumps({ 'series': data, 'yAxis': { 'labels': [...]]]></description>
			<content:encoded><![CDATA[<p><code>
<pre>
class JSRaw(int):
    """Hack to allow including raw Javascript code in simplejson.dumps
    output. Objects of this sort are dumped as raw strings.
    """
    def __new__(self, string):
        instance = int.__new__(self, 0)
        instance.string = string
        return instance
    def __repr__(self):
        return self.string
    def __unicode__(self):
        return self.string
    def __str__(self):
        return self.string
</pre>
<p></code></p>
<p>Example:</p>
<p><code>
<pre>
s = jsondumps({
    'series': data,
    'yAxis': {
        'labels': {
            'formatter': JSRaw("""
                function() {
                    return (this.value > 0 ? '+' : '') + this.value + '%';
                }""")
        }
    }
})
</pre>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/12/03/python-make-simplejson-dumps-output-raw-javascript-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Storing times in UTC in Django</title>
		<link>http://blog.elsdoerfer.name/2011/10/27/storing-times-in-utc-in-django/</link>
		<comments>http://blog.elsdoerfer.name/2011/10/27/storing-times-in-utc-in-django/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 20:31:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=403</guid>
		<description><![CDATA[I just want to store my time values in UTC, and render them in Europe/Berlin for display, as supposedly one should, and Django, in 2011 and with 1.4 looming, still does not support this (although things may be happening). I&#8217;ve found that the simplest way to deal with this is to use a filter which [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to store my time values in UTC, and render them in Europe/Berlin for display, as supposedly one should, and Django, in 2011 and with 1.4 looming, <strong>still</strong> does not support this (although things <a href="http://groups.google.com/group/django-developers/browse_thread/thread/cf0423bbb85b1bbf">may be happening</a>).</p>
<p>I&#8217;ve found that the simplest way to deal with this is to use <a href="http://djangosnippets.org/snippets/2583/">a filter</a> which can convert from UTC to the TIME_ZONE setting, and can be placed before any of Django&#8217;s time, timesince, nativetime etc. filters one may want to use.</p>
<p>That still leaves you with a lack of timezone support in the admin, or when using model fields in general, but if you don&#8217;t care about those, this is the quickest way to make it work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/10/27/storing-times-in-utc-in-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I learned</title>
		<link>http://blog.elsdoerfer.name/2011/10/17/what-i-learned/</link>
		<comments>http://blog.elsdoerfer.name/2011/10/17/what-i-learned/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 11:33:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=400</guid>
		<description><![CDATA[Gnome 3 is actually quite nice, I think I prefer it over Unity. Only if it weren&#8217;t so buggy. And had better multihead support. Unity has some pretty nice touches as well. Like the ALT+TAB&#8217;ing into a specific window of an app. Even the propriety Catalyst fglrx driver can&#8217;t properly drive a 3-head 6400&#215;1440/1200 setup [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li>Gnome 3 is actually quite nice, I think I prefer it over Unity. Only if it weren&#8217;t so buggy. And had better multihead support.</li>
<li>Unity has some pretty nice touches as well. Like the ALT+TAB&#8217;ing into a specific window of an app.</li>
<li>Even the propriety Catalyst fglrx driver can&#8217;t properly drive a 3-head 6400&#215;1440/1200 setup when compositing is enabled. It works just fine in Windows.</li>
<li>But Windows 7&#8242;s multimonitor behaviour is <a href="http://social.technet.microsoft.com/Forums/en/w7itprogeneral/thread/8a9b5aa7-fe33-4e6d-b39b-8ac80a21fdc2">insane as well</a>.</li>
<li>I should probably get a Mac.</li>
<li>Tiling window managers are worth a try.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/10/17/what-i-learned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPython with virtualenv</title>
		<link>http://blog.elsdoerfer.name/2011/09/18/ipython-with-virtualenv/</link>
		<comments>http://blog.elsdoerfer.name/2011/09/18/ipython-with-virtualenv/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 21:03:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=395</guid>
		<description><![CDATA[You&#8217;ll find a bunch of different approaches to this on Google; Using an iPython boot script that extends sys.path with paths from the current virtualenv. Or calling the iPython script with the virtualenv&#8217;s python binary (python `which ipython`). They all tend to be problematic; for example, the latter doesn&#8217;t work if the virtualenv has been [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ll find a bunch of different approaches to this on Google; Using an iPython boot script that extends sys.path with paths from the current virtualenv. Or calling the iPython script with the virtualenv&#8217;s python binary (<em>python `which ipython`</em>).</p>
<p>They all tend to be problematic; for example, the latter doesn&#8217;t work if the virtualenv has been configured with <em>&#8211;no-site-packages</em>.</p>
<p>Why not simply install iPython inside the virtualenv proper? This is what I&#8217;ve been doing for a while, reluctantly, and I&#8217;m finally aware of what has bothered me about it: iPython clocks in at an insane 8.3 megabyte (the uncompressed size is 18 MB, about 15 of which is documentation). On my slow DSL connection the download takes a good minute.</p>
<p>Using <a href="http://www.doughellmann.com/docs/virtualenvwrapper/">virtualenvwrapper</a>, I&#8217;ve now added this to my <em>postmkvirtualenv</em> script:<br />
<code><br />
CACHE=$WORKON_HOME/.cache<br />
mkdir -p "$CACHE"<br />
$VIRTUAL_ENV/bin/pip install --download-cache="$CACHE" ipython<br />
</code></p>
<p>This gives me iPython in every new virtual environment, at the cost of 2 or 3 seconds installation time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/09/18/ipython-with-virtualenv/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu app indicators when using PyGObject</title>
		<link>http://blog.elsdoerfer.name/2011/08/06/ubuntu-app-indicators-when-using-pygobject/</link>
		<comments>http://blog.elsdoerfer.name/2011/08/06/ubuntu-app-indicators-when-using-pygobject/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:38:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=387</guid>
		<description><![CDATA[PyGObject and the Python appindicator module don&#8217;t agree with each other. As soon as I import &#8220;appindicator&#8221;, all objects from the gi.repository.Gtk namespaces seem to reset to what might be PyGTK, not sure. However, with gir1.2-appindicator-0.1 (on Natty) installed , you can do: from gi.repository import AppIndicator ind = AppIndicator.Indicator.new( "send-to-kindle", "indicator-messages", AppIndicator.IndicatorCategory.APPLICATION_STATUS) self.menu = [...]]]></description>
			<content:encoded><![CDATA[<p>PyGObject and the Python appindicator module don&#8217;t agree with each other. As soon as I import &#8220;appindicator&#8221;, all objects from the <em>gi.repository.Gtk</em> namespaces seem to reset to what might be PyGTK, not sure. However, with <em>gir1.2-appindicator-0.1</em> (on Natty) installed , you can do:</p>
<pre name="code" class="python">
from gi.repository import AppIndicator

ind = AppIndicator.Indicator.new(
            "send-to-kindle",
            "indicator-messages",
            AppIndicator.IndicatorCategory.APPLICATION_STATUS)

self.menu = Gtk.Menu()
item = Gtk.MenuItem()
item.set_label("Menu Item")
item.show()
self.menu.append(item)

self.menu.show()
ind.set_menu(self.menu)
</pre>
<p>Note that there is a <em>gir1.2-appindicator3-0.1</em> package in Natty, which provides a <em>AppIndicator3</em> object, which seems to be the GTK3 version, and pulls a bunch of GTK dependencies. After installing it on Natty, I was seemingly unable to work with GTK2 in PyGObject, so be careful (uninstalling the GTK3 packages fixed it). <a href="http://bazaar.launchpad.net/~jockey-hackers/jockey/trunk/view/head:/jockey/ui.py">Jockey</a> (the &#8220;Additional Drivers&#8221; tool) is using AppIndicator3, and from looking at the source, AppIndicator3 works without attaching a menu to it. Apparently Canonical still gets some things right.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/08/06/ubuntu-app-indicators-when-using-pygobject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically backup Google Reader subscriptions</title>
		<link>http://blog.elsdoerfer.name/2011/07/26/automatically-backup-google-reader-subscriptions/</link>
		<comments>http://blog.elsdoerfer.name/2011/07/26/automatically-backup-google-reader-subscriptions/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 19:52:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=384</guid>
		<description><![CDATA[Most of the scripts out there seem to be broken (like gookup). So I&#8217;ve written one that works: https://github.com/miracle2k/linuxutils/blob/master/export-google-reader-subscriptions.py It uses Matt Behrens libgreader library for the hard part.]]></description>
			<content:encoded><![CDATA[<p>Most of the scripts out there seem to be broken (like gookup). So I&#8217;ve written one that works:</p>
<p><a href="https://github.com/miracle2k/linuxutils/blob/master/export-google-reader-subscriptions.py">https://github.com/miracle2k/linuxutils/blob/master/export-google-reader-subscriptions.py</a></p>
<p>It uses Matt Behrens <a href="https://github.com/askedrelic/libgreader/">libgreader</a> library for the hard part.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/07/26/automatically-backup-google-reader-subscriptions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Hibiscus</title>
		<link>http://blog.elsdoerfer.name/2011/07/14/building-hibiscus/</link>
		<comments>http://blog.elsdoerfer.name/2011/07/14/building-hibiscus/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 22:29:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=381</guid>
		<description><![CDATA[Steps to build a custom Hibiscus plugin for Jameica: Checkout the code: The &#8220;hibiscus&#8221; module from the Hibiscus project, the &#8220;jameica&#8221; module from the Jameica project: &#8220;cvs -z3 -d:pserver:anonymous@cvs.berlios.de:/cvsroot/hibiscus co hibiscus &#038;&#038; cvs -z3 -d:pserver:anonymous@cvs.berlios.de:/cvsroot/jameica co jameica&#8221;. Within jameica/build run &#8220;ant nightly&#8221;, which will generate releases/jameica-lib.jar Edit hibiscus/build/build.properties, makedefine.jameica.dir point to the Jameica checkout, relative [...]]]></description>
			<content:encoded><![CDATA[<p>Steps to build a custom <a href="http://www.willuhn.de/products/hibiscus/">Hibiscus</a> plugin for Jameica:</p>
<ul>
<li>Checkout the code: The &#8220;hibiscus&#8221; module from the <a href="https://developer.berlios.de/projects/hibiscus/">Hibiscus</a> project, the &#8220;jameica&#8221; module from the <a href="https://developer.berlios.de/projects/jameica/">Jameica</a> project: <em>&#8220;cvs -z3 -d:pserver:anonymous@cvs.berlios.de:/cvsroot/hibiscus co hibiscus &#038;&#038; cvs -z3 -d:pserver:anonymous@cvs.berlios.de:/cvsroot/jameica co jameica&#8221;</em>.</li>
<li>Within <em>jameica/build</em> run &#8220;ant nightly&#8221;, which will generate <em>releases/jameica-lib.jar</em></li>
<li>Edit <em>hibiscus/build/build.properties</em>,  make<em>define.jameica.dir</em> point to the Jameica checkout, relative to the Hibiscus root directory (not the <em>build/</em> subdirectory).</li>
<li>Running &#8220;ant nightly&#8221; within <em>hibiscus/build</em> gives you a <em>hibiscus-XXX-nightly.zip</em> that can be installed into Jameica.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/07/14/building-hibiscus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netzwerk-Steckdosen</title>
		<link>http://blog.elsdoerfer.name/2011/07/11/netzwerk-steckdosen/</link>
		<comments>http://blog.elsdoerfer.name/2011/07/11/netzwerk-steckdosen/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 19:10:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=378</guid>
		<description><![CDATA[TOUCH n SWITCH &#8211; WLAN, 1000W (500W induktiv) per Ausgang, 3200 total; iPhone App, keine offizielle API. Allnet &#8211; Einzeldose, ab 70 Euro, 1500W. Infratec PM211-MIP &#8211; 4 Dosen, 2 Kanäle Web Power Switch III &#8211; 8 Dosen, anscheinend sehr flexibel bez. API, nur $100, aber: US Stecker, und angeblich Laut (mit Lüfter!) Leunig ePowerSwitch [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="">TOUCH n SWITCH</a> &#8211; WLAN, 1000W (500W induktiv) per Ausgang, 3200 total; iPhone App, keine offizielle API.</li>
<li><a href="http://www.conrad.de/ce/de/product/975278/ALLNET-ALL3075-NETZWERKSTECKDOSE">Allnet</a> &#8211; Einzeldose, ab 70 Euro, 1500W.</li>
<li><a href="http://www.conrad.de/ce/de/product/999171/INFRATEC-PM211-MIP-IP-STECKDOSENLEISTE/">Infratec PM211-MIP</a> &#8211; 4 Dosen, 2 Kanäle</li>
<li><a href="http://www.digital-loggers.com/lpc.html">Web Power Switch III</a> &#8211; 8 Dosen, anscheinend sehr flexibel bez. API, nur $100, aber: US Stecker, und angeblich Laut (mit Lüfter!)</li>
<li><a href="http://www.leunig.de/_pro/netzwerk/remote_power_switch/eps.htm">Leunig ePowerSwitch</a> &#8211; nur 10A total, teuer. Sieht aber gut supported aus, und hat APIs.</li>
<li><a href="http://www.gude.info/index.php?lng=0&#038;section=products&#038;product=epc1200">GUDE EXPort Power Control</a> &#8211; Günstiger (~233 Euro), auch viele APIs (SNMP, HTTP), 16A.</li>
<li><a href="http://www.conrad.de/ce/de/product/973731/VARIO-LINEA-IT483CM19-4FACHLAN/?ref=reco">Vario Linea IT48</a> &#8211; vermutlich dasselbe Gerät wie die Gude-Leiste.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/07/11/netzwerk-steckdosen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Z-Wave Software</title>
		<link>http://blog.elsdoerfer.name/2011/07/11/z-wave-software/</link>
		<comments>http://blog.elsdoerfer.name/2011/07/11/z-wave-software/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 12:52:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.elsdoerfer.name/?p=375</guid>
		<description><![CDATA[Open Source Automation Engine (Code) &#8211; Windows Only OpenRemote &#8211; Allows designing custom control interfaces for iOS/Android; No Z-Wave support. LinuxMCE &#8211; not the prettiest UI, maybe tries to do too much. openAMI (Code) &#8211; Python Server, JQTouch Client; looks pretty, but seemingly not under active work. open-zwave &#8211; Free Z-Wave library, actively developed. MisterHouse [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.opensourceautomation.com/">Open Source Automation Engine</a> (<a href="http://code.google.com/p/osae/">Code</a>) &#8211; Windows Only</li>
<li><a href="http://www.openremote.org/">OpenRemote</a> &#8211; Allows designing custom control interfaces for iOS/Android; No Z-Wave support.</li>
<li><a href="http://linuxmce.org/">LinuxMCE</a> &#8211; not the prettiest UI, maybe tries to do too much.</li>
<li><a href="http://www.openami.de/">openAMI</a> (<a href="http://code.google.com/p/openami/">Code</a>) &#8211; Python Server, JQTouch Client; looks pretty, but seemingly not under active work.</li>
<li><a href="http://code.google.com/p/open-zwave/">open-zwave</a> &#8211; Free Z-Wave library, actively developed.</li>
<li><a href="http://misterhouse.sourceforge.net/">MisterHouse</a> &#8211; quite low level, scripting in Perl.</li>
<li><a href="http://www.linuxha.com/">Linux Home Automation</a> &#8211; General information.
</li>
<li><a href="http://melloware.com/products/lightswitch/">Lightswitch</a> &#8211; iPhone and Android app which works with different servers.</li>
<li><a href="http://z-wave.alsenet.com/index.php/Main_Page">AZW</a> &#8211; Various information about Z-Wave, various devices, and some Python code.</li>
<li><a href="http://en.z-wave.me/">Z-Way/Z-Cloud</a> &#8211; Proprietary Z-Wave solution by the AZW guys.</li>
<li><a href="http://www.controlthink.com/zwavesdk.htm">ControlThink Z-Wave SDK</a> &#8211; Commercial, Windows-only.</li>
<li><a href="http://www.digiwave.dk/en/programming/an-introduction-to-z-wave-programming-in-c/">Z-Wave Programming in C#</a> &#8211; article series that talks about the Z-Wave protocol on a byte-level.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.elsdoerfer.name/2011/07/11/z-wave-software/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

