<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[thegcat]]></title>
  <link href="http://thegcat.net/atom.xml" rel="self"/>
  <link href="http://thegcat.net/"/>
  <updated>2014-07-18T18:15:30+02:00</updated>
  <id>http://thegcat.net/</id>
  <author>
    <name><![CDATA[Felix Schäfer]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Spreading the ChiliProject Word]]></title>
    <link href="http://thegcat.net/2011/11/07/spreading-the-chiliproject-word/"/>
    <updated>2011-11-07T16:41:00+01:00</updated>
    <id>http://thegcat.net/2011/11/07/spreading-the-chiliproject-word</id>
    <content type="html"><![CDATA[<p><strong>Update (7.11.11 22:11)</strong>: Updated the post with a link to the <a href="https://www.chiliproject.org/boards/1/topics/933" title="ChiliProject &quot;spread the word&quot; presentation">&ldquo;ChiliProject &ndash;
Spread the word&rdquo; thread</a> in the ChiliProject forums which holds
most of the points I&rsquo;ve dicussed at RailsCamp HH and the RUG::B.</p>

<p>I&rsquo;ve been to two Ruby and Ruby on Rails focused events in the past week, first
to the <a href="http://railscamp-hamburg.de/" title="RailsCamp Hamburg">RailsCamp Hamburg 2011</a>, then to the monthly meeting of the <a href="http://www.rug-b.de/" title="Ruby User Group Berlin">RUG::B</a>
(the Ruby User Group Berlin), and while I didn&rsquo;t expect <a href="https://www.chiliproject.org/" title="ChiliProject">ChiliProject</a> to be
as well known as some other big or popular projects, I was somewhat astonished
and maybe even a little disappointed to see how little even its name was known.
It seems to me that public knowledge and being on people&rsquo;s mind is something that
we need to work on more than any technical or feature-wise improvements (don&rsquo;t
get me wrong: those are important too, but pretty useless if no one uses them…).</p>

<p>It really hit me last saturday at the RailsCamp when the schedule for the day
was being discussed. When it was my turn to propose my talk (I had naturally
prepared a short one about ChiliProject and why we had forked Redmine), I first
asked how many people had heard of ChiliProject, then how many didn&rsquo;t know Redmine.
I estimate there were some 100-130 people present, and the answer to both
questions was less than ten. Now I didn&rsquo;t expect more than half the people
present to know about ChiliProject, but less than 10% is a really small mindshare.</p>

<p>The interest wasn&rsquo;t overwhelming either, but I credit that to my somewhat
clumsy introduction to the matter and the very strong lineup otherwise than
to sheer disinterest, so the talk turned into a discussion with people already
using Redmine that have gone a little worried about the project and who were glad
to hear about someone &ldquo;picking up the slack&rdquo;, even if it was in the form of a fork.</p>

<p>Then came the RUG::B. I had planned on going anyway and decided to try to
spread the word about ChiliProject there. I reworked the presentation to be more
focused on the technical and community reasons behind the fork (the slides aren&rsquo;t
available online as some slides might be misinterpreted without the
presentation, the gist of the presentation&rsquo;s arguments can be found in this
<a href="https://www.chiliproject.org/boards/1/topics/933" title="ChiliProject &quot;spread the word&quot; presentation">&ldquo;ChiliProject &ndash; Spread the word&rdquo; thread</a> in the ChiliProject forums) and
presented it to the 30-odd people present. The preliminary
question got roughly the same answer as on the RailsCamp, the interest and
response were great though, including specific questions regarding the
intended &ldquo;community management&rdquo; style and praise and admiration for having the
guts to fork instead of just &ldquo;giving up&rdquo;.</p>

<p>All in all, I think those two visits showed me that we still have a lot of work
to do in the mindshare area. The visibility of ChiliProject will rise when the
<a href="https://www.chiliproject.org/issues/263" title="Issue and discussion about the new layout on chiliproject.org">new design</a> (current design proposal <a href="https://ux.finn.de" title="Installation with the design proposal, feel free to register">here</a>, not final yet) is released and
deployed on some high-profile installations, but this probably won&rsquo;t be enough.
In addition to that, I plan on going to some european conferences during the next
year (<a href="http://wrocloverb.com/" title="wroc_love.rb - Ruby Conference brought by thriving Wrocław Ruby Community">wroc_love.rb</a>, <a href="http://railsberry.com/" title="Railsberry - A Sweet European Rails Conference, Krakow, April 2012">Railsberry</a> and the <a href="http://lasteuruko.org/" title="The last EuRuKo in Amsterdam">EuRuKo</a>) and hold presentations
or at least lightning talks about ChiliProject. Interesting times! :&ndash;)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[UberGit - Reloaded]]></title>
    <link href="http://thegcat.net/2011/10/31/ubergit-reloaded/"/>
    <updated>2011-10-31T22:37:00+01:00</updated>
    <id>http://thegcat.net/2011/10/31/ubergit-reloaded</id>
    <content type="html"><![CDATA[<p><strong>Update (1.11.11 22:42)</strong>: <a href="http://jonaspasche.com/app/" title="Jonas Pasche's Homepage">Jonas von den Ubernauten</a> hat mich drauf hingewiesen,
dass man schon mittels gitolite ein Repository über ssh mit mehreren Nutzern
teilen kann, den Post habe ich entsprechend korrigiert. Weiterhin bietet grack
keine wirklichen Vorteile gegenüber dem git-eigenen <code>git-http-backend</code>, den hatte ich
allerdings &ldquo;vergessen&rdquo; weil er als ich auf einem anderen Server einen git
smart-http installiert habe nicht in Frage gekommen war, grack schon.</p>

<p><a href="http://kahlil.co/" title="Kahlil Lechelts Blog">Kahlil Lechelt</a> hat vor ein paar Monaten in seinem Post <a href="http://kahlil.co/2011/07/10/ubergit/" title="UberGit">UberGit</a> schon
gezeigt, wie man <a href="http://uberspace.de/" title="Uberspace - Hosting on asteroids">Uberspace</a> als privaten git Server über ssh benutzen kann.
Diese Methode hat allerdings den Nachteil, dass man Anderen keinen Zugriff auf
seine Repositories oder mehreren Leuten Schreibzugriff auf ein gemeinsam-genutztes
Repository geben kann. Das <a href="https://uberspace.de/dokuwiki" title="Uberspace Wiki">Uberspace Wiki</a> beschreibt weiterhin, wie man
<a href="http://uberspace.de/dokuwiki/cool:gitolite" title="gitolite auf Uberspace installieren">gitolite installieren</a> kann und damit über ssh mehreren Nutzern Lese- und/oder
Schreibzugriff auf Repositories geben kann, bzw. wie man
<a href="https://uberspace.de/dokuwiki/development:git#oeffentlich_bereitstellen" title="git Repository auf Uberspace über http bereitstellen">ein Repository über http veröffentlichen</a> kann, hier ist der Schreibzugriff
allerdings ausgeschlossen.</p>

<p>Nun, wem unwohl ist anderen Benutzern Zugriff auf sein ssh zu geben, die
ssh-Konfiguration für die Endanwender zu kompliziert ist und über http
auch schreiben können möchte, dem verschafft <a href="https://github.com/schacon/grack" title="grack">grack</a> Abhilfe. grack ist ein in
Ruby geschriebener Wrapper um git selbst, der einen <a href="http://progit.org/2010/03/04/smart-http.html" title="git smart http transport">git-smart-http</a>-Server
über den man Repositories lesen und schreiben kann bereitstellt.</p>

<p>Folgendes Kommando installiert grack im eigenen Uberspace:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='sh'><span class='line'>sh &lt; &lt;<span class="o">(</span>curl -s https://raw.github.com/gist/1329025/uberspace-install-grack.sh<span class="o">)</span>
</span></code></pre></td></tr></table></div></figure>


<p>Dieses Kommando führt das unten aufgeführte Skript aus, was:</p>

<ol>
<li>grack in einen versteckten Ordner <code>.grack</code> in deinem Home-Verzeichnis runterlädt,</li>
<li>in <code>.grack</code> den Ordner <code>repositories</code> erstellt, von wo grack später Repositories
auslesen wird,</li>
<li>einen fcgi-Handler mit der richtigen ruby-Version und grack-Konfiguration für
dich erstellt.</li>
</ol>


<p>Die durch das Skript erstellte Konfiguration erlaubt Lese- aber keinen Schreibzugriff,
um Letzteren zu erlauben muss in der erstellten <code>~/fcgi-bin/git.fcgi</code> der Parameter
<code>:receive_pack =&gt; false,</code> zu <code>:receive_pack =&gt; true,</code> geändert werden. Das
fcgi-Skript kann man auch nach Belieben in einen anderen Host als den default Host
installieren, dafür verweise ich aber auf den <a href="https://uberspace.de/dokuwiki/webserver:fastcgi" title="FastCGI Artikel im Uberspace Wiki">FastCGI Artikel</a> im Uberspace
Wiki (dort ist übrigens auch beschrieben wie man ein FastCGI Skript neustarten
kann, was nötig ist nachdem man die Konfiguration geändert hat).</p>

<p>Repositories sollten für grack im bare Format vorliegen. Ein neues Repository
legt man mit <code>git init --bare ~/.grack/repositories/repo_name</code>
an, ein existierendes Repository kann man mit
<code>git clone --bare http://example.com/repo_name ~/.grack/repositories/repo_name</code>
clonen. Die Adresse zu einen so erstellten Repository lautet für mich dann
<code>http://thegcat.virgo.uberspace.de/fcgi-bin/git.fcgi/repo_name</code>, den Account
bzw. Uberhost Namen muss dann jeder für sich anpassen (das Skript gibt die
&ldquo;Oberadresse&rdquo; für alle Repositories auch noch mal aus :&ndash;) ).</p>

<p>Eine letzte aber wichtige Anmerkung: grack bietet keine Möglichkeit den Zugriff
auf alle oder einzelne Repositories zu verbieten bzw. nur bestimmten Benutzern
zu erlauben, man kann lediglich über die Parameter <code>:upload_pack</code> bzw.
<code>:receive_pack</code> Lese- bzw. Schreib-Operationen für alle Repositories zulassen.
Eine feinere Zugangskontrolle muss noch &ldquo;vor&rdquo; grack im Uberhost Apache passieren,
dazu aber später von den Ubernauten oder mir noch was.</p>

<div><script src='https://gist.github.com/1329025.js?file=uberspace-install-grack.sh'></script>
<noscript><pre><code>#!/bin/sh

UBERSPACE_RUBY_1_8_PATH=&quot;/package/host/localhost/ruby-1.8.7-p352/bin/ruby&quot;
UBERSPACE_USER_HTTP_HOST=&quot;http://`id -un`.`hostname`&quot;

FCGI_SCRIPT_PATH=&quot;fcgi-bin/git.fcgi&quot;
FCGI_SCRIPT_FS_PATH=&quot;${HOME}/${FCGI_SCRIPT_PATH}&quot;
FCGI_SCRIPT_URL=&quot;${UBERSPACE_USER_HTTP_HOST}/${FCGI_SCRIPT_PATH}&quot;

GRACK_PATH=&quot;${HOME}/.grack&quot;
GRACK_LIB_PATH=&quot;${GRACK_PATH}/lib&quot;
GRACK_REPOS_PATH=&quot;${GRACK_PATH}/repositories&quot;
GRACK_CLONE_URL=&quot;git://github.com/schacon/grack.git&quot;

if [ -f ${FCGI_SCRIPT_PATH} ] ; then
  echo &quot;You already have a git.fcgi in your ~/fcgi-bin. Nothing to do here.&quot;
  exit 1
fi

if [ -d ${GRACK_PATH} ] ; then
  echo &quot;You already have a ~/.grack directory. Nothing to do here.&quot;
  exit 2
fi

git clone ${GRACK_CLONE_URL} ${GRACK_PATH}

mkdir ${GRACK_REPOS_PATH}

cat &gt; ${FCGI_SCRIPT_PATH} &lt;&lt;EOF
#!${UBERSPACE_RUBY_1_8_PATH}

\$LOAD_PATH.unshift &#39;${GRACK_LIB_PATH}&#39;

require &#39;rubygems&#39;
require &#39;rack&#39;
require &#39;git_http&#39;

config = {
  :project_root =&gt; &#39;${GRACK_REPOS_PATH}&#39;,
  :upload_pack =&gt; true,
  :receive_pack =&gt; false,
}

Rack::Handler::FastCGI.run(GitHttp::App.new(config))
EOF

chmod 755 ${FCGI_SCRIPT_PATH}


echo &quot;You have now installed grack to your uberspace&quot;
echo
echo &quot;You can now create (or clone) bare repositories in&quot;
echo &quot;${GRACK_REPOS_PATH}&quot;
echo &quot;those will be made available under&quot;
echo &quot;${FCGI_SCRIPT_URL}&quot;
echo
echo &quot;Please note that repositories published that way are world-readable!&quot;</code></pre></noscript></div>


<p>(Verbesserungsvorschläge gerne auf GitHub :&ndash;) )</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Draper Just Shifts the Problem]]></title>
    <link href="http://thegcat.net/2011/10/30/draper-just-shifts-problem/"/>
    <updated>2011-10-30T18:25:00+01:00</updated>
    <id>http://thegcat.net/2011/10/30/draper-just-shifts-problem</id>
    <content type="html"><![CDATA[<p><strong>tl;dr</strong>: <a href="https://github.com/jcasimir/draper/" title="Draper on GitHub">Draper</a> wraps the Rails &ldquo;helper dumps&rdquo; in objects resulting in namespaced
dumps you have to remember calling. Yay (not).</p>

<p><em>Disclaimer</em>: I&rsquo;m no expert on OOP (apart from the basic class at the university
that teaches that &ldquo;putting code in classes&rdquo; is good) nor Rails (I learnt ruby and
Rails by myself roughly 2 years ago while tinkering with Redmine (hint: not the
nicest code in the Rails world)), so don&rsquo;t take my opinion for granted, I just
hope to fuel the discussion a little.</p>

<p>Flashback to pre-Draper times: everyone has a feeling of sorts that the Rails
helpers are probably a bad idea, but they still become the dumping place for
any formatting methods and other stuff you don&rsquo;t know where else to put. Formatting
methods landed there because having them in your ActiveRecord models made the
models look bloated which made you feel even worse than putting them in the helpers
and/or because what you wanted the method do do wouldn&rsquo;t work in the model
because models miss the ActionView helpers (<code>link_to</code> et al.). Over time, the helpers
would get bloated, you&rsquo;d have to add them to an increasing number of views,
maybe even include them in the controllers because you&rsquo;d put some controller
logic in there or needed view logic in the controller (I&rsquo;m looking at you,
<code>#to_xml</code>, but that&rsquo;s a different matter). In the end, everyone would feel bad about
the helpers becoming so big and jumbled together, but it still was better than having all this
stuff in your models or controllers (or views!) and more convenient because you
could even add all helpers to all view and be done with it (provided you didn&rsquo;t
have any methods with the same names in different helpers).</p>

<p>Enter <a href="https://github.com/jcasimir/draper/" title="Draper on GitHub">Draper</a>. It has a nice sounding name, claims to solve an itch Rails
developers have, and uses a catchy sounding OOP pattern everyone has heard
about some time or another as selling point. Problem solved, right? I thought so too at first
(beware of the buzzwords!), but <a href="http://mediafinger.com/" title="Andreas Finger's homepage">Andreas</a> (<a href="https://twitter.com/mediafinger" title="Andreas Finger on Twitter">@mediafinger</a>) and Uygar&rsquo;s
(<a href="https://twitter.com/uygar_gg" title="Uygar Gomez on Twitter">@uygar_gg</a>) <a href="https://github.com/mediafinger/rails_presenter_with_draper" title="Rails presenter with Draper">presentation</a> at the RailsCamp Hamburg made me realize that the
lurking unease I had about Draper is justified after all. Draper just wraps your
helpers in objects (something you could have easily done before but rightfully
didn&rsquo;t) thus solving the cross-helper method name collision problem, at the cost of
just a little less hassle than doing it yourself would have been while masking
the pain you&rsquo;d have had making decorators yourself.</p>

<p>Let&rsquo;s have a look at an example, first without Draper:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">User</span> <span class="o">&lt;</span> <span class="no">ActiveRecord</span><span class="o">::</span><span class="no">Base</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">UserController</span> <span class="o">&lt;</span> <span class="no">ApplicationController</span>
</span><span class='line'>  <span class="n">helper</span> <span class="ss">:user</span>
</span><span class='line'>  <span class="kp">include</span> <span class="no">UserHelper</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">before_filter</span> <span class="ss">:find_user</span><span class="p">,</span> <span class="ss">:only</span> <span class="o">=&gt;</span> <span class="o">[</span><span class="ss">:show</span><span class="p">,</span> <span class="ss">:update</span><span class="p">,</span> <span class="ss">:edit</span><span class="p">,</span> <span class="ss">:destroy</span><span class="o">]</span>
</span><span class='line'>
</span><span class='line'>  <span class="kp">private</span>
</span><span class='line'>  <span class="k">def</span> <span class="nf">find_user</span>
</span><span class='line'>    <span class="vi">@user</span> <span class="o">=</span> <span class="no">User</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">params</span><span class="o">[</span><span class="ss">:id</span><span class="o">]</span><span class="p">)</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">module</span> <span class="nn">UserHelper</span>
</span><span class='line'> <span class="k">def</span> <span class="nf">twitter_link_for_user</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
</span><span class='line'>   <span class="n">link_to</span> <span class="s2">&quot;https://twitter.com/</span><span class="si">#{</span><span class="n">user</span><span class="o">.</span><span class="n">twitter_nickname</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>


<p>Not really pretty because you have some function <code>twitter_link_for_user</code> that
looks like it should rather belong to the <code>User</code> class (the <em>for_user</em> part of
the method name should be enough of a hint) rather than lurch in the helper,
 and you have included the helper in the controller, for example to include the
 twitter link in some <code>#to_xml</code> call. If I&rsquo;m not completely mistaken, Rails helpers
 are view helpers, including them in your controllers puts view logic in them,
 which kinda renders the whole MVC pattern moot and should be considered a code smell.</p>

<p>Now the same example with Draper:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">User</span> <span class="o">&lt;</span> <span class="no">ActiveRecord</span><span class="o">::</span><span class="no">Base</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">UserDecorator</span> <span class="o">&lt;</span> <span class="no">ApplicationDecorator</span>
</span><span class='line'>  <span class="n">decorates</span> <span class="ss">:user</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">def</span> <span class="nf">twitter_link</span>
</span><span class='line'>    <span class="n">h</span><span class="o">.</span><span class="n">link_to</span> <span class="s2">&quot;https://twitter.com/</span><span class="si">#{</span><span class="n">user</span><span class="o">.</span><span class="n">twitter_nickname</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">UserController</span> <span class="o">&lt;</span> <span class="no">ApplicationController</span>
</span><span class='line'>  <span class="n">before_filter</span> <span class="ss">:find_user</span><span class="p">,</span> <span class="ss">:only</span> <span class="o">=&gt;</span> <span class="o">[</span><span class="ss">:show</span><span class="p">,</span> <span class="ss">:update</span><span class="p">,</span> <span class="ss">:edit</span><span class="p">,</span> <span class="ss">:destroy</span><span class="o">]</span>
</span><span class='line'>
</span><span class='line'>  <span class="kp">private</span>
</span><span class='line'>  <span class="k">def</span> <span class="nf">find_user</span>
</span><span class='line'>    <span class="vi">@user</span> <span class="o">=</span> <span class="no">UserDecorator</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">params</span><span class="o">[</span><span class="ss">:id</span><span class="o">]</span><span class="p">)</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">module</span> <span class="nn">UserHelper</span>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>


<p>You can now get the twitter link for the user by calling <code>@user.twitter_link</code>
and you were able to stop including the helper in the controller, you can even
drop the <code>helper</code> call in the controller if your helper becomes empty. You feel
all fuzzy inside and are comfortable with your code again. The helper is empty
and everything is neatly organized in objects, so it&rsquo;s all OOP and must thus be
good, right? I don&rsquo;t think so.</p>

<p>Let me rephrase the above without using Draper (I&rsquo;m aware Draper does a little
bit more than that, but bear with me):</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="k">class</span> <span class="nc">User</span> <span class="o">&lt;</span> <span class="no">ActiveRecord</span><span class="o">::</span><span class="no">Base</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">UserDecorator</span>
</span><span class='line'>  <span class="kp">include</span> <span class="no">ActionView</span><span class="o">::</span><span class="no">Helpers</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">def</span> <span class="nf">initialize</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
</span><span class='line'>    <span class="vi">@user</span> <span class="o">=</span> <span class="n">user</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">def</span> <span class="nf">twitter_link</span>
</span><span class='line'>    <span class="n">link_to</span> <span class="s2">&quot;https://twitter.com/</span><span class="si">#{</span><span class="vi">@user</span><span class="o">.</span><span class="n">twitter_nickname</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">def</span> <span class="nf">method_missing</span>
</span><span class='line'>    <span class="c1"># try calling on @user what we didn&#39;t implement here</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">class</span> <span class="nc">UserController</span> <span class="o">&lt;</span> <span class="no">ApplicationController</span>
</span><span class='line'>  <span class="n">before_filter</span> <span class="ss">:find_user</span><span class="p">,</span> <span class="ss">:only</span> <span class="o">=&gt;</span> <span class="o">[</span><span class="ss">:show</span><span class="p">,</span> <span class="ss">:update</span><span class="p">,</span> <span class="ss">:edit</span><span class="p">,</span> <span class="ss">:destroy</span><span class="o">]</span>
</span><span class='line'>
</span><span class='line'>  <span class="kp">private</span>
</span><span class='line'>  <span class="k">def</span> <span class="nf">find_user</span>
</span><span class='line'>    <span class="vi">@user</span> <span class="o">=</span> <span class="no">UserDecorator</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="no">User</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">params</span><span class="o">[</span><span class="ss">:id</span><span class="o">]</span><span class="p">))</span>
</span><span class='line'>  <span class="k">end</span>
</span><span class='line'><span class="k">end</span>
</span><span class='line'>
</span><span class='line'><span class="k">module</span> <span class="nn">UserHelper</span>
</span><span class='line'><span class="k">end</span>
</span></code></pre></td></tr></table></div></figure>


<p>How does it look without the nice syntax Draper brings? There&rsquo;s an explicit
call to <code>ActionView::Helpers</code> in something directly called by the controller.
It doesn&rsquo;t feel so warm and fuzzy after all, does it? Here&rsquo;s the slide from the
aforementioned presentation which made me realize that you&rsquo;re effectively
squeezing view code between your model and controller:</p>

<p><a href="http://thegcat.net/uploads/2011/10/kill_your_helpers-slide_10-960x.png" title='Slide 10 of the presentation "Rails presenter with Draper"'><img class="center" src="http://thegcat.net/uploads/2011/10/kill_your_helpers-slide_10-300x.png" title="Slide 10 of the presentation &#34;Rails presenter with Draper&#34;" alt="Slide 10 of the presentation &#34;Rails presenter with Draper&#34;"></a></p>

<p>Now if you applied the decorator to your object only &ldquo;after&rdquo; the controller,
I wouldn&rsquo;t mind (provided said decorator contains view logic only). Sadly, that&rsquo;s
not the case in the code examples provided by Draper.</p>

<p>The approach presented above has more pitfalls still, and one that isn&rsquo;t apparent
from the code above is that you&rsquo;re working on &ldquo;fully&rdquo; decorated objects
in the controller. Apart from bringing view logic into your controller, this
also is problematic with another feature of Draper which allows to white- or
blacklist functions of the decorated object. Great feature, you decide to blacklist
write operations to your object, including save, but that means for &ldquo;write&rdquo; actions
(create and update) you can&rsquo;t use the decorated object in your controller logic.
No big deal, you just use the plain object and decorate only if the operation
fails and you have to present the user with the form for the object (this would
be the right way to apply view decorators, by the way). Now for whatever reason,
for example for access control, you stick a method into your decorator (it&rsquo;s
only of interest to instances of that particular class but isn&rsquo;t business logic,
so you don&rsquo;t put it in the helper nor in the object but into the decorator) and
now need the decorated object before you call save on it. You now have to juggle
a decorated and an undecorated instance of the object at the same time. Bummer.</p>

<p>Let&rsquo;s recap what bothers us with the Rails helpers and what Draper can do for
us. Does it avoid cross-helper method name collisions? Sure. Is it &ldquo;more OOP&rdquo;?
You&rsquo;re explicitly calling your helper methods on an object rather than including
a misnamed hodgepodge of methods to be able to call them in views, so let&rsquo;s
say yes here too. Does it take this jumbled together mess out of the helpers?
It does, and sticks this same mess but with better names into an object. I don&rsquo;t
consider a namespaced mess better than a non-namespaced one, so this is a draw.
Does it keep view logic out of your controllers? Nope, I&rsquo;d even say it makes
things worse. Does it keep view logic out of your models? Yeah, but so do helpers.
Does Draper give us more than a buzzword we can add to the list of &ldquo;OOP things&rdquo;
our code does? I don&rsquo;t think so, and you probably shouldn&rsquo;t either.</p>

<p>How can the Rails helper situation be improved? I&rsquo;m not sure I have a good answer
to that, but if you think your helpers are too bloated, try splitting them
into smaller topical modules. If you think your helper methods should really
be methods on your business objects but don&rsquo;t want to litter your model definitions
with view logic or include the ActionView helpers in them (and you shouldn&rsquo;t!),
then by all means use decorators, but don&rsquo;t use <em>them</em> as yet another dumping ground!
Feel free to use more than one decorator on business object instances, for example
a <code>TwitterUser</code>, a <code>GooglePlusUser</code> and a <code>XingUser</code> (yeah, decorators don&rsquo;t need
to be called <code>SomeDecorator</code>). Sure, this results in a call akin to
<code>TwitterUser.new(GooglePlusUser.new(XingUser.new(@user)))</code>, but at least it is
very clear what each decorator does and it makes it easier to swap one for another
or refactor any of them. Make also sure to know which decorator belongs to which
MVC step, you can use decorated objects in your controller logic, but decorate
your objects with view logic only at the end of or after your controller logic!
Sure, that&rsquo;s not as easy just dumping everything into the helpers or into Draper
decorators (I know you can apply multiple Draper decorators on an object and thus
avoid bloating them, the code examples and the fact that the decorated objects
seem to get used in controller logic doesn&rsquo;t indicate that this was the authors
primary intentions. Furthermore, <code>FooDecorator.find</code> doesn&rsquo;t make sense for a
&ldquo;proper&rdquo;/reusable decorator), but no one ever said programming was easy :&ndash;)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[thegcat.net - Blog Relaunch]]></title>
    <link href="http://thegcat.net/2011/10/30/thegcat-dot-net-blog-relaunch/"/>
    <updated>2011-10-30T13:10:00+01:00</updated>
    <id>http://thegcat.net/2011/10/30/thegcat-dot-net-blog-relaunch</id>
    <content type="html"><![CDATA[<p>I&#8217;m at that point again. Relaunching the blog. New theme, new engine, hopefully more content, probably more technical content, probably more english than german, new address. More of a fresh start with imported history than a continuation really.</p>
<p>Blogging didn&#8217;t really work for me in the past. I don&#8217;t know if it was because of the engine (wordpress), because I didn&#8217;t think I have enough interesting things to share, or that the idea-to-blog hurdle is higher than just ranting on twitter (<a href="https://twitter.com/thegcat">I still do that, by the way…</a>), but I tried twice in the past and it didn&#8217;t stick.</p>
<p>So what to expect here? As I said, the content will probably become more technical, the main topics will probably be:</p>
<ul>
	<li>ChiliProject (who woulda thought?),</li>
	<li>Rants and discussions on Rails, Ruby and everything around it in general,</li>
	<li>Maybe some things about conferences I attend (and maybe later speak at),</li>
	<li>Some rare posts about being one of two remote employees in an otherwise one-office software development shop.</li>
</ul>
<p>A last word of caution: this site still has some rough edges, no comments, no <span class="caps">RSS</span> feeds for categories, and so on. I decided to &#8220;relaunch&#8221; anyway as I have completed importing and converting posts from my previous (wordpress) blog more than 6 weeks ago and haven&#8217;t found the time to take care of the few itches I still want to scratch. 80% there is still better than not there at all :-)</p>
<p>Enjoy!</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Erstaufführung Gianni Schicchi]]></title>
    <link href="http://thegcat.net/2009/06/25/erstauffuhrung-gianni-schicchi/"/>
    <updated>2009-06-25T02:36:11+02:00</updated>
    <id>http://thegcat.net/2009/06/25/erstauffuhrung-gianni-schicchi</id>
    <content type="html"><![CDATA[<p>Weil es schon spät ist fasse ich mich kurz: Die Aufführung hat der Operntruppe und dem Orchester Riesenspaß gemacht, und von dem vielen Applaus schließe ich, dass es dem Publikum genauso ergangen ist :-)</p><p><em>Update</em> (25.06.2009 19:30): Hier noch ein paar mehr Impressionen der Aufführung, erstens bei den <a href="http://www.ruhrnachrichten.de/lokales/dolo/kultur/Kultur-in-Dortmund;art13731,597265">Ruhrnachrichten</a>, und zweitens vor Ort von einem Kommilitonen gefilmt :-)</p>

<section class="gallery">
  <object width="320" height="265"><param name="movie" value="http://www.youtube-nocookie.com/v/vQIQnUvi92I&#038;hl=de&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/vQIQnUvi92I&#038;hl=de&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"></embed></object>
</section>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Gianni Schicchi in Der Lokalzeit]]></title>
    <link href="http://thegcat.net/2009/06/24/gianni-schicchi-in-der-lokalzeit/"/>
    <updated>2009-06-24T01:35:10+02:00</updated>
    <id>http://thegcat.net/2009/06/24/gianni-schicchi-in-der-lokalzeit</id>
    <content type="html"><![CDATA[<p>Da es schon spät ist und <strike>morgen</strike> heute Abend Erstaufführung ist werde ich mich kurz fassen. Letzten Donnerstag haben wir im Rahmen der Veranstaltungsreihe &#8220;Physik zwischen Brötchen und Borussia&#8221; nach dem Vortrag &#8221;<a href="http://www.physik.tu-dortmund.de/index.php?option=com_content&amp;view=article&amp;id=430:zwischen-broetchen-und-borussia-samstag-16juni-1030-uhr-&amp;catid=63:veranstaltungen&amp;Itemid=217">die Innensaite des Klangkörpers</a>&#8221; eine konzertante Aufführung (also ohne Schauspiel) der Oper gegeben. Trotz der schwierigen Bedingungen (Durchzug, kaum Blickkontakt zum Dirigenten, nicht für ein Konzert ausgelegter Saal, &#8230;) hat es recht gut geklappt, und der (leider nur) halbvolle Hörsaal hat uns 3 Mal wieder reingerufen. Heute Abend war die Generalprobe, und obwohl sie recht lang gedauert hat, bin ich für die Aufführungen Mittwoch und Samstag sehr zuversichtlich. Der WDR hat uns dabei auch besucht, und live in der Sendung Lokalzeit gesendet, das Ergebnis könnt ihr hier unten sehen. Mehr Infos zu den Konzerten gab es hier schon vorher bei der <a href="http://thegcat.net/2009/06/14/konzertankundigung-gianni-schicchi/" title="Konzertankündigung: Gianni Schicchi">Konzertankündigung: Gianni Schicchi</a>, wir freuen uns über jeden Besucher, ein Besuch lohnt sich! :-)</p>

<section class="gallery">
  <object width="480" height="295" data="http://www.youtube-nocookie.com/v/V6SL91wVQVE&amp;hl=de&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/V6SL91wVQVE&amp;hl=de&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object>
</section>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Ein Alter Bekannter Im Fernsehen]]></title>
    <link href="http://thegcat.net/2009/06/20/ein-alter-bekannter-im-fernsehen/"/>
    <updated>2009-06-20T00:20:48+02:00</updated>
    <id>http://thegcat.net/2009/06/20/ein-alter-bekannter-im-fernsehen</id>
    <content type="html"><![CDATA[<p>15 Jahre lang konnte ich ihn jeden Tag aus dem Fenster meines Zimmers in Mittenimnichtshausen sehen, den Puy de Dôme. Aktuell kann man ihn auch noch im Fernsehen betrachten, in dieser Werbung von Volvic, gegen 0:12, der große Vilkan im Hintergrund. Der Vulkan im Vordergrund, der kurz darauf &#8220;aufgeht&#8221;, ist der Puy de Parioux, und auf dem kann man wunderbar wandern gehen. Diese Wanderung kommt jetzt auf meine ToDo-Liste für meinen nächsten Besuch in Frankreich, jawohl! :-)</p>

<section class="gallery">
  <object width="480" height="295" data="http://www.youtube-nocookie.com/v/FRT4eNgx-Hc&amp;hl=de&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/FRT4eNgx-Hc&amp;hl=de&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /></object>
</section>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Konzertankündigung: Gianni Schicchi]]></title>
    <link href="http://thegcat.net/2009/06/14/konzertankundigung-gianni-schicchi/"/>
    <updated>2009-06-14T23:44:57+02:00</updated>
    <id>http://thegcat.net/2009/06/14/konzertankundigung-gianni-schicchi</id>
    <content type="html"><![CDATA[<p><a href="http://thegcat.net/uploads/2009/06/flyer.jpg" title="Flyer Gianni Schicchi"><img class="right" src="http://thegcat.net/uploads/2009/06/flyer-212x300.jpg" width="212" height="300" title="Flyer Gianni Schicchi" alt="Flyer Gianni Schicchi"></a> So, jetzt wo ich auch den digitalen Flyer für die Konzerte des UniOrchesters der TU Dortmund, bei dem unter anderem auch Gianni Schicchi aufgeführt wird, kann ich den auch mit euch teilen :-) Die Konzerte finden wie schon angekündigt an den 24.06. und 27.06. statt, jeweils im Audimax der TU Dortmund und im Konzerthaus Dortmund. In der ersten Hälfte werden Werke von Berio und Monteverdi aufgeführt, und in der zweiten Hälfte spielen und singen wir Gianni Schicchi von Puccini. Karten für das Konzert im Konzerthaus gibt es bei der Internetpräsenz des Selbigen, aus der <a title="Das Dortmunder Universitätsorchester im Konzerthaus Dortmund" href="http://www.konzerthaus-dortmund.de/language=de/taps=104/193588">Seite des Konzertes</a>. Wir freuen uns natürlich alle über zahlreiches Erscheinen :-)</p>

