Daten|teiler
Kopieren als Kulturtechnik

Mobiles Python II

6. November 2007 von Christian Imhorst

Ich habe zwar immer noch keine Ahnung, ob ich es jemals gebrauchen werde, aber immerhin kann ich jetzt die Python-Konsole meines Nokia E65 (S60-Serie) über Bluetooth mit meinem Gnu/Linux-Rechner verbinden. Im August habe ich im ersten Teil Mobiles Python darüber geschrieben, wie man das mit dem Terminal von MacOS X schaffen kann. Nun kommt der lang ersehnte zweite Teil, in dem ich zeige, wie das Ganze mit einem weiteren Unix-artigen Betriebssystem funktioniert. Zum Testen habe ich diesmal Ubuntu 7.10 „Gutsy Gibbon“ genommen, das ich meiner Freundin Carola zuliebe auf unseren PC installiert habe, den wir gemeinsam nutzen. Mit anderen Linux-Distributionen dürfte das aber genauso funktionieren.

Zuerst braucht man folgende Programmpakete, falls sie noch nicht installiert sein sollten:

  • bluez-hcidump
  • cu

Bei einem Debian-ähnlichen Betriebssystem wie Ubuntu kann man einen Paketmanager wie aptitude verwenden, um die Pakete zu installieren.

sudo aptitude install bluez-hcidump cu bluez-utils

Nachdem erfolgreich installiert wurde, sollte man ersteinmal schaun, ob Bluetooth richtig installiert ist, indem man nach vorhandenen Geräten scannt:

sudo modprobe bluetooth hci_usb
sudo /etc/init.d/bluetooth restart
hcitool scan
Scanning ...
        00:17:E4:10:93:3A       Christians-E65

Super, das Handy wird schonmal erkannt. Dann muss man sich nur noch über die Bluetooth-Konsole einloggen. Voraussetzung dafür ist natürlich, dass Python auf dem Handy der S60-Serie installiert worden ist, wie im ersten Teil beschrieben.

sdptool add --channel=3 SP
rfcomm listen /dev/rfcomm0 3

Das Bluetooth-Protokoll RFCOMM emuliert an /dev/rfcomm0 eine serielle Schnittstelle, von der aus auf Kanal 3 gelauscht wird, ob ein weiteres Bluetooth-Gerät bereit ist. Jetzt muss im Python-Terminal des Telefons die Bluetooth console gestartet werden. Die Konsole sucht automatisch nach dem nächstbesten Gerät, mit dem es sich verbinden kann, und bietet dazu die lauschende Schnittstelle auf dem Gnu/Linux-PC an. Im Terminal erscheint jetzt

rfcomm listen /dev/rfcomm0 3
Waiting for connection on channel 3
Connection from 00:17:E4:10:93:3A to /dev/rfcomm0
Press CTRL-C for hangup

und die Shell ist blockiert. Um die Verbindung mit cu zu startet öffnet man ein neues Terminal und kann loslegen:

cu -l /dev/rfcomm0
Connected.
>>>

Die Python-Konsole auf meinem E65 wird nun von meinem Linux-Rechner quasi „ferngeteuert“. Über die Konsole kann ich Befehle an das Telefon schicken und schauen, was auf dem Handy-Display passiert:

import appuifw
appuifw.note(u'Hallo Welt. ;-)', 'info')

Sollte die Verbindung nicht zustande kommen und stattdessen die Fehlermeldung

cu: open (/dev/rfcomm0): Permission denied
cu: /dev/rfcomm0: Line in use

ständig erscheinen, versucht man vermutlich gerade, sich als Root oder mit sudo als Super-User mit dem Handy zu verbinden. Das klappt nicht. Man muss dazu (ausnahmsweise mal) normaler Nutzer sein.

Geschrieben in Gnu/Linux, Programmieren, Python | Kommentare deaktiviert für Mobiles Python II

Radikale Stimmen zum Urheberrecht

27. Oktober 2007 von Christian Imhorst

