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

Speedminton

June 4th, 2009

Speedminton ist ein Ballspiel und gilt als Mischung aus Badminton, Squash und Tennis. Ich hab erst letzte Woche durch Zufall mitbekommen, dass es das gibt (scheint in Österreich noch ziemlich unbekannt zu sein?). Als alter Badminton-Hase hab ich mir dann so ein Speedminton-Set natürlich kaufen müssen und war heute das erste Mal spielen. Und ich muss sagen: Hammer!

Bei Speedminton fliegt der Ball schneller und weiter als bei Badminton und ist ziemlich windstabil. Weil man auch kein Netz braucht ist am offiziellen Moto “anywhere, anytime” echt was dran. Nach 1,5h Badminton und ~1h Speedminton bin ich heute ganz schön fertig. :)

Kann ich also nur weiterempfehlen. Um auf den Geschmack zu kommen: Speedminton-Video auf Youtube ansehen, den Artikel bei Wikipedia lesen und auf speedminton.de vorbeischauen.

Falls übrigens jemand in Graz passende Plätze zum Spielen (abgesehen vom Stadtpark) kennt freu ich mich über Tipps.

Update: nachdem mich jetzt schon mehrere bezüglich einer Empfehlung für so ein Speedminton-Set gefragt haben: ich hab mich für das Speedminton ® Set S 100 – Modell 2009 entschieden. Es ist alles dabei was man zum Loslegen braucht (das Easy Court-Spielfeld braucht man nicht zwingend zum Spielen), es stimmt vom Preis her und passt für meine Freundin wie für mich soweit sehr gut. Wer nicht bei Amazon kaufen will: ich habs auch beim Sports-Experts in Seiersberg/Graz gesehen und Speedminton-Shop.de führt es ebenfalls.

grml 2009.05 – Lackdose-Allergie

June 1st, 2009

Es ist wieder soweit: es gibt eine neue Release von grml, der Debian-basierten Linux Live-CD für Systemadministratoren und Texttool-User. Codename Lackdose-Allergie.

Die letzte stabile Release von grml war Ende 2008. Warum hat es zur neuen Release so lange gedauert? Der größte Anteil geht an das Release von Debian/Lenny im Februar. Der an die Release anschließende Unstable-Unfreeze war eine Herausforderung für uns, da es an mehreren Stellen erwartungsgemäß – vor allem durch die sog. Transitions bedingt – kaputte Paket-Dependencies gab. Aufräumarbeiten wie das Entfernen von libgtk1.2 aus Debian/unstable haben uns beispielsweise den schlanken Browser Dillo genommen (wir haben ihn durch xlinks2 ersetzt) und erst kurz vor der Release haben wir z.B. tor integrieren können. Ein libc/Kernel-Bug hat unser Buildsystem aufgehalten, die Entscheidungsfindung zu zu IDE vs. LIBATA beim Kernel, ein kompletter Rewrite von grml2usb, etc….

Jetzt ist aber geschafft und die neue Release hat neben dem Update auf Kernel 2.6.28 und aktuelle Software-Pakete wirklich schöne Features! Die Integration einer speziell für grml erstellten MirOS BSD-Variante ermöglicht das Booten eines minimalen BSD-Flavours über die Eingabe von ‘bsd’ am Bootprompt. Das über den Bootprompt via ‘hdt’ erreichbare Hardware Detection Tool liefert einige wichtige Informationen, ohne ein vollständiges Betriebssystem booten zu müssen. Besonders für Forensiker von Interesse: die Bootoption ‘readonly’ versetzt alle /dev/[hs]d*-Devices kernelseitig in den readonly-Modus (wer via ‘forensic’ bootet aktiviert diese Option übrigens damit automatisch). Der Rewrite von grml2usb bringt einige neue Features (MultiISO-Support, spezifizieren von Default-Bootoptionen, verbesserter MBR,…) und auch die Verzeichnis-spezifischen Profile in der Zsh werden bereits unterstützt. Und erstmals gibt es auch Root-Persistency (also das permanente Speichern von Änderungen am Live-System auf z.B. einem USB-Stick).

Weitere Details sind in den Release-Notizen zu grml 2009.05 zu finden und wie üblich gibt es die ISOs via HTTP, FTP, rsync und Bittorrent zum Download.

Viel Spass mit der neuen grml-Release und happy hacking! :)

Directory specific shell configuration with Zsh

May 30th, 2009

Now being an official Debian developer I’ve the possibility to use $DEBEMAIL=mika@debian.org for my Debian packages. But whereas I want to use that for all my official Debian packages I still want to use $DEBEMAIL=mika@grml.org for my grml related packages. I’m a lazy sysadmin and don’t want to manually adjust my changelogs depending on the type of package (especially since this might be error-prone) so I needed a generic solution. Grml’s Zsh configuration (Debian package grml-etc-core >=0.3.71) provides a solution for Zsh (version 4.3.3 or later): based on directories you can set your own profiles. Demonstration:

% cd /grml/git-grml
chpwd(): Switching to profile: grml
% echo $DEBEMAIL
mika@grml.org
% cd /grml/git-debian
chpwd(): Switching to profile: debian
% echo $DEBEMAIL
mika@debian.org

The configuration is pretty simple:

# define profiles based on directories:
zstyle ':chpwd:profiles:/grml/git-grml(|/|/*)'       profile grml
zstyle ':chpwd:profiles:/grml/git-debian(|/|/*)'     profile debian
zstyle ':chpwd:profiles:/home/mika/Customers(|/|/*)' profile customers

