ejabberd mit PyICQ-t unter Debian Etch

Nachdem die Jungs von teranetworks nun einen eigenen Jabber-Server haben, dachte ich mir, "das kannst du auch".

Gesagt getan, kurz im Netz gesurft und ejabberd für besser als jabberd gefunden, aufm Server eingeloggt und apt-get install ejabberd. Das zieht erstmal einige erlang Pakete, dann ejabberd und installiert diese. Während der Installation wird man von debconf nett gefragt, wie der Server heißen soll und wer Administrator ist. Schon war der Server online und ich konnte chatten - aber nur mit Leuten die Jabber haben, was leider nicht immer der Fall ist.

Also musste ein ICQ-Transport her. Ich entschied mich für PyICQ-t, und bereute diese Entscheidung sehr schnell, denn es gab keine Debian Pakete. Aber es ist ja Python, kann also nicht so schwer sein zum Laufen zu bekommen. Kurz das tar.gz von http://pyicq-t.blathersource.org/ runterladen, entpacken und schauen was es so an Dependencies hat - twisted, twisted-web und twisted-words. apt-get install python-twisted python-twisted-web python-twisted-words ... MOMENT! libgtk?! libglade?! WTF?! Also nochmal gucken. python-twisted ist kein wirkliches Paket, hängt aber von allen Unterpaketen ab. Was brauch ich davon wirklich? Nur python-twisted-web und python-twisted-words, zieht dennoch das ganze GTK und Glade Zeug mit, siehe http://bugs.debian.org/412684. Naja, also:
apt-get install python-twisted-web python-twisted-words python-crypto python-pyopenssl python-imaging
die letzten drei werden später noch benötigt, sonst rennt PyICQt nicht.

Jetzt noch kurz die /etc/ejabberd/ejabberd.cfg editieren - ICQ Transport aktivieren.
Ebenso in ~/pyicq-t-0.8/ die config.xml aus dem Beispiel erstellen, ebenso passend konfigurieren und fertig. "python PyICQt.py -b" tippen und das Ding rennt.

Jetzt habe ich einen eigenen Jabber-Server und ICQ-Transport! Yay!

Jabbert mir unter sargentd@jabber.die-welt.net

Created a feed for a website I needed

After reading Nico's post about creating RSS feed for a website you want I first didn't think I could use the service, but now I recognized that I need it.

I own a ThinkPad Z61m from IBM/Lenovo and hate to track the new BIOS versions from the website.
Now I have created a RSS feed for this website, which you can find here: http://feed43.com/thinkpad-z61-bios.xml, and added it to my Firefox^WIceweasel LiveBookmarks. So I do not have to visit the IBM website for a new BIOS.

Thanks Nico!

Never trust teh Google

und anderen Web-Applikationen auch nicht!

Ich habe vor morgen die Strecke Düsseldorf-Oberharmersbach mit meinem Auto zu fahren - dazu gehört natürlich auch eine passende Route. Also mal bei Google-Maps und Map24 geguckt. Laut Google-Maps ist die Strecke 435 Kilometer lang und ich sollte sie in 5:51 Stunden schaffen, allerdings widerspricht Map24 dem gewaltig - zwar ist die Strecke mit 419 Kilometern fast genauso lang, allerdings müsste ich sie in nur 4:33 Stunden schaffen, was eine Differenz von fast anderthalb Stunden für lausige 16 Kilometer macht!? Und ja ich habe bei beiden die exakten Adressen eingegeben, so dass der Unterschied eigentlich minimal sein sollte. Naja, schaun wir mal was mein Auto morgen sagt - wollte die Strecke eh etwas anders als vorgeschlagen fahren, da die zu besuchende Person mir gesagt hat, dass es so besser ist und man durch weniger Dörfer mit Schritttempo (wirklich drei T???) durchfahren muss.

