Don't understand german? Read or subscribe to my english-only feed.

Call for Lectures – Grazer LinuxTage 2007

March 8th, 2007

Am 19. Mai 2007 ist es soweit: die Grazer LinuxTage 2007 finden statt.

Call for Lectures ist freigeschalten. Wer also einen Vortrag oder Workshop halten möchte, möge diesen bitte anmelden.

Buggy Days…

March 8th, 2007

Hmpf, I’m finding bugs in those days… Just to give you an idea what’s going on:

  • XFS on the arm-architecture might be broken when using a filesystem created on x86 (still investigating on that)
  • kvm of kernel 2.6.20 does not work together with kvm utils version 14 (known upstream, anyway – freeeeeeezing one of my boxes)
  • #413911, #413913, #413914, #413916 – binary packages shipping VCS files
  • #413698 – aptitude: package does not ship any language files
  • #413920 – xine-check is broken
  • #401916 – initramfs (still requires my attention)

Murphy, you suck.

Vortrag an der TU Graz: “Die Fehler von Microsoft”

February 28th, 2007
Vortragender: Andreas Zeller
Saarland University
http://www.st.cs.uni-sb.de/zeller/

Vortragstitel: "Die Fehler von Microsoft"

Zeit: Donnerstag, 1. März 2007, 16 c.t.

Ort: Hörsaal i11, Inffeldgasse 16b

Zusammenfassung:
Was sorgt dafür, dass Programme fehlschlagen?
Wir haben die Fehlerdatenbanken von Microsoft
durchforstet -- und untersucht, welche
Programmeigenschaften mit Fehlern korrelieren.
Hieraus lassen sich Modelle bilden, die die
fehlerträchtigen Module eines Projektes früh
und sicher identifizieren. Fallstudien an
bekannten Microsoft-Produkten sowie der
Open-Source-Projekte Eclipse und Mozilla
demonstrieren die Vorhersagekraft des Ansatzes.

CV:
Andreas Zeller ist Professor für Softwaretechnik
an der Universität des Saarlandes;  er erforscht
dort Verfahren zur automatischen Fehlerdiagnose
sowie zur Analyse von Software-Archiven.  Sein Buch
"Why Programs Fail" wurde 2006 mit einem Software
Development Productivity Award ausgezeichnet.

Quelle: Newsgroups der TU Graz .

Hackerkochen in Graz

February 28th, 2007

Otti lädt zum Hackerkochen, am 05.03.2007 ab 18 Uhr im Medienkunstlabor
in Graz. Was das ist und weitere Details sind der Einladung zu Entnehmen.

grml @ Chemnitzer Linux Days 2007

February 28th, 2007

The countdown is running… On 3rd and 4th of March 2007 the Chemnitzer Linux Days will take place.

We’ll present grml (Linux Live-CD for sysadmins / texttool-users / geeks) at a booth there! If everything works as intented we will have a demo system as well as CDs of a special grml release named “Dioptrienotto @ clt07”:

Screenshot of grml clt07 release

Several grml developers will be there and I’m looking forward to meet formorer for the first time in RL. 8-)

Hope to see you there! :-)

Edit webpage with Javascript

February 26th, 2007
javascript: document.body.contentEditable = 'true'; document.designMode = 'on'; void 0

Visit any web page, clear the address bar and paste the above line into it. Press return and edit the webpage as you like. :) Works at least in Firefox, Internet Explorer and Opera.

BTW: I hope all of you know Firebug. (Opera will bring a similar feature known as Developer Console with version 9.20.)

Vista: Benutzer [nicht] automatisch anmelden

February 26th, 2007

