Netzwerk-Sound-Server mit pulseaudio & mpd

Bei meinem Desktop habe ich aktuell das Problem, dass die analoge Audioausgabe von einem lautem Masserauschen begleitet wird, sobald ich meinen alten Vollverstärker daran anschließe. Das ist mir etwas unheimlich, aber auch ein gründliche Inspektion von Gehäuse und Netzteil brachte nichts ungewöhnliches zu Tage. Als einfachste Lösung erschien mir eine externe USB-Soundkarte anzuschaffen. Die Wahl fiel nach auf eine Behringer Ucontrol UCA202; vor allem wegen des guten Preis-/Leistungsverhältnisses, der geringen Größe und guter Linuxkompatibilität.

Damit ich aber nicht immer meinen Rechner zu Musikhören bemühen muss, habe ich die Karte kurzentschlossen an meinem kleinen Homeserver angeschlossen (eine Seagate Dockstar mit Debian Squeeze), mit dem Ziel, dort den Musikserver mpd zu betreiben, den ich z.B. bequem mit meinem Smartphone steuern kann.

alsa installieren

Also die Karte anschließen und alsa installieren:

apt-get install alsa-base alsa-utils

Anschleißend muss man alsa erlauben, die USB-Karte als Default zu verwenden, was es standardmäßig zugunsten eingebauten Audiohardware (in meinem Fall nicht existent) verweigert. Also in /etc/modprobe.d/alsa-base.conf die Zeile

options snd-usb-audio index=-2

ändern in

options snd-usb-audio index=0 nrpacks=1

wobei vor allem das index=0 wichtig ist. Der nrpacks Parameter soll angeblich die Latenz senken, was ich aber nicht beurteilen kann. Wieder erwarten blieben die angeschlossenen Boxen aber vorerst stumm. Nach längerem hin und her, in dem mir vor allem die .asoundrc großes Vergnügen bereitet hat…, brachte vermutlich ein Kernelupdate auf den aktuelleren weniger veralteten Squeeze-Backports-Kernel 2.6.39-bpo.2-kirkwood Abhilfe. Damit läuft jetzt aber alles wunderbar (und mit alsa Standarteinstellungen).

mpd installeren

Die Installation von mpd lief dafür absolut problemlos:

apt-get install mpd

Anschließend sollte man sicherstellen, das der Benutzer mpd die Musiksammlung zumindest lesen kann, etwas durch ein

chmod -R 775 ~/Music

Dann in der Datei /etc/mpd.conf den Pfad zur Musiksammlung anpassen und den Netzwerkzugriff erlauben, indem man die Zeile

bind_to_address               "localhost"

durch ein vorgestelltes “#” auskommentiert. Eine ausführliche Anleitung gibt es im Ubuntuusers-Wiki. Nun kann man mit diversen Clientapplikationen — ich nutzte Sonata unter Ubuntu und MPDroid unter Android — die Musikwiedergabe steuern.

Netzwerkstreaming

Soweit konnte mich das ganze Setup durchaus begeistern. Allerdings hatte ich auf meinem Desktop weiterhin keine funktionierende Audioausgabe. Die nächstliegendste Idee war, die Audioausgabe über LAN zum Server zu streamen. Dazu bietet es sich an, noch einen Pulseaudio-Server auf den alsa-Server zu setzen, da dieser derartiges Streaming out-of-the-box (und — um etwas vorauszugreifen — auch durchaus überzeugend) beherrscht.

Server (Debian Squeeze)

Also pulseaudio auf dem Server installieren:

apt-get install pulseaudio

und in den system Modus schalten. Dazu in der Datei /etc/default/pulseaudio

PULSEAUDIO_SYSTEM_START=0

von 0 auf 1 ändern. Achtung: Der system Modus birgt wohl ein gewisses Sicherheitsrisiko, man sollte auf jeden Fall darauf achten, dass in der selben Datei auch

DISALLOW_MODULE_LOADING=1

gesetzt ist.

Nun nutzt pulseaudio die Einstellungen aus /etc/pulse/system.pa, und man kann durch ein Einfügen der Zeile

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16

den Empfang von Netzwerkstreams auf Port 4713 aktivieren (natürlich evtl die letzte Maske auf das eigene Subnet anpassen).

Anschließend den pulse-Sever starten

/etc/init.d/pulseaudio start

und testen. Es bieten sich an, nun auch mpd auf Pulseaudio umzustellen. Dazu in /etc/mpd.conf den Paragraphen über alsa auskommentieren und den über pulseaudio aktivieren.

Client (Ubuntu Oneiric)

