<?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"?><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:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>BEIER-CHRISTIAN.eu</title>
	
	<link>http://www.beier-christian.eu/blog</link>
	<description />
	<lastBuildDate>Wed, 26 Oct 2011 10:00:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/beier-christian" /><feedburner:info uri="beier-christian" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeier-christian" 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/beier-christian" 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%2Fbeier-christian" 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%2Fbeier-christian" 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%2Fbeier-christian" 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://add.my.yahoo.com/content?lg=de&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fbeier-christian" src="http://us.i1.yimg.com/us.yimg.com/i/de/my/addtomyyahoo4.gif">Subscribe with Mein Yahoo!</feedburner:feedFlare><item>
		<title>Zend Optimizer unter MAMP 2.x</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/GvIqn9q2XXY/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/zend-optimizer-unter-mamp-2-x/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 09:19:24 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[webentwicklung]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=660</guid>
		<description><![CDATA[Schon seit langem setzte ich für die lokale Entwicklung MAMP Pro ein. Mit der neuen Version 2.0 hat sich unter der Haube jedoch viel getan, so dass ich schon einige Male der Verzweiflung nah war. So auch jetzt wieder, als ich Zend Optimizer zum Laufen kriegen musste. Mit MAMP 2.x wurde die Unterstützung von Zend [...]]]></description>
			<content:encoded><![CDATA[<p>Schon seit langem setzte ich für die lokale Entwicklung MAMP Pro ein. Mit der neuen Version 2.0 hat sich unter der Haube jedoch viel getan, so dass ich schon einige Male der Verzweiflung nah war. So auch jetzt wieder, als ich Zend Optimizer zum Laufen kriegen musste.</p>

<p>Mit MAMP 2.x wurde die Unterstützung von Zend Optimizer komplett entfernt und alle Komponenten von MAMP laufen nun mit 64bit. Da es denn Zend Optimizer für Mac OS X jedoch nur als 32bit Variante gibt, haben wir schon mal ein Problem.</p>

<p>Zuerst muss jedoch Zend Optimizer installiert werden. Die benötigte Datei <a href="http://www.zend.com/de/products/guard/downloads">findet man bei Zend</a>. Übrigens, ich hasse Zwangsregistrierungen, nur um an einen Download zu kommen!</p>

<p>Anschließend kopiert man die Datei ZendOptimizer.so (nach dem Entpacken zu finden unter data/5_2_x_comp/ZendOptimizer.so) in das Verzeichnis /Applications/MAMP/bin/php5.2.17/modules .</p>

<p>Nun muss in der php.ini noch Folgendes ergänzt werden:</p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">zend_optimizer.optimization_level=15<br />
zend_extension=/Applications/MAMP/bin/php/php5.2.17/modules/ZendOptimizer.so</div></div>

<p>Teilweise tritt folgende Fehlermeldung auf:</p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Failed loading /Applications/MAMP/bin/php/php5.2.17/modules/ZendOptimizer.so: &nbsp;(null)</div></div>

<p>Dann sollten die Execute Rechte der Datei wie auch die Datei Xattributes (mit xattr) überprüft werden.</p>

<p>Nun aber zum eigentlichen Problem. Auch wenn bisher alles problemlos verlief, wird <abbr title="Hypertext Preprocessor">PHP</abbr> unter MAMP den Zend Optimizer nicht erkennen und unsere Anwendung (in meinem Fall Shopware) wird weiter herummeckern, dass der Zend Optimizer fehlt. Das liegt wie gesagt daran, das unter MAMP 2.x der Apache unter 64bit läuft, und entsprechend den 32bit Zend Optimizer nicht verarbeiten möchte.</p>

<p>Hier hilft es nur, MAMP dazu zu bringen, den mitgelieferten Apache Webserver mit 32bit zu starten. Dazu muss die 32bit Variante jedoch erst aus der Multibinary Datei extrahiert und ein Symlink angelegt werden:</p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mv /Applications/MAMP/Library/bin/httpd /Applications/MAMP/Library/bin/httpd.64<br />
lipo -thin i386 /Applications/MAMP/Library/bin/httpd.64 -output /Applications/MAMP/Library/bin/httpd.32<br />
ln -s /Applications/MAMP/Library/bin/httpd.32 /Applications/MAMP/Library/bin/httpd</div></div>

<p>Nach einem Neustart von MAMP sollte nun der Apache mit 32bit laufen und der Zend Optimizer korrekt erkannt werden.</p>

<p>Zurückgewechselt werden kann zur 64bit Variante wieder mit:</p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rm /Applications/MAMP/Library/bin/httpd &amp;&amp; ln -s /Applications/MAMP/Library/bin/httpd.64 /Applications/MAMP/Library/bin/httpd</div></div>

<p>Mein Testsystem:
MAMP 2.0.5 unter Mac OS X 10.6.8 (Snow Leopard).</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/GvIqn9q2XXY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/zend-optimizer-unter-mamp-2-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/zend-optimizer-unter-mamp-2-x/</feedburner:origLink></item>
		<item>
		<title>Wirify: Bookmarklet das aus einer Website einen Wireframe macht</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/gutY615-WsQ/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/wirify-bookmarklet-das-aus-einer-website-einen-wireframe-macht/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 08:47:48 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=656</guid>
		<description><![CDATA[Wird schnell mal ein Wireframe von einer bestehenden Website benötigt? Mit dem Bookmarklet Wirify ist das kein Problem und geht mit einem Klick. Das kleine Tool ist sehr hilfreich, wenn vor einem Redesign der Status Quo festgestellt werden soll oder bisherige Entwicklungen, hinsichtlich verschiedener Designparameter (Abstände, Weißraum, Platzaufteilung) überprüft werden sollen. » Wirify: The web [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-657" title="Das Wirify Wireframe Bookmarklet im Einsatz" src="http://www.beier-christian.eu/blog/wp-content/uploads/2011/02/wirify_wireframe_bookmarklet_im_einsatz.jpg" alt="" width="548" height="604" /></p>

<p>Wird schnell mal ein Wireframe von einer bestehenden Website benötigt? Mit dem Bookmarklet Wirify ist das kein Problem und geht mit einem Klick. Das kleine Tool ist sehr hilfreich, wenn vor einem Redesign der Status Quo festgestellt werden soll oder bisherige Entwicklungen, hinsichtlich verschiedener Designparameter (Abstände, Weißraum, Platzaufteilung) überprüft werden sollen.</p>

<p>» <a href="http://www.volkside.com/2010/12/introducing-wirify-the-web-as-wireframes/">Wirify: The web as wireframes</a></p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/gutY615-WsQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/wirify-bookmarklet-das-aus-einer-website-einen-wireframe-macht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/wirify-bookmarklet-das-aus-einer-website-einen-wireframe-macht/</feedburner:origLink></item>
		<item>
		<title>Hyper Alerts: Ein Feature das Facebook vergaß</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/tQpbaCZ2_9Q/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/hyper-alerts-ein-feature-das-facebook-vergas/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 14:43:54 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[socialmedia]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=654</guid>
		<description><![CDATA[Jeder der eine Facebook Seite (neudeutsch Fanpage) verwaltet wird die Funktion schon vermisst haben: Die Benachrichtigung, wenn jemand auf der Seite etwas geschrieben hat. Ein Anbieter der sich diesem fehlenden Feature angenommen hat, ist Hyper Alerts. Der Dienst hält sich angenehm im Hintergrund. Nach der Registrierung und der Hinterlegung der zu beobachtenden Fanpages bekommt man [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.beier-christian.eu/blog/wp-content/uploads/2011/01/hyperalerts.jpg" alt="Screenshot von Hyper Alerts" title="Screenshot von Hyper Alerts" width="548" height="281" class="aligncenter size-full wp-image-655" /></p>

<p>Jeder der eine Facebook Seite (neudeutsch Fanpage) verwaltet wird die Funktion schon vermisst haben: Die Benachrichtigung, wenn jemand auf der Seite etwas geschrieben hat. Ein Anbieter der sich diesem fehlenden Feature angenommen hat, ist <a href="http://alerts.hyperinteraktiv.no/">Hyper Alerts</a>.</p>

<p>Der Dienst hält sich angenehm im Hintergrund. Nach der Registrierung und der Hinterlegung der zu beobachtenden Fanpages bekommt man im eigestellten Intervall eine Benachrichtigung, wenn sich etwas auf den Seiten getan hat. Nett ist auch, dass die Option »As soon as possible« angeboten wird (derzeit wegen hoher Auslastung deaktiviert, soll aber bald wiederkommen) und man somit auch direkt auf neue Beiträge reagieren kann.</p>

<p>Vorbei sind also die Zeiten, wo gerade viele Social Media Agenturen sich ständig auf ihren Seiten herumtreiben mussten, um ja schnell reagieren zu können.</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/tQpbaCZ2_9Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/hyper-alerts-ein-feature-das-facebook-vergas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/hyper-alerts-ein-feature-das-facebook-vergas/</feedburner:origLink></item>
		<item>
		<title>Rails 2.3.6, Rails 2.3.7 und Rails 2.3.8</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/W7WzqAsQPxo/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/rails-2-3-6-rails-2-3-7-und-rails-2-3-8/#comments</comments>
		<pubDate>Tue, 25 May 2010 11:36:37 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=651</guid>
		<description><![CDATA[In den letzten Tagen war ziemlich viel Wirbel in der Rails Community, da drei neue Versionen veröffentlicht wurden – die letzten beiden (2.3.7 und 2.3.8) allerdings nicht ganz freiwillig. Die Version 2.3.6 ist neben einigen Fehlerbehebungen als Vorbereitung für den Umstieg auf Rails 3 gedacht. Entsprechend sollte bei bestehenden Anwendungen (wenn ein Umstieg geplant ist) [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Tagen war ziemlich viel Wirbel in der Rails Community, da drei neue Versionen veröffentlicht wurden – die letzten beiden (2.3.7 und 2.3.8) allerdings nicht ganz freiwillig.</p>

<p>Die Version <a href="http://weblog.rubyonrails.org/2010/5/23/ruby-on-rails-2-3-6-released">2.3.6</a> ist neben einigen Fehlerbehebungen als Vorbereitung für den Umstieg auf Rails 3 gedacht. Entsprechend sollte bei bestehenden Anwendungen (wenn ein Umstieg geplant ist) auf die neuen Deprecated-Warnungen geachtet werden. Anwendungen die keine Deprecated-Warnungen ausgeben, sollten später ohne ernsthafte Probleme unter Rails 3 funktionieren.</p>

<p>In der neuen Version wurden teilweise schon Funktionen von Rails 3 übernommen. So unter anderem die Funktionen für den Schutz gegen XSS, welche auf dem <a href="http://github.com/rails/rails_xss">rails-xss-Plugin</a> basieren. Da dort einige Bugs dem HAML-Entwickler aufgefallen sind, wurde relativ schnell eine aktualisierte Version (<a href="http://weblog.rubyonrails.org/2010/5/24/ruby-on-rails-2-3-7-released">2.3.7</a>) veröffentlicht. Doch damit waren die Probleme nicht beseitigt: Einer der Patchs in Rails 2.3.7 soll wiederum für einige Fehler gesorgt haben, weshalb die Version <a href="http://weblog.rubyonrails.org/2010/5/25/ruby-on-rails-2-3-8-released">2.3.8</a> hinterher geschoben werden musste.</p>

<blockquote>I apologize for wasting a chunk of your day on installing what ought to have been a patch-level update only to find it breaks your app. That’s well out of line with our stable release process and it’s my fault for stepping out of it. I got caught up in a sky-is-falling response to a 2.3.6 bug that affected a handful of users and responded with a fix that exposed a new flaw to nearly all users, despite testing and sanity checking.</blockquote>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/W7WzqAsQPxo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/rails-2-3-6-rails-2-3-7-und-rails-2-3-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/rails-2-3-6-rails-2-3-7-und-rails-2-3-8/</feedburner:origLink></item>
		<item>
		<title>CBpictures, mein neues Foto-Zuhause</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/Xidsr-UUKCI/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/cbpictures-mein-neues-foto-zuhause/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 14:14:18 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[fotografie]]></category>
		<category><![CDATA[intern]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=648</guid>
		<description><![CDATA[Heute mal ein Posting in eigener Sache: Vor einigen Jahren war diese Website noch in zwei Hauptbereiche unterteilt: dem Webdesign und der Fotografie. Nachdem ich aber – da das Webdesign und die Programmierung einen höheren Stellenwert hatte – den Fotografie-Teil stark vernachlässigt hatte, entfernte ich diesen Bereich komplett. Allerdings fehlte mir die ganze Zeit immer [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cbpictures.de"><img src="http://www.beier-christian.eu/blog/wp-content/uploads/2010/04/screenshot_cbpictures-548x406.jpg" alt="Screenshot von CBpictures" title="CBpictures – Fotografien von Christian Beier" width="548" height="406" class="aligncenter size-medium wp-image-650" /></a></p>

<p>Heute mal ein Posting in eigener Sache: Vor einigen Jahren war diese Website noch in zwei Hauptbereiche unterteilt: dem Webdesign und der Fotografie. Nachdem ich aber – da das Webdesign und die Programmierung einen höheren Stellenwert hatte – den Fotografie-Teil stark vernachlässigt hatte, entfernte ich diesen Bereich komplett. Allerdings fehlte mir die ganze Zeit immer etwas.</p>

<p>In den letzten Tagen habe ich an einer neuen Website für die Fotografie gearbeitet. Und jetzt ist sie – zumindest vorläufig – fertig. Wer sich also nicht nur für meine Arbeit in der Webentwicklung interessiert, sollte einmal bei <a href="http://www.cbpictures.de">CBpictures</a> vorbeischauen …</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/Xidsr-UUKCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/cbpictures-mein-neues-foto-zuhause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/cbpictures-mein-neues-foto-zuhause/</feedburner:origLink></item>
		<item>
		<title>Persönliches Fazit zum PolitCamp 2010, Berlin</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/PMOobQjVp1U/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/personliches-fazit-zum-politcamp-2010-berlin/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 15:32:53 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[politik]]></category>
		<category><![CDATA[veranstaltung]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=647</guid>
		<description><![CDATA[Am vergangenen Wochenende fand in Berlin das PolitCamp 2010 im »Radial System V« (Berlin) statt. Gleich vorneweg: Die Location und auch die Aussicht ist super und wirklich zu empfehlen. Zwei Tage nach dem PolitCamp hier meine ganz persönlichen Eindrücke in Kurzform: Noch einmal zur Location: Die Räume dort sind angenehm groß und trotz der hohen [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://10.politcamp.org/"><img class="alignright size-full wp-image-636" title="Logo des Politcamp" src="http://www.beier-christian.eu/blog/wp-content/uploads/2010/02/politcamp.jpg" alt="" width="212" height="37" /></a> Am vergangenen Wochenende fand in Berlin das <a href="http://10.politcamp.org/">PolitCamp 2010</a> im »<a href="http://www.radialsystem.de/">Radial System V</a>« (Berlin) statt. Gleich vorneweg: Die Location und auch die Aussicht ist super und wirklich zu empfehlen. Zwei Tage nach dem PolitCamp hier meine ganz persönlichen Eindrücke in Kurzform:</p>

<ul>
    <li>Noch einmal zur Location: Die Räume dort sind angenehm groß und trotz der hohen Anzahl der Teilnehmer fand man auch immer problemlos einen vernünftigen Sitzplatz. Stehen oder auf dem Boden sitzen musste ich jedenfalls in keiner einzigen Session. Auch für eine vernünftige Stromversorgung wurde dank der »Netzsteckers« gesorgt. Meine vorsorglich mitgebrachte 10 Meter Stromleitung konnte jedenfalls im Rucksack bleiben. Daumen hoch dafür.</li>
    <li>Wie bei einer solchen Veranstaltung üblich, ist das WLAN instabil und langsam.  Ständig ist man rausgeflogen und musste sich erneut einloggen. Zudem war es kriechend langsam. Aber da man das ja eigentlich vorher schon weiß,  und ich mich entsprechend vorbereitet habe, war dies für mich jetzt nicht besonders tragisch. So war der Nervfaktor bei mir zumindest nach 10-Minuten erledigt. <span id="more-647"></span></li>
    <li>Problematischer war schon die Verteilung der Sessions: Die interessanten Themen finden immer zur selben Zeit statt. Gerade am ersten Tag war das recht nervig. Zudem wäre zu überlegen, dass bei Sessions mit Promifaktor (z.B. Frau Schröder) keine weiteren Sessions daneben stattfinden. Denn für die bleibt sowieso kein Besucher mehr übrig.</li>
    <li>Auch war es ziemlich blöd, dass zwischen den Sessions keine Pause war. So konnte man nach einer Session kaum mit dem Referenten sprechen, ohne die Hälfte der nächsten Session verpassen zu müssen. Hier sollte im nächsten Jahr ein Puffer von vielleicht 10-15 Minuten eingeplant werden. Zudem ist man den ganzen Tag so nur von Session zu Session gehetzt.</li>
    <li>Im Vorfeld der Konferenz konnten die geplanten Sessions mit einem neuen und interessanten Tool »<a href="http://www.liquidsession.de/">Liquid Session</a>« eingereicht und bewertet werden. Warum auf dieses Meinungsbild dann aber in der Konferenz aber nicht zurückgegriffen wurde, bleibt mir verschlossen, was eigentlich recht schade ist. Eine Idee wäre auch, jeder Session einen Tag zu geben. Dieser könnte nicht nur bei Twitter verwendet werden, sondern auch um zusätzliche Informationen zu einer Session an einem zentralen Ort (Liquid Session) zur Verfügung zu stellen.</li>
    <li>Recht schade fand ich auch, dass für die meisten Sessions zu wenig Zeit vorgesehen war (das Problem wird aber wahrscheinlich immer bestehen). So sind die Diskussionen leider immer sehr weit an der Oberfläche geblieben und auf wirklich interessante Aspekte konnte so nicht tief genug eingegangen werden. Auf wirklich konkrete Feststellungen und Ergebnisse sind so leider ausgeblieben. Vielleicht habe ich da aber auch einfach mit zu hohen und vielleicht auch falschen Erwartungen (ich bin ja doch eher als Entwickler an handfesten Dingen interessiert) herangegangen.</li>
    <li>Das PolitCamp habe ich hauptsächlich als eine Veranstaltung zum Kontakte knüpfen und Netzwerken verstanden. Leider ist aufgrund des vollen und interessanten Sessionplan dies leider etwas zu kurz bei mir gekommen. Vielleicht sollte auch schon in der Planung der Veranstaltung dafür mehr Raum gegeben werden.</li>
</ul>

<p>Insgesamt war das PolitCamp aber sehr interessant, spannend und wirklich gut gelungen. Eine solche Veranstaltung in der Größenordnung muss man auch erst einmal so reibungslos über die Bühne bringen. Allein das verdient schon sehr großen Respekt an die Organisatoren des PolitCamp 2010.</p>

<p>Für alle die nicht beim PolitCamp dabei sein konnten: Die Videos von den Sessions und Diskussionsrunden in der großen Halle stehen alle <a href="http://blog.politik.de/kategorie/politcamp/">bei Politik.de zur Verfügung</a>.</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/PMOobQjVp1U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/personliches-fazit-zum-politcamp-2010-berlin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/personliches-fazit-zum-politcamp-2010-berlin/</feedburner:origLink></item>
		<item>
		<title>»Ruby Best Practices« zum Download</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/UWyFa5gfFP8/</link>
		<comments>http://www.beier-christian.eu/blog/sideblog/%c2%bbruby-best-practices%c2%ab-zum-download/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 12:42:41 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Sideblog]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=646</guid>
		<description><![CDATA[»Ruby Best Practices« zeigt erprobte und praxistaugliche Ansätze und Lösungen für die Programmierung mit Ruby. Ein besonderer Augenmerk wird auf das Test-Driven-Development (TDD) gelegt, aber auch die Bereiche APIs, Debugging und Internationalisierung werden behandelt. Das Buch von Gregory T. Brown ist jetzt als Open Source eBook bei Github veröffentlicht worden. Das gedruckte »Original« gibt es [...]]]></description>
			<content:encoded><![CDATA[<p><strong>»<a href="http://blog.rubybestpractices.com/posts/gregory/022-rbp-now-open.html">Ruby Best Practices</a>«</strong> zeigt erprobte und praxistaugliche Ansätze und Lösungen für die Programmierung mit Ruby. Ein besonderer Augenmerk wird auf das Test-Driven-Development (TDD) gelegt, aber auch die Bereiche APIs, Debugging und Internationalisierung werden behandelt. Das Buch von Gregory T. Brown ist jetzt als Open Source eBook bei <a href="http://github.com/sandal/rbp-book">Github veröffentlicht</a> worden. Das gedruckte »Original« gibt es weiterhin bei <a href="http://oreilly.com/catalog/9780596523015/">O&#8217;Reilly</a>.</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/UWyFa5gfFP8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/sideblog/%c2%bbruby-best-practices%c2%ab-zum-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/sideblog/%c2%bbruby-best-practices%c2%ab-zum-download/</feedburner:origLink></item>
		<item>
		<title>Eigenentwicklung vs. Standardsoftware</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/2MW_daElvyE/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/eigenentwicklung-vs-standardsoftware/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 07:00:47 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[konzeption]]></category>
		<category><![CDATA[projektmanagement]]></category>
		<category><![CDATA[webentwicklung]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=643</guid>
		<description><![CDATA[Vor der Entwicklung einer umfangreichen Website oder Community steht am Anfang immer die Frage: Soll das System komplett selbst entwickelt werden (Individuallösung) oder auf eine fertige Lösung – die meist nur noch angepasst werden muss – zurückgegriffen werden. Diese Entscheidung klingt einfach, kann aber im weiteren Betrieb weitreichende Auswirkungen und Konsequenzen auf die Erweiterbarkeit, Kosten [...]]]></description>
			<content:encoded><![CDATA[<p>Vor der Entwicklung einer umfangreichen Website oder Community steht am Anfang immer die Frage: Soll das System komplett selbst entwickelt werden (Individuallösung) oder auf eine fertige Lösung – die meist nur noch angepasst werden muss – zurückgegriffen werden. Diese Entscheidung klingt einfach, kann aber im weiteren Betrieb weitreichende Auswirkungen und Konsequenzen auf die Erweiterbarkeit, Kosten und den wirtschaftlichen Erfolg eines Projektes haben. Welche Entscheidung nun die Richtige ist, hängt von verschiedenen Faktoren ab:</p>

<ul>
    <li>Welche Funktionen muss das System / die Website besitzen?</li>
    <li>Was sind die relevanten Anforderungen und was ist »nice to have«?</li>
    <li>Wie sind die Randbedingungen (einen Server, welche Programmiersprache, etc.)?</li>
    <li>Welches Budget und Zeit für die Realisierung stehen zur Verfügung?</li>
</ul>

<p>Diese Punkte sollte noch vor einer Entscheidung vollständige geklärt und mit allen Projektbeteiligten abgestimmt sein.</p>

<p><span id="more-643"></span></p>

<h3>Vorteile einer Eigenentwicklung</h3>

<ul>
    <li><strong>Know-how:</strong> Durch die Eigenentwicklung erhöhen sich die Fähigkeiten der beteiligten Personen. Sie lernen von Grund auf die Problematiken kennen und können so schnell und kompetent bei Problemen und Störungen eingreifen. Sie stecken praktisch in der Software drin. Dieses Wissen betrifft nicht nur die Anwendung an sich, sondern auch das Wissen über die verwendete Technologien und Programmiersprachen erhöht sich. Dies kann wiederum in Drittprojekten vermarktet werden.</li>
    <li><strong>Schlanke Software:</strong> Durch die Eigenentwicklung bleibt die Software schlank. Es wird nur die Funktionalität entwickelt und integriert, die auch wirklich benötigt wird. Dagegen möchte Standardsoftware ein möglichst breites Spektrum an Funktionen und Einsatzzwecke abdecken, was meist zu einer erheblichen Überdimensionierung und zu mittelmäßigen Kompromissen führt.</li>
    <li><strong>Keine Abhängigkeit:</strong> Bei kommerziellen Softwareanbietern besteht die Gefahr, dass diese ihre Strategie ändern oder gar Insolvent werden. Grundsätzlich besteht immer die Abhängigkeit, in welche Richtung die software weiterentwickelt wird und auch die möglichen Sicherheitsrisiken kennt meist nur der Anbieter (dies gilt meist auch bei Open Source Software). Bei einer Eigenentwicklung hat man selbst die Kontrolle über den Quellcode und die Weiterentwicklung.</li>
    <li><strong>Bessere Wartbarkeit:</strong> Änderungen und neue Funktionen können meist in kürzerer Zeit als bei einer Standardsoftware integriert werden. Die Software kann flexibler mit dem Projekt bzw. Unternehmen wachsen.</li>
    <li><strong>Adaptierbarkeit der Standardsoftware:</strong> In den seltensten Fällen bringt die Software alle benötigten Funktionen und Konfigurationen mit. Sie muss meist an die eigenen Bedürfnisse erst angepasst werden. Auch dies kostet Zeit und der Entwickler muss sich erst in die Dokumentation und den Aufbau des Codes einarbeiten. Gerade bei kommerziellen Systemen ist dies vielfach erst gar nicht möglich, da der Quellcode geschützt ist. Hier wäre man wieder vom Softwareanbieter abhängig.</li>
    <li><strong>Differenzierung von Wettbewerbern: </strong>Durch die Entwicklung eigener Funktionen kann sie ein Unternehmen mit einer Eigenentwicklung viel bessern von Konkurrenten abgrenzen.</li>
</ul>

<h3>Nachteile von Eigenentwicklungen</h3>

<ul>
    <li><strong>Entwicklungskosten:</strong> Je nach Komplexität der Software können die Entwicklungskosten sehr hoch sein. Zudem lassen sich diese zu Beginn eines Projektes nur sehr schwer und ungenau einschätzen, da viele Probleme erst während des Entwicklungsprozesses auftreten und nicht eingeplant werden können.</li>
    <li><strong>Zeitbedarf:</strong> Nicht nur die Kosten, sondern auch der Zeitbedarf ist am Anfang nur sehr schwer abschätzbar. Bei der Planung sollten daher grundsätzlich sehr großzügige Pufferzeiten eingeplant werden. Auch neue Methoden des Projektmanagement wie z.B. <a href="http://de.wikipedia.org/wiki/Scrum">SCRUM</a> können helfen. Ansonsten bedeutet ein steigender Entwicklungsaufwand auch sehr schnell eine Zeitverschiebung.</li>
    <li><strong>Qualitätsprobleme:</strong> Die Entwicklung von fehlerfreier Software ist nicht möglich. Und je komplexer die Software ist, desto länger kann es auch dauern, bis das System in der Pilotphase (in dieser die Software unter realen Bedingungen im Einsatz ist) die notwendige Stabilität erreicht hat. Dieser Problematik kann durch entsprechende Entwicklungs-Methoden wie z.B. <a href="http://de.wikipedia.org/wiki/Modultest">Unit Tests</a> begegnet werden.</li>
    <li><strong>Abhängigkeit:</strong> Was auf der einen Seite ein Vorteil ist, ist auf der anderen ein Nachteil. Bei einer Eigenentwicklung man man sich von den Mitarbeitern bzw. Firmen abhängig, die das System entwickelt haben. Zusätzlich steigt bei den Mitarbeitern die Kompetenz und damit ihr Marktwert. Dies kann sich in steigenden Gehaltsforderungen oder einer Kündigung ausdrücken. Selbst bei einer umfangreichen Dokumentation der Software, muss sich ein neuer Mitarbeiter oder eine neue Firma erst in die Denkweisen der alten Entwickler einarbeiten.</li>
    <li><strong>Technologiewechsel:</strong> Der technologische Wandelt in der IT-Industrie ist sehr schnell. Dadurch kann eine Software bzw. eine eingesetzte Technologie recht schnell veralten. Und je älter sie ist, desto schwieriger wird es Entwickler zu finden, die sich mit der Wartung beschäftigen können.</li>
</ul>

<h3>Vorteile von Standardlösungen</h3>

<ul>
    <li><strong>Zeitgewinn:</strong> Je nach dem wie vollständig die festgelegten Anforderungen von der Softwarelösung abgedeckt werden, kann das System sofort oder nach kurzer Zeit eingesetzt werden.</li>
    <li><strong>Niedrigere Kosten:</strong> Sofern die Standardsoftware viele der benötigten Funktionen erfüllt und auch den qualitativen Anforderungen gerecht wird, sind die Kosten für die Einführung und Betrieb meist geringer, als bei einer Eigenentwicklung.</li>
    <li><strong>Qualität:</strong> Weil Standardprodukte bei verschiedenen Anwendern im Einsatz sind, wurden viele Fehler von diesen bereits entdeckt und entfernt. Daher ist die Qualität gerade am Anfang bei Standardsoftware höher, als bei Eigenentwicklungen.</li>
    <li><strong>Regelmäßige Verbesserungen:</strong> Jeder Einzelne profitiert bei Standardlösungen von der Kreativität und Ideen aller. Zudem verteilen sich die Entwicklungskosten neuer Funktionen auf viele Kunden.</li>
</ul>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/2MW_daElvyE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/eigenentwicklung-vs-standardsoftware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/eigenentwicklung-vs-standardsoftware/</feedburner:origLink></item>
		<item>
		<title>Nächster Halt: Ruby on Rails 3.0</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/_-XwFx60urQ/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/nachster-halt-ruby-on-rails-3-0/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 13:03:31 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[webentwicklung]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=644</guid>
		<description><![CDATA[Mit Rails 3.0 ist ein großes, neues Release für das beliebte Ruby Framework im Anmarsch. Neben vielen Fehlerbehebungen gibt es auch viele neue Funktionen und Verbesserungen. Eine der größten Neuerung ist wohl die neue Abfragesprache für Active Record. Dazu gibt es einen verbesserten Router, der besonders gut RESTful Anwendungen abbilden kann und eine neue Mailer [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Rails 3.0 ist ein großes, neues Release für das beliebte Ruby Framework im Anmarsch. Neben vielen Fehlerbehebungen gibt es auch viele neue Funktionen und Verbesserungen. Eine der größten Neuerung ist wohl die neue Abfragesprache für Active Record. Dazu gibt es einen verbesserten Router, der besonders gut RESTful Anwendungen abbilden kann und eine neue Mailer API. Mit dieser können dann auch endlich Multipart Nachrichten ohne Bauschmerzen versendet werden.</p>

<p>Die aktuelle Beta von Rails 3.0 ist noch nicht für produktive Anwendungen geeignet. Aber um sich schon einmal mit den neuen Möglichkeiten und Funktionen vertraut zu machen, kann ein früher Blick sicherlich nicht schaden. Zu beachten ist jedoch, dass die aktuelle Version und die neue Vorabversion von Ruby (als Grundlage für Ruby on Rails) nicht zeitgleich betrieben werden können. Daher ist die Installation über <a href="http://rvm.beginrescueend.com/">RVM</a> (Ruby Version Manger) zu empfehlen.</p>

<p><span id="more-644"></span></p>

<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rvm install 1.9.1<br />
rvm 1.9.1<br />
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n<br />
gem install rails --pre</div></div>

<p>Schon ist Rails 3.0 lauffähig und es kann eine neue Rails Anwendung erstellt oder bestehende portiert werden. Um zur aktuellen Ruby-Version zurückzukehren, muss »rvm system« im Terminal eingegeben werden. Wie genau eine bestehende Anwendung portiert werden kann, zeigt ein <a href="http://blog.peepcode.com/tutorials/2010/live-coding-rails-3-upgrade">25-minütiger Screencast bei PeepCode</a>, der kostenlos erhältlich ist.</p>

<h3>Die Neuerungen von Ruby on Rails 3.0</h3>

<h4>Active Record</h4>

<p>Die wohl auffälligste Änderung von Rails 3.0 ist de neue Abfragesprache für Active Record. Statt bisher alle in eine »find«-Methode zu schreiben, werden die einzelnen Bestandteile einer Datenbankabfrage in einzelne Methoden zerlegt.</p>

<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Books.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:all</span>, <span style="color:#ff3333; font-weight:bold;">:order</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;updated_at desc&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:limit</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">15</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
Books.<span style="color:#9900CC;">order</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;updated_at desc&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">limit</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">15</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 3.x</span><br />
<br />
Books.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:first</span>, <span style="color:#ff3333; font-weight:bold;">:conditions</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;title = ?&quot;</span>, <span style="color:#996600;">'Ruby 3.0'</span><span style="color:#006600; font-weight:bold;">&#93;</span>, <span style="color:#ff3333; font-weight:bold;">:order</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;updates_at desc&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
Books.<span style="color:#9900CC;">where</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;title = ?&quot;</span>, <span style="color:#996600;">'Rails 3.0'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">last</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 3.x</span></div></div>

<p class="code_description">Ein paar Beispiele für die neue Abfragesprache von Ruby on Rails 3.0</p>

<p>Aber keine Angst: Zumindest bis zur Version 3.1 von Rails soll die bisherige <abbr title="Application Interface">API</abbr> weiter unterstützt werden.</p>

<h4>Routing</h4>

<p>Auch das Routing wurde etwas aufgeräumt und übersichtlicher gestaltet. Unter anderem wurde auf das »map« am Anfang einer Route verzichtet. Ansonsten gibt es viele neue Funktionen und Möglichkeiten, unter anderem lassen sich Requests besser nach bestimmten Mustern verarbeiten und Routes zuweisen.</p>

<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">map.<span style="color:#9900CC;">root</span> <span style="color:#ff3333; font-weight:bold;">:controller</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;pages&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:action</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;index&quot;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
root <span style="color:#ff3333; font-weight:bold;">:to</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;pages#index&quot;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 3.0</span><br />
<br />
map.<span style="color:#9900CC;">login</span> <span style="color:#996600;">&quot;/login&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:controller</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;sessions&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:action</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;login&quot;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
match <span style="color:#996600;">&quot;/login&quot;</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;sessions#login&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:as</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:login</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 3.x</span><br />
<br />
<span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
map.<span style="color:#9900CC;">resources</span> <span style="color:#ff3333; font-weight:bold;">:books</span>, <span style="color:#ff3333; font-weight:bold;">:collection</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:filter</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:get</span> <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>books<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; books.<span style="color:#9900CC;">resources</span> <span style="color:#ff3333; font-weight:bold;">:reviews</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span><br />
<br />
<span style="color:#008000; font-style:italic;">#-&gt; Rails 3.x</span><br />
resources <span style="color:#ff3333; font-weight:bold;">:books</span> <span style="color:#9966CC; font-weight:bold;">do</span><br />
&nbsp; get <span style="color:#ff3333; font-weight:bold;">:filter</span>, <span style="color:#ff3333; font-weight:bold;">:on</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:collection</span><br />
&nbsp; resources <span style="color:#ff3333; font-weight:bold;">:reviews</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></div>

<p class="code_description">Code-Beispiele für die neue Routes <abbr title="Application Interface">API</abbr> von Rails 3.0</p>

<h4>Action Mailer</h4>

<p>Obwohl die Entwicklung von Rails Anwendungen eher Spaß als Arbeit ist, waren der Versand von E-Mails bisher die am meisten gemiedene Aufgabe. Mit Rails 3.0 gibt es eine neue API, die den Versand von E-Mail vereinfachen soll. So gibt es jetzt einen eigenen Ort unter »app/mailers« und es werden bei Bedarf die E-Mails als Multipart (Text und HTML-Teil) versendet. Sehr schön finde ich es auch, dass ein Mail in Rails jetzt als Objekt behandelt wird:</p>

<div class="codecolorer-container ruby default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:520px;"><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Notifier.<span style="color:#9900CC;">deliver_signup_notification</span><span style="color:#006600; font-weight:bold;">&#40;</span>recipient<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 2.x</span><br />
Notifier.<span style="color:#9900CC;">signup_notification</span><span style="color:#006600; font-weight:bold;">&#40;</span>recipient<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">deliver</span> <span style="color:#008000; font-style:italic;">#-&gt; Rails 3.x</span><br />
<br />
<span style="color:#008000; font-style:italic;"># Beispiel für eine Multipart E-Mail in Ruby on Rails 3.x</span><br />
<span style="color:#9966CC; font-weight:bold;">def</span> multipart_email<br />
&nbsp; mail<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:to</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> recipient.<span style="color:#9900CC;">email</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span><span style="color:#CC0066; font-weight:bold;">format</span><span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">text</span> <span style="color:#006600; font-weight:bold;">&#123;</span> render <span style="color:#ff3333; font-weight:bold;">:text</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Text-Alternative der E-Mail&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; &nbsp; <span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">html</span> <span style="color:#006600; font-weight:bold;">&#123;</span> render <span style="color:#ff3333; font-weight:bold;">:text</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;&lt;h1&gt;Dies ist eine HTML-E-Mail&lt;/h1&gt;&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span><br />
&nbsp; <span style="color:#9966CC; font-weight:bold;">end</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></div>

<p>Das sind so die größten Neuerungen von Ruby on Rails 3.0. Natürlich gibt es noch viele weitere zu entdecken. Zudem hat sich einiges unter der Oberfläche getan und die Geschwindigkeit von Rails wurde verbessert. Was sich alle genau ändert, wird im <a href="http://guides.rails.info/3_0_release_notes.html">offiziellen Release Note</a> verraten.</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/_-XwFx60urQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/nachster-halt-ruby-on-rails-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/nachster-halt-ruby-on-rails-3-0/</feedburner:origLink></item>
		<item>
		<title>Hobo 1.0: Mehr Spaß mit Ruby on Rails</title>
		<link>http://feedproxy.google.com/~r/beier-christian/~3/1lNMQAuTJzg/</link>
		<comments>http://www.beier-christian.eu/blog/weblog/hobo-1-0-mehr-spass-mit-rails/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 07:43:32 +0000</pubDate>
		<dc:creator>Christian Beier</dc:creator>
				<category><![CDATA[Weblog]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[webentwicklung]]></category>

		<guid isPermaLink="false">http://www.beier-christian.eu/blog/?p=641</guid>
		<description><![CDATA[Wer dachte, mit Ruby on Rails lassen sich Webanwendungen schon schnell und einfach entwickeln, hat bisher noch nicht von Hobo gehört. Hobo ist eine Erweiterung für Rails (in Form eines Gem) und bringt viele praktische Dinge mit, die den Entwickleralltag erleichtern: z.B. fertig eingerichtete Authentifizierung, Rechtesystem, AJAX-Interface, … Aktuell liegt Hobo in der Version 1.0 [...]]]></description>
			<content:encoded><![CDATA[<p>Wer dachte, mit Ruby on Rails lassen sich Webanwendungen schon schnell und einfach entwickeln, hat bisher noch nicht von Hobo gehört. <a href="http://hobocentral.net/">Hobo</a> ist eine Erweiterung für Rails (in Form eines Gem) und bringt viele praktische Dinge mit, die den Entwickleralltag erleichtern: z.B. fertig eingerichtete Authentifizierung, Rechtesystem, AJAX-Interface, …</p>

<p>Aktuell liegt Hobo in der Version 1.0 vor und hat den Stable Status erreicht. Somit kann Hobo ohne größere Bedenken auch produktiv eingesetzt werden. Die Erweiterung eignet sich sowohl für das schnelle Prototyping, wie auch für komplette Anwendungen. Mitgebracht wird eine eigene Markup Sprache: DRYML (»Dont Repeat Yourself Markup Language«). Diese hilft dabei, die Entwicklung von Templates zu abstrahieren und stark zu beschleunigen.</p>

<p>Sehr schön finde ich auch, dass sich die Entwickler nicht nur rein auf Hobo konzentriert haben, sondern mit »<a href="http://cookbook.hobocentral.net/">Hobo Cookbook</a>« auch gleich eine sehr hilfreiche Ressource geschaffen haben. Im Cookbook befinden sich sich praktische Codeschnipsel und Hilfestellungen für die Arbeit mit Hobo.</p>

<p>Für den Einstieg in Hobo ist auch der 18-minütige <a href="http://vimeo.com/7897205?hd=1">Screencast bei Vimeo</a> sehr zu empfehlen. Und wer sich erst von den Ergebnissen – die mit Hobo erreicht werden können – überzeugen möchte, schaut am besten in der <a href="http://hobocentral.net/gallery/">Galerie</a> vorbei.</p>
<br /><hr /><br /><p>&copy;2012 Christian Beier – Dieser Artikel stammt von <a href="http://www.beier-christian.eu/blog">BEIER-CHRISTIAN.eu</a> .<img src="http://feeds.feedburner.com/~r/beier-christian/~4/1lNMQAuTJzg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.beier-christian.eu/blog/weblog/hobo-1-0-mehr-spass-mit-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.beier-christian.eu/blog/weblog/hobo-1-0-mehr-spass-mit-rails/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.169 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-02-05 17:20:02 -->