Seufz. Gegeben ist ein Windows Vista Home Premium wie es auf Komplettrechnern typischerweise ausgeliefert wird. Der vordefinierte automatische Login ist nicht gewollt und Benutzerkonten wurden manuell hinzugefügt, trotzdem wird man mit dem Default-Benutzer beim Booten automatisch (ohne Passwort-Abfrage) eingeloggt. Müsste doch eine Kleinigkeit sein, das im Benutzerkonten-Dialog der Systemsteuerung umzustellen, oder? Denkste…. da ist nichts zu finden. Na dann schauen wir halt mal in das Benutzer-Snap-In der mmc (Microsoft Management Console). Nix da – ‘Auf diesem Computer wird Windows Vista Home Premium ausgeführt. Dieses Snap-In kann mit dieser Windows-Version nicht verwendet werden. Verwenden Sie die Option “Benutzerkonten” in der Systemsteuerung, um lokale Benutzerkonten auf diesem Computer zu verwalten.’ Argl! Die super-intuitive offizielle Lösung um an den ‘Erweiterte Benutzerkonten’-Dialog zu kommen:

Start -> Ausführen -> netplwiz -> '[x] Strg+Alt+Entf drücken ist für die Anmeldung erforderlich'

Zum Glück funktioniert wenigstens der von früheren Windows-Versionen bekannte Weg via ‘control userpasswords2’ noch…

argument list too long

February 26th, 2007

A problem everyone stumbles across (at least) once:

% tar zcf stats_2005.tar.gz stats_2005*
zsh: argument list too long: tar

The reason? Too many files for the ARG_MAX limit. ARG_MAX defines the maximum length of arguments to the exec function (more precise: bytes of args plus environment for exec), defined in /usr/include/linux/limits.h on your Linux system:

% ls -la | grep -c stats_2005
9037
% getconf ARG_MAX
131072
% cpp << EOF | tail -1
#include <limits.h>
ARG_MAX
EOF
131072
%

Ok. But how to work around the issue? Possible solution for GNU:

% find . -name 'stats_2005*' > filelist
% tar zcf stats_2005.tar.gz --files-from filelist

Without the temporary file (filelist in our example):

% find . -name 'stats_2005*' -print | tar zcf stats_2005.tar.gz --files-from -

zsh provides zargs (but AFAIK it doesn’t work with gzip in the same command line due to the way zargs works, so create the archive in one step and compress it in another step later):

% autoload zargs
% zargs -- stats_2005* -- tar --ignore-failed-read -rpf stats_2005.tar

The approach works with other tools than tar as well of course, usage example for afio:

find . -name 'stats_2005*' -print | afio -o -Z stats_2005.afio

Depending on the type of problem (rm, cp, mv,…) you can choose differented approaches as well, some further examples:

% for file in stats_2005* ; do rm -f -- "$file" ; done
% perl -e 'unlink <stats_2005*>'
% zsh -c 'zmodload zsh/files && rm -f -- stats_2005*'
% zsh -c 'autoload -U zargs; zargs -r ./stats_2005* -- rm -f'
% ksh93 -c 'command -x rm -f -- stats_2005*'
% find . -maxdepth 1 -name 'stats_2005*' -print0 | xargs -r0 rm -f
% find . -name 'stats_2005*' -print0 | xargs -0 mv -i --target-dir=/destination
% zmodload zsh/files ; mv -- stats_2005* /destination

zsh: insert-unicode-char

February 24th, 2007

Ever wanted to insert a character in your terminal but don’t have a keybinding for that character? zsh provides a nifty feature called insert-unicode-char:

autoload insert-unicode-char
zle -N insert-unicode-char
bindkey '^Xi' insert-unicode-char

Figure out the character’s code (take a look at unicode.org/charts/ for example) and press ‘ctrl-x i’, followed by the character’s code and press ‘ctrl-x i’ once more. Usage example: ‘ctrl-x i 00A7 ctrl-x i’ will give you an ‘§’.

Windows Vista

February 23rd, 2007

Windows Vista - About

Bisher hatte ich nur mit Pre-Builds von Windows Vista zu tun (im Speziellen wegen meinem Trusted Computing-Seminarprojekt auf der Uni), dieser Tage hab ich mir einmal die endgültige Version von Microsoft Windows Vista Business Edition (Build 6000) ein wenig angeschaut. Als Referenz für mich selbst mal ein kurzer Braindump und ein paar URLs.

