Update on F# and Haskell, especially monads
October 8th, 2007
Since I wrote about F# in August, my progress has been rather slow.
There was a lot of work to do for Uni, almost all involving final touches to Pavel, the data-analysis tool me and a few other students have developed as a student research project. We’ll publish Pavel next week on SourceForge, I’ll write a few lines about it then.
Another thing that has held me back is my fascination for Haskell. Read the rest of this entry »
TrueSkill
September 26th, 2007
The TrueSkill ranking system is a skill based ranking system for Xbox Live developed at Microsoft Research. The purpose of a ranking system is to both identify and track the skills of gamers in a game (mode) in order to be able to match them into competitive matches. The TrueSkill ranking system only uses the final standings of all teams in a game in order to update the skill estimates (ranks) of all gamers playing in this game.
Tumblecontent
September 25th, 2007
Ab heute hier rechts zu finden.
Im RSS-Feed wie alle anderen Posts auch enthalten.
Web 2.0 für den Desktop - Teil 2
September 21st, 2007
Es ist fünf Monate her da ich Web 2.0 für den Desktop geschrieben habe.
Vor einigen Tagen schrieb Joel Spolsky seinen Strategy Letter VI:
So if history repeats itself, we can expect some standardization of Ajax user interfaces to happen in the same way we got Microsoft Windows. Somebody is going to write a compelling SDK that you can use to make powerful Ajax applications with common user interface elements that work together. And whichever SDK wins the most developer mindshare will have the same kind of competitive stronghold as Microsoft had with their Windows API.
If you’re a web app developer, and you don’t want to support the SDK everybody else is supporting, you’ll increasingly find that people won’t use your web app, because it doesn’t, you know, cut and paste and support address book synchronization and whatever weird new interop features we’ll want in 2010.
Imagine, for example, that you’re Google with GMail, and you’re feeling rather smug. But then somebody you’ve never heard of, some bratty Y Combinator startup, maybe, is gaining ridiculous traction selling NewSDK, which combines a great portable programming language that compiles to JavaScript, and even better, a huge Ajaxy library that includes all kinds of clever interop features. Not just cut ‘n’ paste: cool mashup features like synchronization and single-point identity management (so you don’t have to tell Facebook and Twitter what you’re doing, you can just enter it in one place). And you laugh at them, for their NewSDK is a honking 232 megabytes … 232 megabytes! … of JavaScript, and it takes 76 seconds to load a page. And your app, GMail, doesn’t lose any customers.
But then, while you’re sitting on your googlechair in the googleplex sipping googleccinos and feeling smuggy smug smug smug, new versions of the browsers come out that support cached, compiled JavaScript. And suddenly NewSDK is really fast. And Paul Graham gives them another 6000 boxes of instant noodles to eat, so they stay in business another three years perfecting things.
Ich mache hier darauf aufmerksam, weil das thematisch so gut zu meinem Text von damals passt, nicht unbedingt weil ich noch viel Schlaues hinzuzufügen hätte. Das einzige was mir spontan dazu einfällt ist dass das in der Form ziemlich nach Java Webstart oder ClickOnce riecht.
Natürlich ist Joels Ansatz reichlich polemisch, trifft aber den Nagel genau auf den Kopf:
And that’s exactly where we are with Ajax development today. Sure, yeah, the usability is much better than the first generation DOS apps, because we’ve learned some things since then. But Ajax apps can be inconsistent, and have a lot of trouble working together — you can’t really cut and paste objects from one Ajax app to another, for example, so I’m not sure how you get a picture from Gmail to Flickr. Come on guys, Cut and Paste was invented 25 years ago.
F# Observations
August 12th, 2007
I’m feeling all mad-scientistic tonight, sipping coke, with 30 tabs open in Opera :)
On my journey into the weird world of functional programming on the .NET CLR, I continue to stumble upon interesting stuff. Papers, articles, interviews, each worthy of hours of dedication. Alas, my day still has only 24 hours (I need to work around that somehow), so at the time being I can’t do much more than glance over everything. Read the rest of this entry »
Hey Hey OCaml
August 7th, 2007
Wie’s aussieht hat sich auch Steve Yegge schon damit beschäftigt:
OCaml has threads, exceptions, call-with-continuation, calling conventions to and from C, a rich standard library with collections, networking, I/O, graphics, a complete interface to the Unix programming API, and a powerful module system that blows Java’s packages away. It has interfaces and bindings for Oracle, MySQL, postgres, berkeley DBs, CORBA, COM, xml-rpc, SOAP, XML, perl-compatible regular expressions… the list goes on. You name it, it’s there.
OCaml has the potential to make me happy as a programmer, finally.
Mjamm :) Read the rest of this entry »
An apple a day…
July 31st, 2007
Wie heisst die Faustregel doch so schön? “Lerne jedes Jahr eine neue Programmiersprache”
Bisher schlage ich mich damit ganz gut:
2007: ein bißchen Python
2006: C#, Ruby, Javascript
2005: genug C++ um da in Zukunft einen Bogen herum zu machen, genug Haskell um ein permanentes distanziertes Interesse zu erhalten das vielleicht irgendwann durchschlägt in ernsthafte Auseinandersetzung.
2003/2004: Java
1999-2002: PHP, SQL Read the rest of this entry »
Autostarting the Synergy Server on Mac OS X using launchd
June 29th, 2007
Synergy is a terrific tool that allows multiple machines on a network to share one set of Mouse/Keyboard.
The typical application is probably a setup like mine: since I bought a Dell 2407WFP (I really recommend this store, the prices are amazing and the owner is a very nice and helpful guy) a few months ago, I couldn’t bring myself to stare a my laptops crappy screen any longer. Placed right under the monitor, it uses the Dell as its display now, connected by VGA while my Mac mini is connected by DVI. Switching inputs on the Monitor isn’t a problem but actually operating the laptop with its lid closed is kinda difficult. Since both computers are in my LAN, I use Synergy to share the Mac’s Mouse and Keyboard with the Laptop.
Manually starting the Synergy server on the mac works but is quite unelegant. Open Terminal, launch synergys, quit Terminal.
The instructions for launching Synergy automatically on the Synergy homepage are from the time before Mac OS X 10.4 and don’t use launchd for launching, relying on LoginHooks or StartupItems instead.
Launching via launchd is neither difficult nor very original but since Information on this is a little hard to find, I wanted to share my synergy launchd here:
net.sourceforge.synergy2.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.sourceforge.syngery2</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/synergys</string>
<string>–no-daemon</string>
<string>–no-restart</string>
<string>–debug</string>
<string>WARNING</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Synergy Server</string>
</dict>
</plist>
The first program argument has to be adjusted for your system of course. Place this file in /Library/LaunchAgents. I deliberately did not make this an OnDemand Item since that involves fiddling with /etc/services.
Synergy starts quickly and doesn’t use many resources, so this shouldn’t be a problem.
Getting the keys to work correctly
The ALT and WIN keys don’t work correctly when connecting a Windows client to a Mac server. To fix this, add these lines to your windows client in the screens section in /etc/synergy.conf:
alt = super
super = alt
Microsoft Student Technology Conference Tag 2
June 6th, 2007

