dash vs. bash : bei “export” besser immer quoten

Mit der Dash kann man Überraschungen erleben, wenn man bei Verwendung von export bei der Zuweisung keine Quotes benutzt und dummerweise Leerzeichen im Spiel sind.

Gegeben sei folgendes Shell-Script:

$ cat test.sh
a="eins zwei"
b=$a
export c="eins zwei"
export d=$c

echo a: $a
echo b: $b
echo c: $c
echo d: $d

Die Bash verhält sich, wie man es erwarten würde:

$ bash ./test.sh 
a: eins zwei
b: eins zwei
c: eins zwei
d: eins zwei

Die Dash dagegen:

glutz@glutz-VirtualBox:~$ dash ./test.sh 
a: eins zwei
b: eins zwei
c: eins zwei
d: eins

Continue reading “dash vs. bash : bei “export” besser immer quoten”

Grund und Workaround für “task updatdb.mlocat blocked for more than 120s”

Seit einigen Tagen beobachte ich in den Log-Dateien wiederholt Einträge der folgenden Art:

Aug  4 17:19:40 desktop-ubuntu kernel: [22801.032322] INFO: task updatedb.mlocat:7661 blocked for more than 120 seconds.
Aug  4 17:19:40 desktop-ubuntu kernel: [22801.034164] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

Continue reading “Grund und Workaround für “task updatdb.mlocat blocked for more than 120s””

Wie man FullHD-Video-Aufnahmen zum Anschauen konvertiert

1920×1080 FullHD runterrechnen für maximale Kompatibilität auch auf Legacy-Hardware:

  • PAL-Auflösung / Frequenz
  • MPEG2-Datenstrom mit Standard-DVD-Profile
  • festes 4:3 – Format, schwarze Streifen oben/unten
avconv -i input.MOV -target pal-dvd -s 720x432 -vf pad=720:576:0:72 output.mpg

mögliche weitere Targets finden sich übrigens im ffmpeg-Quellcode unter:

static int opt_target(OptionsContext *o, const char *opt, const char *arg)

Workaround für Kontakte-Sync Egroupware<->Synthesis SyncML-Client

Update: Mit Version 2.3.2 des SyncML-Clients (erschienen am 10.05.2012) hat Synthesis den Hersteller-String wieder zurück geändert auf “Synthesis AG”. Damit ist untenstehende Anpassung im EGroupware-Quellcode nicht mehr notwendig. Siehe auch Hinweis in den Synthesis-Release-Notes.

Wie sich gerade rausgestellt hat, funktioniert die Synchronisation der Adressen zwischen Egroupware (hier in der Version 1.8004) und dem Synthesis SyncML-Client unter Android (hier 2.2.21) nicht mehr zuverlässig.

Als Symptome waren zunächst eine Menge Dubletten (teilweise über 50) für ein und denselben Kontakt zu finden, sowohl auf dem Mobilgerät als auch auf dem Server. Wobei jeweils nur ein Kontakteintrag die vollständige Anschrift auswies. Das Problem ließ sich durch manuelles Löschen der doppelten Einträge auf Server-Seite und Neu-Aufsetzen des Clients (Option “Gerät neu Laden im Synthesis-Client) lösen.

Anschließend stellte sich aber heraus, daß auch bei den neu synchronisierten Einträgen die Adressangeben fehlen.

Continue reading “Workaround für Kontakte-Sync Egroupware<->Synthesis SyncML-Client”

floats mal wieder

Die Floating-Point-Darstellung ist immer mal wieder für eine Überraschung gut. So lässt sich explizit eine Null mit Vorzeichen darstellen. Der numerische Vergleich mit einer Null ohne Vorzeichen liefert den Wahrheitswert zurück, während eine Umwandlung in einen C-String vorzeichenbehaftet ist.

Continue reading “floats mal wieder”