<p><span class="update">Nachtrag (15.06.09 12:10)</span>: Mehr Infos gibt es auch noch auf den Seiten der Fakultat für Kunst- und Sportwissenschaften der TU Dortmund: <a href="http://www.fb16.uni-dortmund.de/dekanat/de/Aktuelles1/Uniorchester/index.html">Italienisches Triptychon im Juni</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sitzprobe Zu Gianni Schicchi Erfolgreich!]]></title>
    <link href="http://thegcat.net/2009/06/07/sitzprobe-zu-gianni-schicchi-erfolgreich/"/>
    <updated>2009-06-07T20:20:55+02:00</updated>
    <id>http://thegcat.net/2009/06/07/sitzprobe-zu-gianni-schicchi-erfolgreich</id>
    <content type="html"><![CDATA[<p>Kurz vorweg: Eine Sitzprobe ist eine Probe mit allen musikalisch an einer Oper beteiligten Personen, meistens Orchester samt Dirigent und Sänger, gegebenenfalls auch Chor. Wir, also die Gianni Schicchi &#8220;Crew&#8221;, hatten also heute unsere erste und leider auch letzte Sitzprobe. Es ist leider aus verschiedenen organisatorischen und persönlichen Gründen früher, öfter oder mit wirklich allen (es gab sowohl im Orchester als auch bei den Sängern leere Stühle) zu proben. Ich hätte mir für diese Oper auch ein paar mehr gemeinsame Proben gewünscht, weil es eine musikalisch sehr anspruchsvolle Oper ist, und sowohl das Orchester als auch die Sänger größtenteils aus &#8220;Amateuren&#8221; (In dem Sinne, dass nur wenige diese Tätigkeit aktuell lernt oder gar beruflich ausübt) bestehen. Nichtsdestotrotz haben wir versucht aus der heutigen Probe das Beste zu holen, und ich denke, dass es uns gelungen ist!</p><p>Musikalisch hat also alles gepasst, oder zumindest gab es keine gravierenden Probleme, die nicht in der nächsten Woche noch beseitigt werden könnten. Mal sehen, wie das wird, wenn wir noch die Szene einbringen! Das wird allerdings erst am 16.06. bei der Generalprobe stattfinden (wer mal in eine Generalprobe reinschauen will kann sicher kommen, wenn nicht zu viele andere die gleiche Idee haben, gegebenenfalls ganz unten auf &#8220;Kontakt&#8221; klicken und mir eine Mail schreiben), und da wird sicherlich noch einiges schief gehen (bei einer Generalprobe passiert <em>immer</em> etwas).</p><p>In der Zwischenzeit möchte ich schon mal ein bisschen Werbung machen, und zwar finden die 2 Aufführungen am 24.06. im Audimax der TU Dortmund und am 27.06. im Konzerthaus Dortmund statt, wer es noch nicht getan hat sollte es sich schnell in seinen Kalender schreiben! :-)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Üben Oder Auskurieren?]]></title>
    <link href="http://thegcat.net/2009/06/06/uben-oder-auskurieren/"/>
    <updated>2009-06-06T14:18:26+02:00</updated>
    <id>http://thegcat.net/2009/06/06/uben-oder-auskurieren</id>
    <content type="html"><![CDATA[<p>Irgendwie ist heute mal wieder ein Tag mit schlechten Gewissem: Egal was ich mache, ich werde ein schlechtes Gewissen haben&#8230; Morgen haben wir mit der Operntruppe unsere erste, und leider auch letzte, Sitzprobe mit dem Orchester, und dafür sollte ich noch etwas üben. Dazu hätte ich heute sogar Zeit, allerdings würden mein Hals und meine Stimme mir das wahrscheinlich nachhalten, weil ich gerade noch etwas erkältet bin, und zusätzlich zur Probe morgen heute noch ein Konzert habe. Ich kann mir also aussuchen mich zu ärgern, weil ich nicht geübt habe, oder weil ich mir für die nächsten paar Tage die Stimme versinge, tolle Wurst :-?</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Hilfe, Nur Noch 3 Wochen!]]></title>
    <link href="http://thegcat.net/2009/06/02/hilfe-nur-noch-3-wochen/"/>
    <updated>2009-06-02T20:40:57+02:00</updated>
    <id>http://thegcat.net/2009/06/02/hilfe-nur-noch-3-wochen</id>
    <content type="html"><![CDATA[<p>Irgendwie bin ich mir sicher, dass meine Eltern es schaffen werden mich ein ganz kleines Bisschen dafür zu hassen, aber ich bin sehr sehr sehr sehr (ich mache jetzt nicht weiter, das fällt sonst auf&#8230;) aufgeregt, viel mehr als zum Beispiel für mein Abi, oder meine mittlere Reife, mein Führerschein, oder was auch immer. Gut, vielleicht nicht sooooo viel mehr als bei meinem Führerschein (ich bin in Mittenimnichtshausen aufgewachsen, das ist zwar sehr schön da, aber ohne Auto kommt man nicht weit), aber auf jeden Fall mehr als jegliche schulische und akademische Leistung, die ich bis jetzt erbracht habe. (Ohne zu sehr divergieren zu wollen: Das liegt sicherlich daran, dass die Schule bzw. das Abitur mich nie wirklich (über)gefordert haben, ich es entsprechend langweilig fand und nichts dafür getan habe, oder die Sachen mich wenn überhaupt nur marginal interessiert haben, und ich nicht genug dafür getan habe, oder schlicht und ergreifend eine zu kurze Aufmerksamkeitsspanne, oder wahrscheinlich eine Kombination aus dem Ganzen.)</p><p>Jetzt schreibe ich schon einen ganzen Absatz über meine Aufregung, vielleicht sollte ich auch mal sagen, weswegen ich so aufgeregt bin&#8230; In 3 Wochen ist die erste Aufführung der Oper! Falls die &#8220;letzte&#8221; Generalprobe (GP) auch noch zur öffentlichen GP wird, sind es sogar nur noch 2 Wochen. Die Aufregung kommt auch nicht nur von der &#8220;Aufführungsangst&#8221; (Kann ich meinen Text gut genug? Werden die szenischen Effekte alle gut rüberkommen? Werde ich da fit genug sein? Wenn ich jetzt schon so aufgeregt bin, was für ein Nervenbündel werde ich dann bei der Aufführung sein? Kann ich mich nach der Aufführung überhaupt noch bei meinem Professor für theoretische Informatik, der so von der Oper begeistert ist, blicken lassen?&#8230;), die wahrscheinlich irgendwo normal ist, und die ich vor Konzerten immer hatte (obwohl natürlich nicht in dem Maße, ich war ja bis jetzt nur einmal Solist), die Aufregung kommt auch von der Vorfreude auf die Oper (das wir toll!!!), und von der Unsicherheit wer jetzt von meiner Familie alles kommt.</p><p>Zu meinem engeren Familienkreis, also Geschwister und Eltern, muss ich hier noch nachtragen, dass dieser Teil meiner Familie 900km weit weg von mir wohnt, weil die in Mittenimnichtshausen geblieben sind. Der Ort heißt natürlich nicht so, aber um es schnell und grob zu erklären: das liegt im <a href="http://de.wikipedia.org/wiki/Zentralmassiv">Zentralmassiv</a> in der Nähe von <a href="http://de.wikipedia.org/wiki/Clermont-Ferrand">Clermont-Ferrand</a> (wer Französisch in der Schule hat/hatte und mit der Reihe &#8220;Découvertes&#8221; gelernt hat könnte das sogar kennen ;-) ), ziemlich in der Mitte Frankreichs. Auch wenn ich vor der letzten Aufführung nicht so viel Zeit für meine Familie hätte, würde ich mich dennoch sehr freuen wenn wenigstens einer meiner Eltern da wäre. Über die restliche Familie (Tanten, Onkel, Cousinen und Cousins, Großeltern, alles da!) würde ich mich natürlich auch sehr freuen, aber da die entferntesten in Frankfurt wohnen ist es nicht ganz so schwierig die des Konzertbesuchs zu überzeugen.</p><p>Ich wollte eigentlich auch noch ein bisschen mehr über die Vorfreude auf die Oper selbst schreiben, insbesondere wie (wider meinen Erwartungen) gut die bisherigen Durchläufe geklappt haben, aber das muss auf den nächsten Beitrag über die Oper warten, schliesslich ist dieser hier schon lang genug :-) Sobald ich Plakate und Handzettel (zu Neudeutsch: Flyer) habe, werde ich diese auch großzügig verteilen und hier damit Werbung machen, bis dahin darf sich aber jeder den 24.06. und den 27.06. merken, da gibt&#8217;s dann Aufführungen, jeweils im Audimax der TU Dortmund, und im Konzerthaus Dortmund. Wir freuen uns auf jeden Besucher, ich mich ganz besonders auf euch :-D</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Selbsterhaltendes Blogloch]]></title>
    <link href="http://thegcat.net/2009/06/02/selbsterhaltendes-blogloch/"/>
    <updated>2009-06-02T19:43:25+02:00</updated>
    <id>http://thegcat.net/2009/06/02/selbsterhaltendes-blogloch</id>
    <content type="html"><![CDATA[<p>Und schon wieder ist es so lange her, seitdem ich das letzte Mal was von mir zu lesen gegeben habe. Immer wieder wollte ich schreiben, es sind aber in der Zwischenzeit so viele interessante Sachen passiert, unter anderem was die Oper angeht, dass ich gar nicht wusste, wo ich anfangen soll&#8230; Genau das ist auch das Problem: Wenn ich ein bisschen &#8220;Pause&#8221; mache, gewollt oder ungewollt, ist die Schwelle um wieder zu schreiben, und insbesondere wo ich da anfangen soll, so groß, dass ich meistens erst mal nichts mache. Diese Schwelle wird mit der Zeit auch nicht kleiner: Je mehr ich warte, desto weniger kann ich mich entscheiden, ob ich jetzt über meine Abenteuer schreiben soll oder nicht. Das bringt mich zu der Erkenntnis, dass ein Blogloch selbsterhaltend ist! :-)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Singen, Mal Solo]]></title>
    <link href="http://thegcat.net/2009/04/05/singen-mal-solo/"/>
    <updated>2009-04-05T23:50:58+02:00</updated>
    <id>http://thegcat.net/2009/04/05/singen-mal-solo</id>
    <content type="html"><![CDATA[<p>Wie man aus den zahlreichen Beiträgen zu diesem Thema lesen kann, singe ich viel: Im Landesjugendchor, im Kammerchor der TU Dortmund, und in unregelmäßigen Abständen in verschiedenen anderen Chören. Letzte Woche gab es für mich in der Hinsicht eine Premiere: Ich wurde für eine Solopartie zu einem mir bis dahin unbekannten Chor bestellt. Zeit mich darauf vorzubereiten hatte ich auch nicht viel, da der Auftrag erst am Mittwoch davor ausgehandelt bzw. bestätigt wurde, zum Glück war das Stück nicht zu schwer, und ich konnte es mir gut &#8220;genug&#8221; in den 4 Tagen bis zur Generalprobe am Samstag aneignen.</p>

<p>Das Konzert am Sonntag war für die relativ kleine Kirche gut besucht, und musikalisch brauche ich mich nicht zu schämen, teilweise hatte ich sogar das Gefühl den ganzen Raum alleine zu füllen, obwohl ich nie alleine, also nur mit den anderen Solisten und/oder mit dem Chor, gesungen habe. Ich könnte mich allerdings für meinen eigenen Auftritt selbst schlagen: Ich hatte bewusst weder Krawatte noch Fliege um, weil man mir zur Frage zur Kleiderordnung nur &#8220;ganz schwarz&#8221; geantwortet hatte (außerdem ist mir mein schwarzes Hemd am Kragen zu eng, wäre also eh schwierig da noch Krawatte oder Fliege zu zu tragen&#8230;), irgendwie fühlte ich mich dann trotzdem underdressed, ein Stück habe ich noch mit dem Chor gesungen, bin aber bei einem Stück, bei dem ich nicht gesungen habe, mit aufgetreten, und die 3 Knöpfe an meinem Jackett haben trotz ihrer geringen Anzahl es geschafft mich am Ende des Konzerts (wieder auf die Bühne kommen und verbeugen) zu verwirren. Mein Gesangslehrer hatte dazu allerdings auch mal wieder ein passendes Wort: &#8220;Das zeigt, dass du menschlich bist&#8221;. Alles in Allem kann es aber gar nicht so schlecht gewesen sein, weil ich nach dem Konzert noch für Karfreitag engagiert worden bin. Vielleicht doch noch der Anfang einer musikalischen Karriere?</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Puccini: Schön, Aber Schwierig]]></title>
    <link href="http://thegcat.net/2009/03/31/puccini-schon-aber-schwierig/"/>
    <updated>2009-03-31T01:32:25+02:00</updated>
    <id>http://thegcat.net/2009/03/31/puccini-schon-aber-schwierig</id>
    <content type="html"><![CDATA[<p>So gut die zwei ersten Proben für die Oper gelaufen sind, so schwierig hat die dritte begonnen. Heute war die erste Probe mit unserer Korrepetitorin, und es war gar nicht gut: Die Oper ist zwar nicht die einfachste, aber wir hatten uns auch nicht gut genug vorbereitet. Im Endeffekt haben wir dann eine halbe Stunde musikalisch geprobt, und nach einer (zu langen) Diskussion doch nur szenisch geprobt. Mit der szenische Arbeit liegen wir zwar gut in der Zeit, und es macht auch richtig Spaß, aber irgendwie hat mir dieser Fauxpas einen bitteren Nachgeschmack hinterlassen.</p>

<p>Zur Musik wäre hier noch zu sagen, dass Puccini da auch nicht unbedingt die &#8220;leichteste&#8221; Musik geschrieben hat. Die Musik, die unter klassische Musik bekannt ist (die Bezeichnung ist mir immer irgendwie zu schwammig, hierfür wird es aber reichen), ist eigentlich mit etwas Übung recht leicht zu singen und schnell erlernbar, weil Musik dieser Zeit recht strengen Regeln und Mustern gefolgt hat. Mit etwas Erfahrung und einer guten Kenntnis der musikalischen Epoche bzw. des Komponisten geht es sogar noch schneller. Puccini hat allerdings Ende des 19. bzw. Anfang des 20. Jahrhunderts gelebt und komponiert, und fällt nicht mehr in diesen &#8220;klassischen&#8221; Rahmen, was seine Musik meines Erachtens etwas abwechslungsreicher und &#8220;frischer&#8221; macht, allerdings auch Tücken mit sich bringt. Über eine dieser Tücken sind wir heute gestolpert: Im ersten Teil von Gianni Schicchi ist der Schwerpunkt der Musik vom Orchester nicht wie man es erwarten würde auf dem ersten Schlag eines Taktes, aber immer auf der &#8220;3 und&#8221;, also auf der auftaktigen Achtel, was die Musik gefühlt etwas flotter erscheinen lässt. Das mag sich jetzt ein bisschen nach Nörgelei anhören, aber das macht es extrem schwierig die eigenen Einsätze zu finden, insbesondere wenn 2 oder 3 Stimmen, die in der &#8220;Unterhaltung&#8221; vorkommen, fehlen.</p>

<p>Naja, noch ist ja nichts schlimmes passiert, und es ist noch weit genug zur Aufführung, um solche Sachen auszubügeln, aber peinlich war mir das schon irgendwie. Ich hoffe dieser Versuch einer musikalischen Probe war uns eine Warnung, und dass es umso besser nächste Woche beim nächsten Versuch die Musik mit einzubinden klappen wird!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Validates_email_format_of]]></title>
    <link href="http://thegcat.net/2009/03/27/validates_email_format_of/"/>
    <updated>2009-03-27T16:04:06+01:00</updated>
    <id>http://thegcat.net/2009/03/27/validates_email_format_of</id>
    <content type="html"><![CDATA[<p>Ich spiele sowohl privat als auch beruflich seit ein paar Wochen mit Ruby on Rails (RoR) rum, und ich muss sagen, dass ich sowohl die mehr oder minder mit eingebauten Test Driven Development (TDD) und Agile Development (Agile) Methoden ganz toll finde. Dazu kommt noch die strikte Model-View-Controller (MVC) Trennung, die ich so stark eigentlich noch nirgends in einem Framework gesehen habe (die Mac OS X Entwicklungsumgebung kommt nah dran, aber da ist eigentlich nur der View stark von Models und Controller getrennt).</p>

<p>RoR bietet viele Möglichkeiten Eingaben zu prüfen, z.B. ob überhaupt ein Datenfeld gefüllt ist, oder ob sie einem bestimmten Format oder einer bestimmten Länge entsprechen, aber keine einfache Möglichkeit, um das Format einer Emailadresse zu überprüfen. Es gibt zwar ein Haufen Ansätze mit Regular Expressions, diese sind aber zu 99,9% nicht mit den Standards kompatibel. Dafür habe ich das <a title="Zur Seite des Rails Plugins" href="http://code.dunae.ca/validates_email_format_of.html">validates_email_format_of Rails Plugin</a> von <a title="Alex Dunae" href="http://dunae.ca/">Alex Dunae</a> gefunden, was wie der Name es vermuten lässt eine validates_email_format_of Methode bereitstellt, mit der man die Richtigkeit einer Emailadresse gegen die gängigsten Standards bzw. RFCs testen kann.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Bühnenbildteaser]]></title>
    <link href="http://thegcat.net/2009/03/26/buhnenbildteaser/"/>
    <updated>2009-03-26T09:30:27+01:00</updated>
    <id>http://thegcat.net/2009/03/26/buhnenbildteaser</id>
    <content type="html"><![CDATA[<p>Gestern war schon die 2. Probe für den Gianni Schicchi, um von Routine zu sprechen ist schon zu früh, aber jeder findet allmählich in seine Rolle rein. Viel spannendes gibt&#8217;s diesmal nicht zu erzählen, aber ich kann schon ein Stück vom Bühnenbild verraten, auch wenn es nur ein ganz kleines Stück ist :-) Na, wer errät, was es sein könnte?</p>

<section class="gallery">
  <a href="http://thegcat.net/uploads/2009/03/buhnenbildteaser-1.jpg" title="Bühnenbildteaser"><img class="center" src="http://thegcat.net/uploads/2009/03/buhnenbildteaser-1-300x225.jpg" width="300" height="225" title="Bühnenbildteaser" alt="Bühnenbildteaser"></a>
</section>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Endlich Bühne?!]]></title>
    <link href="http://thegcat.net/2009/03/24/endlich-buhne/"/>
    <updated>2009-03-24T13:20:34+01:00</updated>
    <id>http://thegcat.net/2009/03/24/endlich-buhne</id>
    <content type="html"><![CDATA[<p>Mir fällt gerade auf wie lange ich schon nicht mehr geschrieben habe&#8230; Irgendwie Habe ich in den letzten Wochen viel zu viel Zeit mit Musik (5 Konzerte) und Arbeit verbracht, und das wird sich so schnell auch nicht wieder ändern. Auf der Arbeit werde ich jetzt mehr Aufgaben übernehmen, aber ich nehme insbesondere an einer Opernproduktion des dortmunder Uniorchesters Teil: Gianni Schicchi von Puccini.</p>

<p>Ich will nicht zu viel auf einmal verraten, damit ich später noch ein bisschen schreiben kann, und damit noch ein paar Überraschungen bei der Aufführung bleiben :-) . Gestern war die erste Probe, und ich habe einen Großteil der Besetzung und die Regisseuren kennen gelernt. Im Großen und Ganzen eine lustige Truppe, und die Ideen der Regisseure sind auch recht gut. Das einzige Manko, was ich im Moment sehe, ist die Sprache: Die Oper ist original auf Italienisch, und wir singen sie auf Deutsch.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Big Brother Facebook]]></title>
    <link href="http://thegcat.net/2009/02/16/big-brother-facebook/"/>
    <updated>2009-02-16T16:55:30+01:00</updated>
    <id>http://thegcat.net/2009/02/16/big-brother-facebook</id>
    <content type="html"><![CDATA[<p>Es war schon seit langem bekannt, dass Facebook, das &#8220;Vorbild&#8221; für Studi-, Schüler- bzw. MeinVZ, sich viele Rechte an dem von den Benutzern generierten Inhalt eingeräumt hat. Bis vor einigen Tagen galt noch, dass Benutzer das Recht auf jeglichen Inhalt, den sie dort hochgeladen haben, an Facebook abgetreten haben, solange man dort den dazugehörigen Account hat. Heißt im Klartext: Hätte ich ein Bild bei Facebook hochgeladen, dass Facebook z.B. zu irgendwelchen Marketingzwecken hätte benutzen wollen, wäre ihnen das ohne mir einen einzigen Cent oder mich überhaupt zu fragen möglich gewesen, und das solange ich diesen Account bei Facebook gehabt hätte.</p>

<p>Facebook hat jetzt allerdings neue Nutzungsbedingung, die diese Austrittsklausel durch Accountlöschung entfernt haben. Soll heißen: Alles, was auf Facebook jetzt hochgeladen, geschrieben oder erstellt wird gehört denen, auf immer und ewig, ohne dass irgendjemand was dagegen tun kann. Das besagen die <a title="Deutsche Nutzungsbedingungen für Facebook" href="http://de-de.facebook.com/terms.php?ref=pf">Nutzungsbedingungen von Facebook</a>, die allerdings momentan nur auf Englisch vorliegen. Mehr Infos dazu (auf Englisch) gibt es z.B. bei <a title="The Consumerist: Shoppers Bite Back" href="http://consumerist.com/">The Consumerist</a> im Artikel: <a href="http://consumerist.com/5150175/facebooks-new-terms-of-service-we-can-do-anything-we-want-with-your-content-forever">Facebook&#8217;s New Terms Of Service: &#8220;We Can Do Anything We Want With Your Content. Forever.&#8221;</a></p>

<p>Das hört sich jetzt alles irgendwie sehr nach einem David-gegen-Goliath-artigen Kampf an: Was kann denn jetzt der &#8220;kleine&#8221; Benutzer gegen den &#8220;großen&#8221; Facebook tun? Nach meinen letzten Informationen leben wir in Deutschland immer noch in einem Rechtsstaat (man glaubt&#8217;s kaum!), und diese Rechte schützen auch Benutzer und Einzelpersonen, nicht nur Weltkonzerne und deren Geschäftsführer. Laut dem Rechtsanwalt Dr. Carsten Ulbricht, der sich auf seinem Blog <a href="http://www.rechtzweinull.de/">Web 2.0 &amp; Recht</a> mit der <a href="http://www.rechtzweinull.de/index.php?/archives/44-Verwendung-von-User-Generated-Content.html">Verwendung von User Generated Content</a> laut deutschem Recht befasst hat, &#8220;[dürfen] Inhalte [die] urheberrechtlichen Schutz genießen [&#8230;] – bis auf wenige Ausnahmen - nur mit der ausdrücklichen Zustimmung des Urhebers veröffentlicht, weitergegeben oder sonst wie genutzt werden.&#8221;Die Nutzungsbedingungen von Facebook würden in der aktuellen Form also in Deutschland nicht greifen, da eine &#8220;pauschale&#8221; Abtretung der Urheberechte, wie es momentan bei Facebook der Fall ist, nicht als ausdrückliche Zustimmung gilt. (N.B.: Ich habe den Artikel nur überflogen und konnte ihn noch nicht ganz durchlesen, alle Angaben also ohne Gewähr; wer genaue Informationen braucht sollte sich an einen kompetenten Anwalt wenden.)</p>

<p>Da ich oben StudiVZ und Schwesterseiten genannt habe, möchte ich deren Situation auch noch klären. Obwohl persönliche Daten zum Zweck der gezielten Werbung auf dieser Plattform genutzt werden, und das meiner Meinung nach schon keine passive Nutzung mehr beinhaltet, kann man dieses Verhalten abschalten, genauso wie Werbung, die man von StudiVZ oder Partnern bekommen würde. Weiterhin wird soweit ich das feststellen konnte in den AGBs nirgends erwähnt, dass man irgendwelche Rechte an dem Inhalt abgibt, den man dort hochlädt. (Hier auch wieder: Alle Angaben ohne Gewähr!) Wir können nur hoffen, dass das deutsche Recht weiterhin den Benutzer schützt, und solche Bedingungen wie Facebook sie praktiziert in Deutschland möglich werden.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Warten Aufs Zeugnis]]></title>
    <link href="http://thegcat.net/2009/02/12/warten-aufs-zeugnis/"/>
    <updated>2009-02-12T23:08:00+01:00</updated>
    <id>http://thegcat.net/2009/02/12/warten-aufs-zeugnis</id>
    <content type="html"><![CDATA[<p>Ich wusste zwar schon, dass ein paar Studenten in der Informatik manchmal etwas länger auf ihre Zeugnisse warten müssen, mitunter mehr als 8 Wochen, aber ganz so schlimm wie es der Westen für die Lehramtsstudenten schildert (<a href="http://www.derwesten.de/nachrichten/campus-und-karriere/2009/2/10/news-109930811/detail.html">Studenten warten seit sechs Monaten aufs Zeugnis</a>), die schon 6 Monate drauf warten, ist es bei uns noch nicht. Soweit ich das verstanden habe, hat die TU bzw. das ZfS es nicht geschafft innerhalb von 5 Semestern die Bachelorzeugnisse vorzubereiten, damit diese dann schnell ausgefüllt und zugestellt werden können. Ein Hoch auf die Bürokratie!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Grundgehalt: 1 Jahr Mietfrei Wohnen]]></title>
    <link href="http://thegcat.net/2009/02/03/grundgehalt-1-jahr-mietfrei-wohnen/"/>
    <updated>2009-02-03T15:32:35+01:00</updated>
    <id>http://thegcat.net/2009/02/03/grundgehalt-1-jahr-mietfrei-wohnen</id>
    <content type="html"><![CDATA[<p>1 Jahr mietfrei wohnen, hört sich doch gut an, oder? Das ist das Motto von <a title="Die 2-3 Straßen Homepage" href="http://www.2-3strassen.eu/">2-3 Straßen</a>, ein Kunstprojekt im Rahmen der Kulturhauptstadt Ruhr.2010. Und wo ist jetzt der Haken daran? Naja, mietfrei heißt hier nicht umsonst, die Mieter ziehen in &#8220;drei für die Region typischen Straßen&#8221; in Duisburg, Mühlheim und Dortmund, und werden dann Teilnehmer eines Kunstwerkes. &#8220;Ziel der Ausstellung ist die Veröffentlichung eines Buches, das innerhalb eines Jahres von zahlreichen Autoren, den alten und neuen Mietern, aber auch den Besuchern der Straßen, geschrieben wird.&#8221; Das alles ausgedacht hat sich Jochen Gerz, ein Textorientierter Künstler.</p>

<p>Florian war immer noch nicht ganz überzeugt, und hat dem Leiter des Projektes noch ein paar Fragen per Mail gestellt, unter anderem auch was die &#8220;Studenten-Freundlichkeit&#8221; des Projektes angeht (siehe weiter unten). Studierende und junge Leute sind bei dem Projekt auch noch ausdrücklich erwünscht, es gibt bis jetzt scheinbar kaum Kandidaten unter 30. Die Anmeldefrist ist schon um eine Woche nach hinten geschoben worden auf den 08.02.09, wer Interesse hat hat also noch ein paar Tage, trödeln sollte man dann aber nicht! :-)</p>

<p>Und nun zum Interview:</p>

<dl class="interview">
  <dt class="interviewer">Florian</dt>
    <dd>Kann man nach dem Jahr weiter in der Wohnung wohnen?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Ja. Die Teilnehmer von <a title="Die 2-3 Straßen Homepage" href="http://www.2-3strassen.eu/">2-3 Straßen</a> erhalten voraussichtlich eine Mischung aus Miet- und Werkvertrag (Miete und Textarbeit). Die Wohnungen sollen nach dem Jahr dem Wohnungsmarkt zu sogenannten &#8220;ortsüblichen&#8221; Mieten zugeführt werden. Die Autoren erhalten eine Art &#8220;Vormietrecht&#8221; für die Zeit nach Ablauf des Jahres. Dieses &#8220;Vormietrecht&#8221; wird Bestandteil des Vertrags.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Welche weiteren Nebenkosten kommen auf die Mieter zu?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Die Nebenkosten werden unseren Autoren von der jeweiligen kommunalen Wohnungsbaugesellschaft in Rechnung gestellt. Die exakte Höhe der Nebenkosten können wir Ihnen derzeit noch nicht benennen, aber die werden von den Wohnungsbaugesellschaften als &#8220;ortsüblich&#8221; angegeben.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Welche weitere Kosten kommen auf die Mieter zu?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Unsere Autoren müssen in ein online gestütztes Tool schreiben. Meint: Unsere Autoren benötigen einen Internetzugang. Und der erfolgt über eine Telefongesellschaft zu den jeweiligen Konditionen.<br />
Eine Anmerkung zu den Kosten: Wir versuchen in aktuell laufenden Gesprächen die jeweiligen Stadtwerken und Telkos als Projektsponsoren zu gewinnen. Der Ausgang dieser Bemühungen ist offen. Wenn wir scheitern, dann müssen unsere Autoren die Kosten einer Wohnung für Heizung, Strom, Wasser und Telekommunikation tragen. Mit etwas Glück aber auch nicht.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Ist es möglich in WGs bzw. mit Lebenspartnern oder Familien in die Wohnungen zu ziehen?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Die Größe der Wohnung wird sich nach Ihren Bedürfnissen und unseren Möglichkeiten richten, Familien mit und ohne Kinder sind ebenso wie WGs ausdrücklich erwünscht.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Wo werden die Wohnungen liegen?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Es gibt in Dortmund gerade um das U herum einige Straßen in denen Studierende aufgrund des fehldenden sozialen Klimas nur ungern wohnen würden. Eventuell liegt es ja aber auch grade im Interesse dieses Projekts gezielt eine Straße aufzuwerten (wie z.B. vor Jahren mit der Brückstraße geschehen).<br />
Die Wohnungen werden voraussichtlich in der Gegend um das U liegen. Die Stadt Dortmund unternimmt große Anstrengungen, das Gebiet um das U aufzuwerten. Das Projekt <a title="Die 2-3 Straßen Homepage" href="http://www.2-3strassen.eu/">2-3 Straßen</a> ist ein Baustein dieser sozialen Arbeit, die sich gerade wegen ihrer kulturellen Dimension in direkte Konkurrenz zu bisherigen Modellen von Stadtentwicklung / Renovierung stellt. Es geht um die Zusammenarbeit und die Beteiligung von Bürgern bei und an der gesellschaftlichen Entwicklung.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Studierende kommen gut zur Uni von den in der Nähe des U liegenden Haltestellen Hauptbahnhof, Dorsfteld sowie Städtische Kliniken. Für Studierende wäre es wichtig, wenn die Wohnungen in Laufreichweite einer dieser Haltestellen liegen - oder sie zumindest mit der U-Bahn in wenigen Minuten zum Hauptbahnhof gelangen können.</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Zu der exakten Lage der Wohnungen können wir Ihnen aufgrund der laufenden Verhandlungen noch nichts sagen.</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Welche Art von beteiligung beim schreiben ist gewünscht? Wird es offizielle Blogs, Twitter-Feeds, Wikis geben? Oder soll der Text zusammenhanglos von allen Bewohnern gemeinsam geschrieben werden wie auf der Webseite dargestellt? Soll über jede Hausparty, jede bestandene Prüfung, jede Doktorfeier berichtet werden?</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Jochen Gerz ist ein Künstler, der textorientiert denkt und arbeitet. Seine Idee ist das gemeinsame Schreiben am gemeinsamen Text. Und dieser Text soll nach Fertigstellung ohne große Vorworte als ein normales gedrucktes Buch aus Papier verlegt werden. Wir machen inhaltlich keine Vorgaben. Vielleicht ist für Sie dazu auch ein <a title="Der Spiegel Online über 2-3 Straßen" href="http://www.spiegel.de/kultur/gesellschaft/0,1518,597541,00.html">Artikel im Spiegel Online</a> über <a title="Die 2-3 Straßen Homepage" href="http://www.2-3strassen.eu/">2-3 Straßen</a> interessant. <a title="Die 2-3 Straßen Homepage" href="http://www.2-3strassen.eu/">2-3 Straßen</a> ist eine künstlerische Arbeit im öffentlichen Raum, die ohne die Beiträge der Teilnehmer nicht entstehen kann. Der Grad ihrer Mitarbeit und ihres Engagements ist daher ein entscheidendes Kriterium für ihre Teilnahme und damit ausdrücklich erwünscht!</dd>
  <dt class="interviewer">Florian</dt>
    <dd>Wann entscheidet sich, ob man eine Wohnung erhält? Wann können die Wohnungen bezogen werden? Innerhalb der Prüfungszeiträume (ab Ende Januar bis Mitte April) und zu Beginn des Semesters (Mitte Oktober) werden Studierende nur ungern umziehen wollen.</dd>
  <dt class="interviewee">Projektleiter 2-3 Straßen</dt>
    <dd>Wir werden in den nächsten Monaten unsere Kandidaten in zweidrei Schritten auf die Zahl der Autoren qualifizieren. Voraussichtlich können wir die Teilnehmer im 2. Quartal 2009 über den Ausgang des Verfahrens informieren. Der Einzug in die Wohnungen ist für den Jahreswechsel 2009/2010 geplant.</blockquote></p>
</dl>]]></content>
  </entry>
  
</feed>