# configuration for profile 'grml':
chpwd_profile_grml()
{
  [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  print "chpwd(): Switching to profile: $profile"

  export DEBEMAIL=mika@grml.org
  export GIT_AUTHOR_EMAIL="mika@grml.org"
  export GIT_COMMITTER_EMAIL="mika@grml.org"
}

# configuration for profile 'debian':
chpwd_profile_debian()
{
  [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  print "chpwd(): Switching to profile: $profile"

  export DEBEMAIL=mika@debian.org
  export GIT_AUTHOR_EMAIL="mika@debian.org"
  export GIT_COMMITTER_EMAIL="mika@debian.org"
}

# configuration for profile 'customers':
chpwd_profile_customers()
{
  [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  print "chpwd(): Switching to profile: $profile"

  export TELEPHONE=[...]
  export MAIL=[...]
}

Kudos to Frank for implementing this lovely feature in grml’s zshrc. Look for chpwd_profiles() in grml’s zsh config for further documentation on this feature.

Debian.Developer->add_member(“mika”)

May 28th, 2009

Since 2009-05-28 I’m an official Debian Developer.

Thanks to all involved people. Special thanks to Gerfried ‘Rhonda’ Fuchs for being my advocate and a helpful package sponsor, to Alexander ‘formorer’ Wirt for being a helpful package sponsor, to Christoph ‘Myon’ Berg and Bernd ‘bzed’ Zeimetz from the frontdesk and to Marc ‘he’ Brockschmidt for being a great Application Manager.

Boot an ISO via Grub2

May 25th, 2009

With grub2 you can directly boot an (iso9660) ISO using its loopback option. This is great because it provides another nice rescue scenario – for example when using grml (the Debian based Linux Live-CD for sysadmins). You no longer need to extract kernel and initrd from the ISO to be able to boot it using the isofrom bootoption. All you need to do is put a plain grml ISO to your harddisk.

Due to popular request (especially in #grub) PLEASE NOTE: grub itself can NOT boot CDROM images/ISOs. Neither version 1 nor version 2 of grub. Grml provides this feature via its isofrom bootoption. Grub2 strongly simplifies this setup with its loopback option but grub alone will NOT be enough. It’s the live system (as for example grml) that has to support this “boot from ISO” feature.

I’ve tested it with grml-small 2008.11 and grml-small 2009.05-rc1 using grub2 from Debian/unstable (1.96+20090317-1). In the following example the ISO file grml-small_2008.11.iso is available in directory grml on device /dev/sda1. You can boot it from the interactive grub shell using:

loopback loop (hd0,1)/grml/grml-small_2008.11.iso
linux    (loop)/boot/grmlsmall/linux26 isofrom=/dev/sda1/grml/grml-small_2008.11.iso boot=live quiet vga=791 noeject noprompt 
initrd   (loop)/boot/grmlsmall/initrd.gz
boot

So if you are using grub2 already consider adding an entry like the following to your grub config (/boot/grub/grub.cfg):

menuentry "grml-rescue system from harddisk (ISO = grml-small_2008.11.iso)" {
  loopback loop (hd0,1)/grml/grml-small_2008.11.iso
  linux    (loop)/boot/grmlsmall/linux26 isofrom=/dev/sda1/grml/grml-small_2008.11.iso boot=live quiet vga=791 noeject noprompt 
  initrd   (loop)/boot/grmlsmall/initrd.gz
}

This entry gives you the option to boot grml from your harddisk even if you don’t have the possibility to boot via CD/USB/PXE/….

Tip: starting with grml 2009.05(-rc1) you can also use findiso=/path/to/grml.iso instead of isofrom=/dev/sdX/path/to/grml.iso. findiso is a dynamic version of isofrom as it looks for the specified ISO file on all disks where it usually looks for the .squashfs file (so you don’t have to know the device name compared to isofrom=…). The above configuration using findiso is even easier to set up and would look like this:

menuentry "grml-rescue system from harddisk (ISO = grml-small_2008.11.iso)" {
  loopback loop (hd0,1)/grml/grml-small_2008.11.iso
  linux    (loop)/boot/grmlsmall/linux26 findiso=/grml/grml-small_2008.11.iso boot=live quiet vga=791 noeject noprompt 
  initrd   (loop)/boot/grmlsmall/initrd.gz
}

/proc/partitions und 1024 Bytes

May 21st, 2009

Auf der Mailingliste der Linux-User-Group-Graz gab es die Frage, ob man sich darauf verlassen könne, dass die blocks-Einträge in /proc/partitions unter Linux immer eine Größe von 1024 Bytes haben, bzw. wie man das verifizieren kann. Nachdem die Mailingliste aktuell leider kein öffentliches Archiv hat, werfe ich meine Antwort zusätzlich auch hier ein:

Ok, zuerst schauen wir mal, was uns blockdev(8) liefern kann:

  --getsz     liefert die Anzahl an (512byte) Sektoren vom Blockdevice
              (ioctl BLKGETSIZE, siehe 'strace -eioctl blockdev ...')
  --getss     liefert die Sektorgröße des Blockdevices in Bytes (ioctl BLKSSZGET)
  --getsize64 liefert die Devicegröße des Blockdevices in Bytes (ioctl BLKGETSIZE64)

Wie man in show_partition() in $LINUXSRC/block/genhd.c nachlesen kann, wird das “#blocks” aus /proc/partitions durch Auslesen der Anzahl der Sektoren der jeweiligen Partition, dividiert durch 2 (ist ein simpler Shift nach rechts) berechnet. Schauen wir uns das in der Praxis an:

% cat /proc/partitions
major minor  #blocks  name

   8        0    8388608 sda
[...]
# blockdev --getsz /dev/sda
16777216
% echo '16777216/2' | bc
8388608

Ok, das scheint soweit mal zu stimmen – aber wir wollen uns nicht auf die 512byte-Sektoren von –getsz verlassen. Deswegen kontrollieren wir die Größe des Devices in Bytes:

# blockdev --getsize64 /dev/sda
8589934592

Ok. Und welche Sektorgröße hat das Device wirklich?

# blockdev --getss /dev/sda
512

OK. Du willst dich auf die 1024 bzw. eine Rechnung alla “X / (512 * 2)” nicht verlassen? Kein Problem. Wir wissen ja, dass der Kernel die Anzahl der Sektoren durch 2 dividiert. There we go:

# echo $(( $(blockdev --getsize64 /dev/sda) / ( $(blockdev --getss /dev/sda) * 2) ))
8388608

Das Verhältnis daraus geschlussfolgert würde jetzt wie folgt aussehen:

# echo $(( $(blockdev --getsize64 /dev/sda) / ( $(blockdev --getsize64 /dev/sda) / ( $(blockdev --getss /dev/sda) * 2)) ))
1024

Was sich noch vereinfachen lässt:

# echo $(( $(blockdev --getss /dev/sda) * 2 ))
1024

Et voila. Frage beantwortet? :)

Great error messages: id(1)

May 14th, 2009
% id -r mika
id: cannot print only names or real IDs in default format
% id -ugG mika
id: cannot print "only" of more than one choice

ICINGA – Nagios geforkt

May 7th, 2009

Nagios, das bekannte Open Source Monitoringtool wurde von der Firma Netways unter dem Namen ICINGA geforkt:

Was aber bedeutet das jetzt für die Community?

Bei Nagios hat sich in letzter Zeit relativ wenig öffentlich sichtbares getan. Nagios Hauptentwickler, Ethan Galstad, wurde zum Flaschenhals, weil alles an ihm vorbei muss und er als Einziger im CVS commiten darf. Anregungen, Patches,… greift er anscheinend nicht immer oder nicht schnell genug auf und auf Rückfragen zu lange geplanten und ersehnten Features (die aber noch immer nicht realisiert wurden) reagiert er selbst nicht. Der wohlwollende Diktator (engl: Benevolent Dictator) in einem Projekt ist an und für sich ja nichts Schlechtes – solange die Entwicklung darunter nicht leidet. Ein Beispiel wo das sehr gut funktioniert ist Linus Torvalds mit dem Linuxkernel. Er kann die Unmenge an Patches klarerweise gar nicht mehr alleine abarbeiten und vertraut stattdessen auf erfahrene Maintainer. Diese Maintainer betreuen in der Regel ein bestimmtes Subsystem des Linuxkernels, arbeiten ebenfalls mit der Community zusammen (großteils auf eigenen und von der Linux-Kernel-Mailingliste getrennten Mailinglisten) und stellen das Ergebnis der Arbeit via Versionskontrolle Linus zur Verfügung. Die Maintainer genießen das Vertrauen von Linus, der das Resultat der Arbeit (die durchaus einige Reviews auf Mailinglisten, inklusive der Diskussionsmöglichkeit mit Linus) in seinen offiziellen Kerneltree aufnimmt. Es wird öffentlich und sichtbar kommuniziert – Probleme werden ohne Umschweife (und gerade für Einsteiger manchmal sehr rüde wirkend) direkt auf der Linux-Kernel-Mailingliste angesprochen.

Bei Nagios gibt es diese Art der öffentlichen Kommunikation anscheinend nicht. Ethan Galstad selbst schreibt jetzt auf der nagios-devel-Mailingliste als Antwort zu dem Fork:

2. While it may appear that things are slow to the community, many
things are happening behind the scenes, including:
[…]
– We’ve had to spend considerable resources protecting the Nagios
project against commercial entities that would endanger its future.

Da stecken gleich zwei Probleme auf einmal drin:

1) behind the scenes: Kommunikation hinter dem Vorhang ist sehr schlecht, denn die Öffentlichkeit und auch die
Community bekommen also nichts davon mit. Das wäre noch vertretbar, wenn sich das Projekt weiterbewegt, aber in einem Quasi-Bugfix-Modus wirkt sich das nicht sonderlich community-fördernd aus (siehe Online-Changelog, im Changelog vom Daily-CVS-Snapshot-Tarball steht ganz oben “3.1.0 – ??/??/2008” – das entspricht also nicht einmal dem eigentlichen CVS-Tree, der “3.1.1 – 02/??/2009” im Changelog führt).

2) protecting the Nagios project against commercial entities: wer Konkurrent von Nagios Enterprises (der Firma von Ethan) sein könnte bekommt also was auf den Deckel. Ich verstehe das grundsätzliche Problem von Ethan sehr gut, nur könnte er das für alle Beteiligten viel besser nutzen: statt sich mit anderen Nagios-Dienstleistern anzulegen, sollte er diese unterstützen. Warum? Weil das für Kunden, die Community und sogar sein eigenes Geschäft positiv sein kann:

  • Kunden sind nicht von einem einzelnen Dienstleister abhängig und haben damit nicht das Gefühl von Truck Faktor wie auch Vendor Lockin.
  • die Community hasst Trademark-Spiele. Ein relaxter Umgang mit der Thematik kann Motivation, Lust und Wille am Projekt fördern, umgekehrt aber jegliche Freude zerstören.
  • das eigene Geschäft: Ethan hätte mit seinem Produkt noch weiter reichende Präsenz, könnte Kooperationen schließen (er könnte Fragen zum Core ja vermutlich schneller und besser als Mitbewerber beantworten), Dienstleister zu seinem Partner machen (OEM, zertifizierter Partner, Reseller,…) und das wie virales Marketing nutzen

Also selbst wenn sich bei Nagios in Wirklichkeit mehr tut als die Öffentlichkeit (inklusive meiner Person) wahrnimmt, Ethan hat diesen Fork im Endeffekt erleichtert (um nicht zu sagen: erzwungen). Was sind jetzt die Aussichten? Meine persönliche Einschätzung für die Situation:

  • Der Fork scheitert, aber das Original wird wiederbelebt: Ethan Galstad bringt Nagios öffentlich sichtbar wieder in die Schwünge und vermeidet, dass die Nagios-Community zu schnell zu ICINGA abzieht. Die Angst vor dem Fork würde damit das Original wiederbeleben und für alle – bis auf die Leute hinter ICINGA, sofern sie nicht diese Situation bezwecken wollten – Gewinn bringen.
  • Der Fork ist erfolgreich: ICINGA liefert schnell genug eine Release, die a) ganz klar Open Source ist, b) keine Nachteile gegenüber Nagios hat und nur geringen Aufwand bei der Migration erfordert und c) ein oder mehrere exklusive Features bietet, die Nagios noch nicht hat, auf die die Nagios-Community aber abfährt. Sollten dann noch langfristig die Release-Politik, die Arbeit mit der Community, die Integration in die relevanten Distributionen und die öffentliche Wahrnehmung passen, werden wohl viele von Nagios zu ICINGA wechseln. Netways, die Firma hinter ICINGA, sollte als Veranstalter der Nagios-Konferenz, Betreiber von u.a. Nagios-Exchange.org und Entwickler von mehreren Nagios-Addons genug Erfahrung haben, um dieses Gewicht zu Stemmen.
  • Der Fork ist erfolgreich, aber auch das Original kommt wieder in die Gänge: wenn die Entwickler von Nagios und ICINGA beide ihre Ziele erreichen und vielleicht sogar kompatibel zueinander sind, könnte das die Situation mit dem Engpass in der Entwicklung von Nagios entschärfen. Für den Anwender ist es komplizierter, weil er auf einmal die Qual der Wahl hat. Viel unnötige Energie kann auf beiden Seiten entstehen. Ob diese Situation langfristig tragbar ist, ist nur schwer abschätzbar. Das kann entweder zu einem kompletten Merge (Beispiel gcc + EGCS), zwei Entwicklungsrichtungen die unterschiedliche Augenmerke haben aber sich trotzdem nicht zu weit von einander entfernen (Beispiel MySQL-Forks) oder zu einer komplett konträren Entwicklung führen (Beispiel Ingres).
  • Der Fork ist erfolglos, das Original lernt aus der Situation nicht: bei Nagios ändert sich also nichts, gleichzeitig aber schafft auch ICINGA weder den Sprung zum offiziellen Nachfolger noch zu einem ernsthaften Konkurrenzprodukt – das ist die schlechteste Option für alle Beteiligen.

