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

<channel>
	<title>Code Schubser</title>
	<atom:link href="http://www.code-schubser.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.code-schubser.de</link>
	<description>Zur Zeit ist es Rails...</description>
	<lastBuildDate>Tue, 05 May 2009 16:14:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ePetition gegen Zensur im Internet</title>
		<link>http://www.code-schubser.de/2009/05/epetition-gegen-zensur-im-internet/</link>
		<comments>http://www.code-schubser.de/2009/05/epetition-gegen-zensur-im-internet/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:14:45 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[das hätte man besser machen können]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[petition]]></category>
		<category><![CDATA[zensur]]></category>
		<category><![CDATA[zensursula]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=100</guid>
		<description><![CDATA[Zum Thema selbst m&#246;chte ich lediglich auf einige, die sich damit auskennen verweisen. 50.000 Mitzeicher werden ben&#246;tigt, um zumindest angeh&#246;rt zu werden.&#160; 22.000 sind es aktuell (05.05. &#8211; 17:30 Uhr). Und weil wir doch alle Statistiken lieben: Land Mitzeichner Einwohner (Mio.) &#8240; Deutschland / Berlin 1754 3,416 513,47 Deutschland / Hamburg 633 1,771 357,43 Deutschland [...]]]></description>
			<content:encoded><![CDATA[<p>Zum Thema selbst m&ouml;chte ich lediglich auf <a href="http://www.heise.de/ct/Die-Argumente-fuer-Kinderporno-Sperren-laufen-ins-Leere--/artikel/135867">einige, die sich damit auskennen</a> verweisen. 50.000 Mitzeicher werden ben&ouml;tigt, um zumindest angeh&ouml;rt zu werden.&nbsp; 22.000 sind es aktuell (05.05. &#8211; 17:30 Uhr). Und weil wir doch alle Statistiken lieben:</p>
<table cellspacing="0" cellpadding="0" border="0" width="605" style="border-collapse: collapse; width: 455pt;">
<col width="346" style="width: 260pt;"></col>
<col width="80" style="width: 60pt;"></col>
<col width="121" style="width: 91pt;"></col>
<col width="58" style="width: 44pt;"></col>
<tbody>
<tr height="20" style="height: 15pt;">
<td height="20" width="346" style="height: 15pt; width: 260pt;">Land</td>
<td align="center" width="80" class="xl65" style="width: 60pt;">Mitzeichner</td>
<td align="center" width="121" class="xl65" style="width: 91pt;">Einwohner (Mio.)</td>
<td align="center" width="58" class="xl65" style="width: 44pt;">&permil;</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Berlin</td>
<td align="right" class="xl65">1754</td>
<td align="center" class="xl65">3,416</td>
<td align="right" class="xl66">513,47</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Hamburg</td>
<td align="right" class="xl65">633</td>
<td align="center" class="xl65">1,771</td>
<td align="right" class="xl66">357,43</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Bremen</td>
<td align="right" class="xl65">206</td>
<td align="center" class="xl65">0,663</td>
<td align="right" class="xl66">310,71</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Baden-W&uuml;rttemberg</td>
<td align="right" class="xl65">2918</td>
<td align="center" class="xl65">10,75</td>
<td align="right" class="xl66">271,44</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Bayern</td>
<td align="right" class="xl65">3054</td>
<td align="center" class="xl65">12,52</td>
<td align="right" class="xl66">243,93</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Sachsen</td>
<td align="right" class="xl65">946</td>
<td align="center" class="xl65">4,22</td>
<td align="right" class="xl66">224,17</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Hessen</td>
<td align="right" class="xl65">1346</td>
<td align="center" class="xl65">6,073</td>
<td align="right" class="xl66">221,64</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Nordrhein-Westfalen</td>
<td align="right" class="xl65">3793</td>
<td align="center" class="xl65">17,997</td>
<td align="right" class="xl66">210,76</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Niedersachsen</td>
<td align="right" class="xl65">1602</td>
<td align="center" class="xl65">7,972</td>
<td align="right" class="xl66">200,95</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Rheinland-Pfalz</td>
<td align="right" class="xl65">703</td>
<td align="center" class="xl65">4,046</td>
<td align="right" class="xl66">173,75</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Schleswig-Holstein</td>
<td align="right" class="xl65">492</td>
<td align="center" class="xl65">2,837</td>
<td align="right" class="xl66">173,42</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Saarland</td>
<td align="right" class="xl65">172</td>
<td align="center" class="xl65">1,037</td>
<td align="right" class="xl66">165,86</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Brandenburg</td>
<td align="right" class="xl65">370</td>
<td align="center" class="xl65">2,536</td>
<td align="right" class="xl66">145,90</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Th&uuml;ringen</td>
<td align="right" class="xl65">327</td>
<td align="center" class="xl65">2,289</td>
<td align="right" class="xl66">142,86</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Mecklenburg-Vorpommern</td>
<td align="right" class="xl65">208</td>
<td align="center" class="xl65">1,68</td>
<td align="right" class="xl66">123,81</td>
</tr>
<tr height="20" style="height: 15pt;">
<td height="20" style="height: 15pt;">Deutschland / Sachsen-Anhalt</td>
<td align="right" class="xl65">298</td>
<td align="center" class="xl65">2,412</td>
<td align="right" class="xl66">123,55</td>
</tr>
</tbody>
</table>
<p>Ein paar Perlen der Herkunftsangaben:</p>
<p>- Portugal / Baden-W&uuml;rttemberg<br />
- Deitschland / Hessen<br />
- VR China / keine Angabe<br />
- was f&uuml;r eine dumme frage !!! D&nbsp; / Sachsen</p>
<p>F&uuml;r die Game Mechanics: Dem 50.000sten Mitzeichner spendier ich ein Bier (oder auf Wunsch Eis). <a href="https://epetitionen.bundestag.de/index.php?action=petition;sa=details;petition=3860">Mitmachen!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2009/05/epetition-gegen-zensur-im-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wer ist hier RESTful?</title>
		<link>http://www.code-schubser.de/2009/03/wer-ist-hier-restful/</link>
		<comments>http://www.code-schubser.de/2009/03/wer-ist-hier-restful/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 23:45:18 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[das hätte man besser machen können]]></category>
		<category><![CDATA[parteien]]></category>
		<category><![CDATA[politik]]></category>
		<category><![CDATA[vergleiche]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=83</guid>
		<description><![CDATA[Vielleicht erinnert sich der ein oder andere ja noch den Artikel Obama is RESTful aus den letztj&#228;hrigen Wahlkampftagen in den USA. Seit nun auch hierzulande Politiker auf zum Teil peinlichste Art und Weise versuchen Obamas Wahlkampftaktiken zu imitieren findet man sie im Web &#252;-ber-all, wirklich, ohne Ausnahme. Nat&#252;rlich mussten auch supertolle neue Webportale f&#252;r den [...]]]></description>
			<content:encoded><![CDATA[<p>Vielleicht erinnert sich der ein oder andere ja noch den Artikel <a href="http://www.idolhands.com/personal/obama-is-restful/">Obama is RESTful</a> aus den letztj&auml;hrigen Wahlkampftagen in den USA. Seit nun auch hierzulande Politiker auf zum Teil <a href="http://www.youtube.com/watch?v=ZKQ_1cWKOHk">peinlichste</a> Art und Weise versuchen Obamas Wahlkampftaktiken zu imitieren findet man sie im Web <a href="http://twitter.com/weberandy">&uuml;</a>-<a href="http://twitter.com/Kajo2009">ber</a>-<a href="http://twitter.com/f_schaeffler">all</a>, <a href="http://www.facebook.com/pages/Sozialdemokratische-Partei-Deutschlands-SPD/47930567748">wirklich</a>, <a href="http://www.youtube.com/spdvision">ohne</a> <a href="http://www.studivz.net/Groups/Overview/19f0be812af684cd">Ausnahme</a>.</p>
<p>Nat&uuml;rlich mussten auch supertolle neue Webportale f&uuml;r den Wahlkampf der Parteien her. Versuchen wir doch mal einige der Vergleiche aus dem eingangs erw&auml;hnten Artikel auch auf diese anzuwenden, wobei ich mich auf <a href="http://www.team2009.de/">CDU</a> (www.team2009.de), <a href="https://my.fdp.de/">FDP</a> (my.fdp.de) und <a href="http://www.wahlkampf09.de/">SPD</a> (www.wahlkampf09.de) beschr&auml;nken m&ouml;chte. Falls die Reihenfolge nicht durch Untersuchungsergebnisse vorgegeben ist, sortiere ich alphabetisch.</p>
<p><span id="more-83"></span></p>
<h3>Technologien</h3>
<p>Die <strong>CDU</strong> ist laut Header &quot;powered by PHP/5.2.0-8+etch13&quot; und setzt den Metatags zufolge das Content Management System <a href="http://www.joomla.de/">Joomla</a> in der Version 1.5 ein. Ich m&ouml;chte eigentlich keinen Flamewar heraufbeschw&ouml;ren, aber Joomla? really?</p>
<p>Die <strong>FDP</strong> h&auml;lt es mit PHP/4.4.4-8+etch6, das auf einem Debian System mit Apache/2.2.3 l&auml;uft.</p>
<p>Die <strong>SPD</strong> setzt auf <a href="http://rubyonrails.org/">Ruby on Rails</a>, das von <a href="http://www.modrails.com/">Passenger</a> 2.0.6 ebenfalls auf einem Debian System mit Apache/2.2.9 ausgeliefert wird.</p>
<h3>Webstandards</h3>
<p>Alle drei Seiten geben an den Standard XHTML 1.0 Transitional einzusetzen.<br />
Tats&auml;chlich muss die <strong>CDU</strong> sich hier mit <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.team2009.de%2F&amp;charset=(detect+automatically)&amp;doctype=Inline&amp;group=0&amp;user-agent=W3C_Validator%2F1.606">71 Fehlern und 55 Warnungen</a> die gr&ouml;&szlig;te L&uuml;ge zuschreiben lassen. Es folgen die <strong>FDP</strong> mit <a href="http://validator.w3.org/check?uri=https%3A%2F%2Fmy.fdp.de%2F&amp;charset=(detect+automatically)&amp;doctype=Inline&amp;group=0&amp;user-agent=W3C_Validator%2F1.606">28</a> und die <strong>SPD</strong> mit <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.wahlkampf09.de%2F&amp;charset=(detect+automatically)&amp;doctype=Inline&amp;group=0&amp;user-agent=W3C_Validator%2F1.606">11 Fehlern</a>.</p>
<h3>Geschwindigkeit</h3>
<p>Mit <a href="https://addons.mozilla.org/de/firefox/addon/5369">YSlow</a> kann man sich die Performance einer Seite in Bezug auf das Gesamtergebnis f&uuml;r den Besucher (samt aller eingebundenen JavaScript/CSS Bibliotheken und Bilder) ausgeben und auswerten lassen.</p>
<p>Auch hier finden wir auf dem letzten Platz die <strong>CDU</strong> mit der Wertung F und 32 von m&ouml;glichen 100 Punkten. Es werden satte 21 externe CSS- und 13 JavaScript-Bibliotheken eingebunden.<br />
Im Portal der <strong>SPD</strong> wurden zumindest die CSS Bibliotheken zu einer Datei zusammengecached, sodass immernoch ein F daf&uuml;r aber mit 49 von 100 Punkten herauskommt. Allein das Hinzuf&uuml;gen von Expire-Headern bei statischen Inhalten w&uuml;rde hier eine Menge bewirken, oder geht eh niemand davon aus, dass ein Besucher ein zweites Mal vorbeikommt?<br />
Die <strong>FDP</strong> liegt mit der Wertung B und 84 Punkten weit vorn. Faierer Weise muss aber gesagt werden, dass die FDP mit ihrer geschlossenen Community lediglich eine einfache Login-Seite anzeigt und somit kaum Spielraum f&uuml;r Performance-Fehler vorhanden ist.</p>
<h3>Inhalte</h3>
<p>Man k&ouml;nnte argumentieren, dass es daf&uuml;r noch etwas fr&uuml;h sei. Dennoch bin ich der Meinung, dass eine Suche nach &quot;Wahlprogramm&quot; auf den Wahlkampfseiten der Parteien Ergebnisse produzieren sollte.</p>
<p>So sieht das bei der <strong>CDU</strong> aus:</p>
<p><img height="279" width="663" alt="Wahlprogramm Suche bei der CDU" src="http://www.code-schubser.de/wp-content/uploads/image/wahlprogramm_suche_cdu.jpg" /></p>
<p>Die <strong>FDP</strong> stellt unter der untersuchten Adresse my.fdp.de gar keine &ouml;ffentlichen Inhalte bereit. Ein Vergleich der internen Funktionen w&auml;re zwar durchaus interessant, w&uuml;rde an dieser Stelle aber den Rahmen sprengen.</p>
<p>Bei der <strong>SPD</strong> sieht man:</p>
<p><img height="367" width="664" alt="Wahlprogramm Suche bei der SPD" src="http://www.code-schubser.de/wp-content/uploads/image/wahlprogramm_suche_spd.jpg" /></p>
<p>Das muss man wohl nicht mehr kommentieren.</p>
<h3>Was noch?</h3>
<p><strong>Unter welchen URLs k&ouml;nnen die Inhalte der Seiten erreicht werden?</strong> Am Beispiel der Registrierung:</p>
<p><strong>CDU</strong>: /index.php?option=com_ubg_tdregistration&amp;Itemid=56<br />
<strong>FDP</strong>: /webcom/register.php<br />
<strong>SPD</strong>: /unterstuetzer/new</p>
<p>Look Ma, REST bei der SPD. Und Denglish.</p>
<p><strong>Wie sehen die Registrierungsformulare aus?</strong>&nbsp;</p>
<table width="100%" cellspacing="1" cellpadding="1" border="0">
<tbody>
<tr>
<td><strong>CDU</strong></td>
<td><strong>FDP</strong></td>
<td><strong>SPD</strong></td>
</tr>
<tr>
<td valign="top">
<p><img height="228" width="214" alt="Registrierungsformular CDU" src="http://www.code-schubser.de/wp-content/uploads/image/registrierung_cdu.jpg" /></p>
<p><img height="80" width="215" alt="Registrierungsformular CDU" src="http://www.code-schubser.de/wp-content/uploads/image/registrierung_cdu2.jpg" /></p>
</td>
<td valign="top"><img height="324" width="216" alt="Registierungsformular FDP" src="http://www.code-schubser.de/wp-content/uploads/image/registrierung_fdp.jpg" /></td>
<td valign="top">
<p><img height="118" width="216" alt="Registrierungsformular SPD" src="http://www.code-schubser.de/wp-content/uploads/image/registrierung_spd.jpg" /></p>
</td>
</tr>
</tbody>
</table>
<p>Wie ist das nun bei der CDU mit der Zweckbindung von erhobenen Daten? Dass man die PLZ gerne h&auml;tte kann ich verstehen, dass es ein Pfilchtfeld ist, nicht. Ich verkneif mir jetzt mal Kommentare &uuml;ber Terrorismusabwehr und andere Ausreden.</p>
<p><strong>Wie regieren die Portale auf Anfragen nach nicht existierenden Seiten?</strong></p>
<p><strong>CDU</strong>: Reagiert mit dem Statuscode &quot;200 OK&quot; und zeigt direkt (keine Weiterleitung) die Startseite ohne irgendeinen Hinweis an.<br />
<strong>FDP</strong>: Reagiert mit dem Statuscode &quot;302 Found&quot; und leitet auf die Startseite weiter ohne irgendeinen Hinweis anzuzeigen.<br />
<strong>SPD</strong>: Reagiert mit dem Statuscode &quot;404 Not Found&quot; und zeigt die Fehlermeldung &quot;Es ist ein Fehler aufgetreten. Dieser Link f&uuml;hrt zu keinem g&uuml;ltigen Dokument.&quot; an.</p>
<h3>Fazit</h3>
<p>Ich hoffe niemand erwartet hier jetzt ernsthaft eine Wahlempfehlung.<br />
W&uuml;rde die technische Umsetzung der Wahlkampfportale irgendeine Rolle bei der Entscheidung f&uuml;r oder gegen eine Partei spielen, w&auml;re der heutige Sieger eindeutig die SPD. Allerding wirkt das Gesamtkonzept aller Seiten noch ziemlich unausgereift. Inhalte fehlen fast v&ouml;llig. Es bleibt zu hoffen, dass an dieser Stelle noch nicht Schluss ist mit &quot;diesem Web-Zwei-Null-dingens&quot;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2009/03/wer-ist-hier-restful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery geht live()!</title>
		<link>http://www.code-schubser.de/2009/02/jquery-geht-live/</link>
		<comments>http://www.code-schubser.de/2009/02/jquery-geht-live/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 20:29:03 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[kann man immer mal gebrauchen]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rjs]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=79</guid>
		<description><![CDATA[jQuery ist ja so schon toll. In Rails Projekten dank jRails sehr einfach verwendbar, da auch Funktionen wie &#34;link_to_remote&#34; weiter wie gewohnt genutzt werden k&#246;nnen. Um unobtrusive zu sein, sollte man dabei aber auf genau diese verzichten und m&#246;glichst jedwede JavaScript Funktionalit&#228;t auslagern, was mit jQuery meist auch Spa&#223; macht. Das gro&#223;e ABER war bisher: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com/">jQuery</a> ist ja so schon toll. In Rails Projekten dank <a href="http://ennerchi.com/projects/jrails">jRails</a> sehr einfach verwendbar, da auch Funktionen wie &quot;link_to_remote&quot; weiter wie gewohnt genutzt werden k&ouml;nnen. Um <a href="http://simonwillison.net/static/2008/xtech/">unobtrusive</a> zu sein, sollte man dabei aber auf genau diese verzichten und m&ouml;glichst jedwede JavaScript Funktionalit&auml;t auslagern, was mit jQuery meist auch Spa&szlig; macht.</p>
<p>Das gro&szlig;e ABER war bisher: Manipuliert man (beispielsweise in einer RJS Antwort) die Seite und f&uuml;gt so z.B. einer Liste ein Element hinzu, gilt die ausgelagerte Funktionalit&auml;t daf&uuml;r nicht, sie m&uuml;sste auf das hinzugef&uuml;gte Element erneut angewandt werden. Das ist nun vorbei! Seit Version 1.3 biete jQuery eine neue Event Methode an: <a href="http://docs.jquery.com/Events/live#typefn">live()</a></p>
<p>Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;form input[type=text]&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</p>
<p>Der so hinzugef&uuml;gte click-Handler gilt nun f&uuml;r alle Elemente, auf die der Selector &quot;form input[type=text]&quot; zutrifft, egal wann sie (ggf. auf erst sp&auml;ter durch JavaScript) entstanden sind. Phantastisch, oder?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2009/02/jquery-geht-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsConf Europe 2009 fällt aus</title>
		<link>http://www.code-schubser.de/2009/01/railsconf-europe-2009-fallt-aus/</link>
		<comments>http://www.code-schubser.de/2009/01/railsconf-europe-2009-fallt-aus/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 23:26:11 +0000</pubDate>
		<dc:creator>robert</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=76</guid>
		<description><![CDATA[Obwohl der subjektive Eindruck volle Hallen und gut besetzte Seminarr&#228;ume vermittelte, hat O&#8217;Reilly angek&#252;ndigt, dass die RailsConf Europe 2008 nicht profitabel genug war. Zusammen mit der aktuellen Wirtschaftslage ist dies eine ungesunde Mischung und so zieht O&#8217;Reilly dieses Jahr den Stecker aus der RailsConf Europe und hat angek&#252;ndigt, dass es 2009 keine Wiederholung der Konferenz [...]]]></description>
			<content:encoded><![CDATA[<p>Obwohl der <a target="_blank" href="http://www.code-schubser.de/2008/09/03/railsconf-europe-tag-1-eigentlich-tag-2-were-cheap/">subjektive Eindruck</a> volle Hallen und gut besetzte Seminarr&auml;ume vermittelte, hat O&#8217;Reilly angek&uuml;ndigt, dass die RailsConf Europe 2008 nicht profitabel genug war. Zusammen mit der aktuellen Wirtschaftslage ist dies eine ungesunde Mischung und so zieht <a target="_blank" href="http://en.oreilly.com/railseurope2008/">O&#8217;Reilly dieses Jahr den Stecker aus der RailsConf Europe</a> und hat angek&uuml;ndigt, dass es 2009 keine Wiederholung der Konferenz geben wird.</p>
<p>Ob das auch 2010 betrifft wird sich zeigen. Die wirtschaftliche Lage wird unter Umst&auml;nden 2010 wieder eine bessere sein, jedoch ist die generelle Profitabilit&auml;t wohl der gr&ouml;&szlig;ere Faktor, den es hier f&uuml;r das O&#8217;Reilly Konferenz Team zu bedenken gibt. Pers&ouml;nlich finde ich dies schade und kann die Beweggr&uuml;nde auch nicht ganz nachvollziehen. Auch wenn mir hier der Einblick in die Finanzierung der RailsConf Europe fehlt, kann ich mir nicht vorstellen, dass eine gut besuchte Fachkonferenz, deren Teilnehmer 700&euro; Teilnahmegeb&uuml;hr bezahlen und die noch dazu von namhaften Firmen gesponsert wird, auf solch wackligen F&uuml;&szlig;en stehen soll. Aber was hilfts &#8211; die Entscheidung ist gefallen. Aus meiner Sicht werden wir 2010 die Neuauflage der RailsConf Europe sehen, denn das O&#8217;Reilly Team wird die Pause sicher nutzen, um einige Entscheidungen zu &uuml;berdenken, vor allem hinsichtlich der doch recht preisintensiven Location.</p>
<p>See you in 2010 :)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2009/01/railsconf-europe-2009-fallt-aus/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Das Internet</title>
		<link>http://www.code-schubser.de/2008/12/das-internet/</link>
		<comments>http://www.code-schubser.de/2008/12/das-internet/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 23:44:11 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Spaß]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[it crowd]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=72</guid>
		<description><![CDATA[[via]]]></description>
			<content:encoded><![CDATA[<p><img width="360" height="288" src="http://www.code-schubser.de/wp-content/uploads/image/internet.jpg" alt="The Internet" /></p>
<p>[<a href="http://whythatsdelightful.wordpress.com/2008/12/12/ceci-nest-pas-une-series-de-tubes/">via</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/12/das-internet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cascading Javascripts reloaded</title>
		<link>http://www.code-schubser.de/2008/12/cascading-javascripts-reloaded/</link>
		<comments>http://www.code-schubser.de/2008/12/cascading-javascripts-reloaded/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 00:42:12 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails2.2]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=70</guid>
		<description><![CDATA[Wer das plugin cascading_javascripts von RedHill Consulting nutzt und das auch unter Rails 2.2 vorhatte, wird entt&#228;uscht feststellen, dass es nicht mehr funktioniert. Kein Grund zu verzweifeln, die L&#246;sung naht: Unter http://github.com/jeanmartin/cascading_javascripts_reloaded/tree/master habe ich eine ab Rails 2.2 funktionierende Version ver&#246;ffentlicht. Viel Spa&#223;!]]></description>
			<content:encoded><![CDATA[<p>Wer das plugin <a href="http://www.redhillonrails.org/cascading_javascripts.html">cascading_javascripts</a> von <a href="http://www.redhillconsulting.com.au/">RedHill Consulting</a> nutzt und das auch unter Rails 2.2 vorhatte, wird entt&auml;uscht feststellen, dass es nicht mehr funktioniert. Kein Grund zu verzweifeln, die L&ouml;sung naht:</p>
<p>Unter <a href="http://github.com/jeanmartin/cascading_javascripts_reloaded/tree/master">http://github.com/jeanmartin/cascading_javascripts_reloaded/tree/master</a> habe ich eine ab Rails 2.2 funktionierende Version ver&ouml;ffentlicht.</p>
<p>Viel Spa&szlig;!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/12/cascading-javascripts-reloaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql Gem unter MacOSX Leopard installieren</title>
		<link>http://www.code-schubser.de/2008/12/mysql-gem-unter-macosx-leopard-installieren/</link>
		<comments>http://www.code-schubser.de/2008/12/mysql-gem-unter-macosx-leopard-installieren/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:31:23 +0000</pubDate>
		<dc:creator>robert</dc:creator>
				<category><![CDATA[das wär auch einfacher gegangen]]></category>
		<category><![CDATA[kann man immer mal gebrauchen]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=63</guid>
		<description><![CDATA[Um auch endg&#252;ltig in den Entwicklerkreisen in Berlin/Mitte anerkannt zu werden, bin ich vor einigen Wochen auf ein MacBook umgestiegen. Die Einrichtung einer gewohnten Rails-Entwicklungsumgebung (nicht IDE, nur die t&#228;gliche Arbeitsumgebung), erfordert das Umgehen von einigen Hindernissen, da anscheinend unter MaxOS, speziell Leopard, alles nochmal ganz anders ist als es schon unter Windows anders war. [...]]]></description>
			<content:encoded><![CDATA[<p>Um auch endg&uuml;ltig in den Entwicklerkreisen in Berlin/Mitte anerkannt zu werden, bin ich vor einigen Wochen auf ein MacBook umgestiegen. Die Einrichtung einer gewohnten Rails-Entwicklungsumgebung (nicht IDE, nur die t&auml;gliche Arbeitsumgebung), erfordert das Umgehen von einigen Hindernissen, da anscheinend unter MaxOS, speziell Leopard, alles nochmal ganz anders ist als es schon unter Windows anders war.</p>
<p>Eine der gr&ouml;&szlig;eren Fallen, in die ich getappt bin bisher ist das Installieren des Mysql-Gems, da ein naives &quot;gem install mysql&quot; mit verschiedensten Fehlern abbrach. Drum hier die kurze Anleitung, die man sich sonst von vielen Seiten im Netz zusammensuchen muss, exklusiv zusammengefasst auf code-schubser.de:</p>
<ol>
<li>Unbedingt MySQL x86 (=32bit) Version installieren (findet man <a href="http://dev.mysql.com/downloads/mysql/5.0.html#macosx-dmg" target="_blank">hier</a>). Die mit Leopard mitgelieferte Ruby Version mag die 64bit Variante von MySQL anscheinend nicht und spricht nicht mit ihr. (Sollte es f&uuml;r die Installation der 32bit Version schon zu sp&auml;t sein, bitte die Tabellen sichern, die 32bit Variante &uuml;ber die schon installierte 64bit Version installieren und die Dumps wiederherstellen. Das sollte die 64bit Version erfolgreich auf die 32bit &quot;downgraden&quot;).</li>
<p></p>
<li>Jetz der eigentliche tricky-Part: Die Installation des Gems an sich. Die Pfade zu den Libraries sind nicht so einfach rauszufinden, daher hier die Abk&uuml;rzung:</li>
</ol>
<p><code> sudo env ARCHFLAGS=&quot;-arch i386&quot; gem install mysql -- \   --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \   --with-mysql-include=/usr/local/mysql/include </code></p>
<p>Kopieren, in Terminal einf&uuml;gen, freuen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/12/mysql-gem-unter-macosx-leopard-installieren/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>attr_accessible umgehen</title>
		<link>http://www.code-schubser.de/2008/11/attr_accessible_umgehen/</link>
		<comments>http://www.code-schubser.de/2008/11/attr_accessible_umgehen/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 22:28:06 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[kann man immer mal gebrauchen]]></category>
		<category><![CDATA[active_record]]></category>
		<category><![CDATA[attr_accessible]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=58</guid>
		<description><![CDATA[Kennen Sie das auch? Beim Testen oder in den Controllern der Administration der neuen Anwendung sollen per Massenzuweisung die Attribute eines Models gesetzt werden, aber im Model sind mal wieder einige Attribute wegen attr_accessible nicht massenzuweisbar&#8230; Das ist selbstverst&#228;ndlich grunds&#228;tzlich der richtige Weg. Hier zeigen wir Ihnen nun aber eine M&#246;glichkeit, bei einzelnen Massenzuweisungen die [...]]]></description>
			<content:encoded><![CDATA[<p>Kennen Sie das auch? Beim Testen oder in den Controllern der Administration der neuen Anwendung sollen per Massenzuweisung die Attribute eines Models gesetzt werden, aber im Model sind mal wieder einige Attribute wegen attr_accessible nicht massenzuweisbar&#8230;</p>
<p>Das ist selbstverst&auml;ndlich grunds&auml;tzlich der richtige Weg. Hier zeigen wir Ihnen nun aber eine M&ouml;glichkeit, bei einzelnen Massenzuweisungen die Restriktionen&nbsp; von attr_accessible zu umgehen:</p>
<p>Man &ouml;ffne ActiveRecord::Base und definiere ein paar neue Methoden:</p>
<p><span id="more-58"></span></p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># </span>
  <span style="color:#9966CC; font-weight:bold;">def</span> unsafe_update_attributes<span style="color:#006600; font-weight:bold;">&#40;</span>attrs<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">unsafe_attributes</span> = attrs
    save
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># </span>
  <span style="color:#9966CC; font-weight:bold;">def</span> unsafe_update_attributes!<span style="color:#006600; font-weight:bold;">&#40;</span>attrs<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">unsafe_attributes</span> = attrs
    save!
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># </span>
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">unsafe_create</span><span style="color:#006600; font-weight:bold;">&#40;</span>attrs<span style="color:#006600; font-weight:bold;">&#41;</span>
    o = new
    o.<span style="color:#9900CC;">unsafe_attributes</span> = attrs
    o.<span style="color:#9900CC;">create</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># </span>
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">unsafe_create</span>!<span style="color:#006600; font-weight:bold;">&#40;</span>attrs<span style="color:#006600; font-weight:bold;">&#41;</span>
    o = new
    o.<span style="color:#9900CC;">unsafe_attributes</span> = attrs
    o.<span style="color:#9900CC;">create</span>!
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#008000; font-style:italic;"># </span>
  <span style="color:#9966CC; font-weight:bold;">def</span> unsafe_attributes=<span style="color:#006600; font-weight:bold;">&#40;</span>attrs<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#9966CC; font-weight:bold;">if</span> attrs.<span style="color:#0000FF; font-weight:bold;">nil</span>?
    attrs.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span><span style="color:#006600; font-weight:bold;">&#40;</span>k,v<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">|</span>
      send<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;#{k}=&quot;</span>, v<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Das ganze kann beispielsweise in eine Datei im /lib/ Verzeichnis. Das require in der environment.rb (oder einem Initializer) nicht vergessen. Die Verwendung sollte selbsterkl&auml;rend sein&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/11/attr_accessible_umgehen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>acts_as_ferret/lib/class_methods.rb to define ClassMethods</title>
		<link>http://www.code-schubser.de/2008/10/acts_as_ferretlibclass_methodsrb-to-define-classmethods/</link>
		<comments>http://www.code-schubser.de/2008/10/acts_as_ferretlibclass_methodsrb-to-define-classmethods/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 23:32:53 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[das hätte man besser machen können]]></category>
		<category><![CDATA[acts_as_ferret]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[magic_multi_connections]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[workarounds]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=47</guid>
		<description><![CDATA[Wieder mal ein Problem beim Zusammenspiel zweier Plugins: acts_as_ferret &#38; magic_multi_connections. Macht sich bemerkbar etwa beim Serverstart durch den o.g. Fehler. Mein schneller Workaround: In der Datei magic_multi_connections-1.2.1/lib/magic_multi_connections/connected.rb, Zeile 85: ClassMethods in MyClassMethods umbenennen und in Zeile 82 wiederholen. &#160; Nebenbei, magic_multi_connections l&#228;uft in Rails 2.1.1 nicht mehr ohne weiteres (in 2.1.0 funtionierte es noch). [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder mal ein Problem beim Zusammenspiel zweier Plugins: <a href="http://projects.jkraemer.net/acts_as_ferret/">acts_as_ferret</a> &amp; <a href="http://magicmodels.rubyforge.org/magic_multi_connections/">magic_multi_connections</a>. Macht sich bemerkbar etwa beim Serverstart durch den o.g. Fehler.</p>
<h4>Mein schneller Workaround:</h4>
<p>In der Datei magic_multi_connections-1.2.1/lib/magic_multi_connections/connected.rb, Zeile 85:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">ClassMethods <span style="color:#9966CC; font-weight:bold;">in</span> MyClassMethods</pre></div></div>

<p>umbenennen und in Zeile 82 wiederholen.</p>
<p>&nbsp;</p>
<p>Nebenbei, magic_multi_connections l&auml;uft in Rails 2.1.1 nicht mehr ohne weiteres (in 2.1.0 funtionierte es noch).</p>
<h4>Workaround hierf&uuml;r:</h4>
<p>In der Datei magic_multi_connections-1.2.1/lib/magic_multi_connections/connected.rb, die Zeile 20 &auml;ndern in:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#9966CC; font-weight:bold;">unless</span> target_class</pre></div></div>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/10/acts_as_ferretlibclass_methodsrb-to-define-classmethods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>capistrano, memcached, ferret und &#8220;No connection to server&#8221;</title>
		<link>http://www.code-schubser.de/2008/09/capistrano-memcached-ferret-und-no-connection-to-server/</link>
		<comments>http://www.code-schubser.de/2008/09/capistrano-memcached-ferret-und-no-connection-to-server/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 14:44:07 +0000</pubDate>
		<dc:creator>jan</dc:creator>
				<category><![CDATA[das hätte man besser machen können]]></category>
		<category><![CDATA[backgroundrb]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[ferret]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://www.code-schubser.de/?p=41</guid>
		<description><![CDATA[Darauf bin ich gestern gesto&#223;en. Noch bin ich nicht ganz sicher, ob es nicht eine bessere L&#246;sung gibt oder das Verhalten f&#228;lschlicherweise irgendwie von mir herbeigef&#252;hrt wurde: In einem Projekt setze ich ferret (via acts_as_ferret) f&#252;r ein paar kleine Suchfunktionen und memcached (via cache_fu) zum -wait for it..- Cachen ein. Die Analyse eines missgl&#252;ckten Capistrano-Deployments [...]]]></description>
			<content:encoded><![CDATA[<p>Darauf bin ich gestern gesto&szlig;en. Noch bin ich nicht ganz sicher, ob es nicht eine bessere L&ouml;sung gibt oder das Verhalten f&auml;lschlicherweise irgendwie von mir herbeigef&uuml;hrt wurde:</p>
<p>In einem Projekt setze ich <a href="http://ferret.davebalmain.com/trac/">ferret</a> (via <a href="http://projects.jkraemer.net/acts_as_ferret/">acts_as_ferret</a>) f&uuml;r ein paar kleine Suchfunktionen und <a href="http://www.danga.com/memcached/">memcached</a> (via <a href="http://github.com/defunkt/cache_fu/tree/master">cache_fu</a>) zum -wait for it..- Cachen ein. Die Analyse eines missgl&uuml;ckten <a href="http://www.capify.org/">Capistrano</a>-Deployments ergab, dass ein Starten des <a href="http://projects.jkraemer.net/acts_as_ferret/wiki/DrbServer">ferret DRb</a> Servers ohne laufendes memcached fehlschl&auml;gt: No connection to server<br />
Mich wundert sehr, dass dieses Problem bei fr&uuml;heren Deployments nicht aufgetreten ist, obwohl sowohl ferret als auch memcached bereits zum Einsatz kamen.</p>
<p>L&ouml;sung: Die eingesetzten Capistrano-Tasks (<a href="http://pastie.org/274972">ferret</a>, <a href="http://pastie.org/274970">memcached</a>), die beide zuvor von &quot;deploy:start&quot; und &quot;:stop&quot; abhingen, m&uuml;ssen voneinander abh&auml;ngen .. genauer: ferret:start und ferret:stop m&uuml;ssen jeweils nach bzw. vor memcached:start und memcached:stop ausgef&uuml;hrt werden: <a href="http://pastie.org/274974">so</a></p>
<p>&Uuml;brigens: Das gleiche gilt f&uuml;r <a href="http://backgroundrb.rubyforge.org/">BackgrounDRb</a>. Es scheint, als wenn das Laden der Rails Environment ein erreichbares memcached voraussetzt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-schubser.de/2008/09/capistrano-memcached-ferret-und-no-connection-to-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
