<?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>flattermann.net</title>
	<atom:link href="http://www.flattermann.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flattermann.net</link>
	<description>flattermann&#039;s developer blog</description>
	<lastBuildDate>Tue, 03 May 2011 00:22:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>SqueezeCommander 0.9.6 released</title>
		<link>http://www.flattermann.net/2011/05/squeezecommander-0-9-6-released/</link>
		<comments>http://www.flattermann.net/2011/05/squeezecommander-0-9-6-released/#comments</comments>
		<pubDate>Tue, 03 May 2011 00:01:12 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[SqueezeCommander]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[SqueezeBox]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=673</guid>
		<description><![CDATA[After a long time and a lot of hard work, SqueezeCommander 0.9.6 finally arrives on AndroidMarket and on SlideME. This version contains a lot of changes. It has a new UI (similar to a well-known iOS app) and many new features. You can now use Drag-And-Drop in the Playlist and the PlayerServerScreen (to sync/move players). [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://www.flattermann.net/wp-content/uploads/2011/05/nowplaying.png"><img class="alignright size-medium wp-image-675" title="nowplaying" src="http://www.flattermann.net/wp-content/uploads/2011/05/nowplaying-180x300.png" alt="" width="180" height="300" /></a>After a long time and a lot of hard work, SqueezeCommander 0.9.6 finally arrives on AndroidMarket and on SlideME. <img src='http://www.flattermann.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </strong></p>
<p>This version contains <strong>a lot</strong> of changes.</p>
<p>It has a new UI (similar to a well-known iOS app) and many new features.<br />
You can now use Drag-And-Drop in the Playlist and the PlayerServerScreen (to sync/move players).<br />
SqueezePlay/Jive menus do work now, i.e. most plugins will probably work.<br />
If you enter an album, you can now select a default &#8220;playmode&#8221; (play/add/playnext) that will be used if you tap on an item.</p>
<p><span id="more-673"></span>Some new screenshots can be found at:<br />
<a href="http://slideme.org/en/application/squeeze-commander" target="_blank">http://slideme.org/en/application/squeeze-commander</a></p>
<p>I&#8217;ll update the documentation to the new version in the next few days:<br />
<a href="http://www.squeezecommander.com/doc" target="_blank">http://www.squeezecommander.com/doc</a></p>
<p>If you find any bugs/problems, please drop me a line at<br />
android ATT flattermann DOTT net<br />
or open a ticket in the tracker<br />
<a href="http://www.squeezecommander.com/trac" target="_blank">http://www.squeezecommander.com/trac</a></p>
<p><strong>Changelog of 0.9.6:</strong><br />
- Complete rewrite of most of the code<br />
- Implemented SqueezePlay Menus (i.e. most plugins should work now)<br />
- Adding Favorites does work<br />
- Caching of Artists/Albums/Genres implemented<br />
- Added Option to &#8220;Play other Tracks in Album&#8221;<br />
- Random Mix<br />
- Change the volume of all synchronized players<br />
- Fixed Pandora Idle-Timeout-Bug<br />
- MainMenu saves the last position<br />
- A-Z index for Albums/Artists/Genres<br />
- CustomBrowse support<br />
- SongInfo support (e.g. for Lyrics)<br />
- Auto text-size for most items<br />
- Transcoding (e.g. FLAC to MP3) when downloading (needs SBS 7.6+)<br />
- Expert Option to ignore Players or Servers<br />
- Added HiRes and LowRes icons<br />
- Swipe gesture (left-to-right) to go back within HomeMenu<br />
- Caching of SqueezePlay menus where supported (e.g. CustomBrowse)<br />
- Option to pre-fetch all album artwork after a DB Sync</p>
<p>Have fun!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for SqueezeCommander 0.9.6 released" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+SqueezeCommander+0.9.6+released" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2011/05/squeezecommander-0-9-6-released/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Wanted: A Google I/O 2011 Ticket</title>
		<link>http://www.flattermann.net/2011/02/wanted-a-google-io-2011-ticket/</link>
		<comments>http://www.flattermann.net/2011/02/wanted-a-google-io-2011-ticket/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 18:47:31 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SqueezeCommander]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=666</guid>
		<description><![CDATA[[SOLVED: I was finally able to catch a Google IO ticket. See you in SF!] Because the registration site for Google I/O 2011 was crap I was unable to get a ticket. ;-( Therefore, I&#8217;m searching for a Google I/O 2011 ticket (either Academia or Regular). If you want to sell one, please contact me [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;"><em>[SOLVED: I was finally able to catch a Google IO ticket. See you in SF!]</em></span></p>
<p>Because the registration site for Google I/O 2011 was crap I was unable to get a ticket. ;-(</p>
<p><strong>Therefore, I&#8217;m searching for a Google I/O 2011 ticket (either Academia or Regular).<br />
If you want to sell one, please contact me and I&#8217;ll buy it for a reasonable price.</strong></p>
<p>android [ATT] flattermann [DOTT] net</p>
<p><strong>I&#8217;d really like to go this year&#8230;</strong></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for Wanted: A Google I/O 2011 Ticket" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+Wanted:+A+Google+I/O+2011+Ticket" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2011/02/wanted-a-google-io-2011-ticket/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android: Howto find the hardware MAC address of a remote host</title>
		<link>http://www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address-of-a-remote-host/</link>
		<comments>http://www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address-of-a-remote-host/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 17:33:56 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Snippet]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=658</guid>
		<description><![CDATA[I recently needed to find the MAC address of a remote host in my LAN by its IP address. Unfortunately, Java/Android does not offer an API to find a MAC address by IP. The DatagramPacket class does not reveal this information for the source host, either. But Android is Linux, and hence we can try [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed to find the <strong>MAC address of a remote host</strong> in my LAN by its IP address.</p>
<p>Unfortunately, Java/Android does not offer an API to find a MAC address by IP. <img src='http://www.flattermann.net/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /><br />
The DatagramPacket class does not reveal this information for the source host, either.</p>
<p>But Android is Linux, and hence we can try to find the MAC by accessing the ARP cache information!</p>
<p><span id="more-658"></span>If we take a look at /proc/net/arp, we can find a table like this:</p>
<pre>IP address       HW type     Flags       HW address            Mask     Device
192.168.18.11    0x1         0x2         00:04:20:06:55:1a     *        eth0
192.168.18.36    0x1         0x2         00:22:43:ab:2a:5b     *        eth0</pre>
<p>So we can use a simple helper method that reads this file and returns the MAC for a specific IP address:</p>
<pre class="brush: java; title: ;">
	/**
	 * Try to extract a hardware MAC address from a given IP address using the
	 * ARP cache (/proc/net/arp).&lt;br&gt;
	 * &lt;br&gt;
	 * We assume that the file has this structure:&lt;br&gt;
	 * &lt;br&gt;
	 * IP address       HW type     Flags       HW address            Mask     Device
	 * 192.168.18.11    0x1         0x2         00:04:20:06:55:1a     *        eth0
	 * 192.168.18.36    0x1         0x2         00:22:43:ab:2a:5b     *        eth0
	 *
	 * @param ip
	 * @return the MAC from the ARP cache
	 */
	public static String getMacFromArpCache(String ip) {
		if (ip == null)
			return null;
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader(&quot;/proc/net/arp&quot;));
			String line;
			while ((line = br.readLine()) != null) {
				String[] splitted = line.split(&quot; +&quot;);
				if (splitted != null &amp;&amp; splitted.length &gt;= 4 &amp;&amp; ip.equals(splitted[0])) {
					// Basic sanity check
					String mac = splitted[3];
					if (mac.matches(&quot;..:..:..:..:..:..&quot;)) {
						return mac;
					} else {
						return null;
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return null;
	}
</pre>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for Android: Howto find the hardware MAC address of a remote host" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+Android:+Howto+find+the+hardware+MAC+address+of+a+remote+host" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2011/02/android-howto-find-the-hardware-mac-address-of-a-remote-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Widget for OpenVPN Settings</title>
		<link>http://www.flattermann.net/2011/01/android-widget-for-openvpn-settings/</link>
		<comments>http://www.flattermann.net/2011/01/android-widget-for-openvpn-settings/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 16:05:49 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[OpenVPN]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=648</guid>
		<description><![CDATA[Hey guys, I&#8217;m using the OpenVPN Settings App for Android to connect to my OpenVPN (big thanks to Friedrich Schäuffelhut!). It works great, but I was always annoyed about not having a home screen widget, because I use it pretty often. Therefore, I&#8217;ve now added a simple 1&#215;1 widget. It&#8217;s not exactly pretty, but it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flattermann.net/wp-content/uploads/2011/01/openvpn_enabled.png"><img class="alignright size-full wp-image-649" title="OpenVPN widget" src="http://www.flattermann.net/wp-content/uploads/2011/01/openvpn_enabled.png" alt="" width="115" height="115" /></a>Hey guys,</p>
<p>I&#8217;m using the <a href="http://de.androlib.com/android.application.schaeuffelhut-android-openvpn-wttm.aspx" target="_blank">OpenVPN Settings App</a> for Android to connect to my OpenVPN (big thanks to Friedrich Schäuffelhut!).</p>
<p>It works great, but I was always annoyed about not having a home screen widget, because I use it pretty often.</p>
<p>Therefore, I&#8217;ve now added a simple 1&#215;1 widget.<br />
It&#8217;s not exactly pretty, but it fits my needs. <img src='http://www.flattermann.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-648"></span>If you click the widget, it just enables/disabled the OpenVPN service.</p>
<p>You can get the OpenVPN Settings source here (the diff file is based on hg-rev. 37f16fd900):<br />
<a href="http://code.google.com/p/android-openvpn-settings/" target="_blank">http://code.google.com/p/android-openvpn-settings/</a></p>
<p>You can download the diff file for the widget support here:<br />
<a href="http://www.flattermann.net/files/android/openvpn-widget-support.diff" target="_blank">http://www.flattermann.net/files/android/openvpn-widget-support.diff</a></p>
<p>For now, you need to recompile OpenVPN Settings on your own after applying the diff file, but I&#8217;ll also contact Friedrich, maybe he will add the widget support to his next official release.</p>
<p>Have fun!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for Android Widget for OpenVPN Settings" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+Android+Widget+for+OpenVPN+Settings" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2011/01/android-widget-for-openvpn-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flattermann / SqueezeCommander on Twitter</title>
		<link>http://www.flattermann.net/2011/01/flattermann-squeezecommander-on-twitter/</link>
		<comments>http://www.flattermann.net/2011/01/flattermann-squeezecommander-on-twitter/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 14:53:03 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[SqueezeCommander]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=644</guid>
		<description><![CDATA[flattermann.net and SqueezeCommander are now available on Twitter (@flattermann09): http://twitter.com/flattermann09 Stay tuned! If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )]]></description>
			<content:encoded><![CDATA[<p>flattermann.net and SqueezeCommander are now available on Twitter (@flattermann09):</p>
<p>http://twitter.com/flattermann09</p>
<p>Stay tuned!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for Flattermann / SqueezeCommander on Twitter" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+Flattermann+/+SqueezeCommander+on+Twitter" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2011/01/flattermann-squeezecommander-on-twitter/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>dvd::rip How to solve the &#8220;AVI file has no video data&#8221; problem in Cluster mode</title>
		<link>http://www.flattermann.net/2010/10/dvdrip-how-to-solve-the-avi-file-has-no-video-data-problem-in-cluster-mode/</link>
		<comments>http://www.flattermann.net/2010/10/dvdrip-how-to-solve-the-avi-file-has-no-video-data-problem-in-cluster-mode/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 12:49:35 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[dvd::rip]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=632</guid>
		<description><![CDATA[&#8220;dvd::rip is a full featured DVD copy program written in Perl. It provides an easy to use but feature-rich Gtk+ GUI to control almost all aspects of the ripping and transcoding process. It uses the widely known video processing swissknife transcode and many other Open Source tools. dvd::rip itself is licensed under GPL / Perl [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.exit1.org/dvdrip/" target="_blank">dvd::rip</a> is a full featured DVD copy program written in Perl. It provides an easy to use but feature-rich Gtk+ GUI to control almost all aspects of the ripping and transcoding process. It uses the widely known video processing swissknife <a href="http://www.transcoding.org/">transcode</a> and many other Open Source tools. dvd::rip itself is licensed under GPL / Perl Artistic License.&#8221;</p>
<p>It works pretty good and can also make use of multiprocessor CPUs by using the &#8220;Cluster Mode&#8221;, i.e. you start <em>n</em> nodes on your PC and dvd::rip will do the load balancing.</p>
<p>Unfortunately, some users (including me) have encountered a problem in cluster mode:<br />
<strong>The process will stop with an error of &#8220;AVI file has no video data&#8221; for PSU1 while merging the video files.<br />
</strong></p>
<p><span id="more-632"></span><a href="http://ubuntuforums.org/showthread.php?t=819529" target="_blank">http://ubuntuforums.org/showthread.php?t=819529</a><br />
<a href="http://forum.ubuntuusers.de/topic/dvd:rip-cluster:-fehler-beim-merging/#post-964897" target="_blank">http://forum.ubuntuusers.de/topic/dvd:rip-cluster:-fehler-beim-merging/#post-964897</a><br />
<a href="http://www.exit1.org/archive/dvdrip-users/2007-04/msg00049.html" target="_blank">http://www.exit1.org/archive/dvdrip-users/2007-04/msg00049.html</a></p>
<p>The strange thing is that <strong>the source material only has a single PSU</strong> (Program Stream Unit) with actual data (PSU0).</p>
<p>PSU1 is  empty, therefore <em>transcode</em> will throw this error.</p>
<p>Encoding the material in normal (not cluster) mode works, but it does not make use of your multiprocessor CPU and is therefore pretty slow.</p>
<p>I&#8217;ve applied a small hack to one of the Perl files so that very small PSUs (&lt; 100 frames) will be ignored by dvd::rip.</p>
<p>For me, this has fixed the error and dvd::rip encodes the material without problems.</p>
<p>To patch the file, open the file <em>/usr/share/perl5/Video/DVDRip/Title.pm</em> and change the function <em> calc_program_stream_units</em> (around line 1205) from:</p>
<pre class="brush: perl; title: ;">

sub calc_program_stream_units {
...
 if ( $last_frame != 0 ) {
  push @program_stream_units,
  Video::DVDRip::PSU-&gt;new(
   nr     =&gt; $current_unit,
   frames =&gt; $last_frame,
  );
 }
...
1;
}
</pre>
<p>to:</p>
<pre class="brush: perl; title: ;">
sub calc_program_stream_units {
...
# Hack to remove very small PSUs (&lt;100 frames)
# Christian Erpelding, http://www.flattermann.net
# 2010-10-26
 if ( $last_frame &gt;= 100 ) {
  push @program_stream_units,
  Video::DVDRip::PSU-&gt;new(
   nr     =&gt; $current_unit,
   frames =&gt; $last_frame,
  );
 }
...
1;
}
</pre>
<p>PS: I&#8217;m using dvd::rip 0.98.11-0.0 from the Debian Multimedia Squeeze Repository (debian-multimedia.org).</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for dvd::rip How to solve the "AVI file has no video data" problem in Cluster mode" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+dvd::rip+How+to+solve+the+"AVI+file+has+no+video+data"+problem+in+Cluster+mode" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2010/10/dvdrip-how-to-solve-the-avi-file-has-no-video-data-problem-in-cluster-mode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fix UDP broadcasts on HTC phones running stock firmware</title>
		<link>http://www.flattermann.net/2010/09/fix-udp-broadcasts-on-htc-phones-running-stock-firmware/</link>
		<comments>http://www.flattermann.net/2010/09/fix-udp-broadcasts-on-htc-phones-running-stock-firmware/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 12:47:43 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[SqueezeCommander]]></category>
		<category><![CDATA[SqueezeBox]]></category>
		<category><![CDATA[SqueezeConfig]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=619</guid>
		<description><![CDATA[Unfortunately, HTC seems to have broken the /system/bin/wpa_supplicant binary in their stock 2.1 and 2.2 firmware. Phones running this firmware will not be able to receive UDP broadcasts (sending works fine). The issue is described on http://code.google.com/p/android/issues/detail?id=8407 That makes apps that rely on UDP broadcasts, like SqueezeConfig, not working. Fortunately, if you have root access [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flattermann.net/2010/09/fix-udp-broadcasts-on-htc-phones-running-stock-firmware"><img class="alignright size-medium wp-image-620" title="HTC UDP Fix" src="http://www.flattermann.net/wp-content/uploads/2010/09/htc_udp_fix-200x300.png" alt="" width="200" height="300" /></a><strong>Unfortunately, HTC seems to have broken the /system/bin/wpa_supplicant binary in their stock 2.1 and 2.2 firmware.</strong></p>
<p>Phones running this firmware <strong>will not be able to receive UDP broadcasts</strong> (sending works fine).</p>
<p>The issue is described on <a href="http://code.google.com/p/android/issues/detail?id=8407" target="_blank">http://code.google.com/p/android/issues/detail?id=8407</a></p>
<p>That makes apps that rely on UDP broadcasts, like <a href="http://www.flattermann.net/2010/03/squeezeconfig-udap-config-tool/">SqueezeConfig</a>, not working.</p>
<p><strong>Fortunately, if you have root access to your phone, there is a solution!</strong></p>
<p><span id="more-619"></span>As <em>jimmychingala</em> mentioned in the issue above, you only need to replace the wpa_supplicant binary with a working version.</p>
<p>I&#8217;ve now created a small app that will accomplish this task.</p>
<p>I&#8217;ve tested it with my<strong> HTC Hero running stock 2.1-update1</strong> firmware and it&#8217;s working fine.</p>
<p><strong>If you have another HTC phone running 2.1/2.2 and encounter the UDP issue, feel free to also try the app.<br />
Please add a comment and tell me if it works for you.</strong></p>
<p>The app will create a backup of wpa_supplicant on your sdcard first (/sdcard/wpa_supplicant.bak).<br />
If anything goes wrong, you should be able to revert to your original version.</p>
<p><strong>Anyway, a nandroid backup of your phone before using this app is </strong><strong>strongly recommended.</strong></p>
<p><a href="http://www.flattermann.net/wp-content/uploads/2010/09/qr.png"><img class="alignright size-full wp-image-628" title="Download from Market" src="http://www.flattermann.net/wp-content/uploads/2010/09/qr.png" alt="" width="150" height="150" /></a>You can download it  from the Android Market (<a href="market://details?id=de.cedata.android.htcudpfix">direct Market link</a> or use the QR code) or from my server:<br />
<a href="http://www.flattermann.net/files/android/HtcUdpBroadcastFix.apk">HtcUdpBroadcastFix.apk</a></p>
<p>You can also download the source code if you like:<br />
<a href="http://www.flattermann.net/files/android/HtcUdpBroadcastFix.src.tgz">HtcUdpBroadcastFix.src.tgz</a></p>
<p>After patching the wpa_supplicant binary, you can safely remove the app to save some space.</p>
<p>The app is licensed GPL:</p>
<pre>(c) Christian Erpelding aka flattermann, http://www.flattermann.net

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.</pre>
<p><a href="http://www.gnu.org/licenses/gpl.html" target="_blank">http://www.gnu.org/licenses/gpl.html</a></p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for Fix UDP broadcasts on HTC phones running stock firmware" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+Fix+UDP+broadcasts+on+HTC+phones+running+stock+firmware" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2010/09/fix-udp-broadcasts-on-htc-phones-running-stock-firmware/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>SqueezeCommander 0.9.5.1 released</title>
		<link>http://www.flattermann.net/2010/09/squeezecommander-0-9-5-1-released/</link>
		<comments>http://www.flattermann.net/2010/09/squeezecommander-0-9-5-1-released/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 18:37:09 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[SqueezeCommander]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[SqueezeBox]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=601</guid>
		<description><![CDATA[A new SqueezeCommander release has just hit the Android Market and SlideME! Version 0.9.5.1 is mostly a bugfix release: Added App2SD for Android 2.2+ Fixed TrackStat problem Fixed cover art download problem No confirmation dialog when downloading single files Allow downloads to internal storage (&#8220;/emmc&#8221;), where applicable Fixed WOL config problem/crash Fixed alarm playlist selection [...]]]></description>
			<content:encoded><![CDATA[<p><strong>A new SqueezeCommander release has just hit the <a href="market://details?id=de.cedata.android.squeezecommander">Android Market</a> and <a href="https://slideme.org/application/squeeze-commander">SlideME</a>!</strong></p>
<p>Version 0.9.5.1 is mostly a bugfix release:</p>
<ul>
<li><strong>Added App2SD for Android 2.2+<br />
</strong></li>
<li>Fixed TrackStat problem</li>
<li>Fixed cover art download problem</li>
<li>No confirmation dialog when downloading single files</li>
<li>Allow downloads to internal storage (&#8220;/emmc&#8221;), where applicable</li>
<li>Fixed WOL config problem/crash</li>
<li>Fixed alarm playlist selection on MySB</li>
<li>Several smaller bugfixes</li>
</ul>
<p><span id="more-601"></span>You can find the full ChangeLog here:<br />
<a href="http://www.squeezecommander.com/trac/query?status=closed&amp;group=resolution&amp;milestone=0.9.5.1" target="_blank">http://www.squeezecommander.com/trac/query?status=closed&amp;group=resolution&amp;milestone=0.9.5.1</a></p>
<p>As always, please report any problems in the Tracker:<br />
<a href="http://www.squeezecommander.com/trac/" target="_blank">http://www.squeezecommander.com/trac/</a></p>
<p>Have fun!</p>
<p>Christian</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for SqueezeCommander 0.9.5.1 released" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+SqueezeCommander+0.9.5.1+released" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2010/09/squeezecommander-0-9-5-1-released/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>BlackVPN: A global OpenVPN service</title>
		<link>http://www.flattermann.net/2010/09/blackvpn-a-global-openvpn-service/</link>
		<comments>http://www.flattermann.net/2010/09/blackvpn-a-global-openvpn-service/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 18:04:11 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVPN]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=595</guid>
		<description><![CDATA[Many websites restrict the access to their content by geo IP. E.g. you cannot access the BBC streams outside of UK, you cannot access Netflix/Hulu/Pandora outside of USA and so on&#8230; The solution to this problem is to use a VPN service that will give you an IP of the country of your choice. I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>Many websites restrict the access to their content by geo IP.<br />
E.g. you cannot access the BBC streams outside of UK, you cannot access Netflix/Hulu/Pandora outside of USA and so on&#8230;</p>
<p>The solution to this problem is to <strong>use a VPN service</strong> that will give you an IP of the country of your choice.</p>
<p>I&#8217;ve now tried <a href="https://www.blackvpn.com/" target="_blank">BlackVPN</a>, a global OpenVPN service, located in the Netherlands.</p>
<p><span id="more-595"></span>It has VPN servers in 3 countries:</p>
<ul>
<li>USA</li>
<li>UK</li>
<li>Netherlands</li>
</ul>
<p>You can either buy access to one of these countries (for 5 EUR per month) or to all of them (for 10 EUR per month).</p>
<p>You can access the service by using OpenVPN (that&#8217;s what I&#8217;m using and recommending) or PPTP.</p>
<p>See <a href="https://www.blackvpn.com/support/" target="_blank">https://www.blackvpn.com/support/</a> for sample configurations  for several platforms (Windows/Linux/MacOSX/iPhone&#8230;).</p>
<p>I&#8217;ve created a global account for 10 EUR and did some quick tests.</p>
<p>To check the speed of the OpenVPN, I&#8217;ve tried to download a <a href="http://www.debian.org/CD/netinst/" target="_blank">Debian NetInst image</a> (debian-506-amd64-netinst.iso). The file has a size of 132MiB.</p>
<p>Here are the results of my little speed test:</p>
<ul>
<li>Direct download (without active VPN): <strong>795KiB/s</strong> (2:53 minutes)</li>
<li>BlackVPN USA: <strong>213KiB/s</strong> (14:42 minutes)</li>
<li>BlackVPN UK: <strong>594KiB/s</strong> (3:21 minutes)</li>
<li>BlackVPN NL: <strong>393KiB/s</strong> (7:06 minutes)</li>
</ul>
<p>Of course, traffic through the VPN is slower than a direct connection, but I&#8217;m pretty impressed by the speed.<br />
&gt;200KiB/s (=1600KiBit/s) should be enough even for video streaming.</p>
<p>As I&#8217;m located in Germany, especially the UK/NL VPN servers are really fast.</p>
<p><strong>If you like to try <a href="https://www.blackvpn.com/" target="_blank">BlackVPN</a>, you can use my Referral Code </strong><strong>&#8220;BCFYSFP&#8221;.</strong></p>
<p>Using this referral code, you will get 2 months VPN access as a <strong>free bonus</strong> (i.e. you pay for 1 month but get 3) and I will get one month for free.</p>
<p>Have fun!</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for BlackVPN: A global OpenVPN service" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+BlackVPN:+A+global+OpenVPN+service" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2010/09/blackvpn-a-global-openvpn-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Android App: ZergTimer</title>
		<link>http://www.flattermann.net/2010/09/new-android-app-zergtimer/</link>
		<comments>http://www.flattermann.net/2010/09/new-android-app-zergtimer/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 08:18:51 +0000</pubDate>
		<dc:creator>flattermann</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[StarCraft]]></category>

		<guid isPermaLink="false">http://www.flattermann.net/?p=588</guid>
		<description><![CDATA[I&#8217;ve just released a new, free Android App: Zerg Timer It is a little helper app for Zerg players in the game StarCraft II®. As a Zerg player, you need to spawn new larva with your Queen every 29 seconds (on game speed=fastest). I tend to forget that (especially if a battle is going on) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flattermann.net/wp-content/uploads/2010/09/promo.png"><img class="alignright size-full wp-image-589" title="Zerg Timer" src="http://www.flattermann.net/wp-content/uploads/2010/09/promo.png" alt="" width="180" height="120" /></a>I&#8217;ve just released a new, free Android App: <strong>Zerg Timer</strong></p>
<p>It is a little helper app for Zerg players in the game <strong>StarCraft II®</strong>.</p>
<p>As a Zerg player, you need to spawn new larva with your Queen every 29 seconds (on game speed=fastest).</p>
<p>I tend to forget that (especially if a battle is going on) and that makes it very difficult to e.g. rebuild my army, because I&#8217;m short on larva.</p>
<p>Therefore I&#8217;ve created <strong>Zerg Timer</strong>.</p>
<p><span id="more-588"></span><a href="market://details?id=de.cedata.android.zergtimer"><img class="alignright size-full wp-image-590" title="QRCode for Zerg Timer" src="http://www.flattermann.net/wp-content/uploads/2010/09/qrcode.png" alt="" width="135" height="135" /></a>It works this way:</p>
<ol>
<li>Just before you spawn your larva, you click on the Start/Restart button in the App</li>
<li>Afterwards, you spawn larva in all hatcheries</li>
<li>The app will notify you as soon as the you can spawn larva again (depending on the game speed, this will take between 29s and 66.4s)</li>
<li>Go to step 1 <img src='http://www.flattermann.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ol>
<p><strong>Note:</strong><br />
A notification sound will be played when the timer hits zero and 50% later (if you forgot to spawn the larva/restart the timer).</p>
<p><strong>Hint:</strong><br />
To quickly spawn larva in every hatchery, put all your queens in one group (e.g. group &#8220;0&#8243;) and repeat these steps for every hatchery:</p>
<ul>
<li>BackSpace (to jump to the next hatchery)</li>
<li>&#8220;0&#8243; (select all queens)</li>
<li>&#8220;v&#8221; (select &#8220;Spawn Larva&#8221; ability)</li>
<li>Click on the hatchery</li>
</ul>
<p>You can download <a href="market://details?id=de.cedata.android.zergtimer">Zerg Timer on Android Market</a>.</p>
<p>This App is not associated, affiliated, endorsed or sponsored by Blizzard nor has it been reviewed, tested or certified by Blizzard.<br />
The App logo and the background image were taken from StarCraft II®, ©1998 Blizzard Entertainment, Inc. All rights reserved. StarCraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.</p>
<p class="buymebeer"><form action="https://www.paypal.com/cgi-bin/webscr" target="paypal" method="post"><input type="hidden" name="cmd" value="_xclick" /><input type="hidden" name="business" value="donation@flattermann.net" /><input type="hidden" name="return" value="" /><input type="hidden" name="item_name" value="Donation for New Android App: ZergTimer" /><input type="hidden" name="currency_code" value="EUR" /><input type="hidden" name="amount" value="" /><input type="image" src="http://www.flattermann.net/wp-content/plugins/buy-me-beer/icon_beer.gif" align="left" alt="Buy me a beer" title="Buy me a beer" hspace="3" /></form><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=donation@flattermann.net&amp;currency_code=EUR&amp;amount=&amp;return=&amp;item_name=Donation+for+New+Android+App:+ZergTimer" target="paypal">If you like my work, buy me a beer. (Suggested: 3€ for a beer, or more for more beer ;-) )</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.flattermann.net/2010/09/new-android-app-zergtimer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

