<?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-18388864</id><updated>2012-02-16T08:09:29.561+01:00</updated><category term='ruby'/><category term='meta'/><category term='gtd'/><category term='Vista'/><category term='tools'/><category term='personal'/><category term='Thunderbird'/><category term='apple'/><category term='German'/><category term='Google Calendar'/><category term='Software'/><category term='Windows'/><category term='Fun'/><category term='Web 2.0'/><category term='humor'/><title type='text'>Jag har litet bråttom</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18388864.post-2098071019631594093</id><published>2008-08-08T21:18:00.004+02:00</published><updated>2008-08-08T21:34:30.536+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Big Band Videos von tabtuwab</title><content type='html'>&lt;p&gt;Gerade habe ich &lt;a href="http://t2w.15qm.de/3rdgeneration/?p=598"&gt;einige tabtuwab Videos&lt;/a&gt; (&lt;a href="http://www.wieser.info"&gt;Christoph&lt;/a&gt;'s Band) entdeckt, mein persönliches Best of:&lt;/p&gt;&lt;p&gt;”It don’t mean a thing”&lt;/p&gt;&lt;p&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RYjuACahKOo&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/RYjuACahKOo&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;”Mr. zoot suit”&lt;/p&gt;&lt;p&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/rZ0f0xD4K_k&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/rZ0f0xD4K_k&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;Zur &lt;a href="http://t2w.15qm.de/3rdgeneration/?p=574"&gt;Biografie der Sängerin Katya Kazankova&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-2098071019631594093?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/2098071019631594093/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=2098071019631594093' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2098071019631594093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2098071019631594093'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2008/08/big-band-videos-von-tabtuwab.html' title='Big Band Videos von tabtuwab'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-1133968280105700946</id><published>2008-07-25T00:35:00.005+02:00</published><updated>2008-07-25T00:40:58.907+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>das (Wochen)ende naht</title><content type='html'>&lt;p&gt;Langsam geht alles in Salzburg zu Ende: Morgen findet schon meine Farewell-Feier statt. Ich kann noch gar nicht glauben wie schnell die letzten Wochen vergangen sind...&lt;/p&gt;&lt;p&gt;Am Abend bin ich wieder in München und gehe ich mit einem &lt;a href="http://www.wieser.info"&gt;sehr guten Freund&lt;/a&gt; in die &lt;a href="http://www.jazzbar-vogler.com"&gt;Jazzbar Vogler&lt;/a&gt;. Ich bin schon gespannt wie's dort wird und freue mich auf einen interessanten Abned.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-1133968280105700946?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/1133968280105700946/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=1133968280105700946' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/1133968280105700946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/1133968280105700946'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2008/07/das-wochenende-naht.html' title='das (Wochen)ende naht'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-5682113523044532160</id><published>2008-07-21T22:44:00.003+02:00</published><updated>2008-07-21T22:57:44.418+02:00</updated><title type='text'>Lied des Tages</title><content type='html'>&lt;p&gt;Heute auf &lt;a href="http://www.bayern3.de/"&gt;Bayern 3&lt;/a&gt; gehört: &lt;a href="http://www.blogger.com/post-edit.g?blogID=18388864&amp;amp;postID=5682113523044532160"&gt;I Kissed a Girl&lt;/a&gt; von &lt;a href="http://en.wikipedia.org/wiki/Katy_Perry"&gt;Katy Perry&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;object width="425px" height="360px"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="movie" value="http://mediaservices.myspace.com/services/media/embed.aspx/m=34301986,t=1,mt=video"&gt;&lt;embed src="http://mediaservices.myspace.com/services/media/embed.aspx/m=34301986,t=1,mt=video" width="425" height="360" allowfullscreen="true" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-5682113523044532160?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/5682113523044532160/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=5682113523044532160' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5682113523044532160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5682113523044532160'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2008/07/lied-des-tages.html' title='Lied des Tages'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-2355265148260578430</id><published>2008-07-21T21:39:00.010+02:00</published><updated>2008-07-21T23:39:17.189+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Neu in München</title><content type='html'>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/ruslik/297341350/"&gt;&lt;img src="http://farm1.static.flickr.com/110/297341350_b54b13154d.jpg?v=0" width="400" height="310" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[photo © by &lt;a href="http://www.flickr.com/photos/ruslik/"&gt;ruslik&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;Ein (Luft)bett, ein Stuhl, jede Menge Reisetaschen und Putzmittel sind zurzeit die einzigen Gegenstände in meiner Wohnung (und natürlich der obligatorische WLAN Router ;-)).&lt;/p&gt;&lt;p&gt;Ich bin in den letzten Wochen nämlich sukzessive von Salzburg nach München übersiedelt, bin aber beruflich bedingt noch bis Ende Juli in Salzburg. Deshalb ist diese Wohnung auch schon praktisch leer. &lt;/p&gt;&lt;p&gt;Trotz EU ist so ein Grenzwechsel immer noch ein gehöriger Aufwand, aber ich hoffe er lohnt sich. Glücklicherweise hatten wir genügend Vorlaufzeit und auch das entsprechende Kapital einkalkuliert, sonst wäre das Ganze in noch mehr Stress ausgeartet als es ohnehin schon ist. Jetzt ist das meiste aber schon überstanden: Nächste Woche kann ich die Wohnungsschlüssel in Salzburg übergeben und endlich nach München fahren.&lt;/p&gt;&lt;p&gt;Eine kurze Rückschau:&lt;/p&gt;&lt;p&gt;Mai:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Wohnung in München gefunden&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Juni:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Passenden Arbeitgeber gefunden. Nach sehr langer und intensiver Suche habe ich endlich das Unternehmen gefunden in das ich - meiner Meinung nach - auch langfristig sehr gut reinpasse. Ich freue mich schon sehr darauf!&lt;/li&gt;&lt;li&gt;Übersiedelt&lt;/li&gt;&lt;li&gt;Küche gekauft und liefern lassen&lt;/li&gt;&lt;li&gt;Darüber gewundert wie man einen Wasserzähler rückwärts(!) einbauen kann (so geschehen in unser neuen Wohnung).&lt;/li&gt;&lt;li&gt;Diverse An- und Abmeldungen&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Juli:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Auf meine Masterprüfung gelernt und sogar mit ausgezeichnetem Erfolg bestanden. :-)&lt;/li&gt;&lt;li&gt;Kündigung bei meinem Arbeitgeber in Salzburg eingereicht&lt;/li&gt;&lt;li&gt;Küche montieren lassen&lt;/li&gt;&lt;li&gt;Wieder: diverse An- und Abmeldungen&lt;/li&gt;&lt;li&gt;Alte Wohnung für die Übergabe vorbereitet (Malen, etc.)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Eine Erfahrung, die ich in den letzten Wochen gemacht habe: Auf deutsche Handwerker kann man sich nicht verlassen (siehe unser Rückwärtswasserzähler):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Es war nicht möglich einen Küchenmontagetermin mehr als 2 Wochen im Voraus gleich beim Kauf zu vereinbaren (wollte uns zumindest der Mitarbeiter am Schalter weiß machen)&lt;/li&gt;&lt;li&gt;Küchenmontagetermin für den 5. Juli telefonisch vereinbart. Am 5. Juli war zwar ich, aber natürlich kein Monteur da. Der Termin wurde von der Mitarbeiterin am Telefon nicht eingetragen. Man versicherte mir aber wie leid ihnen das tue (was die Zubereitung von Essen auch nicht leichter machte).&lt;/li&gt;&lt;li&gt;Wasserzähler im Bad läuft rückwärts, in der Küche gibt's erst gar keinen. Der zuständige Installateur reagiert weder auf Telefonanrufe noch auf E-Mails. Status: Wurde heute repariert und funktioniert anscheinend sogar.&lt;/li&gt;&lt;li&gt;Die Türklingel ist defekt (war bereits im Mai bekannt). Weder Hausverwaltung noch Hausmeister fühlen sich zuständig und schieben sich gegenseitig die Schuld zu. Als ich es nach 3 Wochen geschafft habe, beide zusammen in die Wohnung zu bitten, behaupten sie die falsche Gegensprechanlage sei montiert. Status: die Türklingel funktioniert nach 2 Monaten noch immer nicht. Andererseits hat das vielleicht auch seine guten Seiten.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Im August habe ich noch Urlaub. Die Zeit werde ich nutzen um mich zu erholen, München zu erkunden und vielleicht um die &lt;a href="http://www.bayrisch-lernen.de/"&gt;Sprache zu lernen&lt;/a&gt; ;-). Im September ist mein Arbeitsbeginn in München und natürlich steht für mich als Neo-Münchner auch das Oktoberfest am Programm - ein aufregender (Rest)sommer und Herbst steht also an.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-2355265148260578430?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/2355265148260578430/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=2355265148260578430' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2355265148260578430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2355265148260578430'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2008/07/neu-in-mnchen.html' title='Neu in München'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-5244103849691309808</id><published>2008-06-09T23:20:00.002+02:00</published><updated>2008-06-09T23:24:50.559+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Man glaubt es kaum...</title><content type='html'>&lt;p&gt;... aber ich lebe noch. Mein IEM Studium geht gerade in die Endphase (und für alle, die mich privat kennen: noch einiges mehr. Ich will aber nicht zu viel verraten.). In den nächsten Monaten sollte die Postingfrequenz auf jeden Fall wieder steigen.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-5244103849691309808?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/5244103849691309808/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=5244103849691309808' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5244103849691309808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5244103849691309808'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2008/06/man-glaubt-es-kaum.html' title='Man glaubt es kaum...'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-6429701183134429931</id><published>2007-04-23T15:31:00.000+02:00</published><updated>2007-04-23T15:41:30.004+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='German'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Web 2.0'/><title type='text'>Just relax...</title><content type='html'>Are you stressed by all the Web 2.0 communities you are part of? Posting, blogging, discussing, ... Now you get a place to relax: &lt;a href="http://www.alleinr.de/"&gt;alleinr.de&lt;/a&gt; ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-6429701183134429931?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/6429701183134429931/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=6429701183134429931' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6429701183134429931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6429701183134429931'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/04/just-relax.html' title='Just relax...'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-5725255739505860440</id><published>2007-04-12T21:26:00.000+02:00</published><updated>2007-04-12T21:44:09.347+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Calendar'/><title type='text'>Sync your GMail calendar with Thunderbird (Lightning)</title><content type='html'>&lt;a href="http://bfish.xaedalus.net/?p=239"&gt;bfish.xaedalus.net&lt;/a&gt; has posted a how-to to sync your Google Calendar with the Thunderbird add-on Lightning. It's great that it does not only support read access but writing calendar entries too. &lt;a href="http://www.spanningsync.com"&gt;SpanningSync&lt;/a&gt; is a similar solution for Macs (Google calendar synced with iCal) but unfortunately that solution is not free. Last but not least: The solution works great in Thunderbird 2.0 too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-5725255739505860440?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/5725255739505860440/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=5725255739505860440' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5725255739505860440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5725255739505860440'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/04/sync-your-gmail-calendar-in-thunderbird.html' title='Sync your GMail calendar with Thunderbird (Lightning)'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-6244711686701464442</id><published>2007-03-16T23:24:00.000+01:00</published><updated>2007-03-16T23:37:31.488+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Make irb work with special characters on Windows</title><content type='html'>Recently, someone asked how to enable special characters such braces or brackets for irb on Windows (these characters are essential in almost every Ruby program). The &lt;a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/172262"&gt;solution&lt;/a&gt; has been previously discussed on Ruby-talk. &lt;br /&gt;&lt;br /&gt;As far as I remember, recent versions of the One-Click installer already include such a fix. However, my Ruby installation at work is a bit dated and irb did not work properly for my installation yet. &lt;br /&gt;&lt;br /&gt;It was a bit tricky to create the files .inputrc and .ircrc as the Windows shell did not allow me to create these files. "touch" to the rescue! I fired up Cygwin and issued &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;touch .inputrc"&lt;br /&gt;touch .ircrc"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Afterwards, everything else went fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-6244711686701464442?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/6244711686701464442/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=6244711686701464442' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6244711686701464442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6244711686701464442'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/03/make-irb-work-with-special-characters.html' title='Make irb work with special characters on Windows'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-160537048945918543</id><published>2007-02-13T21:24:00.000+01:00</published><updated>2007-01-26T16:35:34.702+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Geschafft!</title><content type='html'>Das letzte Monat war ziemlich anstrengend. Die Formel dazu: Arbeiten + &lt;a href="http://www.fh-ooe.at/campus-hagenberg/studiengaenge/studiengaenge/master-studien/berufsbegleitend/information-engineering-und-management.html"&gt;Studieren&lt;/a&gt; + Klausurzeit = Streß. Der ist nun vorbei: Die letzte Klausur hatte ich vergangenen Freitag, die letzte Hausübung habe ich gerade weggeschickt. Auf mich warten "Ferien", was im Klartext heißt, dass ich bis Ende Februar "nur" arbeiten muss.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-160537048945918543?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/160537048945918543/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=160537048945918543' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/160537048945918543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/160537048945918543'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/02/geschafft.html' title='Geschafft!'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-5986217592064873723</id><published>2007-01-23T19:07:00.000+01:00</published><updated>2007-01-23T19:20:35.106+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><title type='text'>Upgrading to Vista</title><content type='html'>I admit it, I have to see Vista live on my PC as soon as possible! However, I want to ensure that Vista fully supports my hardware before I attempt to install it. Fortunately, the public beta of the &lt;a href="http://www.microsoft.com/technet/windowsvista/deploy/readassess.mspx"&gt;Windows Vista Hardware Assessment&lt;/a&gt; starts in 6 days. So, if the check succeeds I'll may document my migration here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-5986217592064873723?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/5986217592064873723/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=5986217592064873723' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5986217592064873723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/5986217592064873723'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/01/upgrading-to-vista.html' title='Upgrading to Vista'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-6229308945656489531</id><published>2007-01-22T18:52:00.000+01:00</published><updated>2007-01-22T19:03:34.784+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Klassentreffen</title><content type='html'>&lt;a href="http://www.flickr.com/photos/mittei/366052608/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/127/366052608_5c5e7708b2.jpg" width="400" height="240" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vergangenen Samstag hatten wir von der &lt;a href="http://www.htlinn.ac.at"&gt;HTL&lt;/a&gt; aus in Innsbruck unser erstes Klassentreffen seit der Matura vor 7 Jahren. Eine ziemlich lange Zeit, aber wie sich schnell herausstellte haben sich die wenigsten verändert: Bei manchen haben sich die Haare gelichtet während sie bei anderen eher gewachsen sind. ;)&lt;br /&gt;&lt;br /&gt;Eines habe ich an diesem Abend auch gelernt: Geh niemals mit leerem Magen in ein &lt;a href="http://www.maquin.at"&gt;Nobelrestaurant&lt;/a&gt;. Die Portionen sind winzig - die Preise sind's nicht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-6229308945656489531?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/6229308945656489531/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=6229308945656489531' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6229308945656489531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/6229308945656489531'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/01/klassentreffen.html' title='Klassentreffen'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/127/366052608_5c5e7708b2_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18388864.post-4792177198923213101</id><published>2007-01-21T17:55:00.000+01:00</published><updated>2007-01-22T18:52:01.466+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='meta'/><title type='text'>Personal posts now in German</title><content type='html'>I have decided to write posts related to my life in German from now on. However, posts that might be of interest to a wider audience will still be written in English.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-4792177198923213101?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/4792177198923213101/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=4792177198923213101' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/4792177198923213101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/4792177198923213101'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/01/personal-posts-now-in-german.html' title='Personal posts now in German'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-3329088719893761078</id><published>2007-01-01T14:57:00.000+01:00</published><updated>2007-01-01T15:07:42.150+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Happy New Year</title><content type='html'>&lt;a href="http://www.flickr.com/photos/mittei/340692925/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/131/340692925_25517aecbf.jpg" width="400" height="267"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recently, I have created a &lt;a href="http://www.flickr.com/photos/mittei/"&gt;Flickr account&lt;/a&gt; to present some of my photos. Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-3329088719893761078?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/3329088719893761078/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=3329088719893761078' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/3329088719893761078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/3329088719893761078'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2007/01/happy-new-year.html' title='Happy New Year'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/131/340692925_25517aecbf_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18388864.post-223032038407739674</id><published>2006-12-20T20:22:00.000+01:00</published><updated>2006-12-21T07:33:35.561+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Quick Update</title><content type='html'>Its been a while since I created the last post for this blog, so I think its time for a short (batch) update. However,  I have already a New Year's pledge: I will update my blog more regularly (or at least I try to do it ;)).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;I bought a Mac Book: Although a &lt;a href="http://accidentswaiting.blogspot.com/"&gt;friend of mine&lt;/a&gt; experiences really tough problems with his Mac Book (Pro) mine is running perfectly since I bought it a few weeks ago.&lt;br /&gt;&lt;li&gt;Acer sucks: My 20" monitor (bought in March 2006) was defect. Acer exchanged it with a similar, but already used model from 2004(!). Although I complained about that fact I got no satisfying response from the support hotline. Imagine, 600 Euro down the drain, you can be ensured that these boys get not even one Euro from me anymore.   By the way, the "new" monitor changes colors every few minutes, so I may stay in contact with my new "friends" in order to get the next monitor. Argh, I hate support people.&lt;br /&gt;&lt;li&gt;Seen the Austrian cabaret artist "Hader" live in Salzburg last week. In my opinion, the old show "Privat" is much more fun than "Hader muss gehen". However, I think the story was quite interesting and entertaining. In the beginning you are not quite sure if the show has already started or he is just kidding (he tells the audience a story about a defect dimmer...). Well, real Hader fans just have to watch the show. :)&lt;br /&gt;&lt;li&gt;Maybe we will get &lt;a href="http://www.atlassian.com/software/jira/"&gt;Jira&lt;/a&gt; soon at work. I am looking forward to it. I had the pleasure to evaluate a few bugtracking systems and Jira is really amazing!&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-223032038407739674?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/223032038407739674/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=223032038407739674' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/223032038407739674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/223032038407739674'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/12/quick-update.html' title='Quick Update'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-1769242511781634232</id><published>2006-11-22T19:36:00.000+01:00</published><updated>2006-11-22T19:46:47.189+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Why do we often pick on Windows?</title><content type='html'>Other operating systems are a bit strange too. Just take Apple's baby - Mac OS X: Today I read a post on &lt;a href="http://www.lifeclever.com"&gt;www.lifeclever.com&lt;/a&gt; about  a &lt;a href="http://www.lifeclever.com/2006/11/20/instantly-create-zip-archives-with-a-keystroke/"&gt;shortcut to create ZIP files on your Mac&lt;/a&gt;. The fourth step in the tutorial made me think:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;For the shortcut to take effect, log out or restart your computer.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Restarting my computer because I added a shortcut? Come on, we all know all those nice self-made screenshots where Windows tells you to restart because your mouse has moved. Ironically, this one seems not to be a joke at all, but simply the truth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-1769242511781634232?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/1769242511781634232/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=1769242511781634232' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/1769242511781634232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/1769242511781634232'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/11/is-it-really-always-windows-to-nitpick.html' title='Why do we often pick on Windows?'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-2023175982053011244</id><published>2006-10-26T19:13:00.000+02:00</published><updated>2006-11-02T09:55:06.978+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='gtd'/><title type='text'>Adopting GTD</title><content type='html'>Recently, I adopted the &lt;a href="http://en.wikipedia.org/wiki/GTD"&gt;Getting Things Done (GTD) approach&lt;/a&gt; for myself. GTD is a time management technique that helps you to be more productive and stay focussed. The main concept of GTD are lists. You create those little lists for everything you have to do: projects, homework, phone calls, books lend, whatever you want. The principle is to get those things out of your head. &lt;br /&gt;&lt;br /&gt;As I dislike real, physical lists on paper, I use &lt;a href="http://shared.snapgrid.com/index.html"&gt;GTDTiddlyWiki&lt;/a&gt;. GTDTiddlyWiki is an modified version of TiddlyWiki, which is a simple client-side Wiki implemented in JavaScript (very cool). So far, I'm quite happy with GTDTiddlyWiki, although it doesn't work properly in Firefox 2.0 yet.&lt;br /&gt;&lt;br /&gt;Update: I checked GTDTiddlyWiki's Firefox 2.0 compatibility today. Fortunately, it works now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-2023175982053011244?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/2023175982053011244/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=2023175982053011244' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2023175982053011244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/2023175982053011244'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/10/adopting-gtd.html' title='Adopting GTD'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-116108037248763343</id><published>2006-10-17T12:14:00.000+02:00</published><updated>2006-10-17T15:03:10.438+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Subtle self-praise ;)</title><content type='html'>&lt;a href="http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/97b2177832a412cf/427cc284b9e8324a#427cc284b9e8324a"&gt;The following thread&lt;/a&gt; appeared today on &lt;a href="http://groups.google.com/group/comp.lang.ruby"&gt;Ruby-talk&lt;/a&gt; (shortened):&lt;br /&gt;&lt;br /&gt;Peter: [Problem description] I have already implemented it but I don't think so it's a state-of-the art solution ;)&lt;br /&gt;Alex: how about this: input.each{|i| i.each_with_index{|x,j| (result[j] ||= []) &lt;&lt; x}}&lt;br /&gt;Peter: Thx for the solution! Mine was totally the same [...]&lt;br /&gt;Alex: You are simply brilliant  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-116108037248763343?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/116108037248763343/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=116108037248763343' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/116108037248763343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/116108037248763343'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/10/subtle-self-praise.html' title='Subtle self-praise ;)'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-115757435176300257</id><published>2006-09-06T22:20:00.000+02:00</published><updated>2006-10-17T14:58:07.535+02:00</updated><title type='text'>Ubuntu + UT</title><content type='html'>Erkenntnis des Tages: UT unter Ubuntu fühlt sich verdammt lahm an. Die Maus reagiert stark verzögert, der Bildaufbau ist einfach nur lahm. Dafür hab ich also 2 Tage lang den 3D Treiber meine Grafikkarte konfigurieren dürfen. Naja, Windows braucht ja auch noch eine Daseinsberechtigung ;) Aber vielleicht kann man das ja noch mit dem ein oder anderen Setting verbessern...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-115757435176300257?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/115757435176300257/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=115757435176300257' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/115757435176300257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/115757435176300257'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/09/ubuntu-ut.html' title='Ubuntu + UT'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-115460021794629568</id><published>2006-08-03T12:07:00.000+02:00</published><updated>2006-10-17T14:58:07.474+02:00</updated><title type='text'>Using Spring 2.0's @Configurable Annotation with Compile-Time Weaving</title><content type='html'>It will not take long that Spring 2.0 (final) will be released. One of the new features of Spring 2.0 is the @Configurable annotation. In essence, it allows you to perform dependency injection for beans created by plain constructor calls. Spring will intercept the constructor call and do the dependency injection for you. &lt;br/&gt;&lt;br/&gt;People already &lt;a href="http://debasishg.blogspot.com/2006/07/spring-20-aop-spruce-up-your-domain.html"&gt;blog about it&lt;/a&gt;. It is already quite &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/aop.html#aop-atconfigurable"&gt;well documented&lt;/a&gt;. So, let's start with some code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;package at.mitterdorfer.blog;&lt;br /&gt;&lt;br /&gt;import org.springframework.beans.factory.annotation;&lt;br /&gt;&lt;br /&gt;@Configurable&lt;br /&gt;public class MySuperBean {&lt;br /&gt;  private Foo foo;&lt;br /&gt;  &lt;br /&gt;  public MySuperBean() {&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  //Spring will invoke this method &lt;br /&gt;  //after somebody calls new MySuperBean();&lt;br /&gt;  public void setFoo(Foo foo) {&lt;br /&gt;    this.foo = foo;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next, there's your Application Context file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;!-- ensure the AnnotationBeanConfigurerAspect &lt;br /&gt;     gets configured by Spring --&amp;gt;&lt;br /&gt;&amp;lt;aop:spring-configured/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id=&amp;quot;foo&amp;quot; class=&amp;quot;at.mitterdorfer.blog.Foo&amp;quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean class=&amp;quot;at.mitterdorfer.blog.MySuperBean&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;property name=&amp;quot;foo&amp;quot; ref=&amp;quot;foo&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that you have to use the new &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/xsd-config.html"&gt;Schema based configuration&lt;/a&gt; for your application context file. For a more detailed introduction about @Configurable and its configuration in the application context file, please refer to the &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/aop.html#aop-atconfigurable"&gt;Spring reference documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As this feature uses &lt;a href="http://www.eclipse.org/aspectj/"&gt;AspectJ&lt;/a&gt;, the respective aspect has to be woven at some time. This can either happen at compile-time or at load-time. Loadtime weaving is well documented in the &lt;a href="http://static.springframework.org/spring/docs/2.0.x/reference/aop.html#aop-aj-ltw"&gt;Spring reference documentation&lt;/a&gt;. However, I disliked the approach to set the VM argument "-javaagent" in order to perform load-time weaving. Therefore, I decided to use compile-time weaving. &lt;br/&gt;&lt;br/&gt;As I use Maven2 as my build tool I searched a plugin that invokes the AspectJ compiler for me. Although such a &lt;a href="http://mojo.codehaus.org/aspectj-maven-plugin/"&gt;plugin&lt;/a&gt; exists, there is no official release yet. So I checked it out from the Subversion repository (svn://svn.codehaus.org/mojo/trunk/mojo/aspectj-maven-plugin). Afterwards, I built and installed the plugin:&lt;br/&gt;&lt;pre&gt;&lt;br/&gt;mvn package install&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;Well, the build went not that smooth. You may face problems regarding corrupt aspectj libraries. I finally downloaded the 1.5.2 release from the &lt;a href="http://www.eclipse.org/aspectj/"&gt;AspectJ project homepage&lt;/a&gt; and installed the JARs manually to my local Maven2 repository. Next, some testcases failed. I have ignored them and moved on. Next, you have to adapt project's POM. Configure it as follows:&lt;br/&gt;&lt;br/&gt;&lt;pre&gt;&lt;br/&gt;&amp;lt;plugin&amp;gt;&lt;br/&gt;  &amp;lt;groupid&amp;gt;org.codehaus.mojo&amp;lt;/groupid&amp;gt;&lt;br/&gt;  &amp;lt;artifactid&amp;gt;aspectj-maven-plugin&amp;lt;/artifactid&amp;gt;&lt;br/&gt;  &amp;lt;version&amp;gt;1.0-beta-2-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br/&gt;  &amp;lt;executions&amp;gt;&lt;br/&gt;    &amp;lt;execution&amp;gt;&lt;br/&gt;      &amp;lt;goals&amp;gt;&lt;br/&gt;        &amp;lt;goal&amp;gt;compile&amp;lt;/goal&amp;gt;&lt;br/&gt;        &amp;lt;goal&amp;gt;test-compile&amp;lt;/goal&amp;gt;&lt;br/&gt;      &amp;lt;/goals&amp;gt;&lt;br/&gt;    &amp;lt;/execution&amp;gt;&lt;br/&gt;  &amp;lt;/executions&amp;gt;&lt;br/&gt;  &amp;lt;configuration&amp;gt;&lt;br/&gt;    &amp;lt;!--compile for JDK 1.5 --&amp;gt;&lt;br/&gt;    &amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;&lt;br/&gt;    &amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;&lt;br/&gt;    &amp;lt;verbose&amp;gt;false&amp;lt;/verbose&amp;gt;&lt;br/&gt;    &amp;lt;showweaveinfo&amp;gt;true&amp;lt;/showweaveinfo&amp;gt;&lt;br/&gt;    &amp;lt;!-- tell the AspectJ compiler where to find the aspects --&amp;gt;&lt;br/&gt;    &amp;lt;aspectlibraries&amp;gt;&lt;br/&gt;      &amp;lt;aspectlibrary&amp;gt;&lt;br/&gt;        &amp;lt;groupid&amp;gt;org.springframework&amp;lt;/groupid&amp;gt;  &lt;br/&gt;        &amp;lt;artifactid&amp;gt;spring-aspects&amp;lt;/artifactid&amp;gt;&lt;br/&gt;      &amp;lt;/aspectlibrary&amp;gt;&lt;br/&gt;    &amp;lt;/aspectlibraries&amp;gt;&lt;br/&gt;  &amp;lt;/configuration&amp;gt;&lt;br/&gt;&amp;lt;/plugin&amp;gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;&lt;br/&gt;Unfortunately, the plugin seems to ignore that verbose is set to false and will is quite verbose when it compiles the code. Note that this plugin does not complement, but &lt;b&gt;substitutes&lt;/b&gt; the maven-compiler-plugin!&lt;br/&gt;&lt;br/&gt;Note that you have to include aspectjtools-1.5.2, aspectjrt-1.5.2, aspectjweaver-1.5.2 and of course spring-aspects in your dependencies:&lt;br/&gt;&lt;pre&gt;&lt;br/&gt;&amp;lt;dependency&amp;gt;&lt;br/&gt;  &amp;lt;groupid&amp;gt;org.springframework&amp;lt;/groupid&amp;gt;&lt;br/&gt;  &amp;lt;artifactid&amp;gt;spring-aspects&amp;lt;/artifactid&amp;gt;&lt;br/&gt;  &amp;lt;version&amp;gt;2.0-m4&amp;lt;/version&amp;gt;&lt;br/&gt;  &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br/&gt;&amp;lt;/dependency&amp;gt;&lt;br/&gt;&amp;lt;dependency&amp;gt;&lt;br/&gt;  &amp;lt;groupid&amp;gt;aspectj&amp;lt;/groupid&amp;gt;&lt;br/&gt;  &amp;lt;artifactid&amp;gt;aspectjweaver&amp;lt;/artifactid&amp;gt;&lt;br/&gt;  &amp;lt;version&amp;gt;1.5.2&amp;lt;/version&amp;gt;&lt;br/&gt;  &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br/&gt;&amp;lt;/dependency&amp;gt;&lt;br/&gt;&amp;lt;dependency&amp;gt;&lt;br/&gt;  &amp;lt;groupid&amp;gt;aspectj&amp;lt;/groupid&amp;gt;&lt;br/&gt;  &amp;lt;artifactid&amp;gt;aspectjrt&amp;lt;/artifactid&amp;gt;&lt;br/&gt;  &amp;lt;version&amp;gt;1.5.2&amp;lt;/version&amp;gt;&lt;br/&gt;  &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br/&gt;&amp;lt;/dependency&amp;gt;&lt;br/&gt;&amp;lt;dependency&amp;gt;&lt;br/&gt;  &amp;lt;groupid&amp;gt;aspectj&amp;lt;/groupid&amp;gt;&lt;br/&gt;  &amp;lt;artifactid&amp;gt;aspectjtools&amp;lt;/artifactid&amp;gt;&lt;br/&gt;  &amp;lt;version&amp;gt;1.5.2&amp;lt;/version&amp;gt;&lt;br/&gt;  &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;&lt;br/&gt;&amp;lt;/dependency&amp;gt;&lt;br/&gt;&lt;/pre&gt;&lt;br/&gt;spring-aspects is needed as it contains the actual aspect for the @Configurable annotation which has to be woven with your classes during compilation (you can see the weaving info after the classes have been compiled if you enable showWeaveInfo as shown above). After you have adapted your project's POM accordingly you can build your application using Maven 2 and your @Configurable annotated SuperBean gets its dependencies properly injected by Spring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-115460021794629568?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/115460021794629568/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=115460021794629568' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/115460021794629568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/115460021794629568'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/08/using-spring-20s-configurable.html' title='Using Spring 2.0&apos;s @Configurable Annotation with Compile-Time Weaving'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114735184702331295</id><published>2006-05-11T14:34:00.000+02:00</published><updated>2006-10-17T14:58:07.418+02:00</updated><title type='text'>The Big Picture</title><content type='html'>Seems today is the day I discover tools to get "big pictures":&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://www.google.com/trends"&gt;Google Trends&lt;/a&gt; was released&lt;br /&gt;  &lt;li&gt;I have discovered &lt;a href="http://www.sasi.group.shef.ac.uk/worldmapper/"&gt;Worldmapper&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Google Trends is a really interesting tool. You can type in a search term and Google Trends shows you a timeline how often this term was searched for. Additionally it shows you the top ten locations where the most searches for this term originated.&lt;br /&gt;&lt;br /&gt;As a programmer I had to try it by checking the trends of a few programming languages. Seems &lt;a href="http://www.google.com/trends?q=ruby&amp;ctab=1&amp;date=all&amp;geo=all"&gt;Ruby is quite stable&lt;/a&gt;, but &lt;a href="http://www.google.com/trends?q=java%2C+ruby&amp;ctab=1&amp;date=all&amp;geo=all"&gt;compared to Java&lt;/a&gt; it has not gained much impact. However, that fact is quite understandable, given the high number of Java programmers.&lt;br /&gt;&lt;br /&gt;Comparing two popular frameworks of both languages, namely the &lt;a href="http://www.google.com/trends?q=ruby+on+rails%2C+spring+framework&amp;ctab=1&amp;date=all&amp;geo=all"&gt;Spring framework and Ruby on Rails&lt;/a&gt; leads also to interesting results (I know that these frameworks can not be considered "equivalent").&lt;br /&gt;&lt;br /&gt;The other tool, Worldmapper, is also nice. As an Austrian, I found the &lt;a href="http://www.sasi.group.shef.ac.uk/worldmapper/display.php?selected=19"&gt;Tourist Destinations Map&lt;/a&gt; especially interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114735184702331295?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114735184702331295/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114735184702331295' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114735184702331295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114735184702331295'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/05/big-picture.html' title='The Big Picture'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114724313146312913</id><published>2006-05-10T08:24:00.000+02:00</published><updated>2006-10-17T14:58:07.354+02:00</updated><title type='text'>Steel</title><content type='html'>From the &lt;a href="http://sapphiresteel.com"&gt;Steel Website&lt;/a&gt;: &lt;i&gt;"Steel is the name of a free Ruby programming environment for Visual Studio 2005."&lt;/i&gt;. Hooray! I'll keep an eye on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114724313146312913?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114724313146312913/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114724313146312913' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114724313146312913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114724313146312913'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/05/steel.html' title='Steel'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114557100017471670</id><published>2006-04-21T00:01:00.000+02:00</published><updated>2006-10-17T14:58:07.297+02:00</updated><title type='text'>Continuations</title><content type='html'>The concept of 'Continuations' is getting more and more interesting to me recently. It's seems to be an important concept in &lt;a href="http://www.seaside.st"&gt;Seaside&lt;/a&gt;, a few days ago, Stefan Matthias Aust presented a sample implementation of a &lt;a href="http://groups.google.com/group/de.comp.lang.java/browse_thread/thread/9134ac5e52bca22c/3bd217e028c1600c#3bd217e028c1600c"&gt;minimalistic contuation based Web framework&lt;/a&gt; in de.comp.lang.java, today I found a &lt;a href="http://onestepback.org/index.cgi/Tech/Programming/Kata/KataTwoCps.rdoc"&gt;continuation-based Chop-algorithm&lt;/a&gt; implementation by Jim Weirich ... . Hmm, I think I should consider putting 'Continuations' to my backlog of interesting concepts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114557100017471670?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114557100017471670/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114557100017471670' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114557100017471670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114557100017471670'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/04/continuations.html' title='Continuations'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114556997344560157</id><published>2006-04-20T23:46:00.000+02:00</published><updated>2006-10-17T14:58:07.221+02:00</updated><title type='text'>Object-oriented "chop"</title><content type='html'>Dave (you know, one of the pragmatic programmers) provides mini exercices, so-called &lt;a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Practices/Kata"&gt;Katas&lt;/a&gt;, on his blog. I have discovered them recently although he put the Katas up there in 2003. Following you find my fifth implementation of the chop-algorithm of &lt;a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Practices/Kata/KataTwo.rdoc"&gt;Kata 2&lt;/a&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class Array&lt;br /&gt;  def middle&lt;br /&gt;    size / 2&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def partition(target)&lt;br /&gt;    in_lower?(target) ? self[0 ... middle] : self [middle .. -1]&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def in_lower?(target)&lt;br /&gt;    self[middle] &gt; target&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def offset(target)&lt;br /&gt;    in_lower?(target) ? 0 : middle&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def chop(target, offset = 0)&lt;br /&gt;    if (size &lt;= 1)&lt;br /&gt;      self[0] == target ? offset : -1&lt;br /&gt;    else&lt;br /&gt;      partition(target).chop(target, offset(target) + offset)&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def chop(target, items)&lt;br /&gt;  items.chop(target)&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Did I already mention I really like Ruby's open classes? :) My implementation was initially inspired by &lt;a href="http://onestepback.org/index.cgi/Tech/Programming/Kata/KataTwoRecursive.rdoc"&gt;Jim Weirich's recursive implementation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114556997344560157?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114556997344560157/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114556997344560157' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114556997344560157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114556997344560157'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/04/object-oriented-chop.html' title='Object-oriented &quot;chop&quot;'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114356504524646320</id><published>2006-03-28T18:53:00.000+02:00</published><updated>2006-10-17T14:58:07.155+02:00</updated><title type='text'>Comparison of Web Frameworks</title><content type='html'>&lt;a href="http://www.virtuas.com/files/JavaWebFrameworkSweetSpots.pdf"&gt;http://www.virtuas.com/files/JavaWebFrameworkSweetSpots.pdf&lt;/a&gt; provides an interesting comparison of Java Web frameworks. The respective authors describe their own frameworks but also tell their thoughts about competing Java Web frameworks - and about RoR.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114356504524646320?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114356504524646320/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114356504524646320' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114356504524646320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114356504524646320'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/03/comparison-of-web-frameworks.html' title='Comparison of Web Frameworks'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-114234547561630062</id><published>2006-03-14T15:06:00.000+01:00</published><updated>2006-10-17T14:58:07.090+02:00</updated><title type='text'>"Automated debugging"</title><content type='html'>I may give it a try when I do Java programming again:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.st.cs.uni-sb.de/eclipse/"&gt;Plugin homepage&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.faz.net/s/RubE2C6E0BCC2F04DD787CDC274993E94C1/Doc~E86A82A38CEA145A187ECFF35CBF1E6E3~ATpl~Ecommon~Scontent.html"&gt;Article on faz.net (in German)&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-114234547561630062?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/114234547561630062/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=114234547561630062' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114234547561630062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/114234547561630062'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/03/automated-debugging.html' title='&quot;Automated debugging&quot;'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113690988270707220</id><published>2006-01-10T17:18:00.000+01:00</published><updated>2006-10-17T14:58:06.957+02:00</updated><title type='text'>Active Record vs. Og</title><content type='html'>Currently, I'm experimenting with the two most popular Ruby ORM APIs, namely Active Record and Og (by the way, convincing Og to work properly was quite time-consuming due its outdated documentation...). However, the philosophy of these two libraries are quite contrary. The most important differences I have spotted so far are:&lt;br/&gt;&lt;table&gt;&lt;br/&gt;&lt;th&gt;Rails&lt;/th&gt;&lt;th&gt;Og&lt;/th&gt;&lt;br/&gt;&lt;tr&gt;&lt;td&gt;Comprehensive documentation&lt;/td&gt;&lt;td&gt;Documentation is partially outdated&lt;/td&gt;&lt;/tr&gt;&lt;br/&gt;&lt;tr&gt;&lt;td&gt;Database Driven (no need to define properties, all metadata is fetched from the database)&lt;/td&gt;&lt;td&gt;Object driven&lt;/td&gt;&lt;/tr&gt;&lt;br/&gt;&lt;tr&gt;&lt;td&gt;Common base class for all persistent classes (ActiveRecord::Base)&lt;/td&gt;&lt;td&gt;No common base class needed&lt;/td&gt;&lt;/tr&gt;&lt;br/&gt;&lt;tr&gt;&lt;td&gt;Default naming convention is "Name" (singular) for classes and "names" (plural) for database tables&lt;/td&gt;&lt;td&gt;Default naming convention is "Name" for classes and "ogname" for database tables&lt;/td&gt;&lt;/tr&gt;&lt;br/&gt;&lt;/table&gt;&lt;br/&gt;What I like most about Og is, that it doesn't force you to inherit from a common base class. Actually, this was the most important reason for me to try out Og at all.&lt;br/&gt;&lt;br/&gt;Active Record tries hard to help you produce readable code (and table names ;)). Personally, I like Active Record's pluralization approach very much. It looks like that after a few hours, Active Record's API appeals more to me than Og's. However, my opinion could change after gaining more experience with both libraries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113690988270707220?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113690988270707220/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113690988270707220' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113690988270707220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113690988270707220'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/01/active-record-vs-og.html' title='Active Record vs. Og'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113649749764261080</id><published>2006-01-05T22:33:00.000+01:00</published><updated>2006-10-17T14:58:06.891+02:00</updated><title type='text'>Ruby Gems on Ubuntu Linux</title><content type='html'>I've just installed the latest and greatest version of Ruby on my Linux box. So far so good. However, installing Rubygems was not straightforward: The setup aborted with a &lt;pre&gt;No such file to load -- zlib (LoadError)&lt;/pre&gt; What gives? Well, some digging revealed the problem: the packages zlib1g and zlib1g-dev were missing on my system. So, I got them with apt-get. Unfortunately, that was not the whole story. The ruby bindings for zlib were missing too. Fortunately, a Japenese rubyist &lt;a href="http://shiroiwa.blog31.fc2.com/blog-entry-1.html"&gt;came to rescue&lt;/a&gt; and made my day. In short: &lt;pre&gt;&lt;br /&gt;sudo apt-get install zlib1g&lt;br /&gt;sudo apt-get install zlib1g-dev&lt;br /&gt;cd ruby-1.8.4/ext/zlib&lt;br /&gt;ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;/pre&gt; and you are ready to run &lt;pre&gt;cd ../../../rubygems-0.8.11&lt;br /&gt;ruby setup.rb&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113649749764261080?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113649749764261080/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113649749764261080' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113649749764261080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113649749764261080'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/01/ruby-gems-on-ubuntu-linux.html' title='Ruby Gems on Ubuntu Linux'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113631635631169045</id><published>2006-01-03T20:13:00.000+01:00</published><updated>2006-10-17T14:58:06.757+02:00</updated><title type='text'>My wireless adapter and Linux: An odyssey</title><content type='html'>Today, an odyssey ended: I finally managed to get my Linksys WUSB 54g v4 running nicely on Ubuntu (Breezy Badger). According to current best practices, I have configured my router to use WPA encryption. As I didn't want to use the more insecure WEP just because it's straighforward to configure on Linux I have chosen the hard way. It took me several days, three Ubuntu installations, and quite a bit of experimenting and reading. However, now it's time to sit back and to document my heroic deeds. ;) Enough said, let's start:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Install a fresh Breezy Badger.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Install the package wireless-tools. You can install them with Synaptic as they are located on the CD.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://rt2x00.serialmonkey.com"&gt;Download the driver&lt;/a&gt;. It's *not* the rt2500 driver as you may find in different tutorials, it's the rt2570 driver. That's a slight but significant difference. The rt2570 driver is fine if you have an USB network adapter, the rt2500 one is obviously suited for PCI based adapters. I got yesterday's &lt;a href="http://rt2x00.serialmonkey.com/rt2500-cvs-daily.tar.gz"&gt;CVS snapshot&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Before you even try to compile the module, get gcc-3.4. You will need gcc-3.4 because modules have to be compiled with the same compiler version as your kernel has been. Unfortunately, Breezy Badger's kernel has been compiled with gcc-3.4 but the CD contains only gcc-3.3 and gcc-4.0. However, a simple &lt;pre&gt;apt-get install gcc-3.4&lt;/pre&gt; will not do as we have no network connection yet. ;) Therefore, get the deb's for gcc-3.4, gcc-3.4-base and cpp-3.4 by using another workstation or boot up your Windows (you haven't kicked it of your hard drive yet, have you?). I have found them via &lt;a href="http://www.rpmseek.com"&gt;www.rpmseek.com&lt;/a&gt;. Next, install them with dpkg according to their dependencies. You may need other dependencies as well. However, I haven't needed them because gcc-4.0 was already installed on my system due to my earlier experiments with the driver.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now unzip the driver to any directory, cd into this directory. Then cd into Module.&lt;br /&gt;&lt;li&gt;Time for some bugfixing (only if you need WPA). Open the file rtusb_info.c and apply the following fix (in short, remove the constant IW_PRIV_SIZE_FIXED which is located around the string "wpapsk"):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;--- rtusb_info.c.orig 2005-12-14 00:54:26.000000000 +0100&lt;br /&gt;+++ rtusb_info.c 2005-12-14 00:14:14.000000000 +0100&lt;br /&gt;@@ -1290,7 +1290,7 @@&lt;br /&gt;{ RTPRIV_IOCTL_WEPSTATUS,&lt;br /&gt;IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "enc"},&lt;br /&gt;{ RTPRIV_IOCTL_WPAPSK,&lt;br /&gt;- IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | MAX_WPAPSK_STRING,&lt;br /&gt;+ IW_PRIV_TYPE_CHAR | MAX_WPAPSK_STRING,&lt;br /&gt;0, "wpapsk"}, // Variable arg count&lt;br /&gt;{ RTPRIV_IOCTL_PSM,&lt;br /&gt;IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "psm"}, // Variable arg count&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For more information see the &lt;a href="http://rt2x00.serialmonkey.com/phpBB2/viewtopic.php?t=673&amp;sid=99c53cc248482a355e82ad270a904cd7"&gt;driver project's forum&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now, you're really ready to compile your module. Run &lt;pre&gt;sudo make&lt;/pre&gt; followed by &lt;pre&gt;sudo make install&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Your module is now located in /lib/modules/2.6.12/extra. cd to /lib/modules/2.6.12-9-386/kernel/drivers/net/wireless, create a new directory rt2570 and copy the file rt2570.ko from /lib/modules/2.6.12/extra into this directory.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open /etc/modprobe.conf as root and add this line: &lt;pre&gt;include /etc/modprobe.d/&lt;/pre&gt; Otherwise you will get warnings at bootup.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Go to /etc/modutils/ and create the file rt2570. Open it with an editor and insert &lt;pre&gt;alias rausb0 rt2570&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Almost done. Now we are ready to configure our network card. Open the file /etc/network/interfaces. The following settings worked for me. If you have other settings than me, get these weird integer values from the source (again, see rtusb_info.c).&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mapping hotplug&lt;br /&gt; script grep&lt;br /&gt; map rausb0&lt;br /&gt;&lt;br /&gt;auto rausb0&lt;br /&gt;&lt;br /&gt;#your WLAN card&lt;br /&gt;iface rausb0 inet static&lt;br /&gt; address 192.168.1.104&lt;br /&gt; netmask 255.255.255.0&lt;br /&gt; network 192.168.1.0&lt;br /&gt; broadcast 192.168.1.255&lt;br /&gt; gateway 192.168.1.1&lt;br /&gt; #from the source code: means WPAPSK&lt;br /&gt; pre-up iwpriv rausb0 auth 3&lt;br /&gt; #from the source code: means CIPHER_TKIP&lt;br /&gt; pre-up iwpriv rausb0 enc 3&lt;br /&gt; pre-up iwpriv rausb0 wpapsk your_wpakey_as_you_entered_it_during_router_configuration&lt;br /&gt; up iwconfig rausb0 essid name_of_your_wlan&lt;br /&gt; up iwconfig rausb0 rate 54M&lt;br /&gt; up iwconfig rausb0 key open&lt;br /&gt; up route add -net default netmask 0.0.0.0 gw 192.168.1.1 dev rausb0&lt;br /&gt; dns-nameservers 192.168.1.1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now issue &lt;pre&gt;sudo ifconfig rausb0 up&lt;/pre&gt;If it doesn't work you may try to restart your system and cross your fingers. ;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Just in case you need to perform troubleshooting: With iwconfig you can check WLAN specific settings. Especially interesting is the link quality. Obviously, it should be greater than 0.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113631635631169045?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113631635631169045/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113631635631169045' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113631635631169045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113631635631169045'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/01/my-wireless-adapter-and-linux-odyssey.html' title='My wireless adapter and Linux: An odyssey'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113622128237376375</id><published>2006-01-02T18:03:00.000+01:00</published><updated>2006-10-17T14:58:06.677+02:00</updated><title type='text'>What a sad day</title><content type='html'>Today, an ice skating hall in Bad Reichenhall (a small town in Bavaria, just a few kilometers away from Salzburg) collapsed due to heavy snow fall (see &lt;a href="http://www.orf.at/060102-95027/index.html"&gt;ORF news&lt;/a&gt;). Sadly, one person already died in this accident. Just by coincidence, I was there a few days ago. Such news make me a bit contemplative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113622128237376375?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113622128237376375/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113622128237376375' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113622128237376375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113622128237376375'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2006/01/what-sad-day.html' title='What a sad day'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113491768105692435</id><published>2005-12-18T15:37:00.000+01:00</published><updated>2006-10-17T14:58:06.013+02:00</updated><title type='text'>Batch Update</title><content type='html'>Hooray, it's my first blog entry since, hmm, I don't even remember when I blogged the last time. ;) However, I had very little spare time this month: I got a new job. To make things even 'worse', it's Advent, which means extreme-shopping and freezing your buns off at the Christmas markets in Salzburg. By the way, chances are good for the first white Christmas since several years, I think.&lt;br /&gt;&lt;br /&gt;Last but not least I'm now part of the Spring ecosystem. Together with Costin Leau, I develop the Spring support for the object-oriented database system db4o. So far, I have contributed a (very) small example, a DAO support class and some minor bugfixes. Currently, I'm working on a more complex recipe manager sample application which is not yet available in the repository. You can get the source code at the &lt;a href="http://db4o-spring.dev.java.net"&gt;project page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113491768105692435?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113491768105692435/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113491768105692435' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113491768105692435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113491768105692435'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/12/batch-update.html' title='Batch Update'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113232371273638451</id><published>2005-11-18T15:20:00.000+01:00</published><updated>2006-10-17T14:58:05.953+02:00</updated><title type='text'>What's smart?</title><content type='html'>&lt;a href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert2005113320118.gif"  &gt;Today's Dilbert&lt;/a&gt; is nice. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113232371273638451?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113232371273638451/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113232371273638451' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113232371273638451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113232371273638451'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/11/whats-smart.html' title='What&apos;s smart?'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113170720526539327</id><published>2005-11-11T12:04:00.000+01:00</published><updated>2006-10-17T14:58:05.896+02:00</updated><title type='text'>Ruby rocks</title><content type='html'>First, let me show some code:&lt;br /&gt;&lt;pre class="code"&gt;require 'magic'&lt;br /&gt;&lt;br /&gt;a = Person.new&lt;br /&gt;a.first_name = "Daniel"&lt;br /&gt;a.last_name = "Mitterdorfer"&lt;br /&gt;&lt;br /&gt;puts "My name is #{a.first_name} #{a.last_name}."&lt;/pre&gt;&lt;br /&gt;Well, that's not that interesting, but what if I tell you that I have not defined #first_name and #last_name? To be honest, there is even no definition of Person at all. &lt;br /&gt;&lt;br /&gt;How does it work? The code that makes this example work is in magic.rb. It utilizes Module#contant_missing to define a proxy for missing classes and Proxy#method_missing for the dynamic definition of methods. Unfortunately, magic.rb is, - hmm - let's say 'quite in progress' and not very sophisticated yet. However, with a more sophisticated version of magic.rb I could probably write a DSL for the insertion of arbitrary records into a database or an O/R mapping layer that does not need any classes. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113170720526539327?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113170720526539327/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113170720526539327' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113170720526539327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113170720526539327'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/11/ruby-rocks_113170720526539327.html' title='Ruby rocks'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113169936409893537</id><published>2005-11-11T09:57:00.000+01:00</published><updated>2006-10-17T14:58:05.729+02:00</updated><title type='text'>iTunes rant</title><content type='html'>Ever wanted to upload your (Swedish) course to your iPod? Well, could be time-consuming to copy more than 2.600 files to your iPod with iTunes. I had no time so far to figure out what's going on but the upload is definitely too slow yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113169936409893537?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113169936409893537/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113169936409893537' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113169936409893537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113169936409893537'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/11/itunes-rant.html' title='iTunes rant'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113084769983529539</id><published>2005-11-01T13:19:00.000+01:00</published><updated>2006-10-17T14:58:05.672+02:00</updated><title type='text'>Thanks Oracle</title><content type='html'>Recently, Oracle released an &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html" target="blank"&gt;'Express' version (Beta)&lt;/a&gt; of their database 10g for free. Maybe I'll give their 10g Express a try.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113084769983529539?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113084769983529539/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113084769983529539' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113084769983529539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113084769983529539'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/11/thanks-oracle.html' title='Thanks Oracle'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113050162511598623</id><published>2005-10-28T14:12:00.000+02:00</published><updated>2006-10-17T14:58:05.613+02:00</updated><title type='text'>Getting spammed</title><content type='html'>Boy, do I hate spam. It's my first day as a blogger and my blog gets already spammed. As a consequence, I have turned off comments for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113050162511598623?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113050162511598623/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113050162511598623' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113050162511598623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113050162511598623'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/10/getting-spammed.html' title='Getting spammed'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113049404713511666</id><published>2005-10-28T12:05:00.000+02:00</published><updated>2006-10-17T14:58:05.547+02:00</updated><title type='text'>Men jag har litet bråttom</title><content type='html'>You might ask yourself what this phrase - the title of my blog - means. It is Swedish and means "I am in a hurry". Well, it's neither true that I am usually in a hurry nor that I am a hectic person. In fact, it was just the first Swedish phrase that came to my mind when I created this blog (Yes, I have recently started learning Swedish).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113049404713511666?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113049404713511666/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113049404713511666' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113049404713511666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113049404713511666'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/10/men-jag-har-litet-brttom.html' title='Men jag har litet bråttom'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113049153180417425</id><published>2005-10-28T11:25:00.001+02:00</published><updated>2006-10-17T14:58:05.477+02:00</updated><title type='text'>Herr Lehmann</title><content type='html'>I really read a lot. In fact, I read everything I get hold off. Recently, I read "Herr Lehmann", a book about a guy in West Berlin right before the German Unification. The cite "Nicht, dass ich wüsste" ("Not to my knowledge") was most funny to me. Herr Lehmann was caught by the Eastern German police for smuggling 500 Mark for his grandmother in Eastern Berlin. During the questioning he used this phrase quite often which made the police officer see red. Go, &lt;a href="http://www.amazon.de/exec/obidos/ASIN/3442453305" target="blank"&gt;read it&lt;/a&gt; if you understand German.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113049153180417425?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113049153180417425/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113049153180417425' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113049153180417425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113049153180417425'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/10/herr-lehmann_28.html' title='Herr Lehmann'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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-18388864.post-113048996768808022</id><published>2005-10-28T10:57:00.000+02:00</published><updated>2006-10-17T14:58:05.360+02:00</updated><title type='text'>puts "Hello World!"</title><content type='html'>A lot of people all over the world have an own blog. Today I felt I need one too. What I will write about? As I am an(other) IT guy, my posts will contain mostly IT related information. Enough for now, to be continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18388864-113048996768808022?l=dmitterdorfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dmitterdorfer.blogspot.com/feeds/113048996768808022/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18388864&amp;postID=113048996768808022' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113048996768808022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18388864/posts/default/113048996768808022'/><link rel='alternate' type='text/html' href='http://dmitterdorfer.blogspot.com/2005/10/puts-hello-world.html' title='puts &quot;Hello World!&quot;'/><author><name>Daniel Mitterdorfer</name><uri>http://www.blogger.com/profile/02091585735817274651</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>
