Archiv

Autor Archiv

Neuer GPG-Schlüssel

Aus verschiedenen Gründen habe ich mir einen neues GPG-Schlüsselpaar erstellt. Der öffentliche Schlüssel sollte ab sofort über die bekannten Keyserver abrufbar sein. Alternativ kann man den Schlüssel auch hier direkt herunterladen.

Informationen zum Schlüssel:
Schlüssel-ID: 0xD0878537F4B53E06
Fingerabdruck: 38B7 758A 9115 A693 9DCA 119F D087 8537 F4B5 3E06

Wenn jemand ein gegenseitiges Signing möchte, kann man mich über die im Schlüssel hinterlegten E-Mail Adressen erreichen und wir können ein persönliches Treffen vereinbaren, am besten entweder bei der Universität Trier oder im nahen Umkreis von Zell (Mosel).

Neue Sa/eiten

Viele scheinen sich ja zu wundern, dass ich neben meiner 24/7-Anwesenheit am Rechner ab und zu auch etwas künstlerisches mache: Instrumente Spielen. Wie schon in meiner Über Mich-Seite beschrieben, beherrsche ich ein wenig die Kust des Tastendrückens auf Klavier und Orgel. Daher werde ich ab und zu nun auch in diesem Blog über meine musikalischen Ausschweifungen berichten.

Los gehts mit viel Geld: Ich war gestern mit ein paar Freunden in Köln, im Musicstore. Ziel der Reise: Geld ausgeben. Für ca. 800€ habe ich mir ein Yamaha DGX 630 gegönnt incl. Zubehör (Pedalbank, Sitzbank, Kopfhörer). Praktischerweise kann man da mal wieder Hobby mit “Beruf” verbinden (im wahrsten Sinne des Wortes!): Das Keyboard hat einen USB- und MIDI-Anschluss. Mal schauen, was da demnächst bei rauskommt…

KategorienKlavier, Musik Tags: , ,

Du auch!

KategorienAllgemein Tags:

Torrents selbst erstellen

Immer wieder gibt es Situationen, in denen man (vllt. weniger Privatpersonen als Firmen/Organisationen) Anderen größere Datenmengen zum Download anbieten will. Da bei zum Beispiel einem CD-Image und lediglich 100 Downloads schon 70GB Traffic anfallen (was bei einem (niedrigen) Traffic-Preis von 0,10€/GB schon 7€ kostet), sucht man manchmal Möglichkeiten, den Traffic zu vermindern bzw. auf alle Benutzer zu verteilen. Genau für diesen Fall wurde die (sehr in Verruf geratene) Technik des Torrents erfunden.

Um ein wenig mit den Vorurteilen aufzuräumen: Bittorrent an sich bezeichnet eine Technik, mit der beliebige Dateien in Netzwerken verteilt werden können. Dabei wird zwischen Seedern und Leechern unterschieden. Seeder haben die Datei komplett und bieten Sie zum Download an, Leecher haben nur einen Teil (oder garnichts) von der gewünschten Datei. Über einen Tracker wird koordiniert, wer “hat” und wer “will”. Dabei werden zwischen allen Beteiligten die Inhalte ausgetauscht, d. h. dass jeder, der einen bestimmten Teil dieser Datei hat, diesen an andere Weitersenden kann. So kann jeder, der die Datei runterlädt, die bereits heruntergeladenen Teile an Interessenten verteilen, die einen dieser Teile noch nicht hat. Dadurch teilt sich die Last eines Downloads auf alle Seeder auf (so zumindest die Theorie, in der Praxis werden natürlich schnelle Seeder bevorzugt und auch nicht unendlich viele derer angesprochen).

Eines der großen Vorteile gegenüber Torrents:

Aber das ist doch illegal!

Falsch. Torrent bezeichnet wie gesagt lediglich eine Technik. Allerdings kann jede Technik (wie auch die Post, E-Mails, “normale” Downloads) missbraucht werden, z. B. um damit illegale Inhalte zu vertreiben. Dafür kann aber die Technik “Torrent” nichts. Schließlich kann man auch ein Nudelholz missbrauchen, um jemanden zu erschlagen – aber wer hat schon Vorurteile gegen Nudelhölzer?