Ich bin gespannt was die beiden Parteien aus dieser Situation machen.

OSDC 2009: done

May 4th, 2009

Die letzten Wochen waren dank der Grazer Linuxtage sehr stressig. Direkt danach ging es auch noch auf die Open Source Data Center Conference nach Nürnberg.

Ich kann mich Kristian Köhntopp und Michael Renner nur anschließen: super war es! Interessante Leute, Gespräche und Vorträge sowie perfekte Organisation seitens des Veranstalters.

Die Folien zu meinem Vortrag ‘grml – das Schweizer Taschenmesser der Linux-Notfallsysteme’ (PDF) hab ich hochgeladen.

Programm der Grazer Linuxtage 2009 verfügbar

April 4th, 2009

Das Programm der Grazer Linuxtage 2009 ist online verfügbar:

www.linuxtage.at/programm/

Wir – das Organisationsteam der GLT09 – suchen übrigens noch nach helfenden Händen! Du hast Zeit und Lust auf den Grazer Linuxtagen mitzuwirken? Ob im Vorfeld Plakatieren, am Event Auf- und Abbauen, oder als helfende Hand während des Events aktiv sein: wir freuen uns über tatkräftige Mithilfe! Bitte einfach via Mail an graz09@linuxtage.at melden.

Ich hoffe man sieht sich am Samstag, dem 25. April auf der FH Joanneum in Graz!

