Flo und ich arbeiten ja seit ein paar Tagen an einem Computerspiel. Ich hab heute versucht, dass Spiel unter Windows XP zu kompilieren. Was ganz gut funktioniert, ist, cygwin und Haskell Platform zu installieren. Dann hat man eine unix-ähnliche Umgebung zum kompilieren von Bibliotheken und Programmen in C und Haskell. (Man muss nur die include- und lib-Verzeichnisse von cygwin in der Konfigurationsdatei von cabal angeben.)
Die größten Probleme im Moment: Es fehlt noch eine plattformunabhängige Soundbibliothek, die von Haskell aus funktioniert. Und es gibt Tearing und Ruckeln in der Grafikausgabe.
Dies ist der erste von hoffentlich vielen kurzen Updates über unser Spiel.
Dienstag, 16. Juni 2009
Freitag, 29. Mai 2009
Ich hab eine Wortwolke von diesem Blog erstellen lassen.
Von http://www.wordle.net/.
Via Wadler's Blog.
Von http://www.wordle.net/.
Via Wadler's Blog.

Dienstag, 26. Mai 2009
Vorurteile
Disclaimer: Diesen Post habe ich vor ein paar Wochen mal angefangen.
<outdated>
Mir passiert es öfter, dass ich mit einem Computer etwas machen will, und ein bestimmtes Feature vermisse, oder Software für einen bestimmten Usecase buggy ist. Oft denke ich dann: "Ja, wenn ich jetzt statt X Y verwendet hätte, dann hätte es bestimmt funktioniert." Besonders oft hatte ich das vor ein paar Jahren mit Open-Source-Software und ihren proprietären Pendants:
Manchmal habe ich die Möglichkeit gehabt zu überprüfen, ob diese Gedanken korrekt waren und in den meisten Fällen festgestellt, das sie es nicht waren. Nach meiner persönlichen Erfahrung ist Microsoft Word XP™ genauso buggy wie OpenOffice.
Heute hatte ich eine ähnliche Erfahrung mit zwei Open-Source-Projekten: X = KDE 4, Y = Gnome (2.irgendwas, oder wo sind die gerade?). Das kopieren von größeren Dateimengen über ssh in dolphin hat irgendwie nicht funktioniert (weil plasma gecrasht ist, weil die Notification abgeschmiert ist, oder so, kopiert wurde nur ein Teil der Daten.). Dann hab ich Gnome gestartet und das gleiche mit Nautilus versucht. Der Kopiervorgang hat sich aber irgendwann aufgehängt (hat sich einfach nicht mehr bewegt.)
Fazit:
Statt amarok2 werde ich also jetzt mal nicht auf exaile umsteigen, sondern auf amarok1 downgraden. Der war doch sowieso total super.
</outdated>
Ja, das Fazit hätte ich mal beherzigen sollen. Wegen der Playlistprobleme in amarok2 hatte ich kurz exaile ausprobiert. Exaile ist aber bei bestimmten mp3-Dateien einfach abgestürzt. Und deswegen bin ich auch darauf gekommen, diesen alten Post wieder auszugraben. Ohne mich an das konkrete Fazit erinnert zu haben. Der schönste Sieg ist der Sieg, wenn man sich nicht mehr daran erinnert, was man mal für gute Ideen hatte. Oder so.
ps.: Ich will nicht undankbar erscheinen: Alle erwähnten Open-Source-Projekte sind großartig und ich benutze sie gerne. Was ich eigentlich sagen wollte: KDE 4 und amarok2 sind zwar an einigen Enden und Ecken noch nicht fertig, aber trotzdem schon ziemlich geil.
<outdated>
Mir passiert es öfter, dass ich mit einem Computer etwas machen will, und ein bestimmtes Feature vermisse, oder Software für einen bestimmten Usecase buggy ist. Oft denke ich dann: "Ja, wenn ich jetzt statt X Y verwendet hätte, dann hätte es bestimmt funktioniert." Besonders oft hatte ich das vor ein paar Jahren mit Open-Source-Software und ihren proprietären Pendants:
X | Y |
Linux | Microsoft Windows XP Professional Edition™ |
OpenOffice | Microsoft Office XP™ |
Ardour | Dingens, hier, Cubase, oder so |
Manchmal habe ich die Möglichkeit gehabt zu überprüfen, ob diese Gedanken korrekt waren und in den meisten Fällen festgestellt, das sie es nicht waren. Nach meiner persönlichen Erfahrung ist Microsoft Word XP™ genauso buggy wie OpenOffice.
Heute hatte ich eine ähnliche Erfahrung mit zwei Open-Source-Projekten: X = KDE 4, Y = Gnome (2.irgendwas, oder wo sind die gerade?). Das kopieren von größeren Dateimengen über ssh in dolphin hat irgendwie nicht funktioniert (weil plasma gecrasht ist, weil die Notification abgeschmiert ist, oder so, kopiert wurde nur ein Teil der Daten.). Dann hab ich Gnome gestartet und das gleiche mit Nautilus versucht. Der Kopiervorgang hat sich aber irgendwann aufgehängt (hat sich einfach nicht mehr bewegt.)
Fazit:
Statt amarok2 werde ich also jetzt mal nicht auf exaile umsteigen, sondern auf amarok1 downgraden. Der war doch sowieso total super.
</outdated>
Ja, das Fazit hätte ich mal beherzigen sollen. Wegen der Playlistprobleme in amarok2 hatte ich kurz exaile ausprobiert. Exaile ist aber bei bestimmten mp3-Dateien einfach abgestürzt. Und deswegen bin ich auch darauf gekommen, diesen alten Post wieder auszugraben. Ohne mich an das konkrete Fazit erinnert zu haben. Der schönste Sieg ist der Sieg, wenn man sich nicht mehr daran erinnert, was man mal für gute Ideen hatte. Oder so.
ps.: Ich will nicht undankbar erscheinen: Alle erwähnten Open-Source-Projekte sind großartig und ich benutze sie gerne. Was ich eigentlich sagen wollte: KDE 4 und amarok2 sind zwar an einigen Enden und Ecken noch nicht fertig, aber trotzdem schon ziemlich geil.
Amarok skips tracks
Yes, Amarok 2.1-beta1 (und beta2 wohl auch) überspringt einfach Tracks aus der Playlist. Manchmal erst, nachdem ein paar Sekunden des Tracks zu hören gewesen sind. Das macht den Player leider fast unbenutzbar, finde ich. Der Workaround, der bei mir (bis jetzt) geholfen hat, ist, das "Now Playing"-Plasmoid nicht zu benutzen. Schade, das fand ich eigentlich ziemlich gut.
Montag, 4. Mai 2009
zsh tab completion für '..'
Unter Jaunty funktioniert die Tab-Completion unter zsh für '..' (Elternverzeichnisse) nicht. Zumindest nicht so, wie unter Intrepid. Das liegt wohl an der neuen zsh-Version (4.3.9). Das alte Verhalten kriegt man durch die folgende Zeile in der .zshrc:
zstyle ':completion:*' special-dirs true
Dein Sönke
zstyle ':completion:*' special-dirs true
Dein Sönke
Dienstag, 28. April 2009
Visualisierung von Loops
Hmm, ich wollte eigentlich ein bißchen öfter schreiben, aber es ist ja immer dasselbe... Aber wir haben hier in Barcelona gute Fortschritte gemacht. Die zentralen Objekte, um die sich bei uns alles "dreht" (haha), sind Loops. Das sind geordnete Listen von komplexen Zahlen. Von diesen können mehrere nebeneinander visualisiert werden. Als Riemannsche Zahlenkugeln. Ausserdem gibt es zwischen den Loops Abhängigkeiten, d. h. die eine ist z. B. die Fouriertransformierte der anderen. Und man kann die einzelnen Punkte auf der Kugel mit einem Gamepad manipulieren. Das Bild zeigt (wie das Bild im letzten Post) eine Loop und eine zerogepaddete Version.