Ein anderes bekanntes Vorurteil:

Torrent verursacht viel mehr Traffic als normales Downloaden.

Wo? Auf Serverseite reduziert es den Traffic, wie eben beschrieben. Da aber jeder Interessent (der zum Beispiel durch eine DSL-Leitung mit dem Internet verbunden ist) mit zunehmender Vollständigkeit selbst zum Anbieter der Datei wird, erhöht sich natürlich der Traffic, den er auf seiner Internet-Leitung verursacht. Das sehen aber die Anbieter nicht gerne, daher werden Torrents manchmal sogar gesperrt. Im Endeffekt ist die Summe des Traffics, wenn man den von allen Uploads und Downloads zusammenaddiert, bei gleicher Downloadanzahl mit beiden Techniken gleich. Schließlich musste die Datei ja x mal übertragen werden. Der Traffic verteilt sich lediglich auf alle Interessenten anstatt sich am Server zu konzentriern. Allerdings gibt es einen deutlichen Vorteil: Der Server kann, z. B. durch Beschränkung der Bandbreite, zum Flaschenhals werden, wenn sich 1000 Interessenten gleichzeitig die Datei herunterladen wollen. Bei Nutzung der Torrent-Technik verteilt sich sich wie gesagt der Traffic, daher kann unter Umständen die Downloadgeschwindigkeit über Torrent wesentlich höher sein als die über direkten Download via HTTP/FTP. Dieser Vorteil wird aber durch die ständige vergrößerung von Redundanz (Mirrors, Clouds) immer verkleinert.

Nachdem nun feststeht, dass Torrent nichts “böses” ist, kann man mal ins Auge fassen, wie diese alternative Verteilungstechnik funktioniert: Wenn man eine Datei verteilen will, benötigt man einen sog. Tracker und eine zu der Datei gehörende Torrent-Datei. Ein Tracker ist eine Koordinierungsstelle, dieser weiß, dass die Datei existiert und welche Benutzer jeweils als Seeder und Leecher gerade aktiv sind. In der Torrent-Datei werden neben anderen Informationen z. B. Hashes gespeichert, um die Integrität der Datei nach erfolgtem Download sicherzustellen. Bei den meisten Linux-Distributionen gibt es ein Paket mit dem Namen bittorrent, welches ein paar nützliche Programme im Umgang mit Torrents bereitstellt. Zum Erstellen eines Torrent-Files gibt es das Programm btmakemetafile, welches als Argumente die als Torrent bereitzustellende Datei annimmt und den Tracker, über den dieser Torrent-Download koordiniert werden soll. Wenn wir z. B. eine Datei mit unserer eigenen Linux-Distribution bereitstellen wollen, sähe das ganze für ein Iso-Image mit dem Namen linux.iso folgendermaßen aus:

btmakemetafile linux.iso http://tracker.url/announce

Dabei muss “http://tracker.url/announce” durch die Announce-URL eines vorhandenen Trackers ersetzt werden (eine Liste von Trackern befindet sich hier). Die Datei wird dann kurz gescannt um die Hashes zu bilden, danach liegen linux.iso und linux.iso.torrent als Dateien im Verzeichnis. Diese Torrent-Datei muss nun an die Interessenten verteilt werden, die diese in einem Bittorrent-Client öffnen, ebenso der Bereitsteller. Der Torrent-Client merkt, dass die angefordertete Datei bereits vorhanden sind und meldet dem Tracker so die Bereitschaft zum Seeden. Nun können alle anderen, die dieses Torrent abonniert haben, anfangen herunterzuladen.