Werde mir aber auf jeden Fall beide Routen gleich ausdrucken und morgen durchlesen, bis Offenburg kommen ist einfach, danach mal sehen.
Und warum muss man eigentlich bei Map24 auf 1km/inch zoomen, um beim Druck des Kartenausschnittes die gewünschten 5km/inch zu bekommen? o_O

Finding duplicate files or directories with Linux

I think everybody knows this situation: the collection of $FOO has grown over the years and you may have some duplicates in it. Even disk space isn't very expensive anymore, the fact of having duplicates annoys me. So today I had some spare time and started cleaning up my drives. In directories with 20 or 30 items this is quite easy, but what is when you have a directory with 1500 items? Ask your favorite shell, but before you can do this, you need to look up a regex-pattern which matches the usual naming sheme. I usually have $FOO-$BAR-some-shit or $FOO_-_$BAR-some-shit and $FOO and $BAR are the only interesting information. Because of this, my pattern looks like ([a-zA-Z0-9])-([a-zA-Z0-9]). - I have to groups of alphanumerical-stuff, divided by a hyphen and do not care for the rest.

But I still do not know, where my duplicates are, so I ask my favorite tools: my shell (zsh, but this works with every POSIX-shell), sed and uniq:

ls /foo | sed -e 's#[^a-zA-Z0-9-]##g;s#([a-zA-Z0-9])-([a-zA-Z0-9]).#\1-\2#' | uniq -id

This lists the contents of the /foo directory, strips all the non-alphanumeric characters, reformats the string to show only $FOO and $BAR and then shows the duplicates case-insensitive.
In my dir with 1500 items I got about 70 duplicates, most of them were really positives, only some few false-positives because of the stripped "some-shit" at the end.

Hope this helps someone, but I also would love to see your comments how the search for duplicates could be improved.

Firefox^WIcewesel search with BlackBox RELOADED

Everybody knows, that Google isn't evil, but they still collect some data and stuff, so people dislike it. But Google also gives the best results for searches. So what to do? Yeah, use BlackBoxSearch (by the way, nobody said, they are not evil too...). But there is some uncomfortability: I do not like to go to some website to do a search and I do not like to use the Firefox^WIceweasel search box in the right corner either - it's just too far away from the address-bar. Yepp, I usually use the address-bar for searches, just type some keywords in at it redirects you to Google. But I wanted BlackBox - what to do?

It is quite easy - but it took some time to figure out, that the right config string is keyword.URL - nothing with "search" or "google" in it.
So just open about:config in your Firefox^WIceweasel and search for keyword.URL. It should be set to something like "http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=", so we change it to http://www.blackboxsearch.com/cgi-bin/searchGoogle.cgi?q= et voila - after typing some random shit into the address-bar, we get results from Google proxied through BlackBox.

Yay for teh non-evilness!

PS: When you read http://www.google-watch.org - never forget to read http://www.google-watch-watch.org/ ;-)

GPRS unter Linux mit Nokia 6230i und ALDI-Talk (E-Plus)

Ich habe ja bereits vorhin beschrieben, wie man mit Linux per GPRS ins Internet kommt, wenn man ein Nokia 6230i mit Datenkabel und Vodafone hat.
Auch habe ich geschrieben, dass ich mit den Preisen von Vodafone überhaupt nicht zufrieden bin. Deswegen war ich vorhin bei ALDI-Süd und hab mir so ein ALDI-Talk Starter-Set geholt. Kostet 14.99 und enthält 10€ Guthaben. IMHO voll okay das Angebot, vor allem weil das MB Traffic nur 24 Cent kostet.

ALDI-Talk arbeitet ja, wie auch Simyo, Blau.de etc, im E-Plus Netz. Deswegen musste ich mein ppp ein wenig umkonfigurieren, damit es klappt.
Im Endeffekt musste ich aber nur den Zugangspunkt von web.vodafone.de auf internet.eplus.de stellen.

diff /etc/chatscripts/vodafone-gprs /etc/chatscripts/eplus-gprs

