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

23.10.2009Sie haben Post: Ihre Admin.

Erstmal: Mit “Admin” meine ich die Administration einer Firma, also meist das Team rund um den “Empfang”. Bekanntlich sind dies die “Tätschmeister”…

Ich kenne zwar noch nicht viele Firmen, aber es scheint gängiger Kodex zu sein: 1. Grundsätzlich alle Mails nur im Subject zu schreiben (sonst liest sie eh niemand) 2. Möglichst viele Ausrufezeichen (!) zu verwenden !!!!!!!!1!!!!!!!111!!! 3. Einen möglichst breiten Leserkreis zu erreichen (obwohl es nur die Abteilung XY betrifft).

Ich möchte hier gerne einige Müsterchen wiedergeben (to be continued):

  1. From: Admin To: _ALL Subject: Wir bitten euch die Früchte ganz zu essen und nicht angeschnitten zurückzulegen !!!!!! Body: -no data-

  2. From: Admin To: _ALL Subject: Hallo, wir suchen verzweifelt den grossen Bostich vom 5. Stock. Bitte zurücklegen. Danke !!!! Body: -no data-

  3. From: Admin To: _ALL Subject: Wir suchen verzweifelt den Moderatorenkoffer hat den jemand bei sich? Lieben Dank fürs checken. Admin Body: -no data-

  4. From: Admin To: _ALL Subject: Da es heute draussen so heiss ist: Bitte Fenster nicht öffnen !!!! Body: Gruss Admin

  5. From: Admin To: _ALL Subject: Schlechte Nachricht für die Hungrigen! Body: Leider kommt heute der Znüni-Express nicht vorbei, wegen Unfall. Die Ware wurde leider beschädigt. :(

  6. From: Admin To: _ALL Subject: Zur Info….. Alarmanlage wird in wenigen Minuten ausgelöst, ACHTUNG !! ist nur ein TEST…..Gruss Admin Body: -no data-

  7. From: Admin To: _ALL Subject: Achtung Radar!!! Zwischen Tankstelle und Autobahn… Fahrt anständig;-) Grüessli Admin Body: -no data-

  8. From: Admin To: _ALL Subject Wir suchen dringend den Besitzer von dem schwarzen Audi A3 ohne Nummernschild! Bitte bei uns melden, Grüessli Admin Body: -no data-

23.10.2009Ausreden fürs Nicht-Trinken

Es soll vorkommen. In der Abteilung in der ich zur Zeit arbeite, ist es der Donnerstag. In der Cafeteria trifft man sich. Es wird eine Flasche Wein geöffnet und reihum kriegt jeder sein Glas gefüllt.

Wenn man das nicht will, steht man blöd da. Hier Tipps für die passende Ausrede:

  • Ich komme gerade von einem anderen Apéro
  • Ich habe einen 0,0 Promille-Grenze für die Autoversicherung
  • Ich trinke nur Bier (welches zufälligerweise gerade nicht zur Hand ist)
  • Ich habe nachher noch ein Meeting - mit meinem Chef
  • Ich geh gleich ins Fitness-Studio

Weitere Ideen sind willkommen und werden gerne aufgenommen.

23.10.2009Zusammengesetzte Wörter

Zur Zeit ist wieder ein Deutsch-Groove in mir. Ich weiss nicht ob dies schubweise kommt - was am ehesten mit einer Krankheit zu vergleichen wäre - oder ob es gar ein Dauerzustand ist, der immer in mir schlummert und zu gegebenen Zeiten ausbricht. Dies wäre wohl eine … äähm … chronische Krankheit?

Egal, jedenfalls fällt es mir wieder vermehrt auf, seitdem ich intensiver mit unseren Deutschen Kollegen zusammenarbeite. Ich finde es witzig mit welchen schweizerdeutschen Ausdrücken sie Mühe haben (z.B. dass eine Wähe ein Kuchen ist, klingt eklig, ist aber so. Und is(s)t dazu noch lecker :) ).

