Freitag, 14. November 2014

Today I tried to convert a darcs repo to git. I tried out different tools, none of them worked for me (for varying reasons), until I found http://vmiklos.hu/darcs-fast-export/, which worked like a charm.

Donnerstag, 4. Oktober 2012

Falls irgendjemand das hier überhaupt liest: Wir haben Nikki and the Robots endlich veröffentlicht: http://buy.joyridelabs.de/. Yippie!

Freitag, 19. März 2010

Home, End und Delete in der zsh unter arch

Bei mir haben diese Tasten in der zsh unter arch nicht funktioniert. Das hier in der .zshrc hilft:

bindkey "^[[3~" delete-char
bindkey "^[3;5~" delete-char
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line

Freitag, 5. März 2010

Firmengründung

Für die, die es noch nicht wissen: Ich hab mit Florian Hofer eine Computerspiele-Firma gegründet: http://joyridelabs.de/.

Montag, 22. Februar 2010

isrunning-alias

Was steht in meiner .zshrc und ist praktisch?

alias isrunning='echo " PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND" ; top -bn1 | grep '

Modulo eventueller Zeilenumbrüche.

Sonntag, 10. Januar 2010

Freitag, 1. Januar 2010

ghc-6.8 unter hackable1 auf dem openmoko

stddef.h not found -> gcc-4.1 benutzen (statt 4.3)

collect2: ld not found -> openssh-server benutzen (statt dropbear) (warum das das beeinflusst, ist mir ein Rätsel)

Mittwoch, 23. Dezember 2009

Nokia N900