12c12
< OK 'AT+CGDCONT=1,"IP","web.vodafone.de"'
---
> OK 'AT+CGDCONT=1,"IP","internet.eplus.de"'

Wer nicht flüssig diff-lesen kann...
chatscript (/etc/chatscripts/eplus-gprs):
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATE1
OK 'AT+CGDCONT=1,"IP","internet.eplus.de"'
OK ATD*99#
CONNECT ""

peer (/etc/ppp/peers/eplus-gprs):
connect "/usr/sbin/chat -v -f /etc/chatscripts/eplus-gprs"
/dev/ttyACM0
115200
noipdefault
usepeerdns
defaultroute
persist
noauth

Interessanter Weise hab ich zwar vorhin 20KB Traffic gemacht, mein Guthaben ist aber immer noch bei vollen 10€. Die Jungs sind wohl etwas langsam.

Mal die Tage mit Papas UMTS-Handy schauen, ob das auch klappt :>

GPRS unter Linux mit Nokia 6230i und Vodafone.de

Wie ihr wisst, hab ich ein Thinkpad, mit dem ich auch schon mal unterwegs bin. Da braucht man manchmal auch Internet und man findet gerade kein offenes WLAN. Mit dem passendem Kleingeld in der Tasche kann man sich per GPRS mit Vodafone verbinden und E-Mails abrufen (mehr würde ich aus Kostengründen nicht machen). Dazu habe ich mir von meinem Vater das passende USB Datenkabel (Nokia CA-53) für mein Nokia 6230i ausgeliehen, da ich irgendwie keins habe und angefangen mein Debian zu vergewaltigen.

Beim Einstöpseln des USB-Kabels fragt das Handy, ob man es "als Speichergerät verwenden" möchte - heißt im Klartext, dass es sich wie ein USB-Storage verhält, man kann aber nur auf die MMC zugreifen, nicht auf die Daten im Handyspeicher. Also abbrechen und das Handy ist nun einfach angeschlossen. lsusb sagt:

Bus 003 Device 005: ID 0421:0428 Nokia Mobile Phones
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0421 Nokia Mobile Phones
idProduct 0x0428
bcdDevice 3.50
iManufacturer 1 Nokia
iProduct 2 Nokia 6230i
iSerial 0
bNumConfigurations 1
...

Wenn der Kernel bereits mit CONFIG_USB_ACM=m gebaut ist, wird das cdc_acm Modul geladen und /dev/ttyACM0 erstellt (ich musste erstmal Kernel neubauen).
Bis dato hatte ich keinen Erfolg Wammu oder Gammu zum Funktionieren zu bewegen. Liegt anscheinend am Kabel (über Infrarot hab ich das mal vor längerer Zeit gemacht) ist aber nicht so tragisch, denn ich möchte primär ins Internet. Dafür braucht man den pppd, unter Debian im Paket "ppp" enthalten. Des weiteren muss der Kernel mit PPP-Unterstützung gebaut sein (war meiner natürlich wieder nicht). Also mal schauen ob man folgende Optionen hat:
CONFIG_PPP=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m

Bei Multilink und Filter bin ich mir nicht sicher, dass man sie braucht, aber schaden tun sie nicht.
Wenn der Kernel und Userspace bereit für PPP sind, muss man dieses konfigurieren. Also geht man auf vodafone.de und schaut sich die GPRS Einstellungen an. Daraus ergeben sich dann folgende zwei Konfigurationsdateien:

chatscipt (/etc/chatscripts/vodafone-gprs):
TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
TIMEOUT 12
OK ATE1
OK 'AT+CGDCONT=1,"IP","web.vodafone.de"'
OK ATD*99#
CONNECT ""

peer (/etc/ppp/peers/vodafone-gprs):
connect "/usr/sbin/chat -v -f /etc/chatscripts/vodafone-gprs"
/dev/ttyACM0
115200
noipdefault
usepeerdns
defaultroute
persist
noauth