Positiv zu erwähnen ist, dass die Installation rasch (~20-30 Minuten) und mit nur wenigen Fragen von der Hand geht. Das Look’n’Feel ist insgesamt OK (wirkt ein bisschen wie ein Konglomerat aus Linux und Mac OS), der Default ist zumindest besser als unter Windows XP (was aber halt kein Kunststück ist). Die Windows-Firewall (‘mmc WF.msc’) hat dazugelernt: feinere Einstellmöglichkeiten und nun auch die Möglichkeit Outgoing zu filtern.

Natürlich gibt es auch wieder einiges Negatives zu vermelden: der MBR wird noch immer ohne Rückfrage und ohne Rücksicht auf Verluste überschrieben. Eine Installation auf externer USB- oder Firewire-Festplatte ist nach wie vor nicht möglich (welches Jahr schreiben wir doch noch mal?), die High Definition Audio Soundkarte wurde gar nicht erst erkannt (hallo?). Bitlocker (Laufwerksverschlüsselung) gibt es leider nur in der Ultimate-Edition *grml*. Virtuelle Desktops gibt es leider nach wie vor nicht out-of-the-box. Mit DRM soll die Profitsicherheit der Medienindustrie auf Kosten der Rechenleistung und des Benutzers gewährleistet werden, während für die Sicherheit des Benutzers nur wenig Verbesserung in Aussicht ist. Die UAC-Popups (User Account Control) – der Default-User ist ja nach wie vor automatisch Mitglied der Gruppe Administratoren – sind derart präsent, dass der Grossteil der Benutzer wohl per Reflex einfach auf ‘Allow’ klickt oder UAC generell abstellt. Zum Beispiel ist der Internet Explorer mit Flash-Plugin und aktivierter UAC auf Dauer nicht zum Aushalten. Ein Windows Update erfordert typischerweise nach wie vor einen Reboot.

Was ich mir noch anschauen möchte: Vista bringt iSCSI-Software schon von Haus aus mit, iscsicli (iSCSI discovery tool) und iscsicpl (iSCSI initiator discovery tool). Nachdem iSCSI auch von grml unterstützt wird und das bei mir schon seit Langem auf der Todo-Liste steht, werde ich da wohl mal ein bisschen was machen müssen. :)

Es stecken natürlich noch weitere Neuigkeiten unter der Haube. Ein verbesserter Suchdialog, neue Backupmöglichkeiten, der Internet Explorer hat Features gelernt, die andere Browser schon seit Ewigkeiten können,… Ich hab eine kleine Roadshow an Screenshots online gestellt. Wie gut sich das alles in der Praxis bewähren kann, wird sich natürlich erst zeigen…

Nice-to-have Software:

Security-mäßig:

Unsortiertes:

Dr. House – DVD: 1. Staffel

February 11th, 2007

*

In Dr. House spielt Hugh Laurie als Dr. Gregory House einen Schmerzmittel-süchtigen und "ruppigen", aber fachlich umso kompetenteren Arzt in der Abteilung für diagnostische Medizin in einem Krankenhaus in New Jersey. Ich steh auf den Humor und freue mich schon auf die 2. Staffel. Wer die Serie noch nicht kennt sollte einen Blick auf Dr. House @ wikiquote und die Video-Ausschnitte bei youtube werfen. Informationen zu Dr. House im Fernsehprogramm gibt’s bei serienjunkies.de. Auch wenn die DVD-Specials im Vergleich zu anderen DVDs vielleicht ein bisschen kurz und knapp ausfallen – momentan meine absolute Lieblingsserie.

OpenWRT on Asus WL-500G Premium

February 10th, 2007

Image of Asus WL-500G Premium

I’ve the Asus WL-500G Premium access point since more than 2 month at home. I bought it for being able to play with OpenWrt without touching my productive setup. Now I finally found the time to install OpenWrt on it. There’s documentation available in the openwrt-wiki, but again JFTR (for myself) I document the relevant steps.