Auch hier sollte der pulseaudio installiert und funktionsfähig sein (bei Ubuntu seit 8.04 Standard). Nun kann man durch setzen der Zeile

default-server = tcp:SERVERIP:4713

in der Datei  /etc/pulse/client.conf die KOMPLETTE Audioausgabe auf den Server umleiten, was bei mir allerdings erst nach einem Neustart funktionierte.

Fazit

Zugegebener Weise habe ich das ganz Setup noch nicht sehr lange in Betrieb, aber bisher funktioniert alles problemlos. Insbesondere hatte ich bei den Audio-over-Lan große bedenken bezüglich der Latenz der Signale, aber das scheint gänzlich unbegründet gewesen zu sein. Selbst Filme lassen sich ohne erkennbare Verzögerung der Tonspur und Abzüge in der Soundqualität anschauen. In ein paar Wochen kann ich dann vermutlich noch ein paar Erfahrungswerte hinzufügen.

Diplomarbeit abgegeben

In letzter Zeit war es still auf dieser Seite. Der Hauptgrund dafür war wohl meine Diplomarbeit. Diese zu schreiben hat mich so ausgelastet, dass ich mich nicht mehr motivieren konnte, hier ab und an auch nur ein paar Worte zu schreiben. Doch das hat jetzt ein Ende; heute habe ich meine Arbeit erfolgreich im Prüfungsamt abgegeben :)

In der Arbeit habe ich (mit massiver Unterstützung durch meinen Betreuer Prof. Peter Pfaffelhuber) “Müllers Ratsche”, ein klassisches Model der Populationsgenetik, um Rückmutationen erweitert. Das klingt trockener als es eigentlich ist, im Grunde dreht sich die Ratsche um die alte Frage, warum es eigentlich Männer gibt. In einer sich asexuell vermehrenden Population (z.B. Bakterien) produziert jedes Individuum Nachkommen. Bei der sexuell Vermehrung hingegen, tun dies nur die Weibchen, während sich die Männchen die (mehr oder weniger) meiste Zeit damit genügen, nutzlos die Ressourcen der Population zu verbrauchen (zumindest aus evolutionärer Sicht…) und sich nur ab und zu dazu bequemen, einen klitzekleinen Beitrag zur Vermehrung zu leisten. Da sich die sexuelle Vermehrung aber trotzdem in weiten Teilen der Natur durchgesetzt hat, muss es aus evolutionärer Sicht einen Vorteil geben, der die Existenz der Männchen rechtfertigt.

Müllers Ratsche beschreibt nun, wie sich schlecht Mutationen im Genom einer asexuellen Population ansammeln, und deren “Fitness” immer weiter reduzieren, während asexuelle Populationen solche Mutationen durch sogenannte Rekombination des Erbguts einzelner Individuen gut wieder los werden können. Ich habe nun – mathematisch – untersucht, welchen Einfluss Reperaturmechanismen auf die Ratsche haben. Eine detailliertere und auch für Nichtmathematiker gut verständliche Beschreibung es ganzen gibt es in der Einleitung meiner Arbeit.

Ubuntu Natty: Unity auf Netbook unbenutzbar? [Update]

Eigentlich warte ich üblicherweise nach dem Erscheinen einer neuen Ubuntuversion einige Wochen, bevor ich upgrade. Vielleicht hätte ich dabei bleiben sollen; da ich aber einige Probleme auf meinem Netbook (ein Samsung NC10) hatte, habe ich gestern direkt bei erscheinen von Ubuntu 11.04 “Natty Narwhal” das Upgrade angestoßen. Das Problem war vor allem, das ich zum teXen meiner Diplomarbeit gerne mit 2 Monitoren (den Netbookbildschrim und einem externen Monitor) arbeite, was unter 10.10 und Unity nicht vernünftig  (d.h. unterschiedliche Auflösungen auf beiden Monitoren) funktionierte. Deshalb habe ich Gnome als Desktopoberfläche verwendet, das aber – aus nicht nachvollziehbaren Gründen – immer 2-3 Minuten brauchte, um beim Starten den Desktop anzuzeigen…

Neben vielen anderen umbauten sollte insbesondere auch diese Multimonitorfähigkeit von Unity in Natty verbesserte werden, was mich zu dem schnellen Upgrade motivierte. Das funktioniert einem kurzen Test zufolge auch, leider beanspruchte das Rendern der Oberfläche via Compiz nun permanent 99% meiner CPU. Grafische Effekte sind ja ganz nett, aber das ist dann vielleicht doch etwas übertrieben… Benutzbar ist das so auf jeden Fall nicht.