Nun reicht ein herzliches pon vodafone-gprs und nach wenigen Sekunden hat man eine Verbindung. poff vodafone-gprs beendet diese dann wieder.
Das Problem ist nun, dass GRPS-by-Call bei Vodafone ca 19Cent pro 10KB kostet und ich mir das auf Dauer nicht leisten kann. Bei ALDI-Talk kriegt man 1MB für 24Cent, was ich recht okay finde (wenn auch super teuer im Vergleich zu DSL oder Cable) und man darf (passende Hardware vorausgesetzt) UMTS zu selben Preisen nutzen. Der Hacken an der Sache ist, dass ALDI-Talk im E-Plus Netz werkelt, und die absolut bescheidene Abdeckung haben, was GPRS und UMTS angeht. Mal schauen, werde mir so ne Prepaid Karte dennoch holen denk ich, und dann sehen wir weiter. Immerhin hab ich keine Kosten wenn das Ding in der Ecke vergammelt.

Never trust teh GRUB

Ich habe mich heute entschlossen, auf meinem ThinkPad mal Mac OS X x86 zu installieren. Da meine interne Platte schon recht dicht partitioniert ist und ich keinen Schaden anrichten wollte, sollte das Ganze auf eine per USB angeschlossene 20GB Platte fließen. Wie man aus dem ThinkPad ein iPad (oder ThinkBook, oder PowerPad, oder [wieauchimmer]) macht, werde ich an dieser Stelle nicht erläutern (vielleicht später, aber es war wirklich einfach), aber ich wollte von einer anderen Begegnung berichten.

Auf dem ThinkPad hab ich hier eigentlich ein Dual-Boot aus Windows XP Pro und Debian GNU/Linux (eigentlich ein Tripple-Boot, denn da ist ja noch das IBM-Rescue Zeug drauf, das ich bei Gelegenheit mal löschen könnte). Wie so oft kommt als BootManager GRUB zum Einsatz. Naja, auf jeden Fall hab ich im BIOS als Boot-Reihenfolge DVD->USB->HDD eingestellt, Mac OS X installiert und konnte es auch ohne Probleme von USB booten. Mac OS X ist ja auch sehr hybsch und so, aber ich wollte dann doch mal wieder an mein geliebtes Debian, fahre also Mac OS X runter, stöpsel die USB-Festplatte ab und boote...

GRUB
Stage 1.5
Error 17

WTF!? Hat OS X da etwa meine interne Festplatte angepackt, obwohl er nicht sollte? Schnell zum GRML-USB-Stick gegriffen, eingestöpselt, gebootet. sda3 (meine /-Partition) ist da, fsck bringt keine Fehler und mount mounted ohne Murren. Daten sind natürlich auch noch alle da (okay, man sollte nach einem mount /mnt/sda3 nicht ls /mnt/sda6 tippen und sich in die Hose machen, warum das leer ist). Also mal /proc und /dev gemountet, chroot, und grub neu installiert, menu.lst neugeschrieben und Reboot.

Error 17

Hatten wir doch gerade schon, also wieder GRML rein, nochmal alles prüfen, sieht okay aus. Dennoch nochmal GRUB neuinstalliert und mal nochmal booten, wenns nicht hilft Backup einspielen, wozu sind die Dinger sonst da.
Naja, als ich dann von GRML aufgefordert werde die CD ausm Laufwerk zu nehmen (ich ziehe stattdessen den USB-Stick), merke ich, dass hinten ja noch ein USB-Stick steckt. Mein normaler Stick, 2GB von Saturn, mit Daten etc. Ziehste ma auch raus, denk ich mir. Reboot.

GRUB 0.97 foobar... ES RENNT.

USB-Stick rein, Reboot, Error 17.

USB-Stick raus, Reboot, OK.

Was lernen wir daraus? Wenn im BIOS Boot von USB aktiviert ist, scheint GRUB den USB-Stick als hd0 zu sehen. Komischerweise aber nur, wenn er direkt geladen wird, und nicht aus einem Linux heraus.