Am 3. und 4. März finden die wieder einmal Chemnitzer Linux-Tage statt. Eine Eintrittskarte kostet wie in den letzten Jahren 5 EUR bzw. ermäßigt 3 EUR und ist an beiden Veranstaltungstagen gültig. Karten können ohne Anmeldung direkt beim Besuch der Veranstaltung erworben werden. Die Veranstaltung umfasst an beiden Tagen jeweils 6 Vortragsstränge und viele Präsentationen.
Um die serielle Schnittstelle am AVR Butterfly nutzen zu können ist nicht viel Arbeit erforderlich. Ein serieller Pegelwandler von Low-Voltage-Seriell auf den höheren Pegel an der seriellen Schnittstelle eines PCs ist bereits auf dem Butterfly integriert.
Es bietet sich an den Butterfly mit Stiftleisten zu bestücken um Kabel einfach anschließen zu können. Ich habe ein paar günstige Bauteile von Reichelt genutzt, dieses Material gibt es aber auch bei anderen Elektronik-Händlern.
- 3 Stifte einer 36-poligen, einreihigen geraden Stiftleiste mit Rastermaß 2,54 (SL 1X36G 2,54)
- eine 3-poligen Platinensteckverbinder gerade, weiss (PS 25/3G WS)
- D-SUB-Buchse, 9-polig, Lötkelch zum PC-Anschluss (D-SUB BU 09)
Das ganze ist schnell verlötet, die PIN-Belegung ist aus der Grafik ersichtlich und ist im User-Manual des Butterfly dokumentiert. (RXD an Pin 3, TXD an Pin 2 und GND an Pin 5)


Das Ganze kann man dann in der Beispielanwendung bei der Namenseingabe mit dem Terminalprogramm Minicom testen. Die genaue Vorgehensweise ist unter Punkt 2.2.2 des Usermanual beschrieben. Zur Kommunikation unter Linux stellt man am besten als Supernutzer den Default von Minicom mit
minicom -s
unter “Serial Port Default” auf Serial Device /dev/ttyS0, Communication Parameter auf 19200 8N1 und keine Hardware- und Software-Flusskontrolle. Das ganze speichert man als Default dfl. Nun kann man entsprechend der Anleitung einen ersten Test der Kommunikation durchführen, der eingegebene Name sollte auch wenn kein Echo im Terminal eingestellt ist oder vom Butterfly zurückgegeben wird nach Bestätigen mit Enter auf dem Display erscheinen.
Der Blog-Harvester ist eine Webseite von Astro, die ausgewählte Weblogs und Bookmarklisten von verschiedenen Hackern im Umfeld des Dresdner C3D2 zusammenfasst. Der Harvester ist in einem Ruby-Skript implementiert und wird als Aggregator auch weiterhin gepflegt.
Es scheint ja in letzter Zeit Mode zu sein, mit Google herauszufinden, was die Dinge sind, beziehungsweise wie sie den Webautoren erscheinen. Deshalb habe ich einmal bei Google nach “Mathematik ist” gesucht:
- Mathematik ist nützlich.
- Mathematik ist faszinierend.
- Mathematik ist eine der ältesten Wissenschaften überhaupt.
- Mathematik ist in allen Wissenschaften anwendbar.
- Mathematik ist mehr als Zahlen.
- Mathematik ist geprägt von Mustern.
- Mathematik ist nicht alles, aber ohne Mathematik ist alles nichts.
- Mathematik ist ein kleines, aber feines Fach.
- Mathematik ist dem Liebestrieb nicht abträglich.
- Mathematik ist überall.
- Mathematik ist ein sozial-kulturelles, diskursives Konstrukt.
- Mathematik ist nicht jedermanns Sache.
Ich kann mich da nur anschließen. Fehlt nur noch der Beweis.
Selbst wenn man nur einfache Probleme in Theoretischer Informatik, Zahlentheorie oder Diskreter Mathematik bearbeitet und durch Programme in C zu erschließen versucht, gelangt man schnell an die Grenzen der darstellbaren Wertebereiche für ganze Zahlen. Das Implementieren einer eigenen Bibliothek für große Zahlen ist zwar möglich, mit GMP (GNU Multi Precision Arithmic Library) gibt es aber bereits eine freie und gut gepflegte Implementierung.
Eine einfache, experimentelle Erkundung des Syracuse-Problems könnte so aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> int main() { int a; scanf("%d", &a); while (a != 1) { printf("%d ", a); a = syracuse(a); } printf("1\n"); return 0; } int syracuse(int n) { if (n % 2) { return 3 * n + 1; } else { return n / 2; } } |
Mit der GNU MP Bignum Library wird daraus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> #include <gmp.h> void mpz_syracuse(mpz_t n); int main() { mpz_t a; mpz_init(a); mpz_inp_str (a, NULL, 0); while ( mpz_cmp_si(a,1) ) { mpz_out_str (NULL, 0, a); printf("\n"); mpz_syracuse(a); } printf("1\n"); return 0; } void mpz_syracuse(mpz_t n) { if (mpz_divisible_ui_p(n,2)) { mpz_divexact_ui (n, n, 2); } else { mpz_mul_ui (n, n,3); mpz_add_ui (n, n, 1); } } |
Damit kann man dann auch für sehr große natürliche Zahlen die Zahlenfolge bestimmen, kompiliert wird wie gewohnt, allerdings muss man mit -lgmp linken.

Ich habe mich heute bei Flickr angemeldet. Meine Photoseite findet man unter flickr.com/photos/aquo und natürlich gibt es auch einen Photo-Feed. Die drei neuesten Photos werden als Vorschau in der Randspalte angezeigt, dazu benutze ich FlickrRSS für Wordpress.
Am 12.01.2007 findet in Chemnitz die 3. Chemnitzer Spielenacht statt. Los geht es, bei freiem Eintritt, um 18 Uhr in der Mensa der TU Chemnitz. An diesem Abend sind alle bekannten und weniger bekannten Spiele auszuleihen, die auf dem Spielemarkt erhältlich sind. Es finden vier Turniere statt, Turnierspiele sind: “Siedler von Catan”, “Carcassonne”, “Mensch ärgere dich nicht” und “6 nimmt”.












Kommentare