Hat noch jemand ähnliche Probleme auf seinem Netbook? Wurde durch den Umstieg von Mutter auf Compiz wirklich die Lauffähigkeit auf Netbooks total zerstört? Das kann ich mir aufgrund der hohen Verbreitung der quasi identischen Hardware eigentlich nicht vorstellen…

Zur Zeit nutzte ich bis auf weiteres den 2D-Fallback von Natty, der aber weiterhin 2-3min braucht, um den Desktop anzuzeigen bzw Nautilus zu öffnen…

[Update] Mittlerweile bin ich dank der aktuellen C’t etwas schlauer. Anscheinend soll das 3D-Unity auf Intel-Chips mit mindestens der Zahl 950 im Namen flüssig laufen. Im Umkehrschluss heißt das wohl, dass ich auf meinem NC10 mit 945GME Pech gehabt habe. Mit dem Paket “unity-2d” kann man sich aber eine gut benutzbare 2D-Version von Unity installieren. Diese läuft gefühlt etwas langsamer als (Mutter-)Unity unter 10.10, lässt ich aber besser benutzen, u.a. wegen dem sich automatisch ausblendenden Starter. Großer Nachteil ist, dass sich unity-2d noch weniger konfigurieren lässt als die 3D-Version. Mittlerweile lassen sich aber anders als in der C’t beschrieben zumindest die Symbole im Starter per Drag ‘n Drop anordnen. [/Update]

lipsync: Ein Open-Source Dropdox Klon

Zur Zeit benutzte ich das kleine Programm unison um die Daten auf meinem Netbook und Desktop zu synchronisieren. Dazu gleichen beide mein Homeverzeichniss mit meinen kleinen NAS (eine Seagate Dockstar mit Debian Lenny) ab. Das funktioniert auch problemlos, der Nachteil ist nur, dass es bei jeder Sync das komplette Homeverzeichnis nach neuen oder geänderten Dateien durchsucht, was normalerweise mehr Zeit in Anspruch nimmt als das eigentliche Backup. Auch wenn das alles automatisiert im Hintergrund abläuft, habe ich mich gestern mal nach einer schöneren Lösung umgesehen.

Eigentlich ist mir das Prinzip von Dropbox, Ubuntu One etc. ganz sympathisch, die das Dateisystem auf den Clients live auf Änderungen überwachen (eine Funktion, die der Linux-Kernel mit inotify von Haus aus mitbringt) und diese dann direkt zum Server übertragen. Somit spart man sich das durchrödeln des kompletten Datenbestandes und minimiert nebenbei auch noch die Gefahr, die Änderungen zwischen zwei Syncs zu verlieren. Leider sind die beiden Dienste zu teuer, als dass ich sie sinnvoll nutzen könnte.

Gestern bin ich dann über lsyncd gestolpert, das ein solches System zum einfachen Selbsthosten bauen will/schon gebaut hat. Ich habe das bis jetzt noch nicht ausprobiert, aber es liest sich auf jeden Fall schon mal sehr gut! Mehr Infos gibt es im Blog von Fak3r, dem Programmierer dahinter. Hoffentlich schließen sich noch ein paar Leute dem Projekt an, z.B. wäre ein kleiner optionaler für die Client super. Sobald mir meine Diplomarbeit wieder etwas mehr Zeit lässt, werde ich das auf jeden Fall gründlich ausprobieren, und hier über meine Erfahrungen berichten.

WLAN-Abbrüche meiner Fritz!Box

Ich bin gerade etwas ratlos:

Seit einigen Wochen leiden meine Mitbewohner und ich unter häufigen, unregelmäßigen Abbrüchen der WLAN-Verbindung unserer Computer zu unserer Fritz!Box 7240. Zuerst besteht keine Verbindung mehr zum Netzwerk, kurz später meldet der Computer den Verlust der WLAN-Verbindung und muss sich komplett neu einwählen, was ungewöhnlich lang dauert. Insgesamt muss man 2-3 Minuten warten, bis man wieder Netz hat.

Teils passiert das nur einmal am Tag, teils aber auch alle 5 Minuten, so das selbst surfen quasi unmöglich wird. Wie nervig das ist, muss ich wohl kaum erwähnen.

Das Log der Box zeigt dazu jeweils die Einträge (wobei der 2. nicht immer erscheint):

27.01.11 21:24:27 WLAN-Station abgemeldet.
                  Name: XXX, MAC-Adresse: 00:16:EA:XX:XX:XX.
27.01.11 21:24:27 WLAN-Anmeldung ist gescheitert: Autorisierung fehlgeschlagen.
                  Name: XXX, MAC-Adresse: 00:16:EA:XX:XX:XX.
