<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34806377</id><updated>2011-12-15T03:50:57.792+01:00</updated><category term='ruby'/><category term='apache'/><category term='applescript'/><category term='ant'/><category term='tastatur'/><category term='s3'/><category term='ec2'/><category term='rails'/><category term='mongrel'/><category term='neo'/><category term='aop'/><category term='eclipse'/><category term='svn'/><category term='ioc'/><title type='text'>Programmierertagebuch</title><subtitle type='html'>Probleme und deren Lösungen bei der täglichen Programmierarbeit.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34806377.post-8593696706765189417</id><published>2007-06-18T17:32:00.000+02:00</published><updated>2007-06-18T17:33:34.776+02:00</updated><title type='text'>Lingua Franca</title><content type='html'>Ich habe mich dazu entschlossen, ein neues Blog zu eröffnen, das nur auf englisch geführt wird. Da ich mit den Funktionen von Blogger nicht zufrieden war, bin ich zu &lt;a href="http://pegolon.wordpress.com"&gt;WordPress&lt;/a&gt; umgezogen. Mal sehen, wie meine Erfahrungen dort sind.&lt;br /&gt;Dieser Blog hier ist somit geschlossen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-8593696706765189417?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/8593696706765189417/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=8593696706765189417' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/8593696706765189417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/8593696706765189417'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/lingua-franca.html' title='Lingua Franca'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-1611294174679517187</id><published>2007-06-13T15:02:00.000+02:00</published><updated>2007-06-13T15:07:13.956+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='s3'/><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Skalieren mit Amazon S3 und EC2</title><content type='html'>Ein Highlight meines Besuches beim LinuxTag war dieser &lt;a href="http://www.linuxtag.org/2007/en/conf/events/vp-samstag/details.html?talkid=108"&gt;Vortag&lt;/a&gt; zum o.g. Thema. Die Slides dazu gibt es &lt;a href="http://blog.innerewut.de/articles/2007/06/08/linuxtag-2007-slides-on-amazon-s3-and-ec2"&gt;hier&lt;/a&gt;. Ich habe schon selbst S3 für eine Rails-Anwendung verwendet, um Daten zentral abzuspeichern. Möchte man auf Nummer sicher gehen und je nach Benutzerlast virtuelle Server ein und wieder ausschalten, so ist dies sicherlich die günstigste und eleganteste Lösung.&lt;br /&gt;&lt;br /&gt;Mein Negativ-Highlight war übrigens diese &lt;a href="http://www.linuxtag.org/2007/en/conf/events/vp-samstag/details.html?talkid=113"&gt;Veranstaltung&lt;/a&gt;, bei der ich ein paar mal eingenickt bin ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-1611294174679517187?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/1611294174679517187/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=1611294174679517187' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/1611294174679517187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/1611294174679517187'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/skalieren-mit-amazon-s3-und-ec2.html' title='Skalieren mit Amazon S3 und EC2'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-5343168488886653275</id><published>2007-06-13T14:30:00.001+02:00</published><updated>2007-06-13T14:42:21.177+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='ioc'/><category scheme='http://www.blogger.com/atom/ns#' term='aop'/><title type='text'>DI und AOP für Ruby</title><content type='html'>Möchte man die beiden großen Komponenten von &lt;a href="http://www.springframework.org/"&gt;Spring&lt;/a&gt; wie &lt;a href="http://de.wikipedia.org/wiki/Dependency_Injection"&gt;Dependency Injection&lt;/a&gt;&lt;br /&gt;(DI) bzw. Inversion of Control (IoC) und &lt;a href="http://de.wikipedia.org/wiki/Aspektorientierte_Programmierung"&gt;Aspect Oriented Programming&lt;/a&gt; (AOP) in auch mit Ruby bzw. Rails verwenden, so sollte man sich zuvor &lt;a href="http://www.onestepback.org/articles/depinj/"&gt;Gedanken&lt;/a&gt; machen, ob diese beiden Techniken bei einer dynamischen Sprache wie Ruby überhaupt Sinn machen, da die Klassen im Gegensatz zu Java nachträglich verändert werden können.&lt;br /&gt;&lt;br /&gt;Die strikte Trennung zwischen Konfigurationsdateien und Sourcecode ist nämlich nicht mehr zwingend erforderlich. Um also wie in Spring DI und AOP in XML-Dateien zu definieren kann man das gleiche mit ein paar Zeilen Rubycode in einer separaten Kontrolldatei erzielen.&lt;br /&gt;&lt;br /&gt;Für DI gibt es eine Reihe von Bibliotheken, das umfrangreichste scheint &lt;a href="http://needle.rubyforge.org/"&gt;Needle&lt;/a&gt; zu sein.&lt;br /&gt;&lt;br /&gt;Bei AOP bietet sich &lt;a href="http://aspectr.sourceforge.net/"&gt;AspectR&lt;/a&gt; an, das analog zu Aspect/J entwickelt wurde.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-5343168488886653275?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/5343168488886653275/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=5343168488886653275' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/5343168488886653275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/5343168488886653275'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/di-und-aop-fr-ruby.html' title='DI und AOP für Ruby'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-7263300148412638651</id><published>2007-06-13T13:54:00.000+02:00</published><updated>2007-06-13T14:42:44.332+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Apache2 mit Mongrel-Cluster konfigurieren</title><content type='html'>&lt;span style="font-family:arial;"&gt;Möchte man auf einem Webserver einen Mongrel-Cluster laufen lassen, so muss man von Apache den LoadBalance aktiveren, indem man die Datei /etc/apache2/extra/httpd-vhosts.conf anpasst:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;table style="text-align: left; background-color: rgb(0, 0, 153);" border="0" cellpadding="6" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: rgb(0, 0, 153);"&gt;&lt;small&gt;&lt;span style="font-family:Courier New,Courier,monospace;"&gt;&lt;br /&gt;&lt;br /&gt;NameVirtualHost *:80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Proxy balancer://mongrel_cluster&amp;gt;&lt;br /&gt;&lt;br /&gt; BalancerMember http://127.0.0.1:8000&lt;br /&gt;&lt;br /&gt; BalancerMember http://127.0.0.1:8001&lt;br /&gt;&lt;br /&gt;&amp;lt;/Proxy&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;&lt;br /&gt; ServerName myservername.de&lt;br /&gt;&lt;br /&gt; DocumentRoot /var/www/rails/myrailsapp/current/public&lt;br /&gt;&lt;br /&gt; &amp;lt;Directory&lt;br /&gt;"/var/www/rails/myrailsapp/current/public"&amp;gt;&lt;br /&gt;&lt;br /&gt;   Options FollowSymLinks&lt;br /&gt;&lt;br /&gt;   AllowOverride None&lt;br /&gt;&lt;br /&gt;   Order allow,deny&lt;br /&gt;&lt;br /&gt;   Allow from all&lt;br /&gt;&lt;br /&gt; &amp;lt;/Directory&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; RewriteEngine On&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; # Check for maintenance file and redirect all requests&lt;br /&gt;&lt;br /&gt; RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f&lt;br /&gt;&lt;br /&gt; RewriteCond %{SCRIPT_FILENAME} !maintenance.html&lt;br /&gt;&lt;br /&gt; RewriteRule ^.*$ /system/maintenance.html [L]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; # Rewrite index to check for static&lt;br /&gt;&lt;br /&gt; RewriteRule ^/$ /index.html [QSA]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; # Rewrite to check for Rails cached page&lt;br /&gt;&lt;br /&gt; RewriteRule ^([^.]+)$ $1.html [QSA]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; # Redirect all non-static requests to cluster&lt;br /&gt;&lt;br /&gt; RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f&lt;br /&gt;&lt;br /&gt; RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI}&lt;br /&gt;[P,QSA,L]&lt;br /&gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Es laufen zwei Mongrel-Prozesse, die auf Port 8000 bzw. 8001 lauschen. Kommt ein Request über Apache auf Port 80 herein, so wird dieser an die lokalen Mongrels weitergereicht. Dies kann natürlich beliebig mit anderen Rechner skaliert werden.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-7263300148412638651?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/7263300148412638651/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=7263300148412638651' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/7263300148412638651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/7263300148412638651'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/apache2-mit-mongrel-cluster.html' title='Apache2 mit Mongrel-Cluster konfigurieren'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-6029250598971226113</id><published>2007-06-13T13:40:00.000+02:00</published><updated>2007-06-13T14:43:19.331+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>Bald bin ich weg</title><content type='html'>&lt;span style="font-family:arial;"&gt;Ich habe Ende März gekündigt und werde zum 01.07. eine neue Stelle bei einem anderen Arbeitgeber antreten. Um meinen KollegInnen die Zeit, bis ich weg bin, jeden Tag vor Augen zu führen habe ich mir folgendes kleines Ruby-Skript ausgedacht, das über die &lt;a href="http://rb-appscript.rubyforge.org/"&gt;AppleScript-Bridge&lt;/a&gt; mit Adium und dem Bildschirmschoner spricht:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;table style="text-align: left; background-color: rgb(0, 0, 153);" border="0" cellpadding="6" cellspacing="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: rgb(0, 0, 153);"&gt;&lt;small&gt;&lt;span style="font-family:Courier New,Courier,monospace;"&gt;&lt;br /&gt;&lt;br /&gt;#!/opt/local/bin/ruby&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;require 'date'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;require 'rubygems'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;require 'appscript'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;include Appscript&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Meinen Status bei Adium auf "nicht verfügbar" setzen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app('Adium').my_status_message.set('Bin kurz weg')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app('Adium').my_status_type.set(:away)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Den Bildschirmschoner (blockierend) aktivieren&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app('ScreenSaverEngine').activate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Prüfen, ob der Bildschirmschoner wieder deaktiviert wurde&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;while `ps axc | grep -i screensaverengine | wc -l`.strip.to_i != 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  sleep 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Bin zurück&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;this_day = Date.today&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;last_day = Date.new(2007, 06, 30) # mein letzter Arbeitstag&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Noch offene Urlaube&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;vacations = [ Date.new(2007, 05, 16)..Date.new(2007, 05, 28), &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                    Date.new(2007, 06, 25)..Date.new(2007, 06, 29) ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Ausrechnen, wieviele Arbeitstage noch übrig sind&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;days_left = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;((this_day)..(last_day)).each do |day|&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; week_day = day.wday&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; day_off = (week_day == 0 || week_day == 6) # Samstag und Sonntag nicht berücksichtigen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; unless day_off  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   vacations.each do |away|&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     if away.include?(day)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       day_off = true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       break&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; if !day_off&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   days_left += 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Meinen Status in Adium wieder auf verfügbar setzen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app('Adium').my_status_message.set("Noch #{days_left} Tage anwesend.")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;app('Adium').my_status_type.set(:available)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Dieses Skript habe ich mit &lt;a href="http://mac.softpedia.com/get/System-Utilities/Platypus.shtml"&gt;Platypus&lt;/a&gt; in eine ausführbare Datei umgewandelt, die mit einem Tastenkürzel über &lt;a href="http://quicksilver.blacktree.com/"&gt;Quicksilver&lt;/a&gt; aktiviert wird. Sobald ich also meinen Arbeitsplatz verlasse wird mit dem Tastenkürzel beim Rechner gesperrt, mein IM-Status gesetzt und der Bildschirmschoner läuft. Bei der Rückkehr&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-6029250598971226113?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/6029250598971226113/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=6029250598971226113' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/6029250598971226113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/6029250598971226113'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/bald-bin-ich-weg.html' title='Bald bin ich weg'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-5797195914592782457</id><published>2007-06-04T17:10:00.000+02:00</published><updated>2007-06-13T14:43:40.241+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='tastatur'/><category scheme='http://www.blogger.com/atom/ns#' term='neo'/><title type='text'>NEO 2 Tastaturlayout</title><content type='html'>Ich schreibe schon seit 1987 mit 10 Finger auf QWERTZ-Tastaturen. Wird also Zeit, mal etwas effizienteres zu Lernen. Ich hatte immer mal wieder was vom &lt;a href="http://de.wikipedia.org/wiki/Dvorak-Tastaturdesign"&gt;Dvorak-Tastaturlayout&lt;/a&gt; gelesen, aber nie so recht Zeit dafür gehabt. Als ich mich neulich wieder genauer mit dem Thema beschäftigt habe, stieß ich auf das &lt;a href="http://de.wikipedia.org/wiki/NEO-Tastaturlayout"&gt;NEO-Tastaturlayout&lt;/a&gt;,  welches für mich ein besseren Eindruck macht, da für Deutsch optimiert.&lt;br /&gt;&lt;br /&gt;Da ich natürlich immer Bleeding Edge bin, nahm ich mir natürlich die neue Version 2 vor, die es nicht für den Mac gibt. Nachdem ich das Keylayout für die Version 1.1 mühselig angepasst hatte, es aber aufgrund eines Fehlers nicht funktioniert, versuchte ich es nochmal mit dem Programm &lt;a href="http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;item_id=ukelele"&gt;Ukelele&lt;/a&gt;, um damit ging es viel einfacher.&lt;br /&gt;&lt;br /&gt;Ich hätte das neue Layout auf der &lt;a href="http://pebbles.schattenlauf.de/layout.php"&gt;NEO-Projektseite&lt;/a&gt; gerne zur Verfügung gestellt, habe aber bisher noch keine Antwort vom Autor erhalten.&lt;br /&gt;&lt;br /&gt;Die neue &lt;a href="http://www.box.net/shared/yayhazyy35"&gt;Layout-Datei&lt;/a&gt; kopiert man nach ~/Library/Keyboard Layouts, meldet sich ab und wieder an und kann es über die Systemsteuerung aktivieren. Da ich die Tasten nicht rausreißen und neu anordnen möchte, habe ich mir die Tastaturübersicht-Anwendung aktiviert. Man soll ja sowieso nie auf die Tasten schauen ;-)&lt;br /&gt;&lt;br /&gt;Der nächste Schritt war, ein gescheites Schreibmaschinenlernprogramm zu finden. Da ich bereits mit &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;  KDE installiert habe, holte ich mir noch &lt;a href="http://ktouch.sourceforge.net/"&gt;KTouch&lt;/a&gt; über das kdeedu3 Paket. Die &lt;a href="http://www.box.net/shared/a9ac60ovxr"&gt;Tastaturdefinitionsdatei&lt;/a&gt; von KTouch muss man für NEO 2 auch anpassen, da nur das alte NEO-Layout mitgeliefert wird. Diese muss in das Verzeichnis /opt/local/share/apps/ktouch kopiert werden und kann in KTouch über das Menü Einstellungen - Tastaturbelegungen ausgewählt werden.&lt;br /&gt;&lt;br /&gt;Sodann ging es ans Lernen. Irgendwann fielen mir die schönen Übungstexte früher im Schreibmaschinenunterricht ein und ich machte mich daran, ein kleines Ruby-Script zu schreiben, das für die gelernten Buchstaben Zufallstexte generiert. Die mit KTouch mitgelieferten Texte für NEO sind nämlich nicht sehr spannend. Da ich aber faul bin, gibt das Programm einfach nur zufällig ausgewählte Zeilen mit den Wörtern aus, die mit den übergebenen Tasten eingegeben werden können.&lt;br /&gt;&lt;br /&gt;Da ich das Wörterbuch von aspell verwende, muss man dies zuvor mit MacPorts installieren:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;sudo port install aspell-dict-de&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Nach dem Aufruf mit&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;ruby &lt;a href="http://www.box.net/shared/jziugma2hh"&gt;generate_tests.rb&lt;/a&gt; uiaeosnrtdy&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/span&gt;wird folgende Ausgabe generiert:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;  Reusing last search result&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Found 5176 words&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  internierter ortet Sauerei unstarr erneuter anreisest ersinnter ausradierte&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  anordnendes Isis Etui antun ersinnende rasanter startetet rationiertest&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Satins staute Nonnen dto residiertest rodender Dessert stationiertest entstandenen&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  eiserne stresste Situationen ersonnenen anrennenden enttarnenden renitenter&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  tristestes steuerst storniertet Ren unsteteste ausredete neunter Deserteurs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  durstete ausartet dessen ernanntes Tennen Erdens reine Tasse sonnen ersinne&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Initiierens eintrat Dinar radierenden Arrondieren einredender sendender&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  unterordnetet ansteuerten interessiertest naturreines ausreisen sauerer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  einredenden Taster Orion Teint Stresssituation Staatsdienst Tasse dotierenden&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  startende erster resident sinnende trist unstetestes attestierter erneuerter&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;Es werden immer 10 Zeilen generiert, die man mit Copy&amp;amp;Paste in die KTouch-Lerndatei übertragen kann.&lt;br /&gt;&lt;br /&gt;Übrigens erstaunlich: mit dem QWERTY-Keyboard kann man auf der Grundlinie vom Aspell-Wörterbuch gerade mal 79 Wörter schreiben, bei DVORAK sind es 1680 und bei NEO sage und schreibe 5176!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-5797195914592782457?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/5797195914592782457/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=5797195914592782457' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/5797195914592782457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/5797195914592782457'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2007/06/neo-2-tastaturlayout.html' title='NEO 2 Tastaturlayout'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-381712790835309012</id><published>2006-12-19T16:29:00.000+01:00</published><updated>2007-06-13T14:44:02.523+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Apache2 und SVN im Source kompilieren</title><content type='html'>&lt;span style="font-family:arial;"&gt;Möchte man unter Linux Apache2 und Subversion vom Source kompilieren, um Rails zusammen mit Mongrel, Capistrano und Apache zu verwenden, so muss man Subversion die Apache Runtime Verzeichnisse mitteilen:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;cd /usr/src&lt;br /&gt;wget http://ftp.plusline.de/ftp.apache.org/httpd/httpd-2.2.3.tar.bz2&lt;br /&gt;tar xvfj &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;httpd-2.2.3.tar.bz2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;wget http://subversion.tigris.org/downloads/subversion-1.4.2.tar.bz2&lt;br /&gt;tar xvfj &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt;subversion-1.4.2.tar.bz2&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;cd httpd-2.2.3&lt;br /&gt;./configure --enable-deflate --enable-proxy --enable-proxy-html --enable-proxy-balancer --enable-rewrite --enable-cache --enable-mem-cache --enable-ssl --enable-headers --enable-dav&lt;br /&gt;make &amp;&amp;amp; make install&lt;br /&gt;&lt;br /&gt;cd ../subversion-1.4.2&lt;br /&gt;./configure --with-apr=/usr/src/httpd-2.2.3/srclib/apr --with-apr-util=/usr/src/httpd-2.2.3/srclib/apr-util&lt;br /&gt;make &amp;&amp;amp; make install&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-381712790835309012?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/381712790835309012/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=381712790835309012' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/381712790835309012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/381712790835309012'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2006/12/apache2-und-svn-im-source-kompilieren.html' title='Apache2 und SVN im Source kompilieren'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-2586965149197534395</id><published>2006-12-19T13:09:00.000+01:00</published><updated>2007-06-13T14:44:24.000+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><title type='text'>Ant startet nicht unter Eclipse 3.2</title><content type='html'>&lt;span style="font-family:arial;"&gt;Beim Starten von Ant in Eclipse kam in der Konsole keine Meldung, aber Prozess wurde als "&lt;terminated&gt;" gekennzeichnet. Ich hatte die Default-Einstellungen unter "Ant Build..." - Classpath bei Ant Home. Als ich jedoch Ant direkt von &lt;a href="http://ant.apache.org/"&gt;Apache&lt;/a&gt; heruntergeladen hatte und den Installationspfad des Archivs als Ant-Home verwendet hatte, ging es wieder.&lt;br /&gt;&lt;/terminated&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-2586965149197534395?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/2586965149197534395/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=2586965149197534395' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/2586965149197534395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/2586965149197534395'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2006/12/ant-startet-nicht-unter-eclipse-32.html' title='Ant startet nicht unter Eclipse 3.2'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-6765825073319623915</id><published>2006-12-19T10:56:00.000+01:00</published><updated>2007-06-13T14:24:59.849+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Syntax-Einfärbung und Vervollständigung mit IRB</title><content type='html'>&lt;span style="font-family:arial;"&gt;Um in IRB und in Rails mit script/console eine Einfärbung der Syntax und eine Auto-Vervollständigung zu bekommen kann man das Ruby-Gem Wirble mit&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;sudo gem install -y wirble&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;installieren. Ich habe die Resourcedatei &lt;/span&gt;~/.irbrc &lt;span style="font-family:arial;"&gt;noch angelegt und angepasst, damit ein anderes Farbschema verwendet wird:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;table style="text-align: left; background-color: rgb(0, 0, 153);" border="0" cellpadding="6" cellspacing="2"&gt;&lt;tr&gt;&lt;td style="background-color: rgb(0, 0, 153);"&gt;&lt;small&gt;&lt;span style="font-family: Courier New,Courier,monospace;"&gt;&lt;br /&gt;&lt;br /&gt;require 'rubygems'&lt;br /&gt;require 'wirble'&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Available colors&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# :nothing        :green            :light_purple&lt;br /&gt;# :black          :light_blue       :purple&lt;br /&gt;# :blue           :light_cyan       :red&lt;br /&gt;# :brown          :light_gray       :white&lt;br /&gt;# :cyan           :light_green      :yellow&lt;br /&gt;# :dark_gray      :light_red&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Default Wirble color scheme.&lt;br /&gt;#&lt;br /&gt;DEFAULT_COLORS = {&lt;br /&gt;    # delimiter colors&lt;br /&gt;    :comma              =&gt; :blue,&lt;br /&gt;    :refers             =&gt; :blue,&lt;br /&gt;&lt;br /&gt;    # container colors (hash and array)&lt;br /&gt;    :open_hash          =&gt; :green,&lt;br /&gt;    :close_hash         =&gt; :green,&lt;br /&gt;    :open_array         =&gt; :green,&lt;br /&gt;    :close_array        =&gt; :green,&lt;br /&gt;&lt;br /&gt;    # object colors&lt;br /&gt;    :open_object        =&gt; :light_red,&lt;br /&gt;    :object_class       =&gt; :white,&lt;br /&gt;    :object_addr_prefix =&gt; :blue,&lt;br /&gt;    :object_line_prefix =&gt; :blue,&lt;br /&gt;    :close_object       =&gt; :light_red,&lt;br /&gt;&lt;br /&gt;    # symbol colors&lt;br /&gt;    :symbol             =&gt; :dark_gray,&lt;br /&gt;    :symbol_prefix      =&gt; :dark_gray,&lt;br /&gt;&lt;br /&gt;    # string colors&lt;br /&gt;    :open_string        =&gt; :red,&lt;br /&gt;    :string             =&gt; :cyan,&lt;br /&gt;    :close_string       =&gt; :red,&lt;br /&gt;&lt;br /&gt;    # misc colors&lt;br /&gt;    :number             =&gt; :cyan,&lt;br /&gt;    :keyword            =&gt; :green,&lt;br /&gt;    :class              =&gt; :light_green,&lt;br /&gt;    :range              =&gt; :red,&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Wirble.init&lt;br /&gt;Wirble.colorize&lt;br /&gt;Wirble::Colorize.colors = DEFAULT_COLORS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-6765825073319623915?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/6765825073319623915/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=6765825073319623915' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/6765825073319623915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/6765825073319623915'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2006/12/syntax-einfrbung-und-vervollstndigung.html' title='Syntax-Einfärbung und Vervollständigung mit IRB'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-116643675440088580</id><published>2006-12-18T11:04:00.000+01:00</published><updated>2007-06-13T14:44:43.252+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Subversion und Radrails</title><content type='html'>Ich hatte etwas Probleme, die aktuelle Radrails-Version 0.7.2 mit Subversion 1.4.2 zum Laufen zu bekommen.&lt;br /&gt;&lt;br /&gt;In einem anderem Blog fand ich den Hinweis, dass  das SVN-Interface von Subclipse  mit SVNKit (Standard) und einer Subversion 1.4.x nicht richtig funktioniert.&lt;br /&gt;&lt;br /&gt;Da die Update-Funktion von Radrails kaputt ist, habe ich sicherheitshalber mit einem separaten Eclipse noch die aktuelle Subclipse-Version 1.0.4 über die Update-Funktion geladen und die Dateien von features und plugins manuell in Radrails rüberkopiert.&lt;br /&gt;&lt;br /&gt;Dann habe ich mir laut Anleitung von &lt;a href="http://blog.krutisch.de/archives/319-Subversion-mit-Macports-und-Radrails.html"&gt;Jan Krutisch&lt;/a&gt; die Java-HL-Bindings heruntergeladen und installiert und in Radrails aktiviert. &lt;a href="http://blog.krutisch.de/archives/319-Subversion-mit-Macports-und-Radrails.html"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-116643675440088580?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/116643675440088580/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=116643675440088580' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/116643675440088580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/116643675440088580'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2006/12/subversion-und-radrails.html' title='Subversion und Radrails'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34806377.post-115885391940086585</id><published>2006-09-21T17:43:00.000+02:00</published><updated>2007-06-13T14:57:15.944+02:00</updated><title type='text'>Der Grundstein</title><content type='html'>LiebeR BesucherIn,&lt;br /&gt;ich heiße Markus Kirschner und arbeite als fest angestellter Programmierer in Berlin.&lt;br /&gt;&lt;br /&gt;In diesem Blog möchte ich meine täglichen "Pits and Downfalls" und deren Lösungen dokumentieren, um sie für die Nachwelt zu erhalten. Die Anregung dafür habe ich aus dem sehr empfehlenswerten Buch "&lt;a href="http://www.pragmaticprogrammer.com/titles/pad/index.html"&gt;Practices of an Agile Developer&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;Mein Arbeitsplatz:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Power Mac G5 Quad mit 4 x 2.5 GHz, 2 GB RAM und 250 GB Festplatte&lt;/li&gt;&lt;li&gt;Mac OSX 10.4&lt;/li&gt;&lt;li&gt;Linuxrechner MSI Hetis, Pentium IV 2.8 GHZ, 2 GB RAM&lt;/li&gt;&lt;li&gt;Debian Linux&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ich setze folgende Tools ein:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Eclipse 3.2&lt;/li&gt;&lt;li&gt;Java 1.4.2 und 5&lt;/li&gt;&lt;li&gt;Ant&lt;/li&gt;&lt;li&gt;CVS&lt;/li&gt;&lt;li&gt;SVN&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Das war's auch schon mit den Grundvoraussetzungen. Mal sehen, wie lange ich das Blog pflege ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34806377-115885391940086585?l=programmierertagebuch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programmierertagebuch.blogspot.com/feeds/115885391940086585/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34806377&amp;postID=115885391940086585' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/115885391940086585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34806377/posts/default/115885391940086585'/><link rel='alternate' type='text/html' href='http://programmierertagebuch.blogspot.com/2006/09/der-grundstein.html' title='Der Grundstein'/><author><name>Peitschengabi</name><uri>http://www.blogger.com/profile/10716612306494729985</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