Downloaded openwrt-brcm-2.4-jffs2-4MB.trx [md5: c11b1b3b16a804aa3a190413f69a7510] (cause it works, thanks mabu) and uploaded the firmware image via tftp:

% tftp 192.168.1.1
binary
rexmt 1
timeout 60
trace
put openwrt-brcm-2.4-jffs2-4MB.trx

After waiting a few minutes and another reboot I could access the webinterface. Setting the password failed in the first try and needed another reboot (known problem). Accessing the interface via ssh works then:

root@OpenWrt:~# uname -a
Linux OpenWrt 2.4.30 #1 Sun Mar 26 19:02:04 CEST 2006 mips unknown
root@OpenWrt:~# free
              total         used         free       shared      buffers
  Mem:        14348         8280         6068            0            0
 Swap:            0            0            0
Total:        14348         8280         6068
root@OpenWrt:~# nvram
usage: nvram [get name] [set name=value] [unset name] [show]
root@OpenWrt:~# nvram get vlan1ports
0 5u
root@OpenWrt:~# nvram get wan_ifname
eth0
root@OpenWrt:~# nvram get lan_ifnames
vlan0 eth1
root@OpenWrt:~# nvram get lan_ifname
br0
root@OpenWrt:~# nvram get sdram_init
0x000b
root@OpenWrt:~# nvram get sdram_ncdl
0x309
root@OpenWrt:~# nvram set sdram_init=0x0009
root@OpenWrt:~# nvram set sdram_ncdl=0
root@OpenWrt:~# nvram commit
root@OpenWrt:~# reboot
[...]
root@OpenWrt:~# free
              total         used         free       shared      buffers
  Mem:        30556         7488        23068            0            0
 Swap:            0            0            0
Total:        30556         7488        23068
root@OpenWrt:~#

Now I’ll play around with OpenWrt. If you have suggestions for other firmware versions/variants that work as well and are worth a look please let me know. :)

kvm – Kernel-based Virtual Machine for Linux

February 9th, 2007

Virtualisierung ist ja in aller Munde. Xen, UML, vserver,… (einen schönen Überblick gibt es übrigens auf kernelnewbies.org). KVM (Kernel-based Virtual Machine) hat mit Kernel 2.6.20 Einzug in den Mainline-Linuxkernel gefunden und wer eine CPU mit VT-Support hat, kann das voll auskosten.

grml 0.9 bringt das Kernelmodul für kvm übrigens schon mit. Um das also mal auszuprobieren, muss man auf grml einfach nur folgendes ausführen:

apt-get update ; apt-get install kvm
modprobe kvm
kvm -cdrom $ISO

"$ISO" ersetzt man mit einem bootfähigen ISO. Für eine kurze Demo kann ich das nicht mal 4MB kleine ttylinux empfehlen, also einfach folgendes ausführen:

wget http://www.minimalinux.org/ttylinux/packages/bootcd-i386-5.3.iso.gz
gzip -d bootcd-i386-5.3.iso

Aja, kvm funktioniert auch ohne VT-Support seitens der CPU, dann läuft es halt einfach ohne Hardware-Beschleunigung. :-)

Ein stinkender USB-Stick

February 9th, 2007
# cfdisk /dev/sda

FATAL ERROR: Bad primary partition 0: Partition ends in the final partial cylinder

Huh?!

# sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=       63, size=  2015168, Id= 6, bootable
/dev/sda2 : start=        0, size=        0, Id= 0
/dev/sda3 : start=        0, size=        0, Id= 0
/dev/sda4 : start=        0, size=        0, Id= 0

# fdisk -l /dev/sda

Disk /dev/sda: 1031 MB, 1031798272 bytes
255 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         126     1007584    6  FAT16
Partition 1 has different physical/logical endings:
     phys=(124, 254, 63) logical=(125, 112, 50)

Tsss…. Eine Behandlung mit fdisk hilft natürlich, aber das ist wohl die Strafe, wenn man USB-Sticks bei Peluga holt. (Disclaimer: ich war grad in der Nähe und hab Ersatz für meinen im NSLU2 verbauten gebraucht.)

Debian on the NSLU2