Natürlich ist es verboten, illegale Inhalte anzubieten (sowohl als Torrent, als auch als HTTP-Download, ebenso alle anderen Möglichkeiten der Verteilung). Da sich aber nicht jeder an Verbote hält, kann es vorkommen, dass ein Tracker auch mal illegale Inhalte koordiniert und damit die Verteilung unterstützt. Da bei großen Trackern pro Tag mehrere 10.000 neue Torrents hinzukommen, ist es praktisch unmöglich, diese alle auf Legalität zu überprüfen. Jeder große Tracker-Betreiber bietet einen Kontakt an, bei dem illegale Inhalte gemeldet werden können. Sollten Sie auf solche Inhalte stoßen, können Sie darüber den Betreiber des Trackers kontaktieren, der gerne das Torrent aus dem Angebot entfernt, da es auch seinem Ansehen schadet. Generell aber alle Tracker-Betreiber in die Verantwortung zu nehmen halte ich für unangemessen und sehe es als blindwütige, propagandistische Aktion an, die Unwissenheit und Unkenntnis demonstriert.

Huawei-UMTS-Sticks mit OpenWRT

Wegen der zunehmenden Verbreitung mobiler Datendienste bzw. (möglich waren sie ja schon immer) der gesteigerten Erschwinglichkeit durch fallende Preise und bezahlbarer Flatrate-Angebote habe ich mich ein wenig mit den Möglichkeiten dieser Art des Internet-Zugangs auseinandergesetzt. Mein Ziel war es, zu klären, inwieweit UMTS (bzw. GPRS) als Ersatz für einen Kabel-DSL-Anschluss dienen kann.

Da der normale Heimanwender zu Hause mit WLAN arbeitet, wollte ich also eine Lösung erstellen, bei der über WLAN eine Mobile Datenverbindung wie GPRS oder UMTS gemeinsam durch mehrere Clients genutzt werden kann. Da die meisten dafür benutzbaren UMTS/GPRS-Empfänger als USB-Variante zu bekommen sind (die anderen wenigen sind wohl PC Cards) musste ein Router mit USB-Anschluss her, glücklicherweise lag noch ein Asus WL500g Premium bei mir herum. Eine bekannte, anpassbare Firmware zum selbstbauen oder selbstherunterladen ist OpenWRT, also suchte ich nach Möglichkeiten, einen solchen USB-Datenstick mit OpenWRT auf diesem WL500g ans Laufen zu bekommen. Als Stick hatte ich den K3520 von Vodafone zur Verfügung, der nichts anderes als ein schön verpackter Huawei E620 ist (soweit ich informiert bin).

Eine sehr schöne Anleitung, die (fast) problemlos funktionierte findet man unter http://josefsson.org/openwrt/dongle.html. Die Nutzung von anderen Huawei UMTS/GPRS-Modems stellt kein Problem dar, man muss lediglich die jeweils passende USB-ProductID herausfinden (z. B. über ein normales Linux, den Stick dort einstecken und lsusb ausführen). Fast jedes im Handel erhältliche und von den großen Mobilfunk-Anbietern wie o2, T-Mobile, E-Plus und Vodafone subventioniertes Gerät ist eine umbenannte und anders verpackte Huawei-Karte.

Das einzige Problem wird durch diesen komischen Dual-Mode der USB-Geräte verursacht: Die Huawei-Sticks melden sich (je nach Lust und Laune?) entweder als Massenspeicher oder als USB-Modem an. In den OpenWRT-Quellen gibt es ein kleines Tool, welches dem Gerät mitteilen kann, dass der Modem-Modus gewählt werden soll – allerdings hardcoded auf die Produkt-ID 0×1001, welche (so glaube ich) für das E220 zutrifft, aber nicht für das E620 (0×1003). Interessanterweise steht der Code für die Parameter-Nutzung bereits da, ist aber auskommentiert…

Um dieses Manko zu beseitigen, habe ich mir das Paket selbst noch einmal erstellt, diesmal mit der Unterstützung für Parameter. Wer möchte, kann sich das Paket herunterladen, per SCP oder wget auf seinen Router kopiern und mit opkg install das Paket installieren (bitte vorher das alte Paket deinstallieren). Hier noch einmal die Befehle für das Entfernen des alten Pakets (wenn es denn installiert ist), der Installation des neuen Pakets und ein Beispiel zur Nutzung des Programms im Überblick:

opkg remove huaweiaktbbo # Altes Paket entfernen
wget http://blog.ml.vg/wp-content/uploads/2009/06/huaweiaktbbo_1_mipsel.ipk # gepatchtes Paket herunterladen
opkg install huaweiaktbbo_1_mipsel.ipk # Neues Paket installieren
huaweiAktBbo 0x12d1 0×1001 # Benutzung des Programm, ProductID bitte anpassen

Nach diesen Handgriffen war es kein Problem mehr, anhand der oben verlinkten Anleitung ins Internet zu kommen. Selbst mit GPRS ist die Geschwindigkeit zum Surfen noch akzeptabel, schnell ist jedoch was anderes. UMTS konnte ich (mangels Netz) noch nicht testen, wird aber demnächst erfolgen. Latenzen habe ich zwischen 1000 und 2500ms gemessen, Bandbreite hat sich zwischen 20 und 35 KB/s bewegt.

Fazit: In ländlichen Gebieten oder für chronische Chatter ist diese Lösung ganz praktikabel, da der Datendurchsatz höher ist als zuerst erwartet, aber lange nicht so berauschend wie bei “echtem” DSL. Zum Chatten, Bloggen und weiterem Surfen durchs Web ist diese Lösung akzeptabel, die meisten Seiten sind nach 5 Sekunden sichtbar. Wer die Möglichkeit eines Kabel-DSL-Anschlusses hat, sollte diesen aber auf jeden Fall bevorzugen. Größere Downloads erfordern viel Geduld, außerdem sollte man Vorsichtig sein, da viele Anbieter den Traffic auf 5GB begrenzen (trotz der Benennung “Flatrate”). Wer darüber z. B. per SSH Server administrieren will, steht wegen der sehr hohen Latenzzeiten auf verlorenem Posten. Der Multi-User-Betrieb funktioniert auch problemlos, bei gleichzeitigen Datenübertragungen dauert es halt etwas länger. Bitte beachten: Die Anbieter unterscheiden tariflich zwischen Single- und Multiuser-Tarifen. Das ist zwar nicht leicht festzustellen, ob ein oder mehrere Geräte über die gleiche Verbindung online gehen, aber es geht. Inwiefern das von Provider-Seite eingesetzt wird weiß ich nicht.

Ein Erfahrungsbericht zu UMTS folgt, sobald ich in den Genuss dieser Technik gekommen bin.

Hier noch der Link zum Download des gepatchten huaweiAktBbo-Pakets.

VMWare: Pfeiltasten öffnen Windows Startmenü

Aus verschiedenen Gründen habe ich unter meinem Linux eine Installation von VMWare mit einem Windows XP als Gastsystem. Allerdings quält mich schon seit geraumer Zeit das Problem, dass als Reaktion auf die Pfeiltasten das Windows-Startmenü geöffnet wird, statt den Cursor in die gewünschte Richtung zu bewegen. Nach ein wenig Googlen habe ich dafür eine ganz einfache Lösung gefunden, die ich hier einfach auch mal auf Deutsch poste:

Im Home-Verzeichnis einfach (sofern nicht vorhanden) ein Verzeichnis mit dem Namen .vmware anlegen, dort eine Datei config die folgenden Inhalt bekommt:

xkeymap.keycode.108 = 0×138 # Alt_R
xkeymap.keycode.106 = 0×135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0×148 # Up
xkeymap.keycode.116 = 0×150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0×152 # Insert
xkeymap.keycode.119 = 0×153 # Delete
xkeymap.keycode.110 = 0×147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0×149 # Prior
xkeymap.keycode.117 = 0×151 # Next
xkeymap.keycode.78 = 0×46 # Scroll_Lock
xkeymap.keycode.127 = 0×100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu

Damit sollten die Probleme erledigt sein. Vielen Dank an http://throwingmywindows.blogspot.com/2008/12/vmware-arrow-key-problem.html, von dieser Seite habe ich diese Lösung.

KategorienAllgemein Tags: , ,