27.01.11 21:24:27 WLAN-Station angemeldet.
                  Name: XXX, IP-Adresse: 192.168.120.102,
                  MAC-Adresse: 00:16:EA:XX:XX:XX, Geschwindigkeit 130 MBit/s.

Da mehr als 5 verschiedene Computer mit unterschiedlichen Betriebssystem (Win XP bis 7 und Ubuntu) und WLAN-Chips betroffen sind, habe ich clientseitige Probleme recht schnell ausgeschlossen. Umfangreiches herumspielen an den WLAN-Einstellungen der Fritz!Box brachte auch rein gar nichts. Also vermutete ich einen Hardwaredefekt oder einen Bug in der Firmware.

Also habe ich Kontakt zu meines ISP 1und1 und zu AVM (Hersteller der Fritz!Box) aufgenommen. AVM hat sich nicht gerade mit Ruhm bekleckert und mir auf eine detaillierte Problembeschreiben mit einer ellenlangen Standard-Email geantwortet. Darin wurde ich aufgefordert, zahlreiche Einstellungen zu testen, von denen ich bei den meisten schon geschrieben hatte, dass sie nichts bringen. Beeindruckt hat mich dagegen 1und1. Zuerst hatte ich eine – von den Problem überfordert wirkende – Mitarbeiterin des Kundendienstes an der Leitung, die mit mir nach einigem hin und her einen Termin vereinbarte, an dem ich ein Techniker zurückrufen sollte. Das klappt – entgegen meinen Vermutungen – auch problemlos, und der erstaunlich kompetente Techniker sagte mir nach wenigen Minuten einen Austausch der Fritz!Box gegen ein Ersatzmodell zu.

