03.12.2009mnmal

I think this summarizes everything.

03.12.2009Charles Lewinsky äussert sich in einem Essay über das Minarettverbot, den ewigen Populismus und Roger Köppel

http://www.tagesanzeiger.ch/kultur/buecher/Jetzt-muessen-wir-sogar-Koeppels-triumphierende-Ironie-schlucken/story/10202730

Wir haben den Kampf gegen diesen eidenbenzischen Pseudodenk nie wirklich aufgenommen, weil wir uns nicht vorstellen konnten, dass eine Mehrheit solche logischen Bocksprünge mithüpfen würde.

11.11.2009The Go Programming Language

Today I came across a new programming language called Go, developed by Google

It is meant to be fast, but still garbage collected and type safe. They use pointers, but no pointer arithmetic.

The questions remains: Do we really need another C++-like language?

See Yourself:

09.11.2009Extract .tar.gz to specific directory

I want to extract all files form a “.tar.gz” file to a specific directory (not the current).

When you ask Google you quickly come up with the elegant solution:

$ gzip -cd /some/dir/something.tar.gz | tar -xvf - -C /specific/directory

Somehow my development machine doesn’t accept this, as I keep getting the error:

File -C not present in the archive.
File /specific/directory not present in the archive.

I couldn’t find the answer, but as usual many ways lead to Rome. I’m able to extract the files to the current directory using

$ gzip -cd /some/dir/something.tar.gz | tar -xvf -

Therefore I can simply change the current directory to my specific directory and after the extraction return to the prior directory (I need to unzip the file in a script, therefore I need a generic approach). When we put all that together the following finally works:

$ cd /specific/directory && gzip -cd /some/dir/something.tar.gz | tar -xvf - && cd -

09.11.2009WWFM VI in Zürich

Am nächsten Wochenende (14. November 2009) ist wieder mal ein World-Wide-Flash-Mob (WWFM) der Geocache-Anhänger. WWFM
Geocaching

Dieser Event steht ganz im Zeichen der kalten Jahreszeit und wird mit Wunderkerzen und Räbeliechtli bestritten. Der Clou ist etwas Verwirrung und Verwunderung zu stiften und natürlich sich mal wieder zu treffen.

Solche Event-Caches sind immer eine wunderbare Gelegenheit sich über Caches zu unterhalten, mal Leute zu sehen die man sonst nur liest oder einfach in der Gruppe eine lustige Aktion durchzuführen.

Also alle Cacher da draussen: Kommt auch nach Zürich, oder besucht einen der 150 anderen WWFM Event Caches in eurer Nähe!

25.10.2009BarCamp Rapperswil

Das gestrige BarCamp in Rapperswil hat riesigen Spass gemacht.

BarCamp
Rapperswil

Als erstes will ich mich gleich bei Corsin als Organisator bedanken, war echt super. Das BarCamp fand in der Hochschule für Technik Rapperswil (HSR) statt, von dem her ein für mich vertrautes Terrain. Es war ein Treffen technisch interessierter Leute über die unterschiedlichsten Facetten der IT. Da gab es einen Speech von Urs (ComMetrics) über Blogs, Social Media und deren Messbarkeit. Dann war Yvonne-Anne von Fybit vor Ort um ihr Produkt RIATrax vorzustellen (Rich Internet Applications in Pure Java), oder Frank, welcher eine Diskussion leitete über die Zukunft des Web 2.0, welche Konzepte überleben, welche nicht und warum.

Ein weiteres Highlight war die Präsentation von Markus Stolze (Professor an der HSR) über den Multi-Touch Table, welcher an der HSR mitentwickelt wurde. Multi-Touch
Table

Alles in allem war es ein Event unter Gleichgesinnten um sich auszutauschen. Wir haben viel gelacht (z.B. über das Hashtag #bcrappi) und nachgedacht, kritisch betrachtet und kommentiert.

Ich ging mit vielen neuen Ideen und Eindrücken nach Hause, genau so sollte das sein. Ich freue mich bereits auf nachfolgende BarCamps, ist sicher nicht das letzte Mal, dass ich da war.

Die Bilder zum Event gibts auf Flickr.

PS: I don’t want to miss to mention Joel our Swedish guy, who made this BarCamp truly international ;-)