February 9th, 2007

NSLU2 - Image

I recently bought a NSLU2 featuring 1x ethernet port and 2x USB 2.0 ports – available for about 80 euro. My plan is to integrate the device in my network as backup system. The original firmware might be nice for John Doe User but I’d like to use Debian featuring stuff like rsync, dirvish,… on it. Thanks to current d-i and Martin Michlmayr’s webpage Debian on NSLU2 that’s pretty easy. I’m using a 1GB usb pen for the Debian system itself and an external usb disk as backup medium. JFTR some notes…

First of all get the firmware from slug-firmware.net, chose the ‘Debian/NSLU2 (debian-installer)’ version (debian-etch-rc1-20061102.zip, md5: de3821ee5d80d87541abdb47f5eae085). As described on Martins webpage go either to the firmware upgrade dialog within the webinterface or use upslug2. Using the webinterface I had to plug in the usb pen in port ‘disk 2’, otherwise upgrading the firmware fails with ‘not enough free memory’.

After firmware upgrade has finished and the box finished rebooting just ssh to the box (use an utf8-enabled terminal) and d-i starts up. I changed the network setup from static IP (192.168.1.77 by default) to DHCP within d-i and prepared my network setup on my laptop:

# cat /etc/network/interfaces
[...]
iface ap inet static
      address 192.168.10.1
      netmask 255.255.255.0
      network 192.168.10.0
      broadcast 192.168.10.255
[...]
# ifup b44=ap ; Start dnsmasq ; grml-router start
# ip route add 192.168.10.188 via 192.168.10.1

That’s it. Just ssh to the box again (‘uxterm -e ssh installer@192.168.10.188’) and continue the installation straight forward.

mika@NSLU:~$ uname -a
Linux NSLU 2.6.18-3-ixp4xx #1 Tue Dec 5 16:52:07 UTC 2006 armv5tel GNU/Linux
mika@NSLU:~$ cat /proc/cpuinfo 
Processor       : XScale-IXP42x Family rev 1 (v5l)
BogoMIPS        : 266.24
Features        : swp half fastmult edsp 
CPU implementer : 0x69
CPU architecture: 5TE
CPU variant     : 0x0
CPU part        : 0x41f
CPU revision    : 1
Cache type      : undefined 5
Cache clean     : undefined 5
Cache lockdown  : undefined 5
Cache format    : Harvard
I size          : 32768
I assoc         : 32
I line length   : 32
I sets          : 32
D size          : 32768
D assoc         : 32
D line length   : 32
D sets          : 32

Hardware        : Linksys NSLU2
Revision        : 0000
Serial          : 0000000000000000
mika@NSLU:~$ mount 
/dev/sda1 on / type ext3 (rw,noatime,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
mika@NSLU:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             773M  399M  335M  55% /
tmpfs                  15M     0   15M   0% /lib/init/rw
udev                   10M   32K   10M   1% /dev
tmpfs                  15M     0   15M   0% /dev/shm
mika@NSLU:~$ 

That’s it. :-)

bisect – Probleme Debuggen mit Binärer Suche

February 3rd, 2007

Absolut keine Neuheit, aber weil ich es gerade gebraucht habe und man die binäre Suche – die man zumindest aus der Datenstrukturen-Vorlesung kennen sollte ;-) – so schön in der Praxis anwenden kann und das eigentlich jeder kennen sollte, möchte ich das mal kurz erwähnen.

Problemstellung? Im aktuellem grml-Build habe ich festgestellt, dass es in der aktuellen udev-Version ein Problem mit der linux-raid-Erkennung via vol_id gibt. In irgendeiner Version von udev kam also ein Changeset hinzu, das dieses Problem verursacht. Durch die Verwendung von git-bisect war das Problem sehr schnell eingegrenzt und ich konnte Upstream das Changeset nennen, welches das Problem versursacht.

Der Ablauf:

Source holen:
% git clone git://www2.kernel.org/pub/scm/linux/hotplug/udev.git
% cd udev