Auf dem BlogCampSwitzerland 2.0 hat Michael Gisiger seinen Vortrag mit dem Titel „Copyright, Copywrong – Radikale Stimmen zum Urheberrecht“ gehalten. Im Wiki von anarchist.tv gibt es dazu eine Seite Copyright, Copywrong mit begleitenden Informationen wie Slides, Bilder, Link- und Quellenverzeichnis. Ein angekündigtes Video der Session und eine Zusammenfassung fehlen leider noch. Trotzdem kann man den Verlauf des Vortrags schon sehr gut nachvollziehen.

Geschrieben in Copyleft | Kommentare deaktiviert für Radikale Stimmen zum Urheberrecht

Die Welt in Gänsefüßchen

18. Oktober 2007 von Christian Imhorst

Da hat man schonmal einen Roman geschrieben, will ihn dann in LaTeX setzen und bekommt entweder eine Fehlermeldung oder stellt fest, dass die Anführungszeichen alle oben gesetzt sind.
Tatsächlich habe ich natürlich keinen Roman geschrieben, dafür aber einen kleinen Text, in dem die geraden Anführungszeichen (") am Anfang und Ende eines Satzes LaTeX-spezifisch mit geraden Anführungszeichen und Akzent ("`) und am Ende des Satzes mit geraden Anführungszeichen und Apostroph ("') gesetzt werden sollen, damit an deren Stelle später im PDF geschwungene Gänsefüßchen oben und unten zu sehen sind.
Zuerst habe ich versucht, den Text mit dem Unix-Befehl sed zu bearbeiten, konnte aber keine guten Ergebnisse erzielen. Also dachte ich an Perl, weil es sich am besten dazu eignet, mit regulären Ausdrücken, also mit bestimmten Suchmustern, einen Text zu durchsuchen und zu bearbeiten. In einem Kaufrausch hatte ich mir mal das Perl Kochbuch aus dem O’Reilly Verlag zuglegt. Zu meinem Glück gibt es am Ende des Kapitels über Mustererkennung einen Regex-Baukasten. Regex ist die Kurzform vom englischen „regular expression“, was zu Deutsch halt regulärer Ausdruck heißt. In diesem Regex-Baukasten gibt es Hilfe für mein Problem: "Gerade" Anführungszeichen in ”geschwungene, deutsche“ Anführungszeichen (”Gänsefüßchen“) umwandeln.
Damit konnte ich mir ein kleines Perl-Skript basteln, das dann die Aufgabe für mich erledigt hat:

#!/usr/bin/perl -w
# gaensefuesschen.pl - Verwandelt gerade Anführungszeichen in 
# geschwungene Gänsefüßchen oben und unten in LaTeX.
 
use strict;
 
open(EIN, "< $ARGV[0]")
   or
   die "\nDatei $ARGV[0] konnte nicht geoeffnet werden\n";
 
open(AUS, "> $ARGV[1]")
   or
   die "\nDatei $ARGV[1] konnte nicht geoeffnet werden\n"; 
 
undef $/;
my $text = <EIN>;
 
use locale;
 
$text =~ s/"([^"]*)"/\"\`$1\"\'/g;
 
print AUS $text;
 
close(EIN);
close(AUS);

Das Skript gaensefuesschen.pl wird im Ordner mit dem Text abgespeichert und muss noch ausführbar gemacht werden.

chmod +x gaensefuesschen.pl

Danach ist es einsatzbereit:

./gaensefuesschen.pl Text_alt.tex Text_neu.tex

In der Datei Text_neu.tex kann man schließlich die Veränderungen bewundern.

Geschrieben in Programmieren | Kommentare deaktiviert für Die Welt in Gänsefüßchen

Pkgsrc und Debian Gnu/Linux

10. Oktober 2007 von Christian Imhorst

Die Paketsammlung pkgsrc von NetBSD hat mehrere interessante Vorteile, die andere Paketverwaltungssysteme nicht haben. Wie ich weiter unten zu pkgsrc und Mac OS X bereits geschrieben habe, läuft die Paketverwaltung auf beinah allen Unix-artigen Betriebssystemen. Dabei ist sie auf kein bestimmtes Verzeichnis festgelegt und kann von einfachen Benutzern installiert werden, die nicht über Administrationsrechte verfügen. Diese Features bietet die Paketverwaltung APT von Debian zum Beispiel nicht.
Da Debian GNU/Linux aber zu der Gruppe der Unix-artigen Betriebssysteme gehört, kann man pkgsrc ganz leicht installieren. Vorher braucht man aber noch CVS für die Installation und, damit man später Quellcode kompilieren kann, das Meta-Paket build-essential:

# aptitude install cvs build-essential

Danach besorgt man sich den CVS-Tree und kopiert ihn in das Heim-Verzeichnis:

$ export CVS_RSH=ssh
$ export CVSROOT=anoncvs@anoncvs3.de.netbsd.org:/cvsroot
$ cvs co -PA pkgsrc

Wie das Dollar-Zeichen im Terminalprompt zeigt, muss man dafür nicht Root sein. Das Kopieren des CVS-Trees kann jetzt eine Weile dauern, da etwa 370 MB geholt werden, Tendenz steigend, weil das Archiv permanent wächst. Sobald das Archiv vollständig geladen ist, wechselt man in den Verzeichnisbaum zum Bootstrap. Bootstrap installiert bmake, die BSD-Variante von make. Wenn man pkgsrc auf einem anderen System als NetBSD verwendet, muss man bmake nehmen, damit die Übersetzung des Quellcodes funktioniert.

$ cd pkgsrc/bootstrap
$ sudo ./bootstrap

Hier kann man übrigens sehen, dass ich auf meinem System sudo aktiviert habe. Wer kein sudo benutzt muss stattdessen in die Root-Shell wechseln. Man kann pkgsrc auch ohne Administrationsrechte ausprobieren. Dazu wird der Befehl ohne „sudo“, das heißt als normaler Benutzer, und mit dem zusätzlichen Argument „--unprivileged“ eingegeben:

$ cd pkgsrc/bootstrap
$ ./bootstrap --unprivileged

Es kann übrigens passieren, dass man beim Bootstrap auf folgende Fehlermeldung stößt:

$ cd pkgsrc/bootstrap
$ sudo ./bootstrap
Password:
ERROR: Your shell's echo command is not BSD-compatible.
ERROR: Please select another shell by setting the environment
ERROR: variable SH.

Wenn das passiert, verwendet man vermutlich eine Ubuntu-Version, in der /bin/sh ein symbolischer Link auf /bin/dash ist. Der Echo-Befehl der Dash-Shell ist allerdings nicht BSD-kompatibel. Dash steht für Debian Almquist Shell und ist seit „Edgy Eft“ die Standard-Shell unter Ubuntu. Die Dash ist kleiner und schneller als die Bash, der Standard-Shell auf den meisten Linux-Systemen, und erfüllt dabei vollständig die POSIX-Spezifikation. Sie ist aber, wie gesagt, nicht BSD-kompatibel. Daher muss der symbolische Link von der Dash auf die Bash geändert werden.

Mit dem Befehl ls -l findet man heraus, wo das Problem liegt:

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-09-22 15:46 /bin/sh -> dash

Den Link ändert man, indem man zuerst eine Sicherheitskopie des alten Link anlegt, um dann einen neuen Link zu erzeugen:

$ sudo mv /bin/sh /bin/sh.old
$ sudo ln -s /bin/bash /bin/sh

Wenn man das Kommando ls -l wiederholt, dürfte der Link jetzt auf die Bash verweisen.

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 2007-09-23 18:19 /bin/sh -> /bin/bash

Ohne die Option „--unprivileged“ wird das neue Verzeichnis /usr/pkg/ angelegt. Verwendet man die Option, befindet sich der neue Ordner pkg im Heim-Verzeichnis. Damit die Programme, die pkgsrc im Verzeichnis <dir>/pkg/bin/ installiert, aufgerufen werden können, ohne dass man ständig den ganzen Pfad zum Programm mit angeben muss, fügt man ihn der Umgebungsvariable PATH hinzu. Hat man sich für die Variante entschieden, pkgsrc ins Wurzelverzeichnis zu installieren, exportiert man den Pfad folgendermaßen:

export PATH=/usr/pkg/bin:$PATH

Soll der Pfad dauerhaft in die Umgebungsvariable PATH aufgenommen werden, kann man den Befehl zum Beispiel in die Datei .bash_profile oder.bashrc im Heim-Verzeichnis eintragen:

$ echo 'export PATH=/usr/pkg/bin:$PATH' >> ~/.bashrc

Für eine systemweite Änderung kann man stattdessen auch die Datei /etc/profile anpassen.
Wenn man sich beim Bootstrap für die Variante entschieden hat, dass pkgsrc nur im eigenen Heim-Verzeichnis installiert wird, übergibt man folgenden Pfad an die Umgebungsvariable PATH:

$ echo 'export PATH=$HOME/pkg/bin:$PATH' >> ~/.bashrc

Um ein Programm mit pkgsrc zu installieren, wechselt man in das Verzeichnis mit dem Pkgsrc-Repository und führt bmake aus:

$ cd pkgsrc/misc/figlet
$ sudo bmake install clean

Das Programm Figlet wird nun installiert. Wenn die Installation beendet ist, wird man am besten wieder normaler Benutzer und probiert es aus:

Debian4e

Zum weiterlesen gibt es die Dokumentation The pkgsrc guide auf der NetBSD-Homepage.

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Pkgsrc und Debian Gnu/Linux

Die kleine Opera und Ubuntu/Debian-FAQ

25. September 2007 von Christian Imhorst

Wie installiere ich Opera unter Debian oder Ubuntu?

Vor etwa einem Jahr hatte ich schonmal beschrieben, wie ich Opera auf meinem Ubuntu-System installiert habe. Damals auf ähnliche Weise, wie auf meinem Debian-System. Ich hatte einfach die Zeile

deb http://deb.opera.com/opera etch non-free

in die Datei /etc/apt/sources.list eingetragen und den entsprechenden GPG-Schlüssel importiert:

$ gpg --keyserver subkeys.pgp.net --recv-key 6A423791
$ gpg --fingerprint 6A423791
$ gpg --armor --export 6A423791| sudo apt-key add -

Danach muss man nur noch als Superuser oder Root die Paketverwaltung aktualisieren und Opera installieren:

# aptitude update && aptitude install opera

Für Ubuntu-Nutzer gestaltet sich das ganze noch einfacher. Einfach die Zeile

deb http://archive.canonical.com/ feisty-commercial main

in die Datei /etc/apt/sources.list einfügen und anschließend Update und Installation mit einem Paketmanger ausführen. Einen GPG-Schlüssel muss man dafür nicht installieren. Das kann man auch ganz einfach und schnell mit der grafischen Paktverwaltung Synaptic machen, indem man unter Einstellungen » Paketquellen im Reiter „Software von Drittanbietern“ das einen Haken vor das Repository „http://archive.canonical.com/ubuntu setzt“. Alternativ kann man das Paket auch einzeln von der Seite Opera.com/download herunterladen und mit einem einfachen Doppelklick auf die Datei installieren. Der Vorteil über die Paketverwaltung zu gehen ist einfach, dass Updates automatisch eingespielt werden.

Gibt es Del.icio.us-Buttons wie beim Firefox?

Nachdem man dann eine passende Sprachdatei und einen schicken Skin für z.B. Ubuntu von Opera heruntergeladen hat, kann man zum Weblog von Andreas Solberg surfen, um sich Opera-Buttons für del.icio.us zu erstellen. Die Buttons dann einfach per drag ’n‘ drop in die Symbolleiste ziehen.

Opera mit Del.icio.us-Buttons

Die drei Symbole auf der rechten Seite sind speziell für die eigene Del.icio.us-Seite. Die Symbole sehen übrigens anders aus, wenn man ein anderes Skin verwendet. Hier sehen wir das Oxid-Skin. Mit dem ersten der drei Symbole, von links gesehen, kann man neue Lesezeichen posten. Das nächste Symbol führt zur Inbox und das Symbol ganz rechts zur eigenen Del.icio.us-Hauptseite. Nach diesen kleinen Änderungen ist Opera ready to surf.

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Die kleine Opera und Ubuntu/Debian-FAQ

„Anarchie und Quellcode“ zum weiterlesen

23. September 2007 von Christian Imhorst

Michael Gisiger hat in seinem Blog wortgefecht.net meine These aus „Anarchie und Quellcode“ weitergesponnen, dass Open-Source- und Free-Software-Bewegung in der Tradition anarchistischer Denker aus den USA stehen. In seinem Posting „Copyright, Copywrong“ schreibt er dazu:

Vertreter des BSD- oder des Open Source-Ansatzes stehen so in der Nachfolge eines Lysander Spooners, einem amerikanischen Anarchisten des 19. Jahrhunderts, der sich in seinem Essay „The Law of Intellectual Property“ zwar klar für ein Urheberrecht aussprach, dieses aber alternativ ausgestalten wollte. Stallman, Gründer des GNU-Projekts, hingegen entwickelt die Ideen Benjamin Tuckers weiter. Auch Tucker war ein amerikanischer Anarchist und Zeitgenosse Spooners, der sich jedoch anders als dieser gegen Urheberrechte stellte. Für ihn waren diese nur ein weiteres Monopol, welches es abzuschaffen galt.

Diesen Hinweis sollte ich zum Anlass nehmen, mich mehr mit Lysander Spooner und Benjamin Tucker zu beschäftigen. Ein erster Lesetipp wäre da vielleicht das genannte Essay „The Law of Intellectual Property“. Wer schnell mehr zum Thema wissen will, sollte die Diskussion aber schon jetzt bei anarchist.tv verfolgen.

Eventuell hält Michael einen kurzen Vortrag auf dem BlogCamp Switzerland 2.0 am 20. Oktober in Zürich. Sollte das der Fall sein und man sich zufällig an dem Tag im BlogCamp befinden, kann man sich das natürlich nicht entgehen lassen. Ich werde es leider nicht schaffen.

Geschrieben in Copyleft | Kommentare deaktiviert für „Anarchie und Quellcode“ zum weiterlesen

Die Reiche von Debian

23. September 2007 von Christian Imhorst

Anfang des Jahres hat BlueShadow im Sidux-Forum die Parabel „Die Reiche von Debian“ vorgestellt. Wie es sich für eine Fantasy-Geschichte gehört, hat er auch eine Karte gezeichnet, durch die der Leser den Überblick über die mystischen Orte behält. Es ist eine sehr schöne Geschichte, auch wenn Ubuntu nicht ganz so gut dabei wegkommt.

The Realms of Debian

Später wurde die Parabel als Prolog für das Sidux-Wiki ausgewählt. Eine schöne Idee, Leser in die vielleicht fremde Welt von Debian einzuführen, bevor sie sich auf die technischen Anleitungen im Wiki stürzen. Leider hat es die Geschichte noch nicht in die englische Version des Wikis geschafft, obwohl sie dort schon angekündigt wird. Eine erste Übersetzung findet man aber im englischen Forum von Sidux.

Prolog oder Debian’s Reiche

Neugierig beobachteten die Dorfbewohner den Neuankömmling. Wie immer, wurde sehr schnell spekuliert, wo er denn herkäme. War es ein Wanderer zwischen den Welten? Kam er aus einem anderen Teil der Linuxwelt? Musste, oder wollte er seine Heimat verlassen? Manche munkelten sogar, dass er direkt aus der Leere zwischen den OS-Welten kam, und Debian die erste Nation war, die er je betrat. Auch wenn dies eher unwahrscheinlich war, kam so etwas durchaus vor, und solche Fälle wurden in letzter Zeit auch häufiger. Vielleicht wohnte er auch schon in einem Reich von Debian. Weiter lesen…

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Die Reiche von Debian

Free your Powerbook

11. September 2007 von Christian Imhorst

Ich habe heute eine sehr nette E-Mail erhalten, die ich hier gerne veröffentlichen möchte, da sie ein paar Tipps zum Thema enthält, wie man eine größere Festplatte ins Powerbook einbaut:

Hallo Christian,

habe gerade nach Ihrer Anleitung Linux auf meinem G4 12″ Powerbook installiert. Jetzt geht sogar das mit WPA verschlüsselte Wlan. Ich möchte mich hiermit für die gute Anleitung bedanken. Ich hätte das sonst nie so hinbekommen!

Übrigens: Ich hatte eine 80 Gb Festplatte, welche ich mittels dd auf eine 120er geklont habe – man kann ja den Mac mit gedrückter T-Taste so starten, dass er die eingebaute Festplatte als Firewireplatte anbietet – dann an Linux angestöpselt, dd if=/dev/input of=/dev/ziel eingegeben und nach ein paar Stunden war die alte Platte auf der neuen, nur mit 40 Gb zusätzlichem Platz. Dann habe ich mit Hilfe von „Wie man ein 12-Zoll Powerbook öffnet“ die 120er Platte ins Pb eingebaut und nach Ihrer Anleitung weitergemacht.

Viele Grüsse und Danke nochmal!

Marcus

Vielen herzlichen Dank für das tolle Kompliment. Aber es ist OK, wenn man mich in privaten E-Mails duzt. Sonst komme ich mir auch zu Hause noch so vor wie auf der Arbeit. 8-)

Geschrieben in Gnu/Linux | Kommentare deaktiviert für Free your Powerbook

Mac OS X Tiger for Unix-Geeks – Fehlende Hinweise 1: Burning CDs

10. September 2007 von Christian Imhorst

Die Autoren von Mac OS X Tiger for Unix Geeks hätten im Kapitel „Burning CDs“ ruhig erwähnen können, dass das Kommandozeilen-Tool hdiutil auch mit ISOs umgehen kann. Besprochen wird leider nur das hauseigene Datenformat DMG (Disk Image). Für alle also, die sich fragen, ob man auf dem Mac auch ISO-Images mit einem Befehl in der Kommandozeile brennen kann, hier die Antwort: Ja, geht. Und zwar so:

hdiutil burn image.iso

Den restlichen Eintrag lesen »

Geschrieben in MacOS X und iPhone | Kommentare deaktiviert für Mac OS X Tiger for Unix-Geeks – Fehlende Hinweise 1: Burning CDs

Mac OS X Tiger for Unix-Geeks – Fehlende Kapitel 1: Working with Packages. NetBSD Pkgsrc

9. September 2007 von Christian Imhorst

In dem Buch Mac OS X Tiger for Unix Geeks gibt es zwar ein Kapitel zu Fink und eins zu den DarwinPorts (die jetzt wohl MacPorts heißen), es fehlt aber ein Kapitel zu pkgsrc, der Paketverwaltung von NetBSD. Dabei hat pkgsrc ein paar interessante Features, die andere Paketverwaltungen nicht haben: Es läuft auf beinah allen Unix-artigen Betriebssystemen, es ist auf kein bestimmtes Verzeichnis festgelegt und es kann von Benutzern installiert werden, die nicht über Administrationsrechte verfügen.
Um pkgsrc unter Mac OS X benutzen zu können, braucht man allerdings das Versionsverwaltungssystem CVS. Um CVS wiederum benutzen zu können, muss man vorher Xcode als Administrator installiert haben. Xcode befindet sich z.B. auf der zweiten Installations-CD von „Tiger“ oder kann von Apple direkt heruntergeladen werden. Dafür muss man allerdings eine kostenlose Mitgliedschaft in der Apple Developer Connection (ADC) erwerben.
Im Wiki der NetBSD Community gibt es eine sehr gute Anleitung auf Englisch, um pkgsrc unter Mac OS X zu installieren. Im Prinzip folge ich dieser Anleitung, wenn auch mit einigen kleinen Abweichungen.

Den restlichen Eintrag lesen »

Geschrieben in MacOS X und iPhone | Kommentare deaktiviert für Mac OS X Tiger for Unix-Geeks – Fehlende Kapitel 1: Working with Packages. NetBSD Pkgsrc

« Previous Entries Next Entries »