Freitag, 17. April 2009
Fourierspaß
Heute habe ich kleine Bibliotheken geschrieben, mit denen sich Slow Fourier Transformation durchführen läßt, das heißt, diskrete Fouriertransformation mit Fenstern, deren Länge keine Potenz von 2 ist. Ausserdem kann man die Winkel von Polygonen in der komplexen Zahlenebene quantisieren. Und Zero-Padding habe ich eben ausprobiert und folgendes Bild geplottet. Es ist wunderschön.

Labels:
Barcelona,
Haskell,
Horde3D,
persönlich,
Skalen,
Systemprogramm
Donnerstag, 16. April 2009
Ankunft
Gestern mittag bin ich in B. angekommen. Gestern Nacht hab ich noch versucht, die Horde auf meinem neuen Laptop an den Start zu kriegen, leider ohne Erfolg. Peach (so heißt mein neuer Rechner auf Moritz' Vorschlag hin) kann zwar OpenGL 2.0, aber bestimmte benötigte Extensions werden nicht unterstützt. Explizit: Extension EXT_texture_compression_s3tc not supported. Doof. Jetzt vermute ich, dass die Hardware da irgendwas einfach nicht kann. Ich kann mir aber auch vorstellen, dass der Mesa-Treiber das theoretisch können könnte, falls dieser Satz Sinn macht. Ansonsten macht der neue Rechner Spaß.
Labels:
Barcelona,
Haskell,
Horde3D,
persönlich,
Systemprogramm
Mittwoch, 15. April 2009
Barcelona
Lange her, dass hier irgendwas zu lesen war. Aber morgen fliege ich nach Barcelona, um da mit Thomas Noll, Martin Carlé und Moritz Mattern an einem interessanten Projekt zu arbeiten und werde versuchen, hier ab und zu etwas darüber zu schreiben. Das Projekt ist unter anderem deshalb interessant, weil ein Teil -- nämlich die Programmierung eines 3D-User-Interfaces -- in Haskell passieren wird. Pünktlich habe ich dann heute auch mein neues Notebook geliefert gekriegt: Ein MSI VR220 YA in pink. Und gleich muss ich noch packen und morgen dann früh um 8 in Tegel sein. Ich freu mich schon.
Freitag, 23. Januar 2009
Seiteneffekte in Python
Im Moment bin ich auf Amrum, draußen liegt Schnee und ich programmiere in Python. Ich habe gerade lange einen Bug in meinem Code gesucht, der sich aus für mich überraschenden Seiteneffekten in Python ergab. Folgendes Skript demonstriert das:
n = 10
l = range(0, n)
lazyList = []
for i in range(0, n):
lazyList.append((lambda x: x[i], l))
resultList = []
for (fun, x) in lazyList:
resultList.append(fun(x))
print(resultList)
Das Ergebnis ist wider Erwarten:
Die mit lambda erstellten Funktionen verändern also ihr verhalten, weil sie anscheinend auf i referenzieren und nicht den Wert abspeichern. Ist das gewollt? Oder ein Bug im Python-Interpreter? In beiden Fällen, wie kann man das umgehen?[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
Donnerstag, 8. Januar 2009
Montag, 29. Dezember 2008
Scarlett Thomas
Ich lese seit gestern "Troposphere" (das ist merkwürdigerweise der deutsche Titel, der englische ist "The End of Mr. Y"). Und das Buch ist ziemlich großartig. Ich werde mir bald mal "PopCo" kaufen.
Sonntag, 28. Dezember 2008
RealWorld
Mit ist das zwar schon länger bewusst, aber eben erst ist mir die Komik daran aufgefallen: In Haskell gibt es einen Datentyp "RealWorld" (für Zustände von Operationen in der IO-Monade). Der wird allerdings bei der normalen Benutzung der Sprache absichtlich vor der Programmiererin versteckt.
Samstag, 20. Dezember 2008
Android
Die Weihnachtsferien haben angefangen und deshalb hab ich ein bisschen Zeit, mich mit dem OpenMoko Freerunner zu beschäftigen. Gestern Nacht hab ich Android installiert, nach dieser Anleitung: http://forum.koolu.org/viewtopic.php?f=10&t=34. Ich hatte vorher 2008.12 drauf und hab damit die SD-Karte formatiert. Dazu braucht man mkfs.vfat, das ist im dosfstools-Paket. Das ist aber in den 2008.12-(ASU, oder?)-Repositories nicht drin. Aber das gibt es hier: http://lists.openmoko.org/nabble.html#nabble-td723604. Als ich adb benutzen wollte und dieses kein Device gefunden hat, hat bei mir ungefähr folgendes geholfen:
Jetzt versuche ich gerade das WLAN zum laufen zu kriegen, das geht über die GUI noch nicht.
./adb kill-server
ADBHOST=192.168.0.202 ./adb start-server
ADBHOST=192.168.0.202 ./adb devices
Jetzt versuche ich gerade das WLAN zum laufen zu kriegen, das geht über die GUI noch nicht.
Mittwoch, 19. November 2008
SMS verschicken
debian-gta02:~/playground/dbus# ./test org.freesmartphone.ogsmd \
/org/freesmartphone/GSM/Device \
org.freesmartphone.GSM.SIM.RetrieveMessagebook "[String \"all\"]"
Array:
1: Struct:
1: Int32: 1
2: String: sent
3: String: +49xxxxxxxxxxx
4: String: Dies ist eine durch ein Haskell-Skript \
versandte Test-Simse.
2: Struct:
1: Int32: 2
2: String: unread
3: String: +49xxxxxxxxxxx
4: String: Dies ist eine von klenz versendete \
antwort
Ich hab jetzt Debian auf dem FreeRunner laufen und hab ein Haskell-Programm geschrieben, um DBus-Methoden aufzurufen. DBus ist ziemlich gut. Besonders für Benutzer etwas exotischerer Programmiersprachen. Weil das Interface total sprachunabhängig ist. Man kann eigentlich alle (schon implementierten) Funktionalitäten des Telefons über Haskell ansprechen. Hmm, was kann man damit denn jetzt anstellen...
Montag, 10. November 2008
Neues Telefon
shahn@habana:~$ ssh root@192.168.0.202
root@192.168.0.202's password:
root@om-gta02:~# cd /proc/
root@om-gta02:/proc# cat cpuinfo
Processor : ARM920T rev 0 (v4l)
BogoMIPS : 199.47
Features : swp half thumb
CPU implementer : 0x41
CPU architecture: 4T
CPU variant : 0x1
CPU part : 0x920
CPU revision : 0
Cache type : write-back
Cache clean : cp15 c7 ops
Cache lockdown : format A
Cache format : Harvard
I size : 16384
I assoc : 64
I line length : 32
I sets : 8
D size : 16384
D assoc : 64
D line length : 32
D sets : 8
Hardware : GTA02
Revision : 0360
Serial : 0000000000000000
Juhuu!
Mittwoch, 5. November 2008
Skalen in Jena
In einer Woche (am 13.11.) gibt es in Jena die Veranstaltung "Absolut Jena". Da werden auch Visualisierungen von Skalen gezeigt, die ich im Moment programmiere. Informationen dazu gibt's hier: http://systemprogramm.info/Absolut_Jena.html. Es gibt auch einen sogenannten Jena-Shuttle, der vormittags von Berlin aus losfährt und nachts zurück. Mit dem werde ich auch unterwegs sein. Bin mal sehr gespannt, wie das da wird.
Dienstag, 28. Oktober 2008
Neuer Blog!
Tim hat jetzt auch einen Blorg: http://s223357750.online.de/ Unter diesen veränderten Voraussetzungen habe ich mich entschlossen, meinen eigenen Block hierher zu migrieren. Mein alter Blog befindet sich hier: http://open-projects.net/~shahn/index.cgi?seite=blog, wird aber bald nicht mehr geupdatet. Solange die Kommunisten diesen Blog hier nicht abschießen.
Abonnieren
Posts (Atom)