bisect initialisieren:
% git bisect start
% make clean ; make ; $TESTEN

Der aktuelle Source (master-Branch) macht den Stress? Dann als böse markieren:
% git bisect bad

Auf eine funktionierende Version stellen (siehe 'git log', $commit-id auswählen und als $branch_name markieren):
% git checkout -b $branch_name $commit-id

Klappt das mit $commit-id noch? Testen und als gut markieren:
% make clean ; make ; $TESTEN
% git bisect good

Jetzt geht das Spiel mit “git bisect [good|bad] ; make clean ; make ; $TESTEN” so lange, bis man ein ‘$commit-id is first bad commit […]’ erhält. Das geht ziemlich schnell [O(log n)] und man hat dann auch schon den konkreten Übeltäter gefunden. :)

Ach ja, mein favorisiertes Versionkontrollsystem (mercurial) bietet ebenfalls eine Bisect-Extension.

Fluuuuuug

February 2nd, 2007

Mir war heute auf der Pack einfach zu viel Verkehr, darum hab ich heute halt mal den Flieger von Graz nach Klagenfurt genommen:

Mika im Flieger

Das Wetter in Kärnten war einfach spitze, hier die Sicht auf den Wörthersee Richtung Klagenfurt:

Bild: Flug über den Wörthersee

Der Pilot war übrigens einer meiner Brüder. Danke Ali, Luftlinie rockt. 8-)

Grml-Umfrage

January 28th, 2007

Was mögen grml-User eigentlich an grml? Stimmt die Richtung die grml geht? Was machen grml-User eigentlich mit grml? Das und einiges mehr möchten wir herausfinden. Genau darum gibt es die grml user survey. Und ich möchte all jene unter euch, die ebenfalls grml verwenden bitten, daran teilzunehmen!

Einfach grml.org/user-survey/grml.txt runterladen, ausfüllen und per Mail an mich. Danke!

Chemnitzer Linux-Tage 2007

January 24th, 2007

Die Chemnitzer LinuxTage finden heuer am 3. und 4. März statt. Das Vortrags-Programm ist soeben online gegangen. Ich bin heuer mit dem Vortrag "Erfolgreiche OpenSource Projekt-Maintenance" vertreten (der auf der Idee meines Blog-Artikels ‘Die Gesetze von OpenSource‘ basiert). Ich hoffe die Zusage für den grml-Stand trudelt auch noch ein.

Auf alle Fälle freue ich mich schon auf das Event. Nicht nur weil das Programm einige interessante Vorträge verspricht, auch weil wir ein grml-Entwicklertreffen haben werden und man viele bekannte Gesichter wieder mal sieht. Ach ja, und auch neue Gesichter: Alexander ‘formorer’ Wirt aus dem grml-Team treffe ich das erste Mal in RL. 8-)

Chemnitz, ich komme! :)

Zim – ein Desktop-Wiki

January 23rd, 2007

Zim ist ein Desktop-Wiki. Man braucht also keinen Webserver um sich eine "wiki-ähnliche Todo-Liste" auf den Desktop zu holen. Ein einfaches ‘aptitude install zim’ reicht auf Debian. So schaut das im Einsatz z.B. aus:

Screenshot of Zim

Das originale gtk-Theme gefällt mir übrigens kein bisschen *grusel*. Deshalb habe ich das Look’n’Feel jenem auf der Screenshot-Seite des Projektes angepasst. Dazu muss man unter Debian einfach nur die Pakete tango-icon-theme und gtk2-engines installieren und dann ~/.gtkrc-2.0 wie folgt ausstatten:

gtk-theme-name = "Clearlooks"
gtk-icon-theme-name = "Tango"

Zim scheint sich ganz schön in meine Arbeitsweise zu integrieren (nicht alles will ich in einem richtigen Wiki oder BTS verwalten). Zim selbst verwendet einfache Textdateien. Auf meiner Wunschliste steht deshalb noch Versionskontrolle vom zim-Projektverzeichnis (z.B. via mercurial). Also gleich mal auf die Todo-Liste setzen. ;-)