Tuesday, 3. February 2004 Week 6

Pröbelei

Heute Morgen eine Probe in "Introduction aux systèmes informatiques" gehabt. Lustigerweise hat der Professor, dessen Unterricht und Übungen das ganze Semester hindurch supereinfach waren, nun eine Probe geschrieben, die nicht damit vergleichbar ist, sondern viel viel schwerer war. Da mir dieses Gebiet etwas liegt, war die Probe trotzdem ziemlich gut verlaufen.
Am Nachmittag dann Probe in Elektronik. Hier hat der Dozent, quasi die genau gleichen Aufgaben gegeben, die er vor einer Woche als Probevorbereitung mit der ganzen Klasse vorgelöst hatte. Weil ich beim Elektronik jedoch nicht so ganz mitkomme, wird diese Probe vermutlich gerade genügend werden.
Vor einer Stunde Probe in "Design industriel". 6 Aufgaben, 5 davon von einer netten Architekturstudentin abgeschrieben, als Sie mich fragt, ob ich noch etwas nicht wisse, legt Sie mir auch noch Ihre Lösung für die 6. Aufgabe hin. :-)
Nunja, in der Reihe vor mir, haben zwei die Probe gelöst, indem Sie die Lösungen mit dem Laptop im Internet nachgeschlagen haben.

Leider zählt vor allem die Elektronikprobe (Koeffizient 3 oder 4 von insgesamt 12). "Introduction aux systèmes informatiques" zählt fast nichts (Koeffizient 1 oder2) und "Design Industriel" überhaupt nichts (Koeffizient 0.25) :-(
Tuesday, 27. January 2004 Week 5
Wednesday, 21. January 2004 Week 4
Sunday, 18. January 2004 Week 3

lmud-0.01.tar.gz

In der debian-powerpc-Mailingliste hat Alexander Clausen, ein kleines Programm veröffentlicht, mit dem man beim PowerBook die Tastaturbeleuchtung steuern und die Lichtsensore abfragen kann. Dank meiner nicht vorhandenen C-Kentnisse, ist nun ein quick'n'dirty daemon dazu entstanden, der ab einer gewissen Dunkelheit automatisch die Tastaturbeleuchtung einschaltet. lmud-0.01.tar.gz
Thursday, 15. January 2004 Week 3
Tuesday, 13. January 2004 Week 3
Monday, 12. January 2004 Week 3

OggVorbis in iTunes

Nach längerem suchen, habe ich endlich etwas gefunden, womit ich in iTunes (Mac OSX 10.3.??) OggVorbis-Dateien abspielen kann: OggVorbis.component, einfach in /Library/QuickTime/ kopieren und die Qualität von OggVorbis geniessen.
Sunday, 11. January 2004 Week 2

pekwm_bgset.pl

Ich habe mein Wallpaper-Script noch ein bisschen ausgebaut. Nun wird das ausgewählte Bild in ~/.pekwm/start eingetragen, damit es bei jedem Start von pekwm automatisch geladen wird.

#!/usr/bin/perl
#
# 2003 by x-way - http://waterwave.ch/weblog
#
# Add this to your menu, if you have pekwm's dynamic menu support:
#
# SubMenu = "Backgrounds" {
#   Entry { Actions = "Dynamic /path/to/this/file /path/to/your/wallpapers" }
# }
#

use warnings "all";
use strict;

if($ARGV[0] eq '-set') {
        my $wallpaper = $ARGV[1];
        
        open(PKCONF, "<$ENV{HOME}/.pekwm/start") or die "Can't open ~/.pekwm/start";
        my @file = <PKCONF>;
        close(PKCONF);

        my @file2 = ();
        my $set = '';

        foreach (@file) {
                s/^xsetbg -center ".*"/xsetbg -center "$wallpaper"/gi;
                push(@file2, $_);
                
                if(index($_, 'xsetbg -center') == 0) {
                        $set = $_;
                }
        };
        
        if($set eq "") {
                push(@file2, "xsetbg -center \"".$wallpaper."\"");
        }
        
        open(PKCONF, ">$ENV{HOME}/.pekwm/start") or die "Can't write ~/.pekwm/start";
        print(PKCONF @file2);
        close(PKCONF);
} else {

        print("Dynamic {\n");

        for(my $i = 0; $i < scalar(@ARGV); $i++) {
                my $dir = $ARGV[$i];

                opendir(DIR, "$dir") || die "Can't opendir $dir: $!";
                my @backgrounds = grep { (! /^\./) } readdir(DIR);
                closedir DIR; 

                foreach my $x (@backgrounds) {
                        my $y = $x;
                        $y =~ s+.*/++g;

                        if(! -d "$dir/$x") {
                                $y =~ s/\.[^\.]*$//g;
                                $y =~ s/(_|-)[0-9]{3,4}(x[0-9]{3,4}|)//g;
                                $y =~ s/_/ /g;
                                $y =~ s/%20/ /g;
                                print("Entry = \"$y\" { Actions = \"Exec xsetbg -center \\\"$dir/$x\\\" && $0 -set \\\"$dir/$x\\\" \" }\n");
                        } else {
                                print("Submenu = \"$y\" {\nEntry { Actions = \"Dynamic $0 \\\"$dir/$x\\\" \" }\n}");
                        }
                }
        }

        print("}\n");
}
Sunday, 4. January 2004 Week 1

pekwm

Nachdem ich alle Kandidaten etwas getestet habe, bin ich bei pekwm hängengeblieben.

"pewkm ist ein kleiner, schneller, funktioneller und flexibler Windowmanager, der versucht nett (hübsch) zu sein während dem er klein bleibt."
So wird er in der Doku beschrieben. Er besitzt viele Features: so kann man zum Beispiel damit wie beim pwm mehrere Fenster zusammenfassen.
Das Rootmenü, welches auf die linke (!) Maustaste belegt ist, lässt sich sehr gut anpassen, da es möglich ist, die Menüeinträge dynamisch zu generieren. Dieses Feature ist ideal, um meine Wallpaper ins Menü einzubinden, ohne für jedes einen Eintrag schreiben zu müssen.
So ist ein kleines Perl-Skript entstanden, das als Parameter Verzeichnisse mit Bilddateien entgegennimmt, diese rekursiv durchsucht, die gefundenen Bilder ins Menü integriert (die Dateinamen werden noch etwas beschönigt) und ihnen mittels xsetbg eine Handlung anzufügt.

#!/usr/bin/perl
#
# 2003 by x-way - http://waterwave.ch/weblog
#
# Add this to your menu, if you have pekwm's dynamic menu support:
#
# SubMenu = "Backgrounds" {
#   Entry { Actions = "Dynamic /path/to/this/file /path/to/your/wallpapers" }
# }
#

use warnings "all";
use strict;


print("Dynamic {\n");

for(my $i = 0; $i < scalar(@ARGV); $i++) {
        my $dir = $ARGV[$i];

        opendir(DIR, "$dir") || die "Can't opendir $dir: $!";
        my @backgrounds = grep { (! /^\./) } readdir(DIR);
        closedir DIR; 

        foreach my $x (@backgrounds) {
                my $y = $x;
                $y =~ s+.*/++g;

                if(! -d "$dir/$x") {
                        $y =~ s/\..*$//g;
                        $y =~ s/_[0-9]{3,4}x[0-9]{3,4}//g;
                        print("Entry = \"$y\" { Actions = \"Exec xsetbg -center $dir/$x \" }\n");
                } else {
                        print("Submenu = \"$y\" {\nEntry { Actions = \"Dynamic $0 $dir/$x\" }\n}");
                }
        }
}

print("}\n");
Friday, 2. January 2004 Week 1

Roboclip

Ich hab heut Nachmittag kurz durchs Fernsehprogramm gezappt. Dabei bin ich bei Roboclip hängen geblieben. Das ist eine automatisierte Sendung, welche Musikvideos abspielt. Für das abzuspielende Musikvideo kann man per Telefon, SMS oder Internet stimmen. Das hat mich als Internet-Junkie natürlich interessiert und ich musste das ausprobieren. Leider kann man für ein Musikvideo nur einmal stimmen, aber um die einigermassen hörbaren Musikvideos abspielen zu lassen braucht es so rund 100 Stimmen. Die Stimmenregistrierung erfolgt mit einem PHP-Script, das Cookies verwendet. Da ich eine Veranlagung zum Experimentieren habe, hats nicht lange gedauert und ich habe nun ein kleines Shell-Skript, das mittels wget das Stimmen für ein Musikvideo automatisiert.

So ist es nun gekommen, dass "Apocalyptica Feat. Nina Hagen - Seemann" und "Metallica - Frantic", welche fast keine Stimmen hatten, plötzlich gerade nacheinander abgespielt wurden ;-) Danach war leider die Sendezeit von Roboclip zuende :-)