Der zweite Tag fing unerfreulich an.
Um 10h sollte es mit der Keynote losgehen, um 8 stand ich auf und schwang mich auf mein Motorrad um um kurz nach 9h in der Gebläsehalle zu sein und noch in Ruhe was vom Frühstück mitzunehmen.
Es gab nur leider kein Frühstück und ich war so ziemlich der erste der so früh da war. Selbst die Leute vom Event-Team sahen alle noch ziemlich verpennt aus. Nach 20 Minuten tauchte Sarah auf, dir wir am Abend zuvor kennengelernt hatten. Zwischen zwei Tassen Kaffe konnte ich in einer unbeobachteten Sekunde eine Banane klauen, musste danach aber bis nach der Keynote knurrenden Magens ausharren.
Keynote - Comparing UNIX to Windows NT Architecture
Dave Proberts Vortrag war hochspannend weil er über das eng umrissene Thema, das der Titel nahelegt, einige wesentlich tiefgreifendere Denkansätze mit sich brachte. Natürlich ging es zunächst um Betriebssystemarchitektur im Vergleich zwischen Windows und Unix. Probert brachte einige interessante Anekdoten mit, z.B. was den Ursprung des fork() Systemaufrufs in Unix betrifft. Dessen heute merkwürdiges Verhalten war damals zu seiner Ursprungszeit vollkommen logisch, nur so konnte im Paging-Betrieb ein neuer Prozess instanziiert werden. Diesen und andere Umstände nahm Probert zum Anlass, das Publikum anzuregen technische Lösungen zu hinterfragen, auch mal über den Tellerand zu schauen und sich nicht nur auf das zu verlassen was man kennt. Eingebettet bzw. motiviert war sein ganzer Vortrag aber von der Frage, warum Computer nach wie vor so schwer zu bedienen sind. Glaubhaft berichtete er davon, wie er bei Microsoft als Kernelarchitekt anfing um das Betriebssystem neu zu erfinden und die Welt zu verändern. Ich habe nicht mehr alle Details des Vortrags im Kopf, aber sein Argument war (ungefähr), dass die Beschränkungen von Programmiersprachen und Betriebssystemen Monokulturen in Entwicklerköpfen erzeugen und man, um die Anwendungen zu revolutionieren, erst das Betriebssystem revolutionieren muss.
Leider ging Probert am Ende die Zeit aus, sein Vortrag war für gut das doppelte der veranschlagten Zeit ausgelegt. So standen bis etwa eine dreiviertelstunde später noch eine Traube Studenten um ihn herum und diskutierten.
Klickt Ihr oben auf Daves Namen, bringt euch das zu einer Serie von Channel9 Shows in denen es nochmal genau um die Themen geht, über die er auf der Conference gesprochen hat. Wärmste Empfehlung!
Vorträge
Zu dieser Zeit wollte ich eigentlich bei Entwickeln hochqualitativer Software im Team — mit Visual Studio Team System sitzen, hab’ es dort aber keine 10 Minuten ausgehalten. Stattdessen tinglete ich zwischen Proberts Studententraube, der endlich offenen Häppchen-Bar und dem Stehtisch herum, der für den weiteren Tag unser Stammplatz werden sollte.
Die 12h Vorträge konnte ich mir nicht anhören, da ging es nämlich daran, meinen Gewinn einzulösen: **Abseilen vom Hochofen. Nachdem ich erst den *falschen Hochofen rauf- und wieder runtergeklettert bin, ging es mit den anderen 14 Gewinnern und unseren 2 Bergführern auf den richtigen Ofen. Richtig spannend zu erzählen war die Aktion wirklich nicht. Erst gab es eine kurze Einweisung, dann wurden uns die Geschirre angelegt und hoch gings. Oben nochmal letzte Anweisungen für jeden, ein wenig Starthilfe und dann gings abwärts. Anfangs war der Anblick der 35m in die Tiefe schon respekteinflößend und vor allem das Übersteigen der Brüstung kostete einige Überwindung, aber einmal im Seil hängend kann man eigentlich nichts mehr tun als langsam runterzukommen und sich nicht den Kopf am Hochofen zu stoßen.
Wieder in der Gebläsehalle war die Schlange zum Mittagessen schon 20m lang. Ganz so toll wie das Barbecue am Montag abend war’s zwar diesmal nicht, aber trotzdem noch lange kein Grund sich am Buffet zurückzuhalten ;-)
Der letzte Vortrag für mich war anschließend Viren, Rootkits und Co. — Digitales E605 von Michael Willers. Erst ging es ein bißchen um die Entstehung von Rootkits und Trojanern, wie es überhaupt zu derlei Angriffen kommen kann, anschließend schrieb Michael aus dem Kopf im Notepad ein als Gerätetreiber getarntes Rootkit. Ziemlich beeindruckend, vor allem da Michael wirklich verstand wovon er da redete — keine Selbstverständlichkeit im Rahmen der Konferenz.
Den letzten Vortragsblock haben wir uns geschenkt und stattdessen lieber das Wetter genossen.
Um 16h wurde die Veranstaltung offiziell beendet, es gab warme Worte und Präsente für die Gewinner diverser Wettbewerbe, anschließend wurden die deutschen Sieger des ImagineCup gekürt.
Fazit
Die Konferenz hat Spaß gemacht. Microsoft hat keine Mühen gescheut um das ganze Drumherum der Veranstaltung angenehm zu gestalten. Leider blieb die Qualität der Vorträge weit hinter der des Caterings zurück. Von einer Veranstaltung die *Student
- Technology
Conference* heisst erwarte ich einfach mehr Technologie und weniger Blabla.
Somit war das beste was ich von diesen zwei Tagen mit nach Hause nehmen konnte ein paar nette Erinnerungen und Steve McConnels wirklich unglaublich gutes Code Complete für läppische 30€
Weitere Eindrücke
…schildern Christopher Harms und Jonas John
TED Talks: Blaise Aguera y Arcas Photosynth demo
May 31st, 2007
http://www.ted.com/index.php/talks/view/id/129:
Using photos of oft-snapped subjects (like Notre Dame) scraped from around the Web, Photosynth creates breathtaking multidimensional spaces with zoom and navigation features that outstrip all expectation. Its architect, Blaise Aguera y Arcas, shows it off in this standing-ovation demo. Curious about that speck in corner? Dive into a freefall and watch as the speck becomes a gargoyle. With an unpleasant grimace. And an ant-sized chip in its lower left molar. “Perhaps the most amazing demo I’ve seen this year,” wrote Ethan Zuckerman, after TED2007. Indeed, Photosynth might utterly transform the way we manipulate and experience digital images.