IRCIS

Nach langer Planung und viel Arbeit haben wir unser Entwickler-IRC-Netzwerk (IRCIS) neu aufgesetzt. Wir verwenden nun die neuesten Versionen von InspIRCd und Anope. Die Homepage wurde ebenfalls überarbeitet, allerdings fehlt es noch etwas an Inhalten ;)

Sinn dieses Netzwerks ist es, Programmierern (vor allem im Chat- und im speziellen dem IRC-Bereich) die Möglichkeit zu geben, ohne direkte Sperrung wegen zu vieler Connects/Disconnects oder zu hoher Datenrate, Anwendungen zu programmieren und zu testen. Mit der Zeit, insbesondere durch die Kooperation mit www.simsforum.de, haben sich allerdings ein paar kleine Channels angesiedelt, welche das IRC-Netzwerk nicht nur zu einem Platz für einsame Programmierer machen.

Herzliche Einladung an alle Interessierten, sich das Netzwerk mal anzuschauen. Informationen dazu finden sich hier: http://www.ircis.de/server.

KategorienAllgemein Tags: , ,

Diffs und Patches mit SVN

Einfach mal so, weil ich grade mal wieder den Nutzen davon schätzen gelernt habe: Jeder kennt den Befehl svn status, mit dem man anzeigen lassen kann, welche Dateien neu/geändert sind bzw. welche Änderungen beim nächsten Commit an das Repository gesendet werden. Mindestens ebenso praktisch ist auch das Kommando svn diff. Damit kann man sich genau anzeigen lassen, welche Änderungen an welcher Datei in welcher Zeile vorgenommen wurden. Was viele leider nicht wissen, ist, dass man mit der Ausgabe diesen Befehls auch patchfiles erzeugen lassen kann, die man, mit ebenfalls einer einzigen Zeile, in anderen Kopieren des Repositorys (oder Exports) einspielen kann.

Erstellen eines Patchfiles:

Dieser Befehl erstellt ein Patchfile, in dem er die Ausgabe von svn diff in eine Datei umleitet:

svn diff > patchfile.patch

Einspielen eines Patchfiles:

Dieser Befehl führt die Änderungen, die durch ein svn diff beschrieben werden, auch an einer weiteren Kopie des Codes durch. Dazu benötigt man ein wie oben beschrieben erstelltes Patchfile:

patch -p0 < patchfile.patch

Ich finde es ist einfach ein praktisches Feature, wenn man mal Code-Passagen oder -Varianten oder sonstiges weitergeben möchte, ohne direkt einen SVN-Commit durchführen zu müssen (bzw. wenn man nicht committen darf).

KategorienAllgemein Tags: , ,

Übungen zu Logischen Schaltungen

Um die Inhalte der Vortragsreihe über Logische Schaltungen zu wiederholen und anzuwenden gibt es ein kleines Blatt mit Übungsaufgaben:

Bau einer Sieben-Segment-Anzeige

Hier gibt es das im Rahmen der Unterrichtsreihe “Logische Schaltungen” am MvCG entstandene Script als Download (mit den benötigen Informationen zur Hausaufgabe, auch als Nachschlagematerial geeignet):

Wer noch Logisim benötigt, kann sich dies hier herunterladen:

Wichtig: Noch eine Anmerkung zur Hausaufgabe für den 9. März: Da man für einen Ausgang jeweils alle Zahlen behandeln muss, sollte sich jeder (anders als bisher besprochen) einen Ausgang aussuchen, für den er die Optimierung vornimmt. Dabei muss man letztendlich alle möglichen Zahlen berücksichtigen. Wer möchte kann, statt den im Script vorhandenen Buchstaben als Fortführung der Zahlenreihe auch schlicht Nullen verwenden. Bei Fragen einfach unten das Kommentarfeld verwenden.

Dieses Script wird nach jedem neu besprochenen Teilgebiet erweitert und aktualisiert. Es lohnt sich also spätestens nach Abschluss des Themas “Logische Schaltungen” die letzte Version des Scripts herunterzuladen.