Freitag, August 08, 2008

Big Band Videos von tabtuwab

Gerade habe ich einige tabtuwab Videos (Christoph's Band) entdeckt, mein persönliches Best of:

”It don’t mean a thing”

”Mr. zoot suit”

Zur Biografie der Sängerin Katya Kazankova.

Labels:

Freitag, Juli 25, 2008

das (Wochen)ende naht

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...

Am Abend bin ich wieder in München und gehe ich mit einem sehr guten Freund in die Jazzbar Vogler. Ich bin schon gespannt wie's dort wird und freue mich auf einen interessanten Abned.

Labels:

Montag, Juli 21, 2008

Lied des Tages

Heute auf Bayern 3 gehört: I Kissed a Girl von Katy Perry.

Neu in München

[photo © by ruslik]

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 ;-)).

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.

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.

Eine kurze Rückschau:

Mai:

  • Wohnung in München gefunden

Juni:

  • 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!
  • Übersiedelt
  • Küche gekauft und liefern lassen
  • Darüber gewundert wie man einen Wasserzähler rückwärts(!) einbauen kann (so geschehen in unser neuen Wohnung).
  • Diverse An- und Abmeldungen

Juli:

  • Auf meine Masterprüfung gelernt und sogar mit ausgezeichnetem Erfolg bestanden. :-)
  • Kündigung bei meinem Arbeitgeber in Salzburg eingereicht
  • Küche montieren lassen
  • Wieder: diverse An- und Abmeldungen
  • Alte Wohnung für die Übergabe vorbereitet (Malen, etc.)

Eine Erfahrung, die ich in den letzten Wochen gemacht habe: Auf deutsche Handwerker kann man sich nicht verlassen (siehe unser Rückwärtswasserzähler):

  • 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)
  • 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).
  • 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.
  • 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.

Im August habe ich noch Urlaub. Die Zeit werde ich nutzen um mich zu erholen, München zu erkunden und vielleicht um die Sprache zu lernen ;-). 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.

Labels:

Montag, Juni 09, 2008

Man glaubt es kaum...

... 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.

Labels:

Montag, April 23, 2007

Just relax...

Are you stressed by all the Web 2.0 communities you are part of? Posting, blogging, discussing, ... Now you get a place to relax: alleinr.de ;-)

Labels: , ,

Donnerstag, April 12, 2007

Sync your GMail calendar with Thunderbird (Lightning)

bfish.xaedalus.net 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. SpanningSync 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.

Labels: , ,

Freitag, März 16, 2007

Make irb work with special characters on Windows

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 solution has been previously discussed on Ruby-talk.

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.

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

touch .inputrc"
touch .ircrc"

Afterwards, everything else went fine.

Labels: ,

Dienstag, Februar 13, 2007

Geschafft!

Das letzte Monat war ziemlich anstrengend. Die Formel dazu: Arbeiten + Studieren + 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.

Labels:

Dienstag, Jänner 23, 2007

Upgrading to Vista

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 Windows Vista Hardware Assessment starts in 6 days. So, if the check succeeds I'll may document my migration here.

Labels:

Montag, Jänner 22, 2007

Klassentreffen



Vergangenen Samstag hatten wir von der HTL 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. ;)

Eines habe ich an diesem Abend auch gelernt: Geh niemals mit leerem Magen in ein Nobelrestaurant. Die Portionen sind winzig - die Preise sind's nicht.

Labels:

Sonntag, Jänner 21, 2007

Personal posts now in German

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.

Labels:

Montag, Jänner 01, 2007

Happy New Year



Recently, I have created a Flickr account to present some of my photos. Have fun!

Labels:

Mittwoch, Dezember 20, 2006

Quick Update

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 ;)).


  • I bought a Mac Book: Although a friend of mine experiences really tough problems with his Mac Book (Pro) mine is running perfectly since I bought it a few weeks ago.
  • 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.
  • 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. :)
  • Maybe we will get Jira soon at work. I am looking forward to it. I had the pleasure to evaluate a few bugtracking systems and Jira is really amazing!

Labels:

Mittwoch, November 22, 2006

Why do we often pick on Windows?

Other operating systems are a bit strange too. Just take Apple's baby - Mac OS X: Today I read a post on www.lifeclever.com about a shortcut to create ZIP files on your Mac. The fourth step in the tutorial made me think:

For the shortcut to take effect, log out or restart your computer.

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.

Labels:

Donnerstag, Oktober 26, 2006

Adopting GTD

Recently, I adopted the Getting Things Done (GTD) approach 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.

As I dislike real, physical lists on paper, I use GTDTiddlyWiki. 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.

Update: I checked GTDTiddlyWiki's Firefox 2.0 compatibility today. Fortunately, it works now.

Labels: ,

Dienstag, Oktober 17, 2006

Subtle self-praise ;)

The following thread appeared today on Ruby-talk (shortened):

Peter: [Problem description] I have already implemented it but I don't think so it's a state-of-the art solution ;)
Alex: how about this: input.each{|i| i.each_with_index{|x,j| (result[j] ||= []) << x}}
Peter: Thx for the solution! Mine was totally the same [...]
Alex: You are simply brilliant ;)

Labels: ,

Mittwoch, September 06, 2006

Ubuntu + UT

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...

Donnerstag, August 03, 2006

Using Spring 2.0's @Configurable Annotation with Compile-Time Weaving

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.

People already blog about it. It is already quite well documented. So, let's start with some code:


package at.mitterdorfer.blog;

import org.springframework.beans.factory.annotation;

@Configurable
public class MySuperBean {
private Foo foo;

public MySuperBean() {
}

//Spring will invoke this method
//after somebody calls new MySuperBean();
public void setFoo(Foo foo) {
this.foo = foo;
}
}


Next, there's your Application Context file:


...
<!-- ensure the AnnotationBeanConfigurerAspect
gets configured by Spring -->
<aop:spring-configured/>

<bean id="foo" class="at.mitterdorfer.blog.Foo"/>

<bean class="at.mitterdorfer.blog.MySuperBean">
<property name="foo" ref="foo"/>
</bean>
...


Note that you have to use the new Schema based configuration for your application context file. For a more detailed introduction about @Configurable and its configuration in the application context file, please refer to the Spring reference documentation.

As this feature uses AspectJ, 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 Spring reference documentation. 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.

As I use Maven2 as my build tool I searched a plugin that invokes the AspectJ compiler for me. Although such a plugin 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:

mvn package install

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 AspectJ project homepage 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:


<plugin>
<groupid>org.codehaus.mojo</groupid>
<artifactid>aspectj-maven-plugin</artifactid>
<version>1.0-beta-2-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<!--compile for JDK 1.5 -->
<source>1.5</source>
<target>1.5</target>
<verbose>false</verbose>
<showweaveinfo>true</showweaveinfo>
<!-- tell the AspectJ compiler where to find the aspects -->
<aspectlibraries>
<aspectlibrary>
<groupid>org.springframework</groupid>
<artifactid>spring-aspects</artifactid>
</aspectlibrary>
</aspectlibraries>
</configuration>
</plugin>


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 substitutes the maven-compiler-plugin!

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:

<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-aspects</artifactid>
<version>2.0-m4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupid>aspectj</groupid>
<artifactid>aspectjweaver</artifactid>
<version>1.5.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupid>aspectj</groupid>
<artifactid>aspectjrt</artifactid>
<version>1.5.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupid>aspectj</groupid>
<artifactid>aspectjtools</artifactid>
<version>1.5.2</version>
<scope>compile</scope>
</dependency>

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.

Donnerstag, Mai 11, 2006

The Big Picture

Seems today is the day I discover tools to get "big pictures":



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.

As a programmer I had to try it by checking the trends of a few programming languages. Seems Ruby is quite stable, but compared to Java it has not gained much impact. However, that fact is quite understandable, given the high number of Java programmers.

Comparing two popular frameworks of both languages, namely the Spring framework and Ruby on Rails leads also to interesting results (I know that these frameworks can not be considered "equivalent").

The other tool, Worldmapper, is also nice. As an Austrian, I found the Tourist Destinations Map especially interesting.

Mittwoch, Mai 10, 2006

Steel

From the Steel Website: "Steel is the name of a free Ruby programming environment for Visual Studio 2005.". Hooray! I'll keep an eye on it.

Freitag, April 21, 2006

Continuations

The concept of 'Continuations' is getting more and more interesting to me recently. It's seems to be an important concept in Seaside, a few days ago, Stefan Matthias Aust presented a sample implementation of a minimalistic contuation based Web framework in de.comp.lang.java, today I found a continuation-based Chop-algorithm implementation by Jim Weirich ... . Hmm, I think I should consider putting 'Continuations' to my backlog of interesting concepts.

Donnerstag, April 20, 2006

Object-oriented "chop"

Dave (you know, one of the pragmatic programmers) provides mini exercices, so-called Katas, 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 Kata 2:

class Array
def middle
size / 2
end

def partition(target)
in_lower?(target) ? self[0 ... middle] : self [middle .. -1]
end

def in_lower?(target)
self[middle] > target
end

def offset(target)
in_lower?(target) ? 0 : middle
end

def chop(target, offset = 0)
if (size <= 1)
self[0] == target ? offset : -1
else
partition(target).chop(target, offset(target) + offset)
end
end
end

def chop(target, items)
items.chop(target)
end


Did I already mention I really like Ruby's open classes? :) My implementation was initially inspired by Jim Weirich's recursive implementation.

Dienstag, März 28, 2006

Comparison of Web Frameworks

http://www.virtuas.com/files/JavaWebFrameworkSweetSpots.pdf 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.

Dienstag, März 14, 2006

"Automated debugging"

I may give it a try when I do Java programming again:

Dienstag, Jänner 10, 2006

Active Record vs. Og

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:






RailsOg
Comprehensive documentationDocumentation is partially outdated
Database Driven (no need to define properties, all metadata is fetched from the database)Object driven
Common base class for all persistent classes (ActiveRecord::Base)No common base class needed
Default naming convention is "Name" (singular) for classes and "names" (plural) for database tablesDefault naming convention is "Name" for classes and "ogname" for database tables

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.

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.

Donnerstag, Jänner 05, 2006

Ruby Gems on Ubuntu Linux

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
No such file to load -- zlib (LoadError)
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 came to rescue and made my day. In short:

sudo apt-get install zlib1g
sudo apt-get install zlib1g-dev
cd ruby-1.8.4/ext/zlib
ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib
make
sudo make install
and you are ready to run
cd ../../../rubygems-0.8.11
ruby setup.rb

Dienstag, Jänner 03, 2006

My wireless adapter and Linux: An odyssey

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:


  1. Install a fresh Breezy Badger.

  2. Install the package wireless-tools. You can install them with Synaptic as they are located on the CD.

  3. Download the driver. 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 CVS snapshot.

  4. 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
    apt-get install gcc-3.4
    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 www.rpmseek.com. 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.

  5. Now unzip the driver to any directory, cd into this directory. Then cd into Module.
  6. 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"):

    --- rtusb_info.c.orig 2005-12-14 00:54:26.000000000 +0100
    +++ rtusb_info.c 2005-12-14 00:14:14.000000000 +0100
    @@ -1290,7 +1290,7 @@
    { RTPRIV_IOCTL_WEPSTATUS,
    IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "enc"},
    { RTPRIV_IOCTL_WPAPSK,
    - IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | MAX_WPAPSK_STRING,
    + IW_PRIV_TYPE_CHAR | MAX_WPAPSK_STRING,
    0, "wpapsk"}, // Variable arg count
    { RTPRIV_IOCTL_PSM,
    IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "psm"}, // Variable arg count

    For more information see the driver project's forum.

  7. Now, you're really ready to compile your module. Run
    sudo make
    followed by
    sudo make install

  8. 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.

  9. Open /etc/modprobe.conf as root and add this line:
    include /etc/modprobe.d/
    Otherwise you will get warnings at bootup.

  10. Go to /etc/modutils/ and create the file rt2570. Open it with an editor and insert
    alias rausb0 rt2570

  11. 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).

    mapping hotplug
    script grep
    map rausb0

    auto rausb0

    #your WLAN card
    iface rausb0 inet static
    address 192.168.1.104
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    #from the source code: means WPAPSK
    pre-up iwpriv rausb0 auth 3
    #from the source code: means CIPHER_TKIP
    pre-up iwpriv rausb0 enc 3
    pre-up iwpriv rausb0 wpapsk your_wpakey_as_you_entered_it_during_router_configuration
    up iwconfig rausb0 essid name_of_your_wlan
    up iwconfig rausb0 rate 54M
    up iwconfig rausb0 key open
    up route add -net default netmask 0.0.0.0 gw 192.168.1.1 dev rausb0
    dns-nameservers 192.168.1.1


  12. Now issue
    sudo ifconfig rausb0 up
    If it doesn't work you may try to restart your system and cross your fingers. ;)

  13. 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.

Montag, Jänner 02, 2006

What a sad day

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 ORF news). 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.