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:

[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
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?

Donnerstag, 8. Januar 2009

Scrubs

Es gibt neue Folgen von Scrubs. Mit Monika Chandler-Bing als Dr. Kelso.

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:
./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.