Eben hab ich mir im überfüllten AEZ das Nokia N900 angeschaut. Es gibt insgesamt drei Modelle von Nokia, die eine ausziehbare Qwertz-Tastatur haben und auf zwei davon läuft Symbian. Aber auf dem N900 läuft Linux und Maemo. Was ich interessant fand, war folgendes:
  • Vorne auf dem Werbe-Faltblatt über das N900 wird auffällig damit geworben, dass Open-Source-Software eingesetzt wird. ("Unglaublich schnell. Open Source. Linux.")
  • Der Verkäufer war von Fragen, die in Richtung Liunux gingen, etwas überfordert aber nicht total überrascht und irritiert. Er meinte, es wären schon öfter Leute mit ähnlichen Fragen gekommen.
  • Viele Fragen konnte ich großartigerweise selbst beantworten, weil auf dem Ding ein Terminal zur Verfügung stand. So konnte ich in Erfahrung bringen, dass im Moment sowohl GTK-, als auch Qt-Bibliotheken im Einsatz sind. Vermutlich sollen sukzessive immer mehr Dinge durch Qt ersetzt werden.
  • Python war installiert. Witzig, in einem Einkaufszentrum in einem Handy-Shop mal eben ein Hello-World-Programm zu schreiben und auszuführen. Übrigens hab ich keine Ahnung, ob ich irgendwas schlimmes hätte anstellen können.
  • Auf dem Terminal ist man etwas aufgeschmissen, wenn man nicht alle ASCII-Zeichen eingeben kann. (Wenn man "<", ">" oder "|" braucht, muss man die Hardware-Tastatur wegklappen, dann durch Tippen auf das Terminalfenster die Bildschirm-Tastatur öffnen und dann auf ein Sonderzeichensymbol tippen.) Vielleicht ist das in der Variante mit englischem Tastaturlayout besser.
  • Was allgemein in Linux-Shells fehlt (oder ich kenn's nicht), ist eine Möglichkeit, rauszufinden, welche Distribution (in welcher Version) man gerade benutzt und welches Paket-Management zur Verfügung.
In dem Laden kostete das Handy 599 €. Huihuihui.

Dienstag, 15. Dezember 2009

Keinohrwurm



Was das mit dem Film zu tun hat, weiß ich auch nicht.

Montag, 7. Dezember 2009

Handschuhe

Dokumentation für mein zukünftiges Selbst:

Beim Strickteil wird der Schlauch von Anfang an verkürzt, von 61 Maschen auf 40 Maschen. (Moment, nee, ich hab 41 Maschen. Nochmal nachzählen...ach nee, die eine wird noch abgeworfen, also 40) Das geht durch Aufnehmen von zwei Maschen alle vier Maschen. Als 1-1-1-2.

Wenn der Schlauch lang genug ist, muss abgehäkelt werden. Auf der Seite des kleinen Fingers anfangen. Die Häkelnadel durch die Schlaufe wie bei Rechtsmaschen. Vom freien Faden eine Schlaufe wie beim Häkeln bilden und durch beide durchziehen (beim allerersten Mal nur durch eine). Eine Luftmasche machen. Wiederholen.

Samstag, 14. November 2009

Gaga

Lady Gaga - Just Dance



und "One Way Gal" in der Version von den Notting Hillbillies.

Mittwoch, 4. November 2009

Handschuhe

Dokumentation für mich selbst:

  • Umfänge:
    Daumen - 16 Maschen
    Zeige- bis Ringfinger: 15 Maschen
    Kleiner Finger: 12 Maschen

  • Finger nicht zu lang machen, eine Masche zu kurz.
  • Den Ringfinger zuletzt machen, mit dessen Faden erst den Mittel- und Zeigefinger dranhäkeln, dann eine Masche rundrum, und einen später erst den Kleinen Finger. Der Daumen kommt sowieso später.
  • Die Masche, die genau zwischen den Fingern liegt, benutzt man zweimal, einmal auf dem Hinweg und einmal auf dem Rückweg. Man nimmt also pro Zwischenraum eine auf.
  • Nach dem Fingerzusammenhäkeln nimmt man in jedem Fingerzwischenraum zwei Maschen weg, damit der Handschlauch nicht zu groß wird. Also insgesamt 12 wegnehmen (ohne Daumen gerechnet). Der Handschlauch zwischen Daumen und Fingern hat also wieviel Maschen? (3 * 15 + 12) + 3 - 12 = 48. Ich zähl mal nach, ob das stimmt... Ja, zstimmt.
Ja, da bin ich auch erst. Der Daumen liegt noch auf dem Tisch. Übrigens würde ich gerne berechnen können, wie man beliebige geometrische Figuren häkeln kann. Das geht doch bestimmt.

Samstag, 24. Oktober 2009

USS Enterprise

Ich spiele mit dem Gedanken, den Uberman-Schlafrhythmus auszuprobieren. Oder schreibt man das auf deutsch mit Umlaut. Jedenfalls sieht das sehr interessant aus, finde ich. Ich hoffe, ich kann das ab dem 18. 12. machen. Uber Weihnachten.

Donnerstag, 15. Oktober 2009

Unter dem mit Karmic mitgelieferten Eclipse kann man keine Plugins installieren (https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/438414). Behoben werden kann das mit:


sudo sed -i 's/SDKProfile/PlatformProfile/' /usr/lib/eclipse/configuration/config.ini


Und vielleicht muss man .eclipse und den Workspace löschen.

Sonntag, 11. Oktober 2009

Google Wave

Ich hab mal nach dieser Anleitung Google Wave installiert. Also den Server und einen ganz einfachen Kommandozeilen-Testclient. Das funktioniert zwar alles, der Testclient ist aber total langweilig. Also ein eher spartanischer Chat-Client.



Aber es soll andere Projekte geben, die Clients implementieren, in Java und Python. Die hab ich aber noch nicht ausprobiert. Und die Weboberfläche ist wohl noch gar nicht veröffentlicht.

Update: Die Sachen in Java und Python sind wohl Bibliotheken für diese Robots und keine Clients.

Donnerstag, 8. Oktober 2009

Stromausfall

Gerade gibt es einen Stromausfall bei Flo. Wo wir beide an unserem neuen Spiel arbeiten. Der Router von Flo ist natürlich auch aus, deswegen haben wir kein Internet. Ich war gerade damit beschäftigt, Wordpress für unsere Webseite einzurichten, da macht sich so ein Stromausfall nicht sonderlich praktisch. Hmm, ich geh erstmal eine rauchen.

Freitag, 2. Oktober 2009

Abba

Seit mehreren Wochen massive Abba-Ohrwürmer. Langsam ist es nicht mehr lustig. Obwohl, doch.

Montag, 28. September 2009

darcs-ssh-Zugriff

Wenn man ein darcs-repo hat und über ssh mit mehreren Personen schreibend drauf zugreifen will, dann will man wahrscheinlich folgends tun:

1. legt man eine Gruppe gruppe an, in der alle Leute, die zugreifen können sollen, drin sind.

2.:

chown :gruppe -R .
chmod g+rwX -R .
for d in $(find -type d)
do
chmod g+s $d
done

3.
In _darcs/prefs/defaults kann man dann folgendes reinschreiben:

apply umask 0002


Die ersten beiden Schritte sind für alle möglichen anderen Repos wahrscheinlich ähnlich.

Dein Sönke

Sonntag, 19. Juli 2009

Demokratie-API

Es gibt eine Petition für das Bereitstellen einer API für im demokratischen Prozess erhobene Daten durch den deutschen Bundestag. Das wäre doch eine gute Sache.

Zur Petition

Neue Ohrwurm

"Festival In Bahia" auf dieser Platte: McCoy Tyner and the Latin All-Stars.

Montag, 6. Juli 2009

Sonntag, 5. Juli 2009

argc, argv

Falls ich (oder irgendwer sonst) nochmal in C oder C++ argc und argv selbst erstellen will, das geht so:


int* argc = (int*) malloc(sizeof(int));
*argc = 1;
char** argv = (char**) malloc(sizeof(char) * 2);
argv[0] = progName;
argv[1] = NULL;

fakemain(*argc, argv);


Bestimmt geht das auch irgendwie eleganter, aber was weiß ich?

Mittwoch, 1. Juli 2009

for-Schleifen

Wie übersetzt man das hier:

for (int i = 0; i <= 10; i++) {
...
}


nach Haskell? Anwort:

flip mapM_ [0..10] $ \ i -> do
...

Dienstag, 16. Juni 2009

Codename Nikki

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.

Freitag, 29. Mai 2009

Ich hab eine Wortwolke von diesem Blog erstellen lassen.
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:













XY
LinuxMicrosoft Windows XP Professional Edition™
OpenOfficeMicrosoft Office XP™
ArdourDingens, 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

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.

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ß.

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:

[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.