<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2germanfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.3.3" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Netzpiraten</title>
	<link>http://blog.netzpiraten.ch</link>
	<description>cat /dev/brain</description>
	<pubDate>Fri, 12 Jun 2009 23:48:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/netzpiraten" type="application/rss+xml" /><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/netzpiraten" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=de&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://us.i1.yimg.com/us.yimg.com/i/de/my/addtomyyahoo4.gif">Subscribe with Mein Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fnetzpiraten" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Capistrano Multistage synchronisation</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/pPebYY1XZYY/</link>
		<comments>http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 20:24:18 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[capistrano]]></category>
<category>capistrano</category><category>Radiant</category><category>rails</category><category>Ruby</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/</guid>
		<description><![CDATA[Für das Deployment des Radiant CMS verwende ich schon seit längerem Capistrano und bin auch sehr zufrieden damit. Nachdem nun auch schon einige Seiten damit produktiv sind, bin ich immer häufiger über die gleiche Aufgabe gestolpert wenn eine Weiterentwicklung anstand:

Produktive Datenbank dumpen
Dump und Assets auf die lokale Maschine kopieren
Datenbankdump einlesen
Entwickeln
Lokale Datenbank dumpen
Dump und Assets auf [...]]]></description>
			<content:encoded><![CDATA[<p>Für das Deployment des <a href="http://radiantcms.org/">Radiant CMS</a> verwende ich schon seit längerem <a href="http://www.capify.org">Capistrano</a> und bin auch sehr zufrieden damit. Nachdem nun auch schon einige Seiten damit produktiv sind, bin ich immer häufiger über die gleiche Aufgabe gestolpert wenn eine Weiterentwicklung anstand:</p>
<ol>
<li>Produktive Datenbank dumpen</li>
<li>Dump und Assets auf die lokale Maschine kopieren</li>
<li>Datenbankdump einlesen</li>
<li>Entwickeln</li>
<li>Lokale Datenbank dumpen</li>
<li>Dump und Assets auf die Stagingumgebung kopieren</li>
<li>Datenbank einlesen</li>
<li>Kunden informieren</li>
<li>Datenbankdump und Assets auf die Produktivumgebung kopieren</li>
<li>Datenbankdump einlesen</li>
</ol>
<p>Uff&#8230; jedes Mail ziemlich viel repetitive Arbeit. Da ich minimalistisch veranlagt bin, habe ich natürlich eine Lösung gesucht um mich wieder auf die wesentlichen Dinge konzentrieren zu können. Dabei rausgekommen ist mein&#8230;</p>
<p><strong>Capistrano Sync Rezept</strong></p>
<p><script src="http://gist.github.com/111597.js"></script></p>
<p><strong>Installation </strong></p>
<p>Für die Installation muss man das Rezept einfach nach <em>lib/recipes</em> in die Ruby on Rails Applikation kopieren und in das Capfile folgende Zeile einfügen:</p>
<pre class="ruby code">
<code>
Dir['lib/recipes/*.rb'].each { |receipe| load(receipe) }
</code></pre>
<p><strong>Konfiguration </strong></p>
<p>In der Deploykonfiguration <em>config/deploy.rb</em> können nun zwei Einstellungen vorgenommen werden:</p>
<pre class="ruby code">
<code>
set :sync_directories, %w(assets)
set :sync_backups, 3
</code></pre>
<p>Mit <em>sync_directories</em> werden die Verzeichnisse definiert, welche man zwischen den Umgebungen synchronisiert haben möchte - &#8216;assets&#8217; ist dabei auch gleich die Defaulteinstellungund kann beliebig erweitern werden (z.B. mit &#8216;galleries&#8217;). <em>sync_backups</em> definiert die Anzahl der Backups welche auf dem System behalten werden, doch mehr dazu später.</p>
<p>Für den Zugriff auf die Datenbank liest das Rezept die lokale <em>config/database.yml</em> Datei, wesshalb dort dann auch die Zugriffsdaten der Datenbank aller Umgebungen eingetragen werden müssen. Dies ist ja kein Problem, da diese Datei sowieso schon im .gitignore eingetragen ist und nie eingecheckt wird, oder?</p>
<p>Für das Reibungslose deployment sollte man natürlich die <a href="http://www.uibk.ac.at/zid/software/unix/linux/ssh-publickey.html">Public-Key SSH Authentifizierung</a> eingerichtet haben.</p>
<p><strong>Sync!</strong></p>
<p>Da in einer Multistageumgebung x Umgebungen vorhanden sein können, gibt es keine Kommandos für eine direkte Synchronisation zwischen den Umgebungen. Es muss immer via die lokale Entwicklungsumgebung synchronisiert werden.</p>
<p>Das zu Beginn beschriebene Synchronisationsszenario sieht nun mit dem Capistrano Rezept folgendermassen aus:</p>
<ol>
<li>cap production sync:down</li>
<li>Entwickeln</li>
<li>cap staging sync:up</li>
<li>Kunden informieren</li>
<li>cap production sync:up</li>
</ol>
<p>Das ist also schon definitiv etwas schneller&#8230; Der Task <em>sync:down</em> ruft übrigens lediglich die beiden tasks <em>sync:down:db</em> und <em>sync:down:fs</em> auf. Es ist also mit diesen Tasks auch möglich, nur das Dateisystem oder die Datenbank zu synchronisieren, wie uns das Kommando &#8216;cap -T&#8217; zeigt:</p>
<pre class="ruby code">
<code>
cap sync:down
cap sync:down:db
cap sync:down:fs
cap sync:setup
cap sync:up
cap sync:up:db
cap sync:up:fs</code></pre>
<p><strong>Abhängigkeiten</strong></p>
<p>Das Rezept benötigt <em>rsync</em> für die Synchronisation der Dateien, damit nur immer die Differenz und nicht jedesmal alle Dateien synchronisiert werde. Auch wird der Datenbankdump mit <em>mysqldump</em> gemacht, wesshalb im Moment die Datenbanksynchronisation nur mit MySql läuft. Die Faulheit welche mit zum Schreiben des Rezeptes veranlasst hat, verhindert eben auch gleichzeitig die Entwicklung von Features welches ich selber im Moment nicht benötige <img src='http://blog.netzpiraten.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Backups</strong></p>
<p>Da ich unter einer angeborenen Datenverlustsparanoia leide, musste natürlich auch ein Backupmechanismus her. Dazu wird das Verzeichnis &#8216;<em>shared/sync</em>&#8216; beim <em>deploy:setup</em> task automatisch angelegt. In diesem Verzeichnis werden nun die erzeugten Datenbankdumps abgelegt und beim Hochladen eines DB-Dumps wird vor dem Einlesen noch zusätzlich ein Dump auf der Umgebung erstellt bevor der hochgeladene Dump eingelesen wird.</p>
<p>Auch bei der Synchronisation von Verzeichnissen auf die Umgebung wird vorher ein Archiv erstellt und abgelegt - sicher ist sicher <img src='http://blog.netzpiraten.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Ein Task für ein Rollback existiert nicht - bei einem Fehler ist dann einfach Handarbeit angesagt.</p>
<p>Happy syncing!</p>
<a href="http://blog.netzpiraten.ch/tag/capistrano" rel="tag">capistrano</a>, <a href="http://blog.netzpiraten.ch/tag/radiant" rel="tag">Radiant</a>, <a href="http://blog.netzpiraten.ch/tag/rails" rel="tag">rails</a>, <a href="http://blog.netzpiraten.ch/tag/ruby" rel="tag">Ruby</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Alltagz hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu icio hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;edit[title]=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Infopirat hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Linkarena hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;bm_description=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Mister Wong hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Newskick hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Oneview hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Webnews hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yigg hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Del.icio.us hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Technorati hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;t=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/&amp;title=Capistrano+Multistage+synchronisation" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Capistrano Multistage synchronisation' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Capistrano Multistage synchronisation' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/pPebYY1XZYY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/capistrano-multistage-synchronisation/</feedburner:origLink></item>
		<item>
		<title>Nicht alles wo Bio draufsteht ist gut…</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/B80Vo0s9Lqs/</link>
		<comments>http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 21:17:08 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Leben]]></category>

		<category><![CDATA[Sicherheit]]></category>

		<guid isPermaLink="false">http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/</guid>
		<description><![CDATA[&#8230;zum Beispiel die geplanten familienfreundlichen Biometrie-Pässe sind es sicher nicht. Auf Wikipedia kann man den wunderbaren Satz

 Die Biometrie (auch Biometrik, gr. Bio = Leben und Metron = Maß) beschäftigt sich mit Messungen an Lebewesen und den dazu erforderlichen Mess- und Auswerteverfahren.

nachlesen. Genau - wir sollen vermessen und dann schön bequem ausgewertet werden.
Und was jetzt? [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;zum Beispiel die geplanten <a href="http://blog.netzpiraten.ch/biometrische-passe-kommen-na-und-ich-hab-nichts-zu-verbergen/">familienfreundlichen</a> Biometrie-Pässe sind es sicher nicht. Auf <a href="http://de.wikipedia.org/wiki/Biometrie">Wikipedia</a> kann man den wunderbaren Satz<br />
<br/><br/></p>
<p class="information"> Die <strong>Biometrie</strong> (auch <em>Biometrik</em>, gr. <em>Bio</em> = <em>Leben</em> und <em>Metron</em> = <em>Maß</em>) beschäftigt sich mit Messungen an Lebewesen und den dazu erforderlichen Mess- und Auswerteverfahren.</p>
<p><br/><br/><br />
nachlesen. Genau - wir sollen vermessen und dann schön bequem ausgewertet werden.</p>
<p>Und was jetzt? Keine Ahnung was die damit wollen? Also dann solltest du unbedingt gleich einmal den Artikel &#8220;<a href="http://pressetext.at/news/080630017/biometrische-volkszaehlung-fuer-afrikanische-pinguine/">Biometrische Volkszählung für afrikanische Pinguine</a>&#8221; lesen (einfach afrikanischen Pinguin durch Schweizer ersetzten)!</p>
<p>Für die Lesemuffel unter euch, hier ein paar der Leckerbissen (auch wieder afrikanischen Pinguin durch Schweizer  und Biologen durch Staatsschützer ersetzten):<br />
<br/><br/>
<p class="information">&#8220;Das bedeutet, dass wir die Pinguine draußen in der Wildnis beobachten können, in Echtzeit und mit ziemlicher Genauigkeit&#8221;</p>
<p><br/><br/>
<p class="information">&#8220;&#8230;soll verlässliche Daten über die Bestände und die sozialen Verhaltensweisen der afrikanischen Pinguine liefern&#8230;&#8221;</p>
<p><br/><br/>
<p class="information">&#8220;Wir glauben, dass diese neue Technik es Biologen erlauben wird, viele Vertreter verschiedener Arten kostengünstig, schnell und automatisch zu identifizieren und über längere Zeit zu beobachten&#8221;</p>
<p><br/><br/>Also von mir gibts ein fettes Nein am 17. Mai!</p>
<!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Alltagz hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu icio hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;edit[title]=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Infopirat hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Linkarena hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;bm_description=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Mister Wong hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Newskick hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Oneview hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Webnews hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yigg hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Del.icio.us hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Technorati hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;t=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/&amp;title=Nicht+alles+wo+Bio+draufsteht+ist+gut%26%238230%3B" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Nicht alles wo Bio draufsteht ist gut&#8230;' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/B80Vo0s9Lqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/nicht-alles-wo-bio-draufsteht-ist-gut/</feedburner:origLink></item>
		<item>
		<title>Ruby on Rails Entwickler gesucht</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/_EsDo_59Ugc/</link>
		<comments>http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 23:40:09 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Git]]></category>

		<category><![CDATA[Job]]></category>

		<category><![CDATA[Leben]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Macintosh]]></category>

		<category><![CDATA[Programme]]></category>

		<category><![CDATA[Radiant]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[ant]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Ruby-on-Rails]]></category>

		<category><![CDATA[sql]]></category>