Jazzwoche Burghausen 2009

March 31st, 2009

*

So, zur Abwechslung mal bisschen Off-Topic. :) Jazz-Liebhaber kennen Burghausen (die Stadt mit der längsten Burg Europas) zumindest von "Jazz oder nie!" auf BR-alpha. Ich war vor knapp 2 Wochen das erste Mal als Besucher auf der Jazzwoche in Burghausen. Mein Programm war:

  • Holly Cole sings Tom Waits: hm naja, brav gespielt und gesungen, aber für mich kein Highlight.
  • Al Di Meola: spielt sein Programm gewohnt sauber runter. Fesch. Mir fehlt aber die Freude am Spielen in seiner Mimik. Nach dem Konzert mache ich mit meinem Bruder noch auf Fanboy und lasse mir Backstage die CD und DVD von ihm signieren. Hm, Al ist wesentlich kleiner als erwartet. 8-)
  • Wolfgang Haffner und Band: wuah geil – ein klares Highlight für mich. Man merkt, dass Haffner Esbjörn Svensson kennt. ;)
  • The Cookers: im Programm steht Billy Hart als Schlagzeuger, meiner Meinung nach war da aber E.J Strickland am Werk. Klassischer Hardpop, beeindruckender Klangteppisch, mir wars aber auf Dauer zu monoton und einseitig.
  • Till Brönner und Band: sauber gespielter Smooth-Jazz-Latin-Stil (so nenn ich das jetzt mal ;)), Wolfgang Haffner wieder am Schlagzeug. Schade, dass die Tiefen vom Kontrabass gegen Ende hin so extrem stark aufgedreht waren. Bis auf das war die Soundtechnik nämlich durchwegs spitze. Till begegnet mir dann am nächsten Tag noch in der Früh beim Spaziergang um den Wörsee.
  • Depart: Contemporary Jazz vom Feinsten, neben Haffner ganz klar ein Highlight! Schade, dass dieses Konzert nicht in der Wackerhalle, sondern nur im Stadtsaal (mit schlechterer Akustik) stattfand. Trotzdem: Jojo Mayer am Schlagzeug ist ein Hammer! Harry Sokal mit geilen Saxofon-Effekten und Heiri Känzig mit guten Grooves am Bass. Musste mir die CD Mountain Messenger inkl. Autogramm des Trios natürlich mitnehmen.
  • Steve Turre Band: grml! Ich wäre fast aufgestanden und gegangen. Ein perfektes Beispiel, dass Cowbell und Maracas von Nicht-Schlagzeugern/-Percussionisten gerne unterschätzt werden. Steve Turre hat dermassen unrhythmisch mit den Teilen über lange Strecken zwischen seinen Posaunen- und Muschel-Passagen gespielt… uahhh… Und das Spiel mit der Muschel hat er für mich auch überstrapaziert. Mein Tiefpunkt von Burghausen.