Umgekehrt ist es so, dass mich unsere nördlichen Nachbarn immer wieder mit zusammengesetzten Wortgefechtsfetzen auszuschalten versuchen. Sei es ein “Wortspiel” (jemand beginnt mit einem Wort, an das ein Neues gehängt wird, welches als Grundlage für das nächste dient: Hausdach - Dachziegel - Ziegelstein - Steinschleuder - Schleudersitz - Sitzplatz - Platzregen [..] usw.). Welch ein Spass.

Während sonst viele im Business mit Anglizsmen um sich werfen, um ihre Hippheit zu manifestieren, gelingt es den erwähnten Kollegen sich davon zu befreien und erfrischend unverfroren einen Koloss eines Wortes einzuwerfen. Entscheidet selbst, was klingt besser:

  • Kundenstellvertreterzuteilungsveränderung

oder

  • Change beim Substitute Customer Responsible

Feel free. Oder sollte ich sagen: Hier herrscht Selbstentscheidungsfreiheit.

23.10.2009dvd::rip and gentoo

dvd::rip (or dvdrip at the gentoo repository) is a very comfortable ripping software to bring your DVDs on your harddisk.

When I emerged it and wanted to rip a dvd, I just got no result.

  1. the logfile showed no error
  2. in the status bar the text appeared Grab preview - title #3 Duration: 00:01 [Error]
  3. dvd::rip did nothing.

The chapter has been ripped and the file existed on the filesystem, but I was unable to transcode it or do anything else with dvd::rip.

A lot of googling did not provide the solution, but finally I saw that dvd::rip prints the exact command that is executed in the logfile, so I tried to run it manually to eventually see an error.

And then there was theerror:

convert: no decode delegate for this image format `/tmp/dvdrip24111.snap/snapshot001.png'.

I quick search with that showed me, that the problem was imagemagick, which obviously did not have png support. I added the USE-flag “png” to imagemagick in /etc/portage/package.use and re-emerged imagemagick.

Another problems was that transcode was missing the “mp3” USE-flag.

Since then dvd::rip just works!

23.10.2009Generate n rows from dual

I needed to generate exactly n rows and then this is very handy.

select * from (
select level lvl
from dual
connect by level <= N
)

Found at: http://awads.net/wp/2005/07/01/generating-n-rows-from-dual/

23.10.2009Using Pidgin with msn-pecan

Today when I was starting pidgin I could connect to ICQ, but when trying to connect to MSN Pidgin comes up with:

unable to retrieve MSN address book

So I was googeling a little bit and found a bug @ pidgin from yesterday. The problem is not pidgin, although the official MSN client and some others clients still work (e.g. meebo). There are several different versions of the MSN protocol, pidgin is using MSNP15. And exactly this protocol is currently not working on the server side @ Microsoft (as it seems).

Other clients are not affected as they switch to older version of the protocol, which are still working.

Because I don’t want to wait until MS fixed the problem, I use a quick workaround. As an alternative you can install msn-pecan.

With Gentoo this works (after adding “x11-plugins/pidgin-msn-pecan ~x86” to /etc/portage/package.keywords):

# emerge pidgin-msn-pecan

After the installation just restart Pidgin go to “Accounts” -> “Manage Accounts”. Select your MSN-Account, click “Modify”. Choose “WLM” as protocol. Save and reconnect your MSN account. Works like a charm!

23.10.2009Wie schreibt man eine Rede

Die letzten 2 Wochen habe ich mich intensiv mit einer Rede die ich an einer Geburtstagsfeier halten musste/durfte. :D

  • Dr. Ankowitsch nicht vergessen
  • Ein guter Einstieg um die Leute abzuholen
  • Wenn möglich etwas persönliches einbinden
  • Ideen für eine Rede kommen einem meist nicht wenn man vor dem Computer sitzt, sondern wenn man unterwegs ist, im Restaurant, im Gespräch etc. WICHTIG: immer etwas zu schreiben dabei haben.
  • Passt der Stil der Rede zum Anlass? (Wortwahl, Formulierung etc.)
  • den Mut haben, ganze Passagen zu streichen.
  • Zeitlicher Rahmen nicht sprengen, sonst hört niemand mehr zu
  • Schluss beachten, es sollte möglichst jeder merken, dass die Rede fertig ist.