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

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. ;-)

advchk – Sicherheit der installierten Software überprüfen (Update)

January 22nd, 2007

advchk ist ein Tool, das anhand einer definierten Software-Liste diverse (konfigurierbare) Security-Feeds (RSS/RDF/XML) abklappert und dann meldet, falls die installierte Softwareversion laut der bekannten Lücken verwundbar ist. Der Autor beschreibt es wie folgt:

Advchk (Advisory Check) reads security advisories so you don’t have to.

advchk is a tool for monitoring the security of installed software.
Advisory Check gathers security advisories using RSS / RDF / XML feeds,
compares them against a list of known software, and alerts you if
you’re vulnerable.

Das funktioniert nicht nur für Debians dpkg, sondern auch für pkginfo/pkg_info, rpm, lpp und portage. Hier ein Praxisbeispiel für Debian (Anmerkung: von Upstream wird addfeeds.sh geliefert, in meinem Debian-Paket heißt das advchk-addfeeds):

Eine vordefinierte Liste von Feeds der Datenbank von advchk hinzufügen:
% advchk-addfeeds

Paketliste erstellen:
% dpkg -l > $(hostname).list

Falls ein Feed ungewünscht ist (oder nicht funktioniert) einfach aus der Datenbank entfernen:
% advchk -r http://packetstormsecurity.org/advisories.xml

Und los geht's mit dem Check:
% advchk -c

Man kann advchk natürlich in cron integrieren (Details siehe manpage), durch den eingebauten ssh-Support lassen sich auch andere Rechner integrieren und überwachen. So wird das Paket speziell für jene Leute interessant, die einen heterogenen Rechnerpark zu verwalten haben.

Ich finde advchk auf alle Fälle interessant und habe daher ein Debian-Paket erstellt (wie immer in mercurial verwaltet). Das .deb befindet sich im grml-testing Pool. Den Upstream-Autor habe ich wegen der Lizenz kontaktiert (laut Homepage ‘2-clause-bsd’, aber eine Lizenz im Tarball selbst fehlt) Update: das Lizenz-Problem wurde gelöst, Upstream hat netterweise Version 1.03 mit Lizenzdatei veröffentlicht. Falls jemand Ideen bezüglich Features für das Debian-Paket haben sollte bitte her damit.

Cross compile the Linux kernel on Debian

January 21st, 2007

As my ppc-based efika system is quite slow at building kernel packages I decided to cross compile the kernel on my x86 box. JFTR the necessary steps on a Debian system:

Adjust $KERNELSOURCE/Makefile to:

ARCH            = powerpc
CROSS_COMPILE   = powerpc-linux-gnu-

Thanks to the Embedded Debian project you can easily get the necessary gcc as Debian package. Just add the Embedded Debian pool to your /etc/apt/sources.list:

deb http://www.emdebian.org/debian/ unstable main

… and install the package ‘gcc-4.1-powerpc-linux-gnu’.

Make sure that the environment variable ARCH is set to ‘powerpc’ if you are using a kernel >=2.6.16, otherwise use ‘ppc’ (or whatever you need).

export ARCH=powerpc

If you are using make-kpkg for building the kernel-package make sure to use the arch-option:

make-kpkg --arch powerpc ...

I had problems with getting the vmlinuz image. The relevant files (the /usr/lib/$KERNEL stuff) weren’t present in the kernel package but without the vmlinuz image my OpenFirmware based system doesn’t boot. Thanks to Sven Luther I could hack my own Makefile and finally got a vmlinuz image using mkvmlinuz:

/usr/sbin/mkvmlinuz -o /boot/vmlinuz-2.6.19-grml 2.6.19-grml

Now I’m running my first grml-kernel on ppc:

root@grmlppc ~ # uname -a
Linux grmlppc 2.6.19-grml #2 PREEMPT Sat Jan 20 20:26:15 CET 2007 ppc GNU/Linux

Debian on the Efika-Board

January 17th, 2007

I received an efika board at the end of 2006. Now I had some time to investigate on that. I want to use Debian on the board of course to be able to work on grml-ppc.

My setup involves the following hardware:

  • the efika board ;)
  • a 2.5" western digital harddisk
  • an ATX power supply
  • a nullmodem cable
  • an USB to IDE/SATA adapter
  • my laptop with ethernet cable plus USB to serial adapter running grml

First of all I downloaded d-i image from efika.de and copied it to the harddisk intended for use in the efika board. Then I connected the efika board with my laptop using the USB to serial adapter and the nullmodem cable. Giving power to the board using the ATX power supply and starting screen on my laptop then:

% screen -S console -m -c /dev/null /dev/ttyUSB0 115200

There we are – the board is booting:

screenshot of booting efika

The ‘ok’ is the bootprompt of the OpenFirmware. Using the command devalias I can figure out that the harddisk is accessible via hd:0 so my commandline looks like:

boot hd:0 di_efika root=/dev/sda1 console=ttyPSC0 rootdelay=20

And then we are booting into d-i:

screenshot of d-i at efika

Using grml-router I can use my laptop as gateway for setting up network stuff within a few seconds. So just stepping through d-i then. If you need further assistance take a look at Efika Install @ littlefe.net.

Then I downloaded kernel and modules from efika.de and installed them. After some more fine-tuning (installing ssh server package, activating network interface,…) I could boot into my Debian system using:

boot hd:1 /boot/kernel_efika root=/dev/sda2 console=ttyPSC0

If you notice any problems with your system the bootoptions ‘rootdelay=20 panic=10 init=/bin/sh’ might be useful for further investigation.

The last step included installing zsh and vim using grml’s configuration files of course. :-)

screenshot of login

Finally JFTR:

root@grmlppc ~ # cat /proc/cpuinfo
processor       : 0
cpu             : G2_LE
clock           : 396.000000MHz
revision        : 1.4 (pvr 8082 2014)
bogomips        : 65.53
timebase        : 33000000
platform        : Efika
machine         : EFIKA5K2 CHRP PowerPC System
revision        : 2B3
vendor          : bplan
root@grmlppc ~ # lspci
00:1c.0 Bridge: Motorola MPC5200B
root@grmlppc ~ # free
             total       used       free     shared    buffers     cached
Mem:        125080      29736      95344          0       2244      18408
-/+ buffers/cache:       9084     115996
Swap:       979956          0     979956

Useful resources:

rsync and Access Control Lists

January 12th, 2007

At last meeting of Security Treff Graz I brought up the question whether rsync is capable of handling extended ACLs (the Access Control Lists you handle with setfacl and getfacl on your Linux system). That’s very important for me when backing up running systems because I’m using ACLs on some systems but only a few programs (like star) are aware of the ACLs. So I took a closer look at it and the answer whether rsync supports extended ACLs is: "depends".

Out of the box rsync does not handle extended ACLs. But: there is a patch available (patches/acls.diff in upstream-sources) which provides support for ACLs via option ‘-A’. The best news: Debian uses the patch by default now starting with rsync 2.6.9-1 so we have ACL support within rsync on upcoming Debian/etch as well. This is very important because the nonstandard option only works if the remote rsync also supports it.

Google Suggest on the commandline

January 11th, 2007

Get Google Suggest on the commandline:

cd /tmp
dh-make-perl --cpan WebService::Google::Suggest --build
sudo dpkg -i libwebservice-google-suggest-perl_0.01-1_all.deb
wget http://hg.grml.org/grml-scripts/raw-file/tip/usr_bin/gsuggest.pl
chmod +x ./gsuggest.pl

% ./gsuggest grml
grml: 175000 results
grmlins: 286 results
grmlin: 816 results
grml linux: 76200 results
grmls: 566 results
grmln: 192 results
grml.ca: 57 results
grmlive: 7 results

Broken feed with WordPress 2.0.6

January 10th, 2007

Thanks to maxx and oliver for reporting a problem with the feed of my blog. rss2email displayed the following warning:

% e2run
W: looks like HTML http://michael-prokop.at/blog/feed/

and whereas bloglines.com, Firefox, Internet Explorer, Awasu and even dog and wget worked without any noticeable problems there also was a problem with rss-reader akregator.

Finally I could track down the problem with:

% GET -e http://michael-prokop.at/blog/feed/

and use of telnet and stumbled upon ticket 3528 in the wordpress bug database then.

Conclusion: if you upgraded your wordpress installation to version 2.0.6 you might want to apply the fix mentioned in ticket 3528.

HP Compaq dc7700 and Linux (Update)

January 9th, 2007

Thanks to Michael Hammer I had the possibility to test grml on a HP Compaq dc7700 Convertible Minitower today. As the box seems to be widely used at TU Graz and there’s not that much information available yet I’m feeding google.

My testing system was of course the grml live-cd using the current stable version grml 0.9 featuring kernel 2.6.18-grml and X.org 7.1.1 and grml’s current develrelease (known as 0.9-1) providing the bleeding edge stable kernel 2.6.19-grml.

The box has ‘Intel® Pentium® D processor 915 dual-core 2.80 GHz 4 MB (2 MB per core) L2 cache 800 MHz front side bus with Extended Memory 64-bit Technology’ inside with a graphic card type ‘Hewlett-Packard Company Integrated Graphics Controller’ known as ‘Intel Corporation 82Q963/Q965 Integrated Graphics Controller’ and provides as network device the ‘Hewlett-Packard Company Ethernet controller’ known as ‘Intel(R) PRO/1000 Network Connection’.

Important: vesa framebuffer does not work (at least not with 2.6.18 and 2.6.19) so you have to boot using vga=normal (known as ‘nofb’ bootoption at grml). And the BIOS seems to be horrible broken, therefore you have to use acpi=off or pci=nommconfig. So boot your grml box using:

nofb acpi=off

or

nofb pci=nommconfig

Booting works fine then. Network and sound work stright out of the box. By default running grml-x will use the vesa module. You might want to use the i810 module instead, so run ‘grml-x -module i810 wm-ng’. Depending of your setup you might want to set ‘Option "MonitorLayout" "CRT, DFP"’ in the Device-section of your /etc/X11/xorg.conf additionally. That’s it.

Update [2007-01-09]: instead of acpi=off you can try pci=nommconfig as well which should provide a (basically) working ACPI setup without hanging at the mmconfig stuff during bootup. Seems to be a problem of Intel 965 based chipsets…

Set up a router with grml within 1 minute

January 8th, 2007

Thanks to schula for writing down the necessary steps how to set up a router with grml in less than 1 minute. JFTR the steps in english (will become part of grml-tips as well):

  • Execute ‘grml-router’
  • Install dnsmasq if not already present: apt-get update ; apt-get install dnsmasq
  • Adjust /etc/dnsmasq.conf according to your needs:
  • domain-needed
    bogus-priv
    dhcp-range=192.168.0.124,192.168.0.254,1m # dhcp range
    dhcp-option=3,192.168.0.1   # dns server
    dhcp-option=1,255.255.255.0 # netmask
    
  • Run ‘Restart dnsmasq’

That’s it. :-)

Reset password of a user in dokuwiki from the commandline

January 8th, 2007

As I usually forgot how to do it ;-) JFTR a cmdline to reset the password of a user in dokuwiki:

# usr='myuser'; passwd='secret_password'
# sed -i "s#$usr:[[:alnum:]$]*:#$usr:`printf ${passwd} | md5`:#"  /var/lib/dokuwiki/acl/users.auth.php

Online-Poker

January 8th, 2007

So, nachdem ich netterweise von Thomas Quaritsch darauf hingewiesen wurde, dass die Software von pokerstars.de durch den Einsatz von Wine auch unter Linux zum Laufen zu bringen ist, habe ich das mal schnell probiert und es tut ohne große Hexerei:

Screenshot von Pokerstars in Wine

Tipp: in der user.ini (hier in ‘~/.wine/drive_c/Program\ Files/PokerStars.NET/user.ini’) unter dem Punkt [Options] ein "f5redrawtable=1" hinzufügen, dann kann man den Tisch auch vergrößern (einfach mit der Maus in der rechten unteren Ecke anpacken, ziehen und dann F5 drücken).

Interessanterweise ist in der Wine-Datenbank die Version 2.070 erwähnt, ich habe aber 2.065 im Einsatz – obwohl ich auf pokerstars.de die deutsche Beta-Version genommen habe (es gibt auch keine andere zur Auswahl). Anscheinend ist da ein Unterschied zwischen der Variante von pokerstars.com und jener von pokerstars.de. Ich hab auf alle Fälle einen Eintrag für Debian/unstable in der pokerstars-Seite der Wine-Datenbank hinterlassen.

So, ich musste das jetzt leider posten, damit das erledigt ist und ich von dem Spiel jetzt endlich wegkomme. 8-)

Pokerspiele am Computer

January 7th, 2007

Seit Weihnachten bin ich stolzer Besitzer eines Poker-Koffers. Und vor Kurzem ist in Debian unstable pokerth aufgetaucht:

PokerTH is a single-player poker game written in C++/QT4. You can play the popular “Texas Hold’em” poker variant against up to four computer-opponents. This poker engine is open-source and available for Linux and Windows.

Nachdem ich selbst auch Texas Hold’em (no limit) spiele, habe ich mir dieses Spiel mal kurz angesehen. Schaut soweit sehr nett aus, obwohl man momentan nur alleine gegen den Computer spielen kann. Das soll sich laut Taskliste des Projektes aber ändern: network-support (There will be network support for multiplayer modus over net). Sehr schön, ich bin auf alle Fälle gespannt, ob daraus was wird. :-)

Was ich sonst noch im Debian-Pool gefunden habe: gtali aus dem Debian-Paket ‘gnome-games’ beschreibt sich mit "sort of poker with dice and less money. An ancient Roman game, this variant is similar to Yahtzee (R)." Ist somit nicht mein Ding, ebenso wenig wie kpoker und das Kommandozeile-basierte sillypoker ("five card draw, five card stud, and seven card stud poker").

Viel versprechend schaut dafür python-poker2d aus, das auf Wunsch gleich alles relevante für den Gebrauch mit dem pokersource.info-Pokerserver einrichtet. Ich muss mich aber erst noch im Detail durchs Interface kämpfen, bevor ich andere Spieler vernichten kann. 8-)

Online-Pokerspiele hab ich mir noch nicht angesehen, falls da jemand Empfehlungen hat (Voraussetzung: muss unter Linux stressfrei laufen): nur her damit.

Torino 2006 Winter Olympics

January 7th, 2007

*

Es ist gar nicht so einfach, für die Playstation 2 Spiele zu finden, die a) kein Shooter, b) kein Kinderspiel und c) für mehrere Personen (Multiplayer) sind. Für den Fall, dass jemand den gleichen Geschmack wie meine Freundin und ich haben sollte, werde ich jetzt mal Google füttern. ;-) (Disclaimer: ich spiele Shooter durchaus, aber auf Spielekonsolen finde ich Shooter von der Steuerung her typischerweise zu anstrengend.)

Torino 2006 (PS2) ist für 1-4 Spieler und bietet 8 verschiedene Winter-Disziplinen. Leider spielt man nicht simultan gegen andere Spieler, sondern immer nur nacheinander. Die meisten Disziplinen sind aber kurz genug um sich nicht zu langweiligen. ;) Durch die verschiedenen Spielemodi ‘einfach’, ‘mittel’ und ‘schwer’ kommt jeder recht schnell in Schwung. Die Disziplinen in Ski-Alpin gefallen mir am Besten und Slalom scheint meine Spezialdisziplin zu sein. 8-) Die Wartezeiten zwischen den einzelnen Spielen sind ziemlich kurz und man kann fast alles einfach und schnell überspringen, dadurch wird es auch zu viert nicht wirklich langweilig, solange man keine langwierige Disziplin wie Biathlon auswählt. Was ein wenig störend auffällt sind die Kommentare. Anfangs noch lustig wird es mit der Zeit einfach nervend. Es sind immer die gleichen wenigen Sprüche und wenn man bei guter Zwischenzeit bei Ski Alpin einen Torfehler begeht hört man ein ‘toll!’ und mit einigen Sekunden Verzögerung ein ‘nein!’. Die Intelligenz von Kommentatoren scheint also auch in Computerspielen beschränkt zu sein. ;-)

Das Spiel finde ich insgesamt aber dennoch sehr nett, auf einer Skala von 0 bis 10 würde ich 8 Punkte vergeben. 1 Punkt Abzug gibt’s für die teilweise doch sehr schwachen Kommentare und 1 Punkt Abzug für den fehlenden Simultan-Spielemodus.

moreutils

January 7th, 2007

You might know of moreutils‘s existence already, but in case you do not use them so far please give it a try as it’s definitely worth a look:

Description: additional unix utilities
 This is a growing collection of the unix tools that nobody thought
 to write thirty years ago.
 .
 So far, it includes the following utilities:
  - isutf8: check if a file or standard input is utf-8
  - sponge: soak up standard input and write to a file
  - ts: timestamp standard input
  - vidir: edit a directory in your text editor
  - vipe: insert a text editor into a pipe
  - combine: combine the lines in two files using boolean operations
  - ifdata: get network interface info without parsing ifconfig output
  - pee: tee standard input to pipes
  - zrun: automatically uncompress arguments to command
  - mispipe: pipe two commands, returning the exit status of the first

grml 0.9-CDs

December 15th, 2006

Ich habe jetzt ein paar grml 0.9-CDs. 5 Stück davon habe ich kostenlos zu vergeben. Du möchtest eine solche grml-CD haben? Dann nenne mir einen guten Grund, warum gerade du so eine CD bekommen sollst. 8-) Die besten Einsendungen gewinnen und bekommen eine solche CD (im deutschsprachigen Raum) kostenfrei zugesandt. Bewerbungen bitte einfach als Kommentar auf diesen Blogeintrag hinterlassen oder Mail an mich [mika (at) grml.org]. Bitte nicht vergessen die Mailadresse anzugeben, damit ich dich im Gewinnfall auch kontaktieren kann. ;-)

Bewerbungsende ist der 18. Dezember 2006 – 23:59 Uhr, damit es die CD noch rechtzeitig unter den Weihnachtsbaum schafft. ;-)

grml 0.9 cds - bild