Das Programm aus der Wackerhalle wird übrigens im Lauf der nächsten Monate bei "Jazz oder nie!" auf BR-alpha gesendet. Absolut sehenswert!

Graz: Sysadmin-Job zu vergeben

March 3rd, 2009

Ein Freund hat mich gebeten das mal zu bloggen:

Die Scotty Group Austria GmbH in Graz sucht ab sofort einen Sysadmin für ihren Standort in Graz, die offiziellen Details sind online zu finden.

Event: Veranstaltungsreihe “Sicherheit essen Kinder auf” in Graz

February 19th, 2009

Details siehe Teleschirm Blog. [via Ronny]

Event: Computeranimation Live-Modelling / Medienkünstler im Gespräch – Graz

February 19th, 2009

Wann: 19. März 2009
Wo: MedienKunstLabor im Kunsthaus Graz
Was: open source creative commons Gespräche Party Live-Modelling event Talk Blender

Der Art Director von BigBuckBunny ist in Graz und zeigt, was mit Blender machbar ist. Weitere Details unter http://fff.murspace.net/Members/dorian/events/open-source-talk-live-modelling

[via Dorian Santner]

Debian GNU/Linux 5.0 codename Lenny – News for sysadmins

February 15th, 2009

Alright, Debian GNU/Linux 5.0 AKA as Lenny has been released. Time for a Debian unstable unfreeze party! 8-)

What does the new stable release bring for system administrators? I’ll give an overview what news you might expect when upgrading from Debian GNU/Linux 4.0, codename Etch (released on 8th April 2007) to the current version Debian GNU/Linux 5.0, codename Lenny (released on 14th February 2009). I try to avoid duplicated information so make sure to read the release announcement and the official release notes for Lenny beforehand.

Noteworthy Changes

  • initrd-tools got replaced by initramfs-tools
  • netkit-inetd got replaced by openbsd-inetd
  • the default syslog daemon sysklogd got replaced by rsyslog
  • new defaults when creating ext2/ext3 file systems: dir_index and resize_inode feature enabled by default and use blocksize = 4096, inode_size = 256 and inode_ratio = 16384 (see /etc/mke2fs.conf)
  • improved IPv6 support
  • init.d-scripts for dependency-based init systems
  • Debian-Volatile (hosting packages providing data that needs to be regularly updated over time, such as timezones definitions, anti-virus signature files,…) is an official service
  • EVMS (Enterprise Volume Management System) was removed
  • compatibility with the FHS v2.3
  • software developed for version 3.2 of the LSB
  • official Debian Lenny live systems for the amd64 and i386 architectures
  • several new d-i features

Virtualisation

Virtualisation related new tools:

  • ganeti: Cluster-based virtualization management software
  • libvirt-bin: Libvirt is a C toolkit to interact with the virtualization capabilities of recent versions of Linux (and other OSes). The library aims at providing a long term stable C API for different virtualization mechanisms.
  • virtinst: Programs to create and clone virtual machines
  • virt-manager: desktop application for managing virtual machines
  • xen-shell: Console based Xen administration utility
  • xenstore-utils: Xenstore utilities for Xen
  • xenwatch: Virtualization utilities, mostly for Xen

Desktop oriented packages like virtualbox and qemu are available as well of course.

Noteworthy Updates

This is a (selective) list of some noteworthy updates:

New packages

Lenny ships over 7000 new packages. Lists of new/removed/replaced packages are available online. I’ll name 238 sysadmin related packages that might be worth a look. (Note: I don’t list addon stuff like optional server-modules, docs-only and kernel-source related packages. I plan to present some of the following packages in more detail in separate blog entries.)

  • ack-grep: A grep-like program specifically for large source trees
  • acpitail: Show ACPI information in a tail-like style
  • adns-tools: Asynchronous-capable DNS client library and utilities
  • aggregate: ipv4 cidr prefix aggregator
  • aosd-cat: an on screen display tool which uses libaosd
  • apt-cacher-ng: Caching proxy for distribution of software packages
  • apt-cross: retrieve, build and install libraries for cross-compiling
  • aptfs: FUSE filesystem for APT source repositories
  • apt-p2p: apt helper for peer-to-peer downloads of Debian packages
  • apt-transport-https: APT https transport, use ‘deb https://foo distro main’ lines in the sources.list
  • arp-scan: arp scanning and fingerprinting tool
  • array-info: command line tool reporting RAID status for several RAID types
  • balance: Load balancing solution and generic tcp proxy
  • bash-completion: programmable completion for the bash shell
  • blktrace: utilities for block layer IO tracing
  • daemonlogger: simple network packet logger and soft tap daemon
  • daemontools: a collection of tools for managing UNIX services
  • dbndns: Debian fork of djbdns, a collection of Domain Name System tools
  • dcfldd: enhanced version of dd for forensics and security
  • dctrl2xml: Debian control data to XML converter
  • debomatic: automatic build machine for Debian source packages
  • desproxy: tunnel TCP traffic through a HTTP proxy
  • detox: utility to replace problematic characters in filenames
  • di-netboot-assistant: Debian-Installer netboot assistant
  • dish: the diligence/distributed shell for parallel sysadmin
  • djbdns: a collection of Domain Name System tools
  • dns2tcp: TCP over DNS tunnel client and server
  • dnscache-run: djbdns dnscache service
  • dnshistory: Translating and storing of IP addresses from log files
  • dnsproxy: proxy for DNS queries
  • dsyslog: advanced modular syslog daemon
  • etckeeper: store /etc in git, mercurial, or bzr
  • ext3grep: Tool to help recover deleted files on ext3 filesystems
  • fair: high availability load balancer for TCP connections
  • fatresize: FAT16/FAT32 filesystem resizer
  • flog: dump STDIN to file and reopen on SIGHUP
  • freeradius-utils: FreeRadius client utilities
  • ganeti: Cluster-based virtualization management software
  • gfs2-tools: Red Hat cluster suite – global file system 2 tools
  • gitosis: git repository hosting application
  • gptsync: GPT and MBR partition tables synchronisation tool
  • grokevt: scripts for reading Microsoft Windows event log files
  • grub2: GRand Unified Bootloader, version 2
  • gt5: shell program to display visual disk usage with navigation
  • haproxy: fast and reliable load balancing reverse proxy
  • havp: HTTP Anti Virus Proxy
  • heirloom-mailx: feature-rich BSD mail(1)
  • hfsprogs: mkfs and fsck for HFS and HFS+ file systems
  • hinfo: Check address ownership and DNSBL listings for spam reporting
  • hlbr: IPS that runs over layer 2 (no TCP/IP stack required)
  • hobbit: monitoring system for systems, networks and applications – server
  • hotwire: Extensible graphical command execution shell
  • hunchentoot: the Common Lisp web server formerly known as TBNL
  • ifupdown-extra: Network scripts for ifupdown
  • ike: Shrew Soft VPN client – Daemon and libraries
  • incron: cron-like daemon which handles filesystem events
  • inoticoming: trigger actions when files hit an incoming directory
  • iodine: tool for tunneling IPv4 data through a DNS server
  • iotop: simple top-like I/O monitor
  • ipplan: web-based IP address manager and tracker
  • ips: Intelligent process status
  • iscsitarget: iSCSI Enterprise Target userland tools
  • isns: Internet Storage Naming Service
  • itop: simple top-like interrupt load monitor
  • iwatch: realtime filesystem monitoring program using inotify
  • jetring: gpg keyring mantainance using changesets
  • john: active password cracking tool
  • kanif: cluster management and administration swiss army knife
  • keepassx: Cross Platform Password Manager
  • keysafe: A safe to put your passwords in
  • killer: Background job killer
  • kpartx: create device mappings for partitions
  • kvm: Full virtualization on x86 hardware
  • latencytop: A tool for developers to visualize system latencies
  • lbcd: Return system load via UDP for remote load balancers
  • ldb-tools: LDAP-like embedded database – tools
  • ldnsutils: ldns library for DNS programming
  • lfhex: large file hex editor
  • live-helper: Debian Live build scripts
  • live-magic: GUI frontend to create Debian LiveCDs, netboot images, etc.
  • logapp: supervise execution of applications producing heavy output
  • lsat: Security auditor tool
  • lustre-utils: Userspace utilities for the Lustre filesystem
  • lwat: LDAP Web-based Administration Tool
  • maatkit: Command-line utilities for MySQL
  • mantis: web-based bug tracking system
  • memdump: memory dumper
  • memlockd: daemon to lock files into RAM
  • metainit: Generates init scripts
  • mirmon: monitor the state of mirrors
  • mkelfimage: utility to create ELF boot images from Linux kernel images
  • mongrel: A small fast HTTP library and server for Ruby
  • monkey: fast, efficient, small and easy to configure web server
  • monkeytail: tail variant designed for web developers monitoring logfiles
  • mpy-svn-stats: Simple and easy to use svn statistics generator
  • mr: a Multiple Repository management tool
  • msr-tools: Utilities for modifying MSRs from userspace
  • mtd-utils: Memory Technology Device Utilities
  • munge: authentication service to create and validate credentials
  • mxallowd: Anti-Spam-Daemon using nolisting/iptables
  • mylvmbackup: quickly creating backups of MySQL server’s data files
  • myrescue: rescue data from damaged harddisks
  • mysql-proxy: high availability, load balancing and query modification for mysql
  • mysqltuner: high-performance MySQL tuning script
  • nagvis: Visualization addon for Nagios
  • ncdu: ncurses disk usage viewer
  • netrw: netcat like tool with nice features to transport files over network
  • netsend: a speedy filetransfer and network diagnostic program
  • network-config: Simple network configuration tool
  • nfdump: netflow capture daemon
  • ngetty: getty replacement – one single daemon for all consoles
  • nilfs2-tools: Continuous Snapshotting Log-structured Filesystem
  • ninja: Privilege escalation detection system for GNU\Linux
  • noip2: client for dynamic DNS service
  • nsd3: authoritative domain name server (3.x series)
  • ntfs-3g: read-write NTFS driver for FUSE
  • nulog: Graphical firewall log analysis interface
  • nuttcp: network performance measurement tool
  • ocsinventory-server: Hardware and software inventory tool (Communication Server)
  • odt2txt: simple converter from OpenDocument Text to plain text
  • olsrd: optimized link-state routing daemon (unik-olsrd)
  • onesixtyone: fast and simple SNMP scanner
  • openais: Standards-based cluster framework (daemon and modules)
  • opencryptoki: PKCS#11 implementation for Linux (daemon)
  • openvas-client: Remote network security auditor, the client
  • ophcrack: Microsoft Windows password cracker using rainbow tables
  • op: sudo like controlled privilege escalation
  • otpw-bin: OTPW programs for generating OTPW lists
  • packeth: Ethernet packet generator
  • paperkey: extract just the secret information out ouf OpenPGP secret key
  • paris-traceroute: New version of well known tool traceroute
  • password-gorilla: a cross-platform password manager
  • pathfinderd: Daemon for X.509 Path Discovery and Validation
  • pathfinder-utils: Utilities to use with the Pathfinder Daemon
  • pcaputils: specialized libpcap utilities
  • pcp: System level performance monitoring and performance management
  • perlconsole: small program that lets you evaluate Perl code interactively
  • pgloader: loads flat data files into PostgreSQL
  • pgpool2: connection pool server and replication proxy for PostgreSQL
  • pgsnap: PostgreSQL report tool
  • pmailq: postfix mail queue manager
  • pnputils: Plug and Play BIOS utilities
  • policykit: framework for managing administrative policies and privileges
  • postfwd: Postfix policyd to combine complex restrictions in a ruleset
  • postpone: schedules commands to be executed later
  • powertop: Linux tool to find out what is using power on a laptop
  • prayer: standalone IMAP-based webmail server
  • prelude-correlator: Hybrid Intrusion Detection System [ Correlator ]
  • privbind: Allow unprivileged apps to bind to a privileged port
  • pssh: Parallel versions of SSH-based tools
  • ptop: PostgreSQL performance monitoring tool akin to top
  • pyftpd: ftp daemon with advanced features
  • rancid-core: rancid — Really Awesome New Cisco confIg Differ
  • rancid-util: Utilities for rancid
  • rdnssd: IPv6 recursive DNS server discovery daemon
  • rdup: utility to create a file list suitable for making backups
  • reglookup: utility to read and query Windows NT/2000/XP registry
  • rgmanager: Red Hat cluster suite – clustered resource group manager
  • rinse: RPM installation environment
  • rofs: Read-Only Filesystem for FUSE
  • rsyslog: enhanced multi-threaded syslogd
  • safe-rm: wrapper around the rm command to prevent accidental deletions
  • samba-tools: tools provided by the Samba suite
  • samdump2: Dump Windows 2k/NT/XP password hashes
  • scalpel: A Frugal, High Performance File Carver
  • scamper: advanced traceroute and network measurement utility
  • scanmem: Locate and modify a variable in a running process
  • schedtool: Queries/alters process’ scheduling policy and CPU affinity
  • screenie: a small and lightweight GNU screen(1) wrapper
  • scrounge-ntfs: Data recovery program for NTFS filesystems
  • ser: Sip Express Router, very fast and configurable SIP proxy
  • serverstats: a simple tool for creating graphs using rrdtool
  • shutdown-at-night: System to shut down clients at night, and wake them in the morning
  • sipcrack: SIP login dumper/cracker
  • sks: Synchronizing OpenPGP Key Server
  • slack: configuration management program for lazy admin
  • sma: Sendmail log analyser
  • smbind: PHP-based tool for managing DNS zones for BIND
  • smbnetfs: User-space filesystem for SMB/NMB (Windows) network servers and shares
  • softflowd: Flow-based network traffic analyser
  • speedometer: measure and display the rate of data across a network connection
  • spf-milter-python: RFC 4408 compliant Python SPF Milter for Sendmail and Postfix
  • spf-tools-perl: SPF tools (spfquery, spfd) based on the Mail::SPF Perl module
  • spf-tools-python: sender policy framework (SPF) tools for Python
  • sqlgrey: Postfix Greylisting Policy Server
  • ssdeep: Recursive piecewise hashing tool
  • sshfp: DNS SSHFP records generator
  • sshm: A command-line tool to manage your ssh servers
  • sshproxy: ssh gateway to apply ACLs on ssh connections
  • sslscan: Fast SSL scanner
  • strace64: A system call tracer for 64bit binaries
  • sucrack: multithreaded su bruteforcer
  • supercat: program that colorizes text for terminals and HTML
  • superiotool: Super I/O detection tool
  • system-config-lvm: A utility for graphically configuring Logical Volumes
  • system-config-printer: graphical interface to configure the printing system
  • tack: terminfo action checker
  • taktuk: efficient, large scale, parallel remote execution of commands
  • tcpwatch-httpproxy: TCP monitoring and logging tool with support for HTTP 1.1
  • terminator: Multiple GNOME terminals in one window
  • timelimit: Simple utility to limit a process’s absolute execution time
  • tipcutils: TIPC utilities
  • tor: anonymizing overlay network for TCP
  • tpm-tools: Management tools for the TPM hardware (tools)
  • tracker-utils: metadata database, indexer and search tool – commandline tools
  • tumgreyspf: external policy checker for the postfix mail server
  • ucspi-tcp: command-line tools for building TCP client-server applications
  • unbound: validating, recursive, caching DNS resolver
  • unhide: Forensic tool to find hidden processes and ports
  • uniutils: Tools for finding out what is in a Unicode file
  • unsort: reorders lines in a file in semirandom ways
  • uphpmvault: upload recovery images to HP MediaVault2 via Ethernet
  • usermode: Graphical tools for certain user account management tasks
  • utf8-migration-tool: Debian UTF-8 migration wizard
  • uuid-runtime: universally unique id library
  • vblade-persist: create/manage supervised AoE exports
  • vde2: Virtual Distributed Ethernet
  • vdmfec: recover lost blocks using Forward Error Correction
  • virtinst: Programs to create and clone virtual machines
  • virt-manager: desktop application for managing virtual machines
  • virtualbox-ose: x86 virtualization solution – binaries
  • virt-viewer: Displaying the graphical console of a virtual machine
  • watchupstream: Look for newer upstream releases
  • whirlpool: Implementation of the whirlpool hash algorithm
  • win32-loader: Debian-Installer loader for win32
  • xavante: Lua HTTP 1.1 Web server
  • xdelta3: A diff utility which works with binary files
  • xen-shell: Console based Xen administration utility
  • xenstore-utils: Xenstore utilities for Xen
  • xenwatch: Virtualization utilities, mostly for Xen
  • xfingerd: BSD-like finger daemon with qmail support
  • xl2tpd: a layer 2 tunneling protocol implementation
  • xrdp: Remote Desktop Protocol (RDP) server
  • yersinia: Network vulnerabilities check software
  • zerofree: zero free blocks from ext2/3 file-systems
  • zipcmp: compare contents of zip archives
  • zipmerge: merge zip archives
  • ziproxy: compressing HTTP proxy server

Further Ressources

Unix time: 1234567890

February 15th, 2009

I hope you know the comics of xkcd and abstrusegoose about Unix time. Unix time?

Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1, 1970, not counting leap seconds. It is widely used not only on Unix-like operating systems but also in many other computing systems.

http://en.wikipedia.org/wiki/Unix_time

This are my solutions to convert the Unix time ‘1234567890’ to human readable format:

GNU date:

% date -d @1234567890
Sat Feb 14 00:31:30 CET 2009

BSD date:

% date -ur 1234567890
Sat Feb 14 00:31:30 CET 2009

Zsh:

% zsh -c 'zmodload zsh/datetime ; strftime "%c" 1234567890'
Sat 14 Feb 2009 12:31:30 AM CET

Python:

% python -c 'import time; print time.ctime(1234567890)'
Sat Feb 14 00:31:30 2009

Ruby:

% ruby -e 'puts Time.at(1234567890)'
Sat Feb 14 00:31:30 +0100 2009

Perl:

% perl -e 'print scalar localtime(1234567890),"\n";'
Sat Feb 14 00:31:30 2009

MySQL:

% echo 'select FROM_UNIXTIME(1234567890);' | mysql -h localhost
FROM_UNIXTIME(1234567890)
2009-02-14 00:31:30

PostgreSQL:

% echo "SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1234567890 * INTERVAL '1 second';" | psql test
        ?column?
------------------------
 2009-02-14 00:31:30+01
(1 row)

C:

% echo '
#include <stdio.h>
#include <time.h>

int main() {
   time_t sec;
   struct tm * ts;
   sec = (1234567890);
   ts = localtime(&sec);
   printf("%s", ctime(&sec));
   return 0;
}' | gcc -x c - && ./a.out
Sat Feb 14 00:31:30 2009

Java:

% cat date.java
import java.util.Date;
import java.util.TimeZone;

class UnixTime {
        public static void main(String[] args) {
                TimeZone.setDefault(TimeZone.getTimeZone("CET"));
                System.out.println(new Date(1234567890L*1000L));
        }
}
% javac date.java && java UnixTime
Sat Feb 14 00:31:30 CET 2009

Javascript:

% echo 'new Date(1234567890*1000);' | smjs -i
js> Sat Feb 14 2009 00:31:30 GMT+0100 (CET)

PHP:

% php --run 'print date("r", "1234567890");'
Sat, 14 Feb 2009 00:31:30 +0100

“To be filled by O.E.M.”

February 14th, 2009
  Board Info: #2
    Manufacturer: "[snip]"
    Product: "To be filled by O.E.M."
    Version: "To be filled by O.E.M."
    Serial: "To be filled by O.E.M."
    Asset Tag: "To Be Filled By O.E.M."
    Type: 0x0a (Motherboard)
    Features: 0x09
      Hosting Board
      Replaceable
    Location: "To Be Filled By O.E.M."
    Chassis: #3

Note: I snipped the manufacturer. Feel free to guess who is responsible for the “To be filled by O.E.M.” entries though.

42

January 29th, 2009

Bild: 42

Call for Lectures: Grazer LinuxTage 2009

January 21st, 2009

Die Grazer LinuxTage 2009 (GLT09) rücken näher.

Die Grazer LinuxTage werden am Samstag, den 25. April 2009 wie schon bisher auf der FH Joanneum stattfinden. Wir suchen auch heuer
wieder gute Vorträge. Vor Kurzem ist Call for Lectures online gegangen. Du willst deine Software unter die Leute bringen? Es gibt ein gutes Projekt das unbedingt präsentiert gehört? Dann halte doch einen Vortrag auf den GLT09! Es muss übrigens nicht zwingend mit Linux zusammenhängen, die Grazer LinuxTage sind bekannt für ein breit gefächertes Programm: Community, Internet/Netzwerke, Projektmanagement im Open Source-Umfeld, andere freie Betriebssystem,… sind ebenfalls gern gesehene Themen.

Community-Stände sind natürlich ebenfalls wieder geplant. Wer diesbezüglich etwas machen möchte, möge sich bitte mit einer kurzen Mail bei mir melden.

Ich hoffe auf ein Wiedersehen auf den Grazer LinuxTagen 2009!

Event: BarCamp Klagenfurt 2009

January 13th, 2009

Das BarCamp in Klagenfurt (Kärnten) findet heuer am 7. und 8. Februar statt. Als Veranstaltungsort ist wieder die Universität Klagenfurt geplant.