<category>Administration</category><category>AJAX</category><category>ant</category><category>apple</category><category>CSS</category><category>entwicklung</category><category>flex</category><category>Java</category><category>javascript</category><category>job</category><category>Linux</category><category>Radiant</category><category>Ruby</category><category>Ruby on Rails</category><category>sql</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/</guid>
		<description><![CDATA[Wir suchen einen erfahrenen und motivierten Softwareentwickler mit hervorrangenden Programmierkenntnissen und viel Kreativität als Verstärkung für unser Entwicklungsteam. Du liebst die Kunstfertigkeit der Programmierung und hast den Ergeiz verständlichen Code zu schreiben und diesen optimalerweise durch stetige, testgetriebene Refaktorisierung zu pflegen.
Als Senior bist du auch für den Design von Datenbanken zuständig und hast fundierte Kenntnisse [...]]]></description>
			<content:encoded><![CDATA[<p>Wir suchen einen erfahrenen und motivierten Softwareentwickler mit hervorrangenden Programmierkenntnissen und viel Kreativität als Verstärkung für unser Entwicklungsteam. Du liebst die Kunstfertigkeit der Programmierung und hast den Ergeiz verständlichen Code zu schreiben und diesen optimalerweise durch stetige, testgetriebene Refaktorisierung zu pflegen.</p>
<p>Als Senior bist du auch für den Design von Datenbanken zuständig und hast fundierte Kenntnisse in SQL sowohl auch der objektorientierter Analyse und Design unter Anwendung von Entwurfsmustern. Die bist von agilen Methodiken begeistert und arbeitest gerne im Team und verbesserst konstant die Abläufe und Qualität der Arbeiten und hilfts deinen Kollegen bei der Paarprogrammierung oder durch einen Code Review.</p>
<p>Du solltest sehr gute Kenntnisse im Design von besonders benutzerfreundlichen Webseiten haben, welche mit Prototype, Scritaculous und JQuery zum Leben erweckt werden. Du legst Wert auf eine saubere Trennung von XHTML, CSS und JavaScript und beherrscht diese Techniken anstandslos. Falls notwendig werden Unklarheiten in der Bedienung in einen Usability-Test geklärt.</p>
<p>Du arbeitest selbstständig im gesamten Prozess mit: Von der Beratung über den Design bis hin zur Entwicklung und Wartung der Systeme. Die bist kommunikativ und hilfst bei der Leitung der Projekte mit und kannst auch Pflichtenhefte und Kostenschätzungen erstellen.</p>
<p>Wir verwenden hauptsächlich Ruby on Rails/Radiant und Flex um hochdynamische Webapplikationen zu entwickeln, verwalten unseren Code mit Git und nutzen Apache/Passenger auf Linux Servern in der Produktion, auf welche wir mit Capistrano deployen.</p>
<p>Du solltest dich aber nicht scheuen auch einmal bei der Wartung von älteren Systemen in Java oder PHP Hand anzulegen, oder aber auch neues wie Erlang oder Objective C ausprobieren zu wollen. Kenntnisse von Java sind von Vorteil, da auch Ruby und Flex von der Java Plattform (JRuby) und Tools wie Ant profitieren können.</p>
<p>Obwohl unsere Applikationen professionell von einem externen Partner betrieben werden, solltest du dich gut mit der Administration diverser Linux Servern auskennen (Ubuntu/SuSE/RedHat/Debian) um die Umgebungen der diversen Test- und Produktivservern für unsere Projekte zu planen und verwalten.</p>
<p>Wir sind von den Vorteilen von Open Source überzeugt und stellen unsere eigenen Codes der Allgemeinheit zu Verfügung und helfen auch bei anderen Projekten aktiv mit.</p>
<p>Einige Jahre Erfahrung in der Entwicklung webbasierter Anwendungen sind ideal und du solltes über eine fundierte Ausbilung (ETH/Uni/FH) oder genügend praktischer Erfahrung in der Softwareentwicklung verfügen.</p>
<p>Wir sind ein kleines Team welches gerade im Umbruch ist. Weg von den grossen e-Commerce Systemen mit JEE zu eher kleinen, ausgetüftelten und  hoch-dynamischen Webseiten. Du hast die aussergewöhnliche Gelegenheit mit deinem Wissen den Weg in die Zukunft mitzugestalten.</p>
<p>Falls du dich angesprochen fühlst, schreib mir doch eine Email an <a href="mailto:michael.kessler@screenconcept.ch">michael.kessler@screenconcept.ch</a> oder ruf mich unter 041 748 44 58 an, damit wir uns kennenlernen können. Und ja, wir arbeiten bereits an unserer eigenen Webseite, die aktuelle ist schrecklich <img src='http://blog.netzpiraten.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
<a href="http://blog.netzpiraten.ch/tag/administration" rel="tag">Administration</a>, <a href="http://blog.netzpiraten.ch/tag/ajax" rel="tag">AJAX</a>, <a href="http://blog.netzpiraten.ch/tag/ant" rel="tag">ant</a>, <a href="http://blog.netzpiraten.ch/tag/apple" rel="tag">apple</a>, <a href="http://blog.netzpiraten.ch/tag/css" rel="tag">CSS</a>, <a href="http://blog.netzpiraten.ch/tag/entwicklung" rel="tag">entwicklung</a>, <a href="http://blog.netzpiraten.ch/tag/flex" rel="tag">flex</a>, <a href="http://blog.netzpiraten.ch/tag/java" rel="tag">Java</a>, <a href="http://blog.netzpiraten.ch/tag/javascript" rel="tag">javascript</a>, <a href="http://blog.netzpiraten.ch/tag/job" rel="tag">job</a>, <a href="http://blog.netzpiraten.ch/tag/linux" rel="tag">Linux</a>, <a href="http://blog.netzpiraten.ch/tag/radiant" rel="tag">Radiant</a>, <a href="http://blog.netzpiraten.ch/tag/ruby" rel="tag">Ruby</a>, <a href="http://blog.netzpiraten.ch/tag/ruby-on-rails" rel="tag">Ruby on Rails</a>, <a href="http://blog.netzpiraten.ch/tag/sql" rel="tag">sql</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Alltagz hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu icio hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;edit[title]=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Infopirat hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Linkarena hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;bm_description=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Mister Wong hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Newskick hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Oneview hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Webnews hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yigg hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Del.icio.us hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Technorati hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;t=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/&amp;title=Ruby+on+Rails+Entwickler+gesucht" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Ruby on Rails Entwickler gesucht' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/_EsDo_59Ugc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/ruby-on-rails-entwickler-gesucht/</feedburner:origLink></item>
		<item>
		<title>Berechtigungen  für ein zentrales Git Repository</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/8GYrx3lg1Cg/</link>
		<comments>http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 17:51:04 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/</guid>
		<description><![CDATA[Mein erstes Git Repository auf dem Server war schnell erstellt:


sudo mkidr -p /var/git/netzpiraten.git
cd /var/git/netzpiraten.git
git init --bare --shared=group

&#8230; und schon konnte ich loslegen &#8230;


git clone ssh://www.netzpiraten.ch/var/git/netzpiraten.git
cd netzpiraten
touch test
git add test
git commit -a -m "Adding first file"
git push origin master

&#8230; und hatte wirklich nie irgend welche Probleme mit dem zentralen Repository auf dem Server.
Ein paar Monate später [...]]]></description>
			<content:encoded><![CDATA[<p>Mein erstes <a href="http://de.wikipedia.org/wiki/Git">Git</a> Repository auf dem Server war schnell erstellt:</p>
<pre class="bash code">
<code>
sudo mkidr -p /var/git/netzpiraten.git
cd /var/git/netzpiraten.git
git init --bare --shared=group
</code></pre>
<p>&#8230; und schon konnte ich loslegen &#8230;</p>
<pre class="bash code">
<code>
git clone ssh://www.netzpiraten.ch/var/git/netzpiraten.git
cd netzpiraten
touch test
git add test
git commit -a -m "Adding first file"
git push origin master
</code></pre>
<p>&#8230; und hatte wirklich nie irgend welche Probleme mit dem zentralen Repository auf dem Server.</p>
<p>Ein paar Monate später wurden auch in der Firma alle Subversion Repositories auf Git umgestellt und das lief auch ein Weilchen ohne Probleme, bis eines Tages folgende Fehlermeldung aufgetreten ist:</p>
<pre class="bash code">
<code>
Counting objects: 31, done.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (22/22), 239.64 KiB, done.
Total 22 (delta 7), reused 0 (delta 0)
error: unable to write sha1 filename ./objects/1c/1d505f3a585b9e7d298eb9477ab07c5ea79aea: Permission denied

fatal: failed to write object
error: unpack failed: unpacker exited with error code
To ssh://git.screenconcept.ch/var/git/repository.git
 ! [remote rejected] master -&gt; master (n/a (unpacker error))
</code></pre>
<p>Also nichts wie auf den Server um das Repository etwas genauer zu inspizieren.</p>
<p>Zum Glück konnte der Fehler schnell gefunden werden: Ich hatte vergessen auf den Git Repositories das <a href="http://de.wikipedia.org/wiki/Setgid">Setgid</a> Flag zu setzten, womit neue Dateien nicht der Git Gruppe gehörten sondern der Hauptgruppe des Benutzers. Klar das eine anderer Benutzer diese nun nicht einfach so überschreiben kann.</p>
<p>Also schnell den Missstand korrigieren:</p>
<pre class="bash code">
<code>
sudo chown -R :git /var/git
sudo find /var/git -type d | xargs chmod ug+rwx,g+s
</code></pre>
<p>&#8230; und jetzt kann wieder gemeinsam gearbeitet werden.</p>
<pre class="information">
<code>
Man merke sich also folgendes für das Erstellen eines zentralen Git Repository:
</code>
<ul>
<li>Git Repository Verzeichnis erstellen</li>
<li>Das Verzeichnis der Gruppe &#8216;git&#8217; zuweisen</li>
<li>Auf dem Verzeichnis das Setgid Flag setzten</li>
<li>Git Repository initialisieren</li>
</ul>
</pre>
<p>oder anders formuliert</p>
<pre class="bash code">
<code>
sudo mkdir /var/git/repository.git
sudo chown :git /var/git/repository.git
sudo chmod ug+rwx,g+s /var/git/repository.git
sudo git init --bare /var/git/repository.git
</code></pre>
<p>&#8230; und nicht vergessen, Git macht am meisten Spass, wenn man auf <a href="https://github.com/">GitHub</a> teilt.</p>
<!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Alltagz hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu icio hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;edit[title]=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Infopirat hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Linkarena hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;bm_description=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Mister Wong hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Newskick hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Oneview hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Webnews hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yigg hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Del.icio.us hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Technorati hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;t=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/&amp;title=Berechtigungen++f%C3%BCr+ein+zentrales+Git+Repository" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Berechtigungen  für ein zentrales Git Repository' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/8GYrx3lg1Cg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/berechtigungen-fur-ein-zentrales-git-repository/</feedburner:origLink></item>
		<item>
		<title>AJAX Formular mit Anker in der URL versenden</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/8hfS-zQtyQg/</link>
		<comments>http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 19:20:15 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[JavaScript]]></category>
<category>AJAX</category><category>entwicklung</category><category>javascript</category><category>Prototype</category><category>Radiant</category><category>Tips und Tricks</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/</guid>
		<description><![CDATA[Ein normales HTML Formular kann mit Prototype JS sehr einfach mittels AJAX versendet werden. Dazu wird ganz einfach ein normales Formular erstellt:


&#60;form id="myform" method="post" action="/controller"&#62;
   &#60;input type="text" name="firstname" /&#62;
   &#60;input type="text" name="lastname" /&#62;
   ...
   &#60;input type="button" onclick="sendForm();" value="Versenden"/&#62;
&#60;/form&#62;

Nun kann mit relativ wenig Code das Formular versendet werden:


function [...]]]></description>
			<content:encoded><![CDATA[<p>Ein normales HTML Formular kann mit <a href="http://www.prototypejs.org/">Prototype JS</a> sehr einfach mittels AJAX versendet werden. Dazu wird ganz einfach ein normales Formular erstellt:</p>
<pre class="javascript code">
<code>
&lt;form id="myform" method="post" action="/controller"&gt;
   &lt;input type="text" name="firstname" /&gt;
   &lt;input type="text" name="lastname" /&gt;
   ...
   &lt;input type="button" onclick="sendForm();" value="Versenden"/&gt;
&lt;/form&gt;
</code></pre>
<p>Nun kann mit relativ wenig Code das Formular versendet werden:</p>
<pre class="javascript code">
<code>
function sendForm() {
   $('myform').request({
      onSuccess: function(transport) {
         ...
      },
      onFailure: function(transport) {
         ...
      }
 });
}
</code></pre>
<p>Genau das wollte ich heute mit einem Formular in <a href="http://radiantcms.org/">Radiant CMS</a> machen, welcher ein Mail mit der <a href="http://github.com/radiant/radiant-mailer-extension/tree/master">Mailer-Erweiterung</a> versendet. Damit das ganze noch etwas eleganter daherkommt, wird das Formular in einem Fenster mit <a href="http://prototype-window.xilinus.com/">Prototype Window</a> dargestellt. Das funktioniert auch wunderbar, doch der obligate Test mit dem verstaubten Internet Explorer war leider einmal mehr nicht erfolgreich. Der Explorer konnte das Fomular nicht fehlerfrei versenden.</p>
<p>Nach einer Analyse der HTTP Anfragen kam zu Tage, dass durch die Darstellung des Formulares in einer Dialogbox (dessen Inhalt selber wiederum mit AJAX geladen wird), die URL zum Mailer-Kontroller einen HTML Anker enthielt:</p>
<pre class="code">
<code>
/pages/25/mailer#mail
</code></pre>
<p><strong>Irgendwie kommt der IE mit einem Anker in der Zielurl ganz und gar nicht klar.</strong> Nach ein wenig herumexperimentieren blieb mir nichts anderes übrig, als die URL selber aus dem Formular zu holen, den Anker daraus zu entfernen und erst dann das Formular zu versenden:</p>
<pre class="javascript code">
<code>
var url = $('myform').action;
var anchor = url.indexOf('#');
if (anchor != -1) {
   url = url.substring(0, anchor);
}
new Ajax.Request(url , {
   method: 'post',
   parameters: Form.serialize('</code><code>myform</code><code>'),
   onSuccess: function(transport) {
      ...
   },
   onFailure: function(transport) {
      ...
   }
});
</code></pre>
<p>Wieder einmal mehr wird durch den Explorer ein Stück eleganter Code zu einem komischen Rumgebastel. Internet Explorer - ohne dich würde die Webentwicklung wirklich Spass machen!</p>
<a href="http://blog.netzpiraten.ch/tag/ajax" rel="tag">AJAX</a>, <a href="http://blog.netzpiraten.ch/tag/entwicklung" rel="tag">entwicklung</a>, <a href="http://blog.netzpiraten.ch/tag/javascript" rel="tag">javascript</a>, <a href="http://blog.netzpiraten.ch/tag/prototype" rel="tag">Prototype</a>, <a href="http://blog.netzpiraten.ch/tag/radiant" rel="tag">Radiant</a>, <a href="http://blog.netzpiraten.ch/tag/tips-und-tricks" rel="tag">Tips und Tricks</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Alltagz hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu icio hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;edit[title]=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Infopirat hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Linkarena hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;bm_description=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Mister Wong hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Newskick hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Oneview hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Tausend Reporter hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Webnews hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yigg hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Del.icio.us hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Technorati hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;t=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yahoo My Web hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/&amp;title=AJAX+Formular+mit+Anker+in+der+URL+versenden" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Google Bookmarks hinzu" alt="F&uuml;ge 'AJAX Formular mit Anker in der URL versenden' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/8hfS-zQtyQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/ajax-formular-mit-anker-versenden/</feedburner:origLink></item>
		<item>
		<title>Formulare einfach gegen SPAM schützen</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/jk9Xayo845Y/</link>
		<comments>http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 20:57:50 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Tips und Tricks]]></category>
<category>Administration</category><category>entwicklung</category><category>html</category><category>javascript</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/</guid>
		<description><![CDATA[Als Entwickler und Betreiber eines Gästebuches, ist es meistens nur eine frage der Zeit bis der erste SPAM eintrudelt. Die wohl gängigste Lösung ist das Einbinden eines Captchas. Doch auch diese für den Gast nicht immer angenehmen SPAM-Blocker, werden oft durch Texterkennungsprogramme geknackt. Da dies auch auf der Peacemountain Seite schon öfters der Fall gewesen [...]]]></description>
			<content:encoded><![CDATA[<p>Als Entwickler und Betreiber eines Gästebuches, ist es meistens nur eine frage der Zeit bis der erste <a href="http://de.wikipedia.org/wiki/Spam">SPAM</a> eintrudelt. Die wohl gängigste Lösung ist das Einbinden eines <a href="http://de.wikipedia.org/wiki/Captcha">Captchas</a>. Doch auch diese für den Gast nicht immer angenehmen SPAM-Blocker, werden oft durch <a href="http://de.wikipedia.org/wiki/Texterkennung">Texterkennungsprogramme</a> geknackt. Da dies auch auf der <a href="http://www.peacemoutnain.ch">Peacemountain</a> Seite schon öfters der Fall gewesen ist, habe ich einmal etwas neues ausprobiert. Die Idee ist recht simpel und funktioniert bisher ziemlich zuverlässig.</p>
<p>Im Formular wird einfach ein zusätzliches, verstecktes Feld eingebunden und das Formular wir über eine JavaScript-Funktion gesendet:</p>
<pre class="html code">
<code>
&lt;form id="guestbook" method="post"&gt;
  &lt;input type="hidden" name="spam" value="yes"/&gt;
  &lt;input type="submit" value="Speichern" onClick="send();"/&gt;
&lt;/form&gt;
</code>
</pre>
<p>Die Funktion zum Senden ist sehr einfach gestrickt:</p>
<pre class="html code">
<code>
function send() {
  eval("document.forms['guestbook'].elements['spam'].value='no'");
  return true;
}
</code>
</pre>
<p>Jetzt muss lediglich serverseitig der Parameter <i>spam</i> geprüft werden, ob dieser immer noch den Wert &#8220;yes&#8221; enthält.</p>
<p>Da die meisten SPAM-Schleudern wohl zwar einen hochentwickelten Textscanner eingebaut haben aber keine JavaScript-Funktionen ausführen, wird der Parameter vor dem Senden nicht geändert, wie das der Browser machen würde. Einziger Wehmutstropfen bleibt, dass Gäste ohne eigeschaltetes JavaScript im Browser keine Einträge machen können. </p>
<a href="http://blog.netzpiraten.ch/tag/administration" rel="tag">Administration</a>, <a href="http://blog.netzpiraten.ch/tag/entwicklung" rel="tag">entwicklung</a>, <a href="http://blog.netzpiraten.ch/tag/html" rel="tag">html</a>, <a href="http://blog.netzpiraten.ch/tag/javascript" rel="tag">javascript</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Alltagz hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu icio hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;edit[title]=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Infopirat hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Linkarena hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;bm_description=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Mister Wong hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Newskick hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Oneview hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Webnews hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yigg hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Del.icio.us hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Technorati hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;t=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/&amp;title=Formulare+einfach+gegen+SPAM+sch%C3%BCtzen" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Formulare einfach gegen SPAM schützen' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/jk9Xayo845Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/formulare-einfach-gegen-spam-schutzen/</feedburner:origLink></item>
		<item>
		<title>Das Suppenorakel des FSM</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/-Mg5mceNYyU/</link>
		<comments>http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 20:57:18 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Leben]]></category>

		<category><![CDATA[Links]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/</guid>
		<description><![CDATA[Als Anhänger der Kirche des Fliegenden Spaghettimonsters freue ich mich besonders auf das Web 2.0 Suppenorakel für das tägliche Gebet. Rahmen. Aaaarrr, Augenklappe zu und lasst die Bierdosen zischen! !
Lesezeichen
]]></description>
			<content:encoded><![CDATA[<p>Als Anhänger der Kirche des <a href="http://de.wikipedia.org/wiki/Fliegendes_Spaghettimonster">Fliegenden Spaghettimonsters</a> freue ich mich besonders auf das Web 2.0 <a href="http://noodlr.net">Suppenorakel</a> für das tägliche Gebet. Rahmen. Aaaarrr, Augenklappe zu und lasst die Bierdosen zischen! !</p>
<!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Alltagz hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/" title="F&uuml;ge 'Das Suppenorakel des FSM' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu icio hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;edit[title]=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Infopirat hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Linkarena hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;bm_description=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Mister Wong hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Newskick hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Oneview hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Webnews hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Yigg hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Del.icio.us hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Technorati hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;t=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/&amp;title=Das+Suppenorakel+des+FSM" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Das Suppenorakel des FSM' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Das Suppenorakel des FSM' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/-Mg5mceNYyU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/das-suppenorakel-des-fsm/</feedburner:origLink></item>
		<item>
		<title>Enia Product Evaluation &amp; Celebration System</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/bTTvHUMQqHs/</link>
		<comments>http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 14:09:34 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Dovecot]]></category>

		<category><![CDATA[raid]]></category>
<category>actionscript</category><category>entwicklung</category><category>flex</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/</guid>
		<description><![CDATA[Heute war ein besonderer Tag. Nach mehreren Wochen Entwicklungszeit wurde das Enia Product Evaluation &#38; Celebration System (ePEC) freigeschalten. Bei der Applikation handelt es sich um eine innovative Lösung zur Suche eines geeigneten Teppiches in der grossen Masse der Produkte von Enia. Das ganze Konzept wurde von Sensorial Surroundings erarbeitet und von mir bei ScreenConcept [...]]]></description>
			<content:encoded><![CDATA[<p>Heute war ein besonderer Tag. Nach mehreren Wochen Entwicklungszeit wurde das <a href="http://www.eniacarpet.ch/enia/Enia_Collection-Enia_Product_Evaluation_&amp;_Celebration_System--558.htm">Enia Product Evaluation &amp; Celebration System (ePEC)</a> freigeschalten. Bei der Applikation handelt es sich um eine innovative Lösung zur Suche eines geeigneten Teppiches in der grossen Masse der Produkte von <a href="http://www.eniacarpets.com">Enia</a>. Das ganze Konzept wurde von <a href="http://www.sensorial.ch/index.htm">Sensorial Surroundings</a> erarbeitet und von mir bei <a href="http://www.screenconcept.ch">ScreenConcept</a> umgesetzt.</p>
<p><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/epec.png" alt="ePEC" /></p>
<p>Die verwendeten Technologien sind <a href="http://www.contentserv.com/">ContentServ</a> für die Datenhaltung und <a href="http://en.wikipedia.org/wiki/Adobe_Flex">Flex</a> für das Frontend.</p>
<p>Ich hätte nie gedacht, dass ich eines Tages ein Projekt in <a href="http://de.wikipedia.org/wiki/Adobe_Flash">Flash</a> realisieren würde. Ehrlich gesagt fand ich bis anhin das Rumgefummel in Flash ziemlich unpraktikabel. Um so überraschter war ich, als ich den ersten Prototypen in Flex realisiert hatte: Die <a href="http://www.eclipse.org">Eclipse</a> basierte IDE <a href="http://www.adobe.com/products/flex/features/flex_builder/">Flex Builder</a> ist ziemlich gut (bis auf ein paar kleine Details wie z.B. fehlendes <a href="http://de.wikipedia.org/wiki/Refactoring">Refactoring</a>), der Source Code ist frei Verfügbar und steht unter der Mozilla Public License und eine aktive, hilfsbereite Entwicklergemeinschaft erleichtert den Einstieg. Das Framework ist sauber aufgebaut und schnell zu erlernen. Es überzeugt im ganzen und man ist ziemlich flink in der Entwicklung von <a href="http://de.wikipedia.org/wiki/Rich_Internet_Application">RIA</a> Applikationen.</p>
<p>Alles in allem war das ePEC ein ziemlich cooles Projekt mit viel Spass bei der Entwicklung: Anstatt Architektur durch diverse Layer wie früher bei grossen <a href="http://de.wikipedia.org/wiki/J2EE">J2EE</a> Projekten, wieder einmal im kleinen Denken: Zugriff auf einzelne Bits und die Farbraumtheorie fordert dann auch wieder eimal meine Mathekenntnisse. Anstatt zu Clustern um die Performance zu Verbessern, das letzte aus den Objekte herausholen und den Code optimieren. Zum Glück habe ich schon einige Jahre Assembler auf dem Buckel und Optimierungen dieser Art sind mir nicht ganz unbekannt.</p>
<p>Das nächste Flex Projekt befindet sich übrigens bereits schon in Arbeit - auch diesmal wieder etwas spannendes und einzigartiges. Sicher kann ich bald mehr darüber berichten&#8230;</p>
<a href="http://blog.netzpiraten.ch/tag/actionscript" rel="tag">actionscript</a>, <a href="http://blog.netzpiraten.ch/tag/entwicklung" rel="tag">entwicklung</a>, <a href="http://blog.netzpiraten.ch/tag/flex" rel="tag">flex</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Alltagz hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu icio hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;edit[title]=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Infopirat hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Linkarena hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;bm_description=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Mister Wong hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Newskick hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Oneview hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Webnews hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yigg hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Del.icio.us hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Technorati hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;t=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/&amp;title=Enia+Product+Evaluation+%26%23038%3B+Celebration+System" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Enia Product Evaluation &#038; Celebration System' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/bTTvHUMQqHs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/enia-product-evaluation-celebration-system/</feedburner:origLink></item>
		<item>
		<title>Bedingte Flex 3 Kompilation mit Apache Ant</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/ElCZboONgjc/</link>
		<comments>http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 21:07:27 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Dovecot]]></category>
<category>actionscript</category><category>ant</category><category>entwicklung</category><category>flex</category><category>Tips und Tricks</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/</guid>
		<description><![CDATA[Seit einiger Zeit habe ich ein neues Spielzeug zum Arbeiten: Der Eclipse basierte Flex Builder 3 von Adobe ermöglicht einem Softwareentwickler einen einfacheren Einstieg in die Flash-Programmierung. Die IDE ist an sich ziemlich toll für die Entwicklung, ich vermisse im Moment einzig die Refactoring Werkzeuge aus der Java Welt - aber vielleicht kommt das ja [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einiger Zeit habe ich ein neues Spielzeug zum Arbeiten: Der <a href="http://www.eclipse.org/">Eclipse</a> basierte <a href="http://www.adobe.com/products/flex/">Flex Builder 3</a> von Adobe ermöglicht einem Softwareentwickler einen einfacheren Einstieg in die Flash-Programmierung. Die IDE ist an sich ziemlich toll für die Entwicklung, ich vermisse im Moment einzig die Refactoring Werkzeuge aus der Java Welt - aber vielleicht kommt das ja bei der nächsten Version. Als Java Entwickler findet man ziemlich schnell den Einstieg in das gut dokumentierte Flex Framework, mit seinen logisch aufgebauten Komponenten. Auch ActionScript 3 bereitet keine grossen Schwierigkeiten und man kann sehr schnell loslegen und nach ein paar wenigen Stunden produktiv arbeiten. Anders als bei Flash wird mit mit Flex nicht Design- sondern Codezentriert entwickelt.</p>
<p>Für Ant liefert Adobe die <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html">Flex Ant Tasks</a> mit, womit man in gewohnter Java-Manier Projekte bauen und auch bedingt kompilieren und konfigurieren kann - davon handelt dieser Artikel.</p>
<p>Für die Installation müssen als erstes mit dem Eclipse Software Update die Java Development Tools installiert werden, womit man die Ant Laufzeitumgebung und auch eine graphische Ant Ansicht bekommt. In der nachfolgenden Build-Datei muss eventuell lediglich der Pfad zu den Ant-Tasks angepasst werden. Dies kann man auch alternativ in den Einstellungen von Eclipse unter &#8220;Ant > Runtime&#8221; machen, indem man die flexTasks.jar in den Klassenpfad einbindet. </p>
<p>Das Ergebniss der nachfolgenden Anleitung kann am Ende des Artikels als Archiv heruntergeladen werden.</p>
<p>Als erster Schritt legen wir im Flex Builder ein neues Projekt &#8217;sample&#8217; an und erstellen ein Verzeichniss <em>build</em>, wo alle Build relevanten Dateien ihr Zuhause finden. Als wohl wichtigste Datei wird die <em>build.xml</em> angelegt und anschliessen in die Ant Ansicht von Eclipse gezogen. </p>
<p>Eine minimale Datei kann wie folgt aussehen:</p>
<pre class="html code">
<code>
&lt;project default="compile_test" basedir=".."&gt;

	&lt;!-- load the property file --&gt;
	&lt;property file="build/build.properties" /&gt;

	&lt;!-- define the flex ant tasks --&gt;
	&lt;taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" /&gt;

	&lt;!-- ************************************************ --&gt;
	&lt;!-- clean all generated files and folders --&gt;
	&lt;!-- ************************************************ --&gt;
	&lt;target name="clean" description="Clean all build assets"&gt;
		&lt;echo message="Deleting all artefacts"/&gt;

		&lt;!-- clean apps --&gt;
		&lt;delete dir="${output.folder}"/&gt;

		&lt;!-- clean incremental cache --&gt;
		&lt;delete file="${basedir}/src/*.cache"/&gt;
	&lt;/target&gt;

	&lt;!-- ************************************************ --&gt;
	&lt;!-- Compile sample application for test --&gt;
	&lt;!-- ************************************************ --&gt;
	&lt;target name="compile_test" description="Compiles the sample application for test"&gt;

		&lt;echo message="Compile sample application for test"/&gt;

		&lt;mkdir dir="${output.folder}/test"/&gt;

		&lt;antcall target="compile"&gt;
			&lt;param name="OUTPUT_NAME" value="test/sample.swf"/&gt;
			&lt;param name="FLEX_CONFIG" value="${basedir}/build/flex-config-test.xml"/&gt;
		&lt;/antcall&gt;
	&lt;/target&gt;

	&lt;!-- ************************************************ --&gt;
	&lt;!-- Compile sample application for production --&gt;
	&lt;!-- ************************************************ --&gt;
	&lt;target name="compile_prod" description="Compiles the sample application for production"&gt;

		&lt;echo message="Compile sample application for production"/&gt;

		&lt;mkdir dir="${output.folder}/prod"/&gt;

		&lt;antcall target="compile"&gt;
			&lt;param name="OUTPUT_NAME" value="prod/sample.swf"/&gt;
			&lt;param name="FLEX_CONFIG" value="${basedir}/build/flex-config-prod.xml"/&gt;
		&lt;/antcall&gt;
	&lt;/target&gt;

	&lt;!-- ************************************************ --&gt;
	&lt;!-- compile the flex application --&gt;
	&lt;!-- ************************************************ --&gt;
	&lt;target name="compile"&gt;

            &lt;echo message="Compile with config: ${FLEX_CONFIG}"/&gt;

            &lt;mxmlc file="${basedir}/src/sample.mxml"
                   output="${output.folder}/${OUTPUT_NAME}"
                   actionscript-file-encoding="UTF-8"
                   keep-generated-actionscript="false"
                   incremental="true"&gt;

                &lt;!-- get default compiler options --&gt;
                &lt;load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/&gt;
                &lt;load-config filename="${FLEX_CONFIG}"/&gt;

                &lt;!-- include sources --&gt;
                &lt;source-path path-element="${FLEX_HOME}/frameworks"/&gt;
                &lt;source-path path-element="${basedir}/src"/&gt;

                &lt;!-- include libraries --&gt;
                &lt;compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"&gt;
	                &lt;include name="libs" /&gt;
                &lt;/compiler.library-path&gt;
            &lt;/mxmlc&gt;

	&lt;/target&gt;

&lt;/project&gt;
</code>
</pre>
<p>Das scheint ziemlich viel XML zu sein, aber auf den zweiten Blick ist das nur halb so wild. Die Build-Datei ist in folgende Aktionen aufgesplittet:</p>
<ul>
<li><b>clean</b> - löscht den Ordner wo das <a href="http://en.wikipedia.org/wiki/SWF">SWF</a> hineingeneriert wird und auch den Zwischenspeicher für die inkrementelle Kompilation</li>
<li><b>compile_test</b> - Ruft die Kompilation mit den Parametern für die Testumgebung auf</li>
<li><b>compile_prod</b> - Ruft die Kompilation mit den Parametern für die Produktivumgebung auf</li>
<li><b>compile</b> - hier wird die Applikation mit dem MXMLC Kompiler übersetzt</li>
</ul>
<p>Im Script selber werden einige Variabel gebraucht, welche man pro Rechner anpassen muss. Ich mache die meistens so, indem ich im Source-Repository ein <em>build.properties.sample</em> mit Beispielvorgaben abspeichere, welche dann von jedem Entwickler angepasst und unter <em>build.properties</em> gespeichert werden muss. </p>
<p>Hier ein Beispiel:</p>
<pre class="bash code">
<code>
FLEX_HOME=/Applications/Adobe Flex Builder 3/sdks/3.0.0
APP_ROOT=src
output.folder=apps
</code>
</pre>
<p>Also einfach <em>FLEX_HOME</em> anpassen und schon ist der erste Teil des Build-Systemes bereit und die Ant-Datei kann in der Ant-View in Eclipse geöffnet werden:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-2.png" alt="Picture 2.png" border="0" width="276" height="140" /></div>
<p>Bevor wir uns aber ans erste Kompilieren machen, sollten wir noch die Konfigurationen für die unterschiedlichen Systeme anlegen. Diese wird in Form einer XML-Datei im <em>build</em> Ordner gemacht:</p>
<p><b>flex-config-test.xml</b></p>
<pre class="html code">
<code>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;flex-config&gt;
	&lt;compiler append="true"&gt;
		&lt;debug&gt;true&lt;/debug&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::text&lt;/name&gt;
	        &lt;value&gt;'Testing'&lt;/value&gt;
	    &lt;/define&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::button&lt;/name&gt;
	        &lt;value&gt;true&lt;/value&gt;
	    &lt;/define&gt;
	&lt;/compiler&gt;
&lt;/flex-config&gt;
</code>
</pre>
<p><b>flex-config-prod.xml</b></p>
<pre class="html code">
<code>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;flex-config&gt;
	&lt;compiler append="true"&gt;
		&lt;debug&gt;true&lt;/debug&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::text&lt;/name&gt;
	        &lt;value&gt;'Production'&lt;/value&gt;
	    &lt;/define&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::button&lt;/name&gt;
	        &lt;value&gt;false&lt;/value&gt;
	    &lt;/define&gt;
	&lt;/compiler&gt;
&lt;/flex-config&gt;
</code>
</pre>
<p>Natürlich können wir auch für den Flex Builder eine Konfigurationsdatei anlegen, ich nenne diese <em><b>flex-config-local.xml</b></em>. Diese Datei wird dann für die lokale Kompilation im Flex Builder verwendet.</p>
<p><b>flex-config-local.xml</b></p>
<pre class="html code">
<code>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;flex-config&gt;
	&lt;compiler append="true"&gt;
		&lt;debug&gt;true&lt;/debug&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::text&lt;/name&gt;
	        &lt;value&gt;'Local Development'&lt;/value&gt;
	    &lt;/define&gt;
	    &lt;define&gt;
	        &lt;name&gt;CONFIG::button&lt;/name&gt;
	        &lt;value&gt;true&lt;/value&gt;
	    &lt;/define&gt;
	&lt;/compiler&gt;
&lt;/flex-config&gt;
</code>
</pre>
<p>Diese Datei müssen wir noch in den Projekt-Einstellungen eintragen, und zwar beim Flex Kompilers um &#8216;-load-config+=../build/flex-config-local.xml&#8217; als zusätzliches Argument anhängen:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-1.png" alt="config-local" border="0" width="550" /></div>
<p>Somit lässt sich bereits ein kleines Beispiel erstellen und kompilieren, welches von der bedingten Kompilation gebrauch macht. Dazu legen wir die Datei <em>src/sample.mxml</em> mit folgendem Inhalt an:</p>
<pre class="html code">
<code>
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();"&gt;
	&lt;mx:Script source="sample.as"/&gt;
	&lt;mx:Label x="10" y="10" text="{TEXT}"/&gt;
	&lt;mx:Button id="theButton" x="10" y="36" label="Button"/&gt;
&lt;/mx:Application&gt;
</code>
</pre>
<p>Zuletzt kommt noch die Actionscript 3 Datei <em>src/sample.as</em> hinzu:</p>
<pre class="javascript code">
<code>
[Bindable]
public static var TEXT:String = CONFIG::text;

private function init():void {
	if (!CONFIG::button) {
		theButton.visible = false;
	}
}
</code>
</pre>
<p>Der Trick an der ganzen Sache ist recht einfach: Man kann auf die Deklarationen in den Konfigurationsdateien einfach zugreifen, z.B. mit&#8230;</p>
<ul>
<li>CONFIG::text - Holt den String aus der Konfigurationsdatei (WICHTIG: ein String muss in der Datei immer mit Hochkommatas umschlossen sein - hat mich einige Stunden gekostet!)
<li>CONFIG::button - wertet das Boolean aus</li>
</ul>
<p>Des weiteren ist es auch möglich, ganze Klassen auszutauschen. Die Englische Dokumentation zur bedingten Kompilation findet sich in <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html">Adobe&#8217;s Flex 3 Hilfe</a>.</p>
<p>Ausserdem kann man weitere Kompileroptionen wie Netzzugriff und Metadaten in der Konfigurationsdatei einbinden. Hier ein paar Beispiele für Einstellungen welche ist bereits verwendet habe:</p>
<p><b>Debug Informationen in das SWF Kompilieren:</b></p>
<pre class="html code">
<code>
&lt;debug&gt;true&lt;/debug&gt;
</code>
</pre>
<p>Netzwerkzugriff ein- bzw. ausschalten. Mit ausgeschaltetem Netzwerkzugriff kann man auch lokal Daten lesen. Die kann für die Erstellung einer Flex Offline Applikation nützlich sein (Ich weiss es gibt <a href="http://de.wikipedia.org/wiki/Adobe_Integrated_Runtime">AIR</a>, kann aber trotzdem manchmal passend sein):</p>
<pre class="html code">
<code>
&lt;use-network&gt;true&lt;/use-network&gt;
</code>
</pre>
<p><b>Metadaten einbinden:</b></p>
<pre class="html code">
<code>
&lt;metadata&gt;
    &lt;title&gt;Sample&lt;/title&gt;
    &lt;description&gt;Sample Flex Application&lt;/description&gt;
    &lt;publisher&gt;Netzpiraten&lt;/publisher&gt;
    &lt;creator&gt;Michael Kessler&lt;/creator&gt;
&lt;/metadata&gt;
</code>
</pre>
<p>Die Beispiel-Applikation sieht nun folgendermassen aus, wenn man sie direkt aus dem Flex Builder heraus startet:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-3.png" alt="Picture 3.png" border="0" width="472" height="291" /></div>
<p>In einem weiteren Schritt kompilieren wir die Applikation mit Ant, indem wir &#8216;<em>compile-test</em>&#8216; aufrufen. Die Ausgabe in der Konsole sollte etwa so sein:</p>
<pre class="bash code">
<code>
Buildfile: /Users/michi/Documents/Flex Builder 3/sample/build/build.xml
compile_test:
     [echo] Compile sample application for test
compile:
     [echo] Compile with config: /Users/michi/Documents/Flex Builder 3/sample/build/flex-config-test.xml
    [mxmlc] Loading configuration file /Applications/Adobe Flex Builder 3/sdks/3.0.0/frameworks/flex-config.xml
    [mxmlc] Loading configuration file /Users/michi/Documents/Flex Builder 3/sample/build/flex-config-test.xml
    [mxmlc] /Users/michi/Documents/Flex Builder 3/sample/src/sample_363677.cache (No such file or directory)
    [mxmlc] /Users/michi/Documents/Flex Builder 3/sample/apps/test/sample.swf (250033 bytes)
BUILD SUCCESSFUL
Total time: 8 seconds
</code>
</pre>
<p>Die Applikation liegt nun unter /apps/test/sample.swf und sieht folgendermassen aus, wenn man diese in einen Webbrowser zieht:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-5.png" alt="Picture 5.png" border="0" width="472" height="302" /></div>
<p>Das gleiche Prozedere mit &#8216;<em>compile-prod</em>&#8216;:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-4.png" alt="Picture 4.png" border="0" width="472" height="291" /></div>
<p>Wenn alles geklappt hat, sollten bei dir nun folgende Ordner und Dateien im Flex Builder sein:</p>
<div style="text-align:center;"><img src="http://blog.netzpiraten.ch/wp-content/uploads/2008/09/picture-6.png" alt="Picture 6.png" border="0" width="219" height="308" /></div>
<p>Prima. Klappt ja alles Bestens! Letztendlich kann das Projekt nun auch sehr einfach in einen kontinuierlichen Buildprozess eingebunden werden, z.B. mit <a href="https://hudson.dev.java.net/">Hudson</a> oder <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl</a>.</p>
<p>Ein weiteres Zückerlein ist ein einfaches aber effektives SSH Deployment. Dazu wird die <a href="http://www.jcraft.com/jsch/">jsch</a> Bibliothek benötigt, welche man herunterladen und in den Klassenpfad einbinden muss. Dannach muss die Ant-Datei lediglich um ein paar Zeilen erweitert werden:</p>
<pre class="html code">
<code>
&lt;!-- ************************************************ --&gt;
&lt;!-- deploy the online version --&gt;
&lt;!-- ************************************************ --&gt;
&lt;target name="deploy_test" depends="clean,compile_test" description="Deploy the sample application to the test system"&gt;
	&lt;echo message="Deploy sample application to test system"/&gt;
	&lt;scp file="${output.folder}/test/sample.swf" todir="/var/www/sample/" keyfile="${user.home}/.ssh/id_rsa" passphrase=""/&gt;
&lt;/target&gt;
</code>
</pre>
<p>Hat man eine passwortlose Anmeldung mittels einer <a href="http://www.uibk.ac.at/zid/software/unix/linux/ssh-publickey.html">SSH Public-Key-Authentifizierung</a> eingerichtet, ist das Deployment einer neuen Version auf ein System nur einen Doppelklick entfernt.</p>
<p>Die Beispielapplikation kann übrigens hier heruntergeladen werden: <a href="http://blog.netzpiraten.ch/wp-content/plugins/wp-downloadMonitor/download.php?id=4" 
				title="Version 0.1 downloaded 153 times" >Flex Ant Sample (153)</a></p>
<p>Happy Building &#038; Deploying!</p>
<a href="http://blog.netzpiraten.ch/tag/actionscript" rel="tag">actionscript</a>, <a href="http://blog.netzpiraten.ch/tag/ant" rel="tag">ant</a>, <a href="http://blog.netzpiraten.ch/tag/entwicklung" rel="tag">entwicklung</a>, <a href="http://blog.netzpiraten.ch/tag/flex" rel="tag">flex</a>, <a href="http://blog.netzpiraten.ch/tag/tips-und-tricks" rel="tag">Tips und Tricks</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Alltagz hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu icio hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;edit[title]=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Infopirat hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Linkarena hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;bm_description=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Mister Wong hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Newskick hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Oneview hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Webnews hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yigg hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Del.icio.us hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Technorati hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;t=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/&amp;title=Bedingte+Flex+3+Kompilation+mit+Apache+Ant" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Bedingte Flex 3 Kompilation mit Apache Ant' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/ElCZboONgjc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/bedingte-flex-3-kompilation-mit-apache-ant/</feedburner:origLink></item>
		<item>
		<title>Referendum gegen Biometrische Schweizer Pässe und Identitätskarten</title>
		<link>http://feedproxy.google.com/~r/netzpiraten/~3/OAeYBgjQjjQ/</link>
		<comments>http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 21:01:20 +0000</pubDate>
		<dc:creator>michi</dc:creator>
		
		<category><![CDATA[Zattoo]]></category>

		<category><![CDATA[steuern]]></category>
<category>gesellschaft</category><category>Information</category><category>Sicherheit</category><category>ueberwachung</category>
		<guid isPermaLink="false">http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/</guid>
		<description><![CDATA[Nicht vergessen: Auf der farblich etwas missratenen Webseite der Freiheitskampagne den Unterschriftsbogen herunterladen, ausdrucken und im Freundeskreis und bei Nachbarn lobbyieren! Dabei sollte man sich nicht durch die überparteiliche Unterstützungsliste irritieren lassen (oder wie Kire es so schön als streckenweises Gruselkabinet formuliert).
Seit dem ersten Artikel &#8216;Biometrische Pässe kommen - na und? Ich hab nichts zu [...]]]></description>
			<content:encoded><![CDATA[<p>Nicht vergessen: Auf der farblich etwas missratenen Webseite der <a href="http://www.freiheitskampagne.ch/">Freiheitskampagne</a> den Unterschriftsbogen herunterladen, ausdrucken und im Freundeskreis und bei Nachbarn lobbyieren! Dabei sollte man sich nicht durch die überparteiliche Unterstützungsliste irritieren lassen (oder wie Kire es so schön als streckenweises <a href="http://www.kire.ch/blog/2008/08/02/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/">Gruselkabinet</a> formuliert).</p>
<p>Seit dem ersten Artikel &#8216;<a href="http://blog.netzpiraten.ch/biometrische-passe-kommen-na-und-ich-hab-nichts-zu-verbergen/">Biometrische Pässe kommen - na und? Ich hab nichts zu verbergen..!</a><br />
&#8216; zu der Thematik hier im Blog wurde zusätzlich auf die Möglichkeit verzichtet, Identitätskarten ohne biometrische Daten auszustellen. Die Schweiz mutiert immer mehr zum <a href="http://de.wikipedia.org/wiki/%C3%9Cberwachungsstaat">Überwachungsstaat</a>&#8230;</p>
<a href="http://blog.netzpiraten.ch/tag/gesellschaft" rel="tag">gesellschaft</a>, <a href="http://blog.netzpiraten.ch/tag/information" rel="tag">Information</a>, <a href="http://blog.netzpiraten.ch/tag/sicherheit" rel="tag">Sicherheit</a>, <a href="http://blog.netzpiraten.ch/tag/ueberwachung" rel="tag">ueberwachung</a><!-- Social Bookmarks BEGIN --><div class="social_bookmark"><em>Lesezeichen</em><br /><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.alltagz.de/bookmarks/?action=add&amp;address=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Alltagz hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/alltagz.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Alltagz hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Alltagz hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.icio.de/add.php?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu icio hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/icio.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu icio hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu icio hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://infopirat.com/node/add/userlink?edit[url]=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;edit[title]=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Infopirat hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/infopirat.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Infopirat hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Infopirat hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://linkarena.com/bookmarks/addlink/?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Linkarena hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/linkarena.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Linkarena hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Linkarena hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.de/addurl/?bm_url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;bm_description=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Mister Wong hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/mister-wong.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Mister Wong hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Mister Wong hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.newskick.de/submit.php?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Newskick hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/newskick.png" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Newskick hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Newskick hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.oneview.de/quickadd/neu/addBookmark.jsf?URL=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Oneview hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/oneview.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Oneview hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Oneview hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tausendreporter.stern.de/submit.php?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Tausend Reporter hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/tausend-reporter-stern.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Tausend Reporter hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Tausend Reporter hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.webnews.de/einstellen?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Webnews hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/webnews.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Webnews hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Webnews hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://yigg.de/neu?exturl=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yigg hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yigg.gif" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yigg hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yigg hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Del.icio.us hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/delicious.png" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Del.icio.us hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Del.icio.us hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Technorati hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/technorati.png" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Technorati hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Technorati hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;t=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yahoo My Web hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/yahoo_myweb.png" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yahoo My Web hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Yahoo My Web hinzu" /></a><a class="social_img" onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/&amp;title=Referendum+gegen+Biometrische+Schweizer+P%C3%A4sse+und+Identit%C3%A4tskarten" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Google Bookmarks hinzu"><img src="http://blog.netzpiraten.ch/wp-content/plugins/social_bookmarks/google.png" border="0" title="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Google Bookmarks hinzu" alt="F&uuml;ge 'Referendum gegen Biometrische Schweizer Pässe und Identitätskarten' zu Google Bookmarks hinzu" /></a></div>
<!-- Social Bookmarks END --><img src="http://feeds.feedburner.com/~r/netzpiraten/~4/OAeYBgjQjjQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.netzpiraten.ch/referendum-gegen-biometrische-schweizer-passe-und-identitatskarten/</feedburner:origLink></item>
	</channel>
</rss>
