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

<channel>
	<title>blog.flo.cx</title>
	<atom:link href="http://blog.flo.cx/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flo.cx</link>
	<description>Tech, Food, Life</description>
	<lastBuildDate>Fri, 30 Dec 2011 14:37:37 +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>Cory Doctorow &#8211; The coming war on general computation&#8230;</title>
		<link>http://blog.flo.cx/2011/12/cory-doctorow-the-coming-war-on-general-computation/</link>
		<comments>http://blog.flo.cx/2011/12/cory-doctorow-the-coming-war-on-general-computation/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 14:07:58 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Hardware Gadgets]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[28c3]]></category>
		<category><![CDATA[cory]]></category>
		<category><![CDATA[doctorow]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[talk]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2792</guid>
		<description><![CDATA[cory doctorow's talk at the 28c3 is great! you should watch it. it really makes you think what kind of society we live in and if one should support companies that do censor their hardware.
http://www.youtube.com/watch?v=HUEvRyemKSg

the video is licensed under CC-BY and so is the audio stream. so - for those of you who want ...
No related posts.]]></description>
			<content:encoded><![CDATA[<p>cory doctorow&#8217;s talk at the <a href="http://events.ccc.de/congress/?language=en">28c3</a> is great! you should watch it. it really makes you think what kind of society we live in and if one should support companies that do censor their hardware.</p>
<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=HUEvRyemKSg">http://www.youtube.com/watch?v=HUEvRyemKSg</a></p>
</p>
<p>the video is licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC-BY</a> and so is the audio stream. so &#8211; for those of you who want just the audio stream for a long trip and their mp3 player, i did extract the audio from the <a href="http://mirror.fem-net.de/CCC/28C3/mp4-h264-HQ/28c3-4848-en-the_coming_war_on_general_computation_h264.mp4">high quality video</a> and put up a <a href="http://zoink.it/torrent/20012CF9D3C4A31927F4500A1B617181B5DD1D0B.torrent">torrent</a> here: <a href="http://tors.in/corydoctorow28c3">http://tors.in/corydoctorow28c3</a> &#8211; here is the <a href="magnet:?xt=urn:btih:20012cf9d3c4a31927f4500a1b617181b5dd1d0b&#038;dn=28c3-4848-en-the%5Fcoming%5Fwar%5Fon%5Fgeneral%5Fcomputation.mp3" title="magnet link">magnet link</a>. i will seed <img src='http://blog.flo.cx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
and for everyone who is more into http here is the <a href="http://blog.flo.cx/mycontent/2011/12/28c3-4848-en-the_coming_war_on_general_computation.mp3">file</a> for direct download. seed with that if you like.</p>
<p>No related posts.</p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2792&amp;md5=098cabe5ef372be76cd8393315596565" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/12/cory-doctorow-the-coming-war-on-general-computation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://mirror.fem-net.de/CCC/28C3/mp4-h264-HQ/28c3-4848-en-the_coming_war_on_general_computation_h264.mp4" length="425690525" type="video/mp4" />
<enclosure url="http://blog.flo.cx/mycontent/2011/12/28c3-4848-en-the_coming_war_on_general_computation.mp3" length="60029864" type="audio/mpeg" />
		</item>
		<item>
		<title>close one&#8230;</title>
		<link>http://blog.flo.cx/2011/12/close-one/</link>
		<comments>http://blog.flo.cx/2011/12/close-one/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 14:59:19 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Go]]></category>
		<category><![CDATA[baduk]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[go]]></category>
		<category><![CDATA[kgs]]></category>
		<category><![CDATA[weiqi]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2785</guid>
		<description><![CDATA[yet another game @ KGS. this is a rather close one. but i won *yay*



Related posts:<ol>
<li><a href='http://blog.flo.cx/2011/04/the-game-of-go/' rel='bookmark' title='the game of go&#8230;'>the game of go&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>yet another game @ KGS. this is a rather close one. but i won *yay*</p>
<p>[Embedded SGF File]</p>
<p>Related posts:<ol>
<li><a href='http://blog.flo.cx/2011/04/the-game-of-go/' rel='bookmark' title='the game of go&#8230;'>the game of go&#8230;</a></li>
</ol></p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2785&amp;md5=adc78eec4c1259d7b4337ab607080e77" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/12/close-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quiche&#8230;</title>
		<link>http://blog.flo.cx/2011/12/quiche/</link>
		<comments>http://blog.flo.cx/2011/12/quiche/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 13:12:47 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Rezepte]]></category>
		<category><![CDATA[kochen]]></category>
		<category><![CDATA[quiche]]></category>
		<category><![CDATA[rezept]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2770</guid>
		<description><![CDATA[ ich wurde die letzten tage öfter nach meinem quiche rezept gefragt, also halte ich das hier auch noch einmal für die nachwelt fest:

Teig:
	125g Butter
	250g Mehl (glatt)
	etwas Wasser

Belag:
	250ml Schlagobers
	3 Eier
	50-100g Bergkäse oder einen anderen nicht zu milden Käse
	Muskatnuss
	Verschiedenes *


den teig durch starkes kneten vermengen. beim mürbteig nur ganz wenig wasser verwenden, das kann sehr ...
No related posts.]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_2773" class="wp-caption alignright" style="width: 310px"><a href="http://blog.flo.cx/mycontent/2011/12/2864456304_e5ffe2a67f_o.jpg"><img src="http://blog.flo.cx/mycontent/2011/12/2864456304_e5ffe2a67f_o-300x200.jpg" alt="" title="Quiche" width="300" height="200" class="size-medium wp-image-2773" /></a><p class="wp-caption-text">Quiche (Symbolfoto) by <a href='http://www.flickr.com/photos/imipolexg/2864456304'>ImipolexG</a></p></div> ich wurde die letzten tage öfter nach meinem quiche rezept gefragt, also halte ich das hier auch noch einmal für die nachwelt fest:</p>
<p>Teig:</p>
<li>125g Butter</li>
<li>250g Mehl (glatt)</li>
<li>etwas Wasser</li>
<p>Belag:</p>
<li>250ml Schlagobers</li>
<li>3 Eier</li>
<li>50-100g Bergkäse oder einen anderen nicht zu milden Käse</li>
<li>Muskatnuss</li>
<li>Verschiedenes *</li>
<p>den teig durch starkes kneten vermengen. beim mürbteig nur ganz wenig wasser verwenden, das kann sehr bröselig sein und lange dauern. danach kühl stellen, oder wenn der teig trotz warmer hände noch kühl ist gleich ausrollen und in eine quiche-form geben. ich schneide immer dünne scheiben auf und presse diese dann mit den fingern in die form bis ein durchgängiger boden entsteht.</p>
<p>* als belag eignet sich fast alles: jedes gemüse, schwammerl, speck, etc. alles am besten aber vorher in der pfanne anschwitzen, damit es nicht in der quiche zu viel wasser lässt. ausserdem nur zutaten verwenden die schon durch gekocht sind.<br />
weiters die eier im schlagobers versprudeln und etwas muskat hinzufügen.<br />
den hauptbelag in die quiche-form auf den teig legen, den schlagobers mit den eiern darübergiessen und zum schluss den geriebenen käse drüberstreuen.</p>
<p>dann das ganze für etwa 20 minuten bei 200°C in den ofen.</p>
<p>der klassiker ist die quiche loraine:<br />
gleiches rezept wie oben und als belag nur ausgelassene speckwürfel (150g). hier empfiehlt es sich in teig und schlagobers mit salz zu sparen, da der speck recht viel mitbringt.</p>
<p>guten appetit</p>
<p>No related posts.</p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2770&amp;md5=4c3ee3bca701a9265a69015564c8bb73" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/12/quiche/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ipod nano IV&#8230;</title>
		<link>http://blog.flo.cx/2011/12/ipod-nano-iv-2/</link>
		<comments>http://blog.flo.cx/2011/12/ipod-nano-iv-2/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 17:27:29 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[akku]]></category>
		<category><![CDATA[austausch]]></category>
		<category><![CDATA[battery]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[ipod nano]]></category>
		<category><![CDATA[recall]]></category>
		<category><![CDATA[repair]]></category>
		<category><![CDATA[rückruf]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2752</guid>
		<description><![CDATA[6 jahre nachdem ich meinen ipod bekommen habe durfte ich ihn gestern an apple zurückschicken. sie haben 6 jahre nach dem herausbringen herausgefunden dass es sein kann dass die akkus zu warm werden können (sprich: explodieren könnten).

da man nach der zeit sowieso nicht mehr von einem brauchbaren akku reden kann hab' ich mich entschlossen ...
No related posts.]]></description>
			<content:encoded><![CDATA[<p>6 jahre nachdem ich meinen <a href="http://blog.flo.cx/2005/09/ipod-nano-iii/">ipod bekommen habe</a> durfte ich ihn gestern an <a href="http://www.apple.com/support/ipodnano_replacement/">apple zurückschicken</a>. sie haben 6 jahre nach dem herausbringen herausgefunden dass es sein kann dass die <a href="http://www.theverge.com/2011/11/12/2556157/ipod-nano-1st-gen-recall">akkus zu warm werden können</a> (sprich: explodieren könnten).</p>
<p>da man nach der zeit sowieso nicht mehr von einem brauchbaren akku reden kann hab&#8217; ich mich entschlossen meinen ipod zurückzuschicken. fotos des abschieds unten:</p>
<p><div id="attachment_2757" class="wp-caption aligncenter" style="width: 235px"><a href="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1730171.jpg"><img src="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1730171-225x300.jpg" alt="Rücksende Formalitäten" title="Rücksende Formalitäten" width="225" height="300" class="size-medium wp-image-2757" /></a><p class="wp-caption-text">Rücksende Formalitäten</p></div><br />
<div id="attachment_2756" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1730371.jpg"><img src="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1730371-300x225.jpg" alt="Anleitung zum Zurückschicken" title="Anleitung zum Zurückschicken" width="300" height="225" class="size-medium wp-image-2756" /></a><p class="wp-caption-text">Anleitung zum Zurückschicken</p></div><br />
<div id="attachment_2758" class="wp-caption aligncenter" style="width: 235px"><a href="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1732381.jpg"><img src="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_1732381-225x300.jpg" alt="Playlists on the ipod nano" title="Playlists" width="225" height="300" class="size-medium wp-image-2758" /></a><p class="wp-caption-text">Playlists</p></div><br />
<div id="attachment_2759" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_173259.jpg"><img src="http://blog.flo.cx/mycontent/2011/12/IMG_20111201_173259-300x225.jpg" alt="Rückseite des ipod nano" title="Rückseite" width="300" height="225" class="size-medium wp-image-2759" /></a><p class="wp-caption-text">Rückseite</p></div></p>
<p>ich hoffe der neue wird mir weiter ein paar jahre gute dienste leisten. einmal abwarten wie lange das braucht bis der kommt <img src='http://blog.flo.cx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>No related posts.</p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2752&amp;md5=6d8dcdb3bed887b8fe9a1bb4f2a360d9" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/12/ipod-nano-iv-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wieder eine partie go&#8230;</title>
		<link>http://blog.flo.cx/2011/11/wieder-eine-partie-go/</link>
		<comments>http://blog.flo.cx/2011/11/wieder-eine-partie-go/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 16:20:28 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Go]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[go]]></category>
		<category><![CDATA[lost]]></category>
		<category><![CDATA[sgf]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2747</guid>
		<description><![CDATA[obwohl ich mit etwa 100 punkten verloren habe hat mir diese partie spass gemacht. ich hab' wenig falsch gemacht und gegen einen 6. kyu ist das nicht so schlecht finde ich :)
einzig zug 172 hätte wohl besser auf Q 16 sein sollen.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>obwohl ich mit etwa 100 punkten verloren habe hat mir diese partie spass gemacht. ich hab&#8217; wenig falsch gemacht und gegen einen 6. kyu ist das nicht so schlecht finde ich <img src='http://blog.flo.cx/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
einzig zug 172 hätte wohl besser auf Q 16 sein sollen.</p>
<p>[Embedded SGF File]</p>
<p>No related posts.</p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2747&amp;md5=f746a05b0c15eff7d7eedd83f9ebbbd6" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/11/wieder-eine-partie-go/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Video: Lisbon Airport Fake Tilt Shift&#8230;</title>
		<link>http://blog.flo.cx/2011/11/video-lisbon-airport-fake-tilt-shift/</link>
		<comments>http://blog.flo.cx/2011/11/video-lisbon-airport-fake-tilt-shift/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 23:40:27 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[video]]></category>
		<category><![CDATA[airport]]></category>
		<category><![CDATA[fake tilt shift]]></category>
		<category><![CDATA[lisbon]]></category>
		<category><![CDATA[tilt shift]]></category>
		<category><![CDATA[time lapse]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2736</guid>
		<description><![CDATA[

Related posts:<ol>
<li><a href='http://blog.flo.cx/2010/08/miniature-time-lapse-with-fake-tilt-shift-howto/' rel='bookmark' title='miniature time-lapse with fake tilt shift (howto)…'>miniature time-lapse with fake tilt shift (howto)…</a></li>
<li><a href='http://blog.flo.cx/2010/08/video-tilt-shift-miniature/' rel='bookmark' title='[video] Tilt Shift Miniature&#8230;'>[video] Tilt Shift Miniature&#8230;</a></li>
<li><a href='http://blog.flo.cx/2011/02/video-14h-time-lapse/' rel='bookmark' title='[video] 14h Time Lapse&#8230;'>[video] 14h Time Lapse&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=wgZ0VX9C0dY&#038;fmt=18">http://www.youtube.com/watch?v=wgZ0VX9C0dY</a></p></p>
<p>Related posts:<ol>
<li><a href='http://blog.flo.cx/2010/08/miniature-time-lapse-with-fake-tilt-shift-howto/' rel='bookmark' title='miniature time-lapse with fake tilt shift (howto)…'>miniature time-lapse with fake tilt shift (howto)…</a></li>
<li><a href='http://blog.flo.cx/2010/08/video-tilt-shift-miniature/' rel='bookmark' title='[video] Tilt Shift Miniature&#8230;'>[video] Tilt Shift Miniature&#8230;</a></li>
<li><a href='http://blog.flo.cx/2011/02/video-14h-time-lapse/' rel='bookmark' title='[video] 14h Time Lapse&#8230;'>[video] 14h Time Lapse&#8230;</a></li>
</ol></p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2736&amp;md5=ca9baf01bd47083e117bd260ba197776" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/11/video-lisbon-airport-fake-tilt-shift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>channel.conf ORF Sport + und ORF III&#8230;</title>
		<link>http://blog.flo.cx/2011/10/channel-conf-orf-sport-und-orf-iii/</link>
		<comments>http://blog.flo.cx/2011/10/channel-conf-orf-sport-und-orf-iii/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 10:57:20 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[dvb-t]]></category>
		<category><![CDATA[dvbt]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[orf III]]></category>
		<category><![CDATA[orf sport +]]></category>
		<category><![CDATA[vlc]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2725</guid>
		<description><![CDATA[ morgen startet ORF III (ORF 3) und ORF Sport + (ORF Sport Plus).
da ich nirgendwo eine aktuelle channel.conf für dvb-t gefunden habe, hab' ich sie selbst für Graz erstellt:

in anderen regionen österreichs wird diese klarerweise variieren. 

mit einem USB dvb-t empfänger und linux startet man den VLC so:


viel spass.
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.flo.cx/mycontent/2011/10/orfIII.png"><img src="http://blog.flo.cx/mycontent/2011/10/orfIII-300x185.png" alt="" title="ORF III Teaser" width="300" height="185" class="alignright size-medium wp-image-2726" /></a> morgen startet ORF III (ORF 3) und ORF Sport + (ORF Sport Plus).<br />
da ich nirgendwo eine aktuelle channel.conf für dvb-t gefunden habe, hab&#8217; ich sie selbst für Graz erstellt:</p>
<pre class="brush: plain; title: ; notranslate">
PULS 4:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3050:3051:10121
3SAT:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3055:3056:11302
ORF SPORT +:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3060:3061:11303
ServusTV:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3064:3065:11304
ORF III:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:3070:3071:11305
ORF1:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5010:5011:10101
ORF2 St:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5020:5021:10112
ATV:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5040:5041:10120
ORF2 B:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:5020:5021:10132
WKK:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1101:1102:1
Steiermark 1:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1201:1202:2
Soundportal:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1401:1402:4
Radio West:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5
</pre>
<p>in anderen regionen österreichs wird diese klarerweise variieren. </p>
<p>mit einem USB dvb-t empfänger und linux startet man den VLC so:</p>
<pre class="brush: plain; title: ; notranslate">
vlc channel.conf
</pre>
<p>viel spass.</p>
<p>No related posts.</p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2725&amp;md5=3737203cebc8cded9d4e97e4d64a2702" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/10/channel-conf-orf-sport-und-orf-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RFID Door Opener&#8230;</title>
		<link>http://blog.flo.cx/2011/10/rfid-door-opener/</link>
		<comments>http://blog.flo.cx/2011/10/rfid-door-opener/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 15:25:46 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware Gadgets]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[chain]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[door]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[rfid]]></category>
		<category><![CDATA[stepper]]></category>

		<guid isPermaLink="false">http://blog.flo.cx/?p=2685</guid>
		<description><![CDATA[
 i finished my latest project: a RFID Door Opener.

besides the fun while hacking it, it improves the security of the door. since it's not an outside door but the door to the garage, it's construction does not allow to mount a more secure lock. so locking it from the outside when leaving is ...
Related posts:<ol>
<li><a href='http://blog.flo.cx/2011/10/non-blocking-breathing-led-for-arduino/' rel='bookmark' title='Non-blocking breathing led for arduino&#8230;'>Non-blocking breathing led for arduino&#8230;</a></li>
<li><a href='http://blog.flo.cx/2010/10/pin-garage-door-opener/' rel='bookmark' title='pin garage door opener&#8230;'>pin garage door opener&#8230;</a></li>
<li><a href='http://blog.flo.cx/2011/01/diy-time-lapse-timer/' rel='bookmark' title='DIY time-lapse timer&#8230;'>DIY time-lapse timer&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=j9NV7lZxK08&#038;fmt=18">http://www.youtube.com/watch?v=j9NV7lZxK08</a></p>
</p>
<p>recently i finished my latest project: a RFID Door Opener.</p>
<p>besides the fun while hacking it, it improves the security of the door. since it&#8217;s not an outside door but the door to the garage, it&#8217;s construction does not allow to mount a more secure lock. so locking it from the outside when leaving is a bit bothersome.<br />
the new auto-lock feature, which allows the door to auto-lock itself, saves some time and works around the lazy user, who wouldn&#8217;t have locked it.<br />
additionally it is now easy to add or remove the right of access by adding or deleting the RFID&#8217;s unique number from the system. revoking someone&#8217;s right of access is far more difficult with a normal key.</p>
<p>beside an <a href="http://arduino.cc/en/Main/ArduinoBoardUno">arduino</a> i&#8217;m using an <a href="http://www.schmalzhaus.com/EasyDriver/">easydriver</a> to drive the stepper and a <a href="http://www.seeedstudio.com/depot/datasheet/RDM630-Spec..pdf">RFID reader</a> from <a href="http://www.seeedstudio.com/">seeedstudio</a>. </p>
<p>below you can see the schematics of the setup. the ends marked with Ard X go to a port of the arduino, which is the brain of the lock:<br />
<div id="attachment_2686" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.flo.cx/mycontent/2011/10/RFID_Door_Opener.png"><img class="size-large wp-image-2686" title="Schematics" src="http://blog.flo.cx/mycontent/2011/10/RFID_Door_Opener-500x311.png" alt="Schematics for the build" width="500" height="311" /></a><p class="wp-caption-text">Schematics for the build</p></div></p>
<pre class="brush: cpp; collapse: true; light: false; title: ; toolbar: true; notranslate">
/**
 * door lock application (c) 2011 Florian Klien
 * some code parts are borrowed from different authors <img src='http://blog.flo.cx/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  thx
 */

#include &lt;NewSoftSerial.h&gt;

#define rxPin 2
#define txPin 3

// door defs

#define DOOR_SENS  3 // analog
#define DRIVER_SWITCH 6
#define DOOR_SW 2 // analog

// motor defs
#define DIR_PIN 7
#define STEP_PIN 8
#define ledIN 5
#define ledOUT 11

NewSoftSerial rfid = NewSoftSerial( rxPin, txPin );

// The tag database consists of two parts. The first part is an array of
// tag values with each tag taking up 5 bytes. The second is a list of
// names with one name for each tag (ie: group of 5 bytes).
char* allowedTags[] = {
  &quot;AABBCCDDEE&quot;,         // Tag 1
  &quot;AABBCCDDEE&quot;,         // Tag 2
};

// List of names to associate with the matching tag IDs
char* tagName[] = {
  &quot;User1&quot;,         // Tag 1
  &quot;User2&quot;,         // Tag 2
};

// software version number:
char* software_version = &quot;1.1&quot;;

// Check the number of tags defined
int numberOfTags = sizeof(allowedTags)/sizeof(allowedTags[0]);

int incomingByte = 0;    // To store incoming serial data

boolean locked = true;
int door_open = 0; // pseudo digital
boolean prev_status = false;
boolean auto_lock = true;
//unsigned long auto_lock_time = 0;
int auto_lock_delay = 5; // in seconds
int auto_lock_switch_time = 2; // in seconds
int status_led = 0;
unsigned long status_led_time = millis();
boolean status_led_on = false;

unsigned long status_breathe_time = millis();
int breathe_delay = 10;
boolean breathe_up = true;
int breathe_i = 15;

unsigned long last_successful_rfid_read = 0;
int rfid_success_timeout = 5000; // millis

float lock_speed = 1;

/**
 * Setup
 */
unsigned long time_door = millis();
unsigned long time_switch = millis();
long debounce = 500;

void setup() {
  pinMode(ledIN, OUTPUT);
  pinMode(ledOUT, OUTPUT);
  digitalWrite(ledIN, HIGH);
  digitalWrite(ledOUT, HIGH);
  delay(300);
  digitalWrite(ledIN, LOW);
  digitalWrite(ledOUT, LOW);

  pinMode(DRIVER_SWITCH, OUTPUT);
  digitalWrite(DRIVER_SWITCH, LOW);
  pinMode(DIR_PIN, OUTPUT);
  digitalWrite(DIR_PIN, LOW);
  pinMode(STEP_PIN, OUTPUT);
  digitalWrite(STEP_PIN, LOW);
  pinMode(DOOR_SENS,INPUT);
  pinMode(DOOR_SW,INPUT);

  Serial.begin(9600);   // Serial port for connection to host
  rfid.begin(9600);      // Serial port for connection to RFID module

  Serial.println(&quot;RFID reader starting up&quot;);
  delay(1000);
  Serial.println(&quot;done&quot;);
  Serial.print(&quot;Software Version no: &quot;);
  Serial.println(software_version);
  Serial.print(&quot;door locked: &quot;);
  Serial.print(locked, DEC);
  Serial.print(&quot;\n&quot;);
  Serial.print(&quot;door closed: &quot;);
  Serial.print(!door_open, DEC);
  Serial.print(&quot;\n&quot;);
}

/**
 * Loop
 * non-blocking version of each function!
 */
void loop() {
  readRFID();
  doorSensor();
  doorSwitch();
  statusLed();
}

void doorSensor(){
  // pseudo digital
  door_open = analogRead(DOOR_SENS);
  if(millis() - time_door &gt; debounce){
    if (door_open &lt;= 500 &amp;&amp; prev_status == false){
      Serial.println(&quot;Door: opened&quot;);
      prev_status = true;
      locked = false;
    }else  if(door_open &gt; 500 &amp;&amp; prev_status == true){
      Serial.println(&quot;Door: closed&quot;);
      prev_status = false;
      if(auto_lock){
        Serial.println(&quot;locking door automatically...&quot;);
        delay(auto_lock_delay*1000);
        lock();
        locked = true;
      }
    }
    time_door = millis();
  }
}

void doorSwitch(){
  int dstimer = 0;
  int door_switch = analogRead(DOOR_SW); // pseudo digital
  if(millis() - time_switch &gt; debounce &amp;&amp; door_switch &gt;= 300){
    while (analogRead(DOOR_SW) &gt;= 300) {
      delay(100);
      dstimer++;
    }
    Serial.println(door_switch,DEC);
    Serial.println(dstimer,DEC);
    if (dstimer &lt; auto_lock_switch_time*10) { //button has been pressed less than 2 seconds = 1000/100
        if (locked == false){
          Serial.println(&quot;door locked&quot;);
          locked = true;
          lock();
        }else if(locked == true){
          Serial.println(&quot;door unlocked&quot;);
          locked = false;
          unlock();
      }
    }else {
      // auto_unlock off/on
      if(auto_lock == true){
        Serial.println(&quot;auto_lock off&quot;);
        auto_lock = false;
      }else{
        Serial.println(&quot;auto_lock on&quot;);
        auto_lock = true;
      }
      analogWrite(ledIN, 0); // resetting output

    }
    time_switch = millis();
  }
}

// breathing status led on the inside
void statusBreathe(){
  if( (status_breathe_time + breathe_delay) &lt; millis() ){
    analogWrite(ledIN, breathe_i/1.5);
    status_breathe_time = millis();
    if (breathe_up == true){
      if (breathe_i &gt; 150) {
        breathe_delay = 4;
      }
      if ((breathe_i &gt; 125) &amp;&amp; (breathe_i &lt; 151)) {
        breathe_delay = 5;
      }
      if (( breathe_i &gt; 100) &amp;&amp; (breathe_i &lt; 126)) {
        breathe_delay = 7;
      }
      if (( breathe_i &gt; 75) &amp;&amp; (breathe_i &lt; 101)) {
        breathe_delay = 10;
      }
      if (( breathe_i &gt; 50) &amp;&amp; (breathe_i &lt; 76)) {
        breathe_delay = 14;
      }
      if (( breathe_i &gt; 25) &amp;&amp; (breathe_i &lt; 51)) {
        breathe_delay = 18;
      }
      if (( breathe_i &gt; 1) &amp;&amp; (breathe_i &lt; 26)) {
        breathe_delay = 19;
      }
      breathe_i += 1;
      if( breathe_i &gt;= 255 ){
        breathe_up = false;
      }
    }else{
      if (breathe_i &gt; 150) {
        breathe_delay = 4;
      }
      if ((breathe_i &gt; 125) &amp;&amp; (breathe_i &lt; 151)) {
        breathe_delay = 5;
      }
      if (( breathe_i &gt; 100) &amp;&amp; (breathe_i &lt; 126)) {
        breathe_delay = 7;
      }
      if (( breathe_i &gt; 75) &amp;&amp; (breathe_i &lt; 101)) {
        breathe_delay = 10;
      }
      if (( breathe_i &gt; 50) &amp;&amp; (breathe_i &lt; 76)) {
        breathe_delay = 14;
      }
      if (( breathe_i &gt; 25) &amp;&amp; (breathe_i &lt; 51)) {
        breathe_delay = 18;
      }
      if (( breathe_i &gt; 1) &amp;&amp; (breathe_i &lt; 26)) {
        breathe_delay = 19;
      }
      breathe_i -= 1;
      if( breathe_i &lt;= 15 ){
        breathe_up = true;
        breathe_delay = 970/2;
      }
    }
  }
}

void statusLed(){
  if(auto_lock == false){
    status_led = 150;
  }else{
    // set this to &gt; 0 if you want the status led to blink in default mode
    status_led = 0;
    if(status_led == 0){
      statusBreathe();
    }
  }
  if(millis() - status_led_time &gt;= status_led &amp;&amp; status_led != 0){
    status_led_on = !status_led_on;
    digitalWrite(ledIN,status_led_on);
    status_led_time = millis();
  }
}

void readRFID(){
  byte i         = 0;
  byte val       = 0;
  byte checksum  = 0;
  byte bytesRead = 0;
  byte tempByte  = 0;
  byte tagBytes[6];    // &quot;Unique&quot; tags are only 5 bytes but we need an extra byte for the checksum
  char tagValue[10];

  if(rfid.available()&gt;0){
    if((val = rfid.read()) == 2) {        // Check for header
    bytesRead = 0;
    while (bytesRead &lt; 12) {            // Read 10 digit code + 2 digit checksum
      val = rfid.read();
      Serial.print(val,BYTE);
      // Append the first 10 bytes (0 to 9) to the raw tag value
      if (bytesRead &lt; 10)
      {
        tagValue[bytesRead] = val;
      }

      // Check if this is a header or stop byte before the 10 digit reading is complete
      if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) {
        break;                          // Stop reading
      }

      // Ascii/Hex conversion:
      if ((val &gt;= '0') &amp;&amp; (val &lt;= '9')) {
        val = val - '0';
      }
      else if ((val &gt;= 'A') &amp;&amp; (val &lt;= 'F')) {
        val = 10 + val - 'A';
      }

      // Every two hex-digits, add a byte to the code:
      if (bytesRead &amp; 1 == 1) {
        // Make space for this hex-digit by shifting the previous digit 4 bits to the left
        tagBytes[bytesRead &gt;&gt; 1] = (val | (tempByte &lt;&lt; 4));

        if (bytesRead &gt;&gt; 1 == 5) {                // If we're at the checksum byte,
          checksum ^= tagBytes[bytesRead &gt;&gt; 1];   // Calculate the checksum... (XOR)
        };
      } else {
        tempByte = val;                           // Store the first hex digit first
      };

      bytesRead++;                                // Ready to read next digit
    }

    // Send the result to the host connected via USB
    if (bytesRead == 12) {                        // 12 digit read is complete
      tagValue[10] = '&#92;&#48;';                        // Null-terminate the string

      Serial.print(&quot;Tag read: &quot;);
      for (i=0; i&lt;5; i++) {
        // Add a leading 0 to pad out values below 16
        if (tagBytes[i] &lt; 16) {
          Serial.print(&quot;0&quot;);
        }
        Serial.print(tagBytes[i], HEX);
      }
      Serial.println();

      Serial.print(&quot;Checksum: &quot;);
      Serial.print(tagBytes[5], HEX);
      Serial.println(tagBytes[5] == checksum ? &quot; -- passed.&quot; : &quot; -- error.&quot;);

      // Show the raw tag value
      //Serial.print(&quot;VALUE: &quot;);
      //Serial.println(tagValue);
      Serial.print(&quot;door_open: &quot;);
      Serial.println(door_open,DEC);
      // Search the tag database for this particular tag
      int tagId = findTag( tagValue );

      // Only fire the strike plate if this tag was found in the database
      if( tagId &gt; 0 )
      {
        Serial.print(&quot;Authorized tag ID &quot;);
        Serial.print(tagId);
        if(door_open &gt; 500 &amp;&amp; (last_successful_rfid_read + rfid_success_timeout) &lt; millis() ){
          Serial.print(&quot;: unlocking for &quot;);
          Serial.println(tagName[tagId - 1]);   // Get the name for this tag from the database
          unlock();
          last_successful_rfid_read = millis();
          delay(2000);
        }
      } else {
        Serial.println(&quot;Tag not authorized&quot;);
        //failSound();
        for (int i=0;i&lt;7;i++){ // FIXXME nonblocking version?
          digitalWrite(ledOUT, HIGH);
          digitalWrite(ledIN, HIGH);
          delay(100);
          digitalWrite(ledOUT, LOW);
          digitalWrite(ledIN, LOW);
          delay(80);
        }
      }
      Serial.println();     // Blank separator line in output
    }

    bytesRead = 0;
  }
  }
}

/**
 * Fire the relay to activate the strike plate for the configured
 * number of seconds.
 */
void unlock() {
  digitalWrite(ledOUT, HIGH);
  digitalWrite(ledIN, HIGH);
  delay(100);
  // if your stepper is powerful enough you can use full speed
  rotateDeg(-800, 0.6);
  digitalWrite(ledIN, LOW);
  digitalWrite(ledOUT, LOW);
  locked = false;
}

void lock(){
  digitalWrite(ledOUT, HIGH);
  digitalWrite(ledIN, HIGH);
  delay(100);
  rotateDeg(800, 1);
  digitalWrite(ledIN, LOW);
  digitalWrite(ledOUT, LOW);
  locked = true;
}

void rotate(int steps, float speed){

  // power driver
  digitalWrite(DRIVER_SWITCH,HIGH);
  delay(200);
  //rotate a specific number of microsteps (8 microsteps per step) - (negitive for reverse movement)
  //speed is any number from .01 -&gt; 1 with 1 being fastest - Slower is stronger
  int dir = (steps &gt; 0)? HIGH:LOW;
  steps = abs(steps);

  digitalWrite(DIR_PIN,dir); 

  float usDelay = (1/speed) * 250;

  for(int i=0; i &lt; steps; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(usDelay); 

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
  }

  // unpower driver
  delay(200);
  digitalWrite(DRIVER_SWITCH,LOW);
} 

void rotateDeg(float deg, float speed){
  // power driver
  digitalWrite(DRIVER_SWITCH,HIGH);
  delay(200);
  //rotate a specific number of degrees (negative for reverse movement)
  //speed is any number from .01 -&gt; 1 with 1 being fastest - Slower is stronger
  int dir = (deg &gt; 0)? HIGH:LOW;
  digitalWrite(DIR_PIN,dir); 

  int steps = abs(deg)*(1/0.225);
  float usDelay = (1/speed) * 250;

  for(int i=0; i &lt; steps; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(usDelay); 

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
  }
  // unpower driver
  delay(200);
  digitalWrite(DRIVER_SWITCH,LOW);
}

/**
 * Search for a specific tag in the database
 */
int findTag( char tagValue[10] ) {
  for (int thisCard = 0; thisCard &lt; numberOfTags; thisCard++) {
    // Check if the tag value matches this row in the tag database
    if(strcmp(tagValue, allowedTags[thisCard]) == 0)
    {
      // The row in the database starts at 0, so add 1 to the result so
      // that the card ID starts from 1 instead (0 represents &quot;no match&quot;)
      return(thisCard + 1);
    }
  }
  // If we don't find the tag return a tag ID of 0 to show there was no match
  return(0);
}
</pre>
<p>Related posts:<ol>
<li><a href='http://blog.flo.cx/2011/10/non-blocking-breathing-led-for-arduino/' rel='bookmark' title='Non-blocking breathing led for arduino&#8230;'>Non-blocking breathing led for arduino&#8230;</a></li>
<li><a href='http://blog.flo.cx/2010/10/pin-garage-door-opener/' rel='bookmark' title='pin garage door opener&#8230;'>pin garage door opener&#8230;</a></li>
<li><a href='http://blog.flo.cx/2011/01/diy-time-lapse-timer/' rel='bookmark' title='DIY time-lapse timer&#8230;'>DIY time-lapse timer&#8230;</a></li>
</ol></p><p class="wp-flattr-button"></p> <p><a href="http://blog.flo.cx/?flattrss_redirect&amp;id=2685&amp;md5=f136944fa2cc6c01acaa83db11a509c9" title="Flattr" target="_blank"><img src="http://blog.flo.cx/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.flo.cx/2011/10/rfid-door-opener/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