Diese traf auch 2 Werktage später ein, scheint aber leider die selben Probleme zu haben :( Noch dazu habe ich diesmal auf ein Firmwareupdate verzichtet, so das die Box noch mit Version 73.04.80 läuft, die meiner Erinnerung nach früher problemlos funktionierte. Also sollten vermutlich auch Hardwaredefekt & Firmwarefehler als Fehlerquellen ausscheiden. Was die Frage aufwirft, woran es dann überhaupt noch liegen könnte.

Stark gestiegene Störstrahlung? Mein PC empfängt 6 verschiedene WLAN-Netz meinst schwacher Signalstärke in der Umgebung, das sollte eigentlich kein größeres Problem sein. Ansonsten haben wir noch eine Mikrowelle und ein DECT-Telefon, die haben das WLAN in den 1,5 Jahren, die wir schon hier wohnen, nicht beeindruckt.

Doch clientseitige Probleme? Erscheint mir weiterhin unwahrscheinlich…

Ich muss jetzt wohl doch eine Antwort-Mail an AVM schreiben… Würde mich nicht wundern, wenn heute Nacht ein paar  schöne bunte Cat5-Netzwerkkabel eine tragende Rolle in meinen Träumen einnehmen.

Please, please, please use BCC for mass mails!

Today I got an email, which was send to a total of 383 receivers (and was itself only little more than Spam by the way). The author of the mail – apparently someone not so familiar with all this computer things – added all the addresses – including mine – to the normal “Send to:”-field, the field were everyone always adds all the receivers of the mail. So why am i complaining about all this?

Because by that, all the Email addresses are written to the mail, to be more precise to the so called “header” of the mail, a part that contains some meta information about the mail and is therefore mostly hidden by most email programs. But if you take a closer look, they are there none the less. I could easily read them. And so could you any Virus, Trojan and so on which has managed to infect my computer. And of course, all the other 382 receivers of the mail could see them, too. And so could any Virus, Trojan and so on that has managed to infect any of the about 382 computers belonging to the other receivers.

If there actually is some kind of malware running on any of these computers and it is looking for email addresses, there are now 383 people out there who will receive tons of exiting news about pen enlargements, unbelievable cheap drugs, stunning opportunities to make easy money in Nigeria,important .pdfs and .docs to look at and links to update your online banking account – for the rest of their life (or at least the life of their email address).

There are estimates – i pray they are wrong – that up to 50% of all the computers on this planet are infected with malware. Even if we are a bit more optimistic about that – very very optimistic indeed – and assume that only 1% of all computers are infected with malware that is looking for email addresses, the probability that i miss all this opportunities to enlarge my pen is only about 2.13% (0.99 to the power of 383*). Thanks.

There is an easy way how you can keep on spamming all the email address you somehow managed to get – without becoming the right hand of some ugly looking botnet owner:

Just add all the address to the “Blind Copy”(“BCC:”)-field instead of the normal “To:”. No email address (other than yours) will be included in the Mail. Therefor no one can read them. No man, no computer, no virus. (And no one will write you an angry “THANKS FOR ALL THE SPAM I WILL NOW RECEIVE”-Email like i did in this case…)

* I’m quite sure when it comes to my computer, but the mail author could of course be infected as well… so 383 instead of 382.

When will I use math?

Eben bin ich über www.whenwilliusemath.com gestolpert. Dort werden viele Jobs vorgestellt, in denen man mehr oder weniger viele Mathe braucht. Auch wenn das ganze doch sehr auf das Amerikanische Hochschuhsystem zugeschnitten ist und für die meistens Jobs Calculus 1-3, College Algebra, Trigonometry und Statistics reichen (was man in Deutschland spätestens nach 4 Semestern zusammen haben sollte), so kann die Seite doch motivieren. Gerade wenn man sich mal wieder fragt, wofür man sich das alles antut…

Alternativen zu Google

Ich nutze seit längerem verschiedene Google Dienste, vor allem Google Mail, Calendar & Reader. Und obwohl vermutlich ungefähr genau so lange ein sehr ungutes Gefühl mit der Menge an persönlichen Informationen über mich habe, auf die Google damit problemlos zugreifen kann, konnte ich mich nie richtig dazu durchringen, auf Alternativen dazu umzusteigen. Dies hat vor allem die Gründe, das

  1. grade die 3 genannten Dienste hervorrandend funktionieren (grade Gmail ist selbst den meisten Desktop-Mailprogrammen überlegen), einfach zu bedienen, kostenlos und überall verfügbar sind
  2. ich Google immer soweit vertraut habe, als dass sie sorgsam mit meinen Daten umgehen, weil sie sich (auch wegen der anhaltenden Kritik) definitiv keinen Datenskandal leisten können.
  3. ich Google auch immer für sehr “fähig” hielt (im Gegensatz zu z.B. Studivz…), so dass es mir recht sicher erschien ihre Dienste zu verwenden.

Nun habe ich mich aber entschieden, mich mittelfristig von den genannten Diensten loszusagen. Der Auslöser hierfür war schlussendlich, dass sich Google kürzlich, von chinesischen Hackern hat hacken lassen, wohl über eine Sicherheitslücke im Internetexplorer. Auch wenn hier die offene Informationspolitik des Unternehmens zu loben ist, steht die Verwendung des Internet Explorers (unbestätigten Gerüchten zufolge auch noch in der uralt Version 6) doch im Gegensatz zu Punkt 3 der Gründe für Google, was Punkt 2 mit umreist…

Also habe ich begonnen, mich nach vernünftigen Alternativen umzuschauen. Aus Datenschutzsicht wäre es sinnvoll, die Daten über verschiedene Anbieter zu streuen. Alternativ (und derzeit von mir favorisiert) könnte ich mir die Arbeit machen, die entsprechenden Dienste auf einem eigenen Server zu hosten (ich möchte die Daten als Webseite zur Verfügung haben). Dies würde gut mit meinen Plan zusammenpassen, mir ein NAS zu bauen. Auf diesem könnte dann auch eine der freien Groupwarelösungen laufen, was Google Mail und Calendar ersetzen würde.

Schwieriger wird das allerdings bei Google Reader. Zwar gibt es einige Open Source Web-Newsreader, die man auf einem eigenen Server hosten kann, allerdings fehlt diesen die Möglichkeit, Artikel an Freunde zu empfehlen bzw von diesen empfohlen zu bekommen. Schön wäre hier entweder eine dezentrale Software, die über ein entsprechendes Interface Empfehlungen an andere Instanzen ihrer selbst auf anderen Server weitergeben kann. Dann müsste ich nur noch meine Freunde überreden, auch auf Google Reader zu verzichten…

SynBioWave

I was part of this years Freiburg Software Team at the “International Genetically Engineered Machine competition” (iGEM), which is a BIG student competition at the MIT (yes, the famous one at Boston, M.A., USA) in the field of Synthetic Biology.

Our basic idea was to create a biological softwaresuite (so a scientific software biologist can use to plan there experiments) based on Google Wave.

That approach has the advantage that you get Waves real-time online collaboration features for free. As Wave is pretty new, under heavy construction and a bit unstable at the moment, that turned out be be much harder as we considered it, mostly because of Googles incomplete documentation and a lot of restrictions from Googles AppEngine.

Nonetheless we were able to lay a solid foundation for an open source project and created a good example for a more complex Wave addons.

We are working on a paper describing our approach at the moment, think i’ll write a bit more once we are done with that.

If you want to read some more about SynBioWave, visit our projectpage SynBioWave.org