23.10.2009PostFinance SMS Service

Vor einigen Tagen bekam ich Post von PostFinance, meinem Kontoverwalter der Wahl.

Darin wurde ihr neuer SMS Service angepriesen (mit einem etwas arg lustigen Comic)

Die Idee an sich gefällt mir:

  1. Ich kann jederzeit von unterwegs Zahlungen tätigen, vor allem spannend wenn ich kein Bargeld da habe, und ich welches von einem Freund bekomme (“Gib mir doch 100.-, ich überweise es dir aufs Konto”)
  2. Jederzeit kann mit einem SMS der aktuelle Konto-Stand geprüft werden (ohne E-Banking und Anstehen am Postomat)
  3. Wurde XY schon bezahlt? Man kann sich die letzten 5 Bewegungen auf dem Konto per SMS schicken lassen.

So funktionierts

Über das E-Banking kann man sich bequem für den Service anmelden (unter Service -> SMS), dann bekommt man einen Prüfcode aufs Handy, und registriert diesen online.

Dann können einfach Keywords an die Nummer 474 geschickt werden: SALDO = aktueller Saldo (=1 SMS)\ BEWEGUNGEN = letzte 5 Bewegungen ZAHLE CHF “Betrag” AN “Kontonummer” “Text” = Überweisung

Beispiel: ZAHLE CHF 50 AN 85-4887-4 Mittagessen, Gruss Stefan

Echt praktisch!

23.10.2009Insert text at top of a file

If you want to insert text at the end of a file (“append”) you can simply use:

 $ echo "test" >> my_file.txt

which then adds “test” on a new line at the end of the “my_file.txt”. In my case I had to insert text at top of a file. If you start to google for that you discover quite fancy solution like using vi or some sed magic.

For me this was all too much. I have a file with quite static text in it. At the end of a shell script I want to insert the content of this file at the beginning of a logfile created by the script.

When using files it’s getting easier:

 $ cat my_static_file.txt logfile.txt > temp_logfile.txt 
 $ mv temp_logfile.txt logfile.txt

But my script can run parallel and therefore this approach is very dangerous. I was looking for a quick solution and came up with this:

 $ cat my_static_file.txt logfile.txt > $$ && mv $$ logfile.txt

This has the advantage of being on a single line and using “\$\$” as filename. \$\$ is the process ID (PID) of the current running script, and therefore cannot exist twice at the same time.

Because of the usage of && and calling everything on one line is, that the following command is only executed when the predecessor command finished successfully. Otherwise the whole command quits. In my case this means the logfile will be kept and not moved.

23.10.2009Delete all symlink of a directory

It seems like a simple task, and it really is. But I always have to google for such simple stuff, that’s why I start to post things here, so I don’t have to look up the same things over and over again.

To list all files of a directory you can use (sort by date)

 $ ls -lt
total 35
lrwxrwxrwx   1 oracle   dba           13 Jan 30 09:47 etc -> /etc/
drwxr-xr-x   2 oracle   dba         8192 Jan 29 11:40 data
drwxr-xr-x   2 oracle   dba         8192 Jan 29 11:23 info
drwxr-xr-x   2 oracle   dba         8192 Jan 20 15:27 main
-rwxr-xr-x   1 oracle   dba         2643 Dec 18 15:11 run.sh
drwxr-xr-x   2 oracle   dba         8192 Nov 20 14:16 _old

As you can see the symlink is marked with the “l” at the beginning, you can use that to get only links in the output using grep:

 $ ls -lt | grep '^l'
lrwxrwxrwx   1 oracle   dba           13 Jan 30 09:47 etc -> /etc/

To delete the files we are only interested in the filename this can be done using awk. Finally xarg is a tool that runs a given program on every element of it’s input, so the final task can be done by:

 $ ls -lt | grep '^l' | awk '{ print $9 }' | xargs rm