Gentoo Linux ist kein Betriebssystem, es ist ein Hobby. Und auf meiner Konradsreuther Hochleistungsrechenmaschine (Pentium II, 333 MHz, 162 MB RAM) ist es vor allem eine Geduldsprobe. Gentoo steigt auf den gcc 4.1.1 um, und ich steige natürlich mit. Was tut man dann da? Man baut alle Pakete neu. Alle. Und zwar erstmal mit dem alten Compiler den neuen Compiler, dann mit dem neuen Compiler, der noch mit dem alten Compiler gebaut wurde, alle Tools, die man so zum Kompilieren braucht. Inclusive dem Compiler selbst, der sich ja dann selber mit der neuen Version baut. Alles klar? ;-) Tja, und danach fängt dann die Sauerei an: emerge -eav world. Und das ziiieeehhht sich dann …
Okay, Spaß beiseite, die 600sonstwieviel Pakete haben auch nur 5 Tage gebraucht oder sowas. Schließlich weiß man ja, worauf man sich einläßt, wenn man eine Source-Distribution benutzt. Aber währenddessen kann man ja mal sinnvolle Sachen machen, wie z. B. seine Kernel-Konfiguration ausmisten. Dabei habe ich dann festgestellt, daß man Sachen, die man zwar häufig aber nicht immer braucht, eigentlich als Modul bauen sollte: weil wenn man dann z. B. seinen USB-Stick einsteckt oder den USB-Drucker einschaltet, dann lädt der Kernel brav von selber die notwendigen Module. Das ist doch mal was :-)
Mein (mittlerweile nicht mehr ganz so) neues Handy (ein Nokia 6230i) kann alles, nur nicht automatisch SMS überschreiben, wenn der Speicherplatz knapp wird. Und das minutenlange „Optionen“, „Löschen“, „Okay“, „Optionen“, „Löschen“, „Okay“ hat mich in gewissen Maße genervt. Also habe ich ein Programm geschrieben, was das für mich erledigt.
So spät auf die Idee gekommen bin ich hauptsächlich deswegen, weil mir erst vor kurzem aufgefallen ist, daß ein USB-Bluetooth-Dongle (in meinem Fall ein einwandfrei unter Linux funktionierendes Delock-Class-1-Dings) gar nicht teuer ist und man mit einem eben solchen nette Spielereien mit dem Handy und dem Computer machen kann. Aber zum wesentlichen:
smscleaner löscht alle gelesenen und gespeicherten gesendeten SMS bis auf 50 (oder so viele wie man angibt), und sichert sie vorher in einer XML-Datei. Damit auch keine verloren gehen :-) Das ganze ist in Python geschrieben. Mein aller-aller-erstes Python-Programm! Nicht etwa, weil ich Python besonders toll finden würde, sonder vielmehr, weil ich (nach wie vor) kein C kann und es für Perl kein Gammu-Modul gibt. Was will man also anderes machen?! Gammu und das zugehörige Python-Modul erledigen die Kommunikation mit dem Handy. Meines Erachtens ist Gammu auch die Engine, die am fehlerfreisten mit Handys kommuniziert.
Mit meinem Handy funktioniert alles schön. Wie's mit anderen aussieht, weiß ich nicht, also wäre es super, wenn ein paar Leute das testen könnten. Aber mit etwas Sorgfalt – schließlich ist's ja mein erstes Python-Programm und irgendwas softwaremäßiges mit Handys hab ich auch noch nie gemacht.
Egal wie – Viel Spaß damit :-)
Nachtrag: Damit das Programm funktioniert, muß Gammu das Telefonbuch lesen können und es muß sowohl von empfangenen als auch von verschickten SMS das Datum auslesen können. Bei meinem Handy funktioniert das alles mit dem bluephonet-Protokoll.
Netterweise mag der Google-Bot meine Homepage und indiziert schön alles, was ich hier so von mir gebe (und spuckt auch zum Teil erstaunlich gute Plazierungen meiner Seite aus, oft z. B. bei Suchen nach LaTeX-Sachen oder Linux-Kram, den ich hier dokumentiert habe). Deswegen ist jetzt auch mal alles rausgeflogen, was mit Suche zu tun hat, was ich selbst zusammengeschustert habe. Weil funktioniert hat das eh noch nie so richtig ;-)
Dafür gibt's jetzt im Weblog und im Linux-Know-How eine Suche, die einfach die Suchbegriffe an Google weiterschickt und die Suche auf die jeweiligen Verzeichnisse der Seite einschränkt.
Funktioniert ganz gut soweit! Danke für die abgenommene Arbeit, Google ;-)
Tja, Semesterferien, da hat man mitunter ein bißchen Zeit übrig ;-) Deswegen hab ich mir gedacht, ich könnte ja eigentlich mal digicamsync überarbeiten.
Die Änderungen dürften an sich keinem auffallen, weil keine neuen Funktionen hinzugekommen sind. Aber ein paar Buxfixes hat's gegeben, der Code sieht jetzt schöner aus und es sind ein paar Sachen rausgeflogen, die's nicht gebraucht hat. Ja, man lernt mit der Zeit immer mehr über Perl … z. B., daß man sich keine Funktion schreiben muß, die einen String mehrfach ausgibt, weil man das mit
print "String" x 5;
„Einfach so“ machen kann (Perl eben ;-). Ergebnis:
StringStringStringStringString
Ansonsten hab ich das gettext-Modul ausgetauscht: ab jetzt verwende ich Locale::Messages anstatt von Locale::gettext. Weil Locale::Messages „einfach so“ ngettext() mitbringt. Was Locale::gettext an sich scheinbar auch tut, aber auf eine Art und Weise, die ich nicht verstehe. Warum sich also knechten? ;-)
Alle Interessierten können sich ja den Changelog durchlesen. Ansonsten: Viel Spaß!