Sunday, July 23. 2006
Today I spent a few hours of hacking on an IMAP mail client in Ruby which I codenamed "liam" (backwards for mail, haha, how funny). I based it on basically two libraries, namely Ruby's Net::IMAP, which provides a very complete (but a bit complicated) interface to IMAP, and Clifford's STFL, the Structured Terminal Forms Library, which is pretty new, but definitely the best ncurses widget library around.
The functionality is currently really simple: you start the program, it connects to your IMAP server, reads all available mailboxes from it, and lets the user decide which one to open. After selecting the right mailbox from the list, it is opened and the message envelopes from this mailbox are downloaded. Then, the user can again select the message he wants to view. Then, the message is downloaded and the raw message is presented to the user using the less(1) pager. The user can view this message. When he quits less, he is again presented with the list of messages in the mailbox. To return to the list of mailboxes, a simple press of the 'q' key is enough. From there, it is possible to select another mailbox, or to quit liam by again pressing 'q'.
This probably sounds pretty difficult, but it's extremely simple. To visualize this more efficiently, I prepared a simple screencast, which you can view here.
But what is my goal with this prototype? I don't know yet. It is definitely not here to replace mutt-ng (which is not dead yet, I'm currently preparing a "relaunch" since I now know my requirements much better than at the beginning of the project), but it's more a prototype to experiment on the future of terminal-based email clients. Sooner or later, mutt (and mutt-ng) will require a rewrite, and with this prototype I can find out what will be important for a new design, and where the stumbling blocks might be. Anyway, any feedback is welcome.
Update: more hacking on liam (including a new STFL widget), and a new screencast to demonstrate email viewing.
Monday, July 17. 2006
I think most of you know the video hosting service YouTube. Recently, I discovered that YouTube also contains a number of pretty interesting videos regarding the war in Iraq, especially when it's about pro-insurgency propaganda. " Juba" is the keyword. Juba is a propaganda figure, Iraq war's " Colonel Tomb", a mythical sniper who claims to have shot over 150 American soldiers.
YouTube contains a number of videos showing how American soldiers are shot by snipers, like (warning, graphic scenes ahead!) this one, this one, this one, this one, this one, this one or this one. All of these videos are quite interesting, as they show how effective a single sniper can be against the crew of a humvee, and that they have basically no chance to detect and combat the sniper. And most of these videos are designed in a typical "propaganda video" fashion, with a pretty unique background music (all I understand from the lyrics is "allahu akhbar"...). Although quite brutal in what they show, definitely an important documentation of the other side of the war, the stuff that you usually won't see on CNN.
Update: for my German-speaking readers, Google Video hosts a short report from Spiegel TV about Juba.
Friday, July 14. 2006
Gestern hab ich mir das Demo von Call of Duty 2 runtergeladen und gespielt. Ich bin ja normalerweise nicht so der Hardcore-Gamer, aber gerade dieses Genre interessiert mich eher (nein, CS zähle ich nicht dazu). Auf jeden Fall, nach 665 MB Download hab ich das Spiel ausprobiert, und muss sagen, das ist so ziemlich das beste Demo, das ich jemals gespielt habe. die generelle Stimmung ist einfach ein Wahnsinn, und alles wirkt sehr realistisch (abgesehen von der Grafik): die britischen Soldaten sprechen wirklich englischen bzw. teilweise schottischen Akzent, während die Deutschen echtes Deutsch sprechen. Und man scheisst sich aufgrund der bedrückenden Ungewissheit, was hinter der nächsten Ecke lauert, ziemlich an, vereinfacht gesagt. Jetzt muss ich nur noch schauen, wo ich die englische Version herbekomme, die bundesdeutsche Variante (die höchstwahrscheinlich wieder im gesamten deutschen Sprachraum ausgeliefert werden wird) wird ja höchstwahrscheinlich zensiert sein.
Monday, July 10. 2006
Since I got my new notebook, I finally took the time to get hugin running on OSX. Hugin is a program/frontend for creating panorama pictures. So far, I created a few panoramas from old pictures that I took when I was in London last November. But today, I went out and up a hill not too far from my home, and took quite a few pictures. At home, I stitched them together, and although the stitching isn't perfect, it still looks pretty nice:
You can find more of my panoramas, including the old ones, in my panoramas gallery.
Sunday, July 9. 2006
Kaum zu glauben, aber morgen trete ich meinen ersten Arbeitstag nach dem Bundesheer an. Das wird eine Umstellung: endlich wieder richtige Arbeit, Stress, mehr als nur stupides-ICD10-Codes-in-den-Computer-tippen. Aber noch wesentlich wichtiger: endlich kann ich wieder länger schlafen. In den ersten zwei Monaten Bundesheer bin ich jeden Tag um 6:00 Uhr aufgestanden, die vier darauffolgenden Monate jeweils zwischen 5:15 und 5:20. Und letzten Freitag, als ich einen kurzen Besuch bei meinem Arbeitgeber machte, wurde mir gesagt, ich solle erst so ca. um 9:00 Uhr auftauchen. 9:00 Uhr! In der Stellungskommission waren zu der Zeit schon sämtliche Vorbereitungen des Vormittags erledigte, und meine Ärztin untersuchte normalerweise schon ca. eine halbe Stunde. Dafuer dauert der Arbeitstag wieder 8 Stunden, wobei im Gegensatz zum Bundesheer die letzten 2 bis 3 Stunden nicht mit Warten auf Dienstende verbracht werden.
Saturday, July 8. 2006
After starting my quest in May, I finally found a new notebook for me. I decided to buy a 2.0 GHz MacBook Pro at the new McShark Apple Center in Linz. Though not really cheap, it is so much fun to use, and so much better than my old iBook in many ways. Compiling programs works like a charm (and using make -j n shows a great improvement), everything works just so much smoother, and I really appreciate the much bigger screen (15,4", after all!). Rosetta integrates absolutely flawlessly, and even games with no Intel update yet (at least Ghost Recon and Quake 3, that's what I tested so far) work with absolutely no feelable performance penalty.
Thursday, July 6. 2006
Kaum hat der Grundwehrdienst begonnen, schon ist er auch schon beendet. Offiziell bin ich noch bis Samstag 24:00 Uhr Grundwehrdiener, praktisch habe ich aber heute abgerüstet. Die Abrüsterfeier gestern war sehr lustig, jedoch nicht problemfrei. So, und jetzt werden fleißig noch Briefe an die Beschwerdekommission geschrieben. :->
Wednesday, July 5. 2006
Wie gerade auf CNN läuft, haben die Nordkoreaner eine Taepodong-2-Rakete (als eine von insgesamt 3 Starts) abgeschossen, und die ist in weniger als einer Minute abgestürzt. CNN covered die ganze Geschichte jetzt gerade mit etlichen Schaltungen zu Korrespondenten, und die wohl härteste Korrespondentin war die im Pentagon, die einfach mal so darüber geredet hat, dass die Amerikaner die Rakete versucht hätten, abzuschießen, wäre sie nicht schon so kurz nach dem Start abgestürzt. Das ist insofern hart, als dass, wäre es zu einem versuchten Abschuss gekommen, höchstwahrscheinlich als kriegerische Handlung Nordkoreas interpretiert worden wäre, und wir uns da auf mehr Konfliktpotential gefasst machen hätten können. Und die Amerikaner warten ja sicher schon auf einen Kriegsgrund gegen Nordkorea. <cynism mode="on">noch mal Glück gehabt...</cynism>
Friday, June 30. 2006
A few weeks ago, Sven reminded me of an inherent problem of the current design of tpp's file format, namely it's line-based file format which gives no options to e.g. set text properties like bold or underlined for only a single word or a phrase. Currently, the whole line must be made bold, underlined or whatever.
For those who don't know: tpp is the "PowerPoint for the console" that I wrote together with Nico Golde and currently the (IMHO) only mature solution to do presentations solely using text terminals.
A quick look over the existing commands in the current file format shows three (no, four, nobody
expects the Spanish Inquisition!) classes of commands: - presentation-wide commands: presentation title, author, date, header, footer, border
- slide-wide commands: header, footer (to override to presentation-wide default, if set)
- line-wide commands: output, shell output, special effects, alignment
- character-wide commands: text color, text properties like bold, underlined, reverse, ...
Now, the goal is to reflect this new specialization and change in what tpp should provide into a new, better file format, to make tpp more flexible than right now.
One option would be to use an XML schema, but that is not a very attractive option, since XML would be a lot too verbose to actually make it fun to write tpp presentations.
Another approach would be to keep with most of the current problems, and to introduce additional, Wiki-like formatting methods, like using stars or underlines or something like [bold|The text supposed to be bold] or [bold,fgcolor=blue,bgcolor=white|blue/white text, bold]. The only disadvantage: it would make the parser a lot more difficult than it currently is. But probably it is
too simple, anyway.
So, what's your opinion on that? I would like to hear your comments, and to do some brainstorming instead of just starting some experimental quick-shot implementation.
Um von dem Fußballdebakel abzulenken: Hat Jan Ullrich gedopet? Nein, meine ich. Im Fernsehen wurden Blutbeutel mit der Aufschrift "sangrias" gezeigt. Wie man also klar erkennen kann: die Dopingkommission hat "sangre" (Blut) mit "sangria" (Sangria) verwechselt, höchstwahrscheinlich aufgrund des zu hohen Konsums ebendieses Getränks.
Der Schiedsrichter war schuld. Wie felipe schon erwähnt hat, schon etliche Spiele wurden vom Schiedsrichter entschieden, so auch hier. So schlecht gepiffen, gigantisch. Etliche Fouls der Deutschen wurden nicht gegeben, das Handspiel der Deutschen im eigenen Strafraum wurde ja im Fernsehen nicht wiederholt, IMHO ein Zeichen einer tendenziösen Berichterstattung, um die schlechten Entscheidungen (oder gar die Agenda) des Schiedsrichters zu vertuschen. Mich würde es ja nicht wundern, wenn nach der WM rauskommen würde, dass der Schiedsrichter bestochen worden ist.
Das Bier ist eingekühlt. Dann lasst uns alle anschauen, wie Argentinien die Deutschen panieren wird. Prost auf den zukünftigen Weltmeister Argentinien!
Thursday, June 29. 2006
So, mit heute, 18:00, hab ich meinen allerletzten Dienst in meiner Bundesheerzeit, vorübergebracht. Ein weiteres Zeichen, dass sich das Bundesheer für mich zur Ende neigt, naja, auch nicht verwunderlich bei einer Lage von 7. Ja, das ist korrekt, in exakt einer Woche werde ich abrüsten. Das dazugehörige Chaos bricht jetzt schon aus, und alle werden so langsam verrückt.
Monday, June 26. 2006
JJ 1, der Bär, der Tirol und Bayern terrorisierte, ist tot. Wochenlang wurde er verfolgt und gesucht, doch es war unmöglich, den Bär aufzuspüren. Jetzt wurde er zum Abschuss freigegeben, und schon wurde er erlegt.
Was ich daran höchst interessant finde: wochenlang wurde er gesucht, und genau zu dem Zeitpunkt, wo er zum Abschuss freigegeben wurde, wird er auch gefunden und kurzerhand erlegt. Vom Timing her ein eher merkwürdiger Zufall.
Meine Verschwörungstheorie: die lokalen Jäger in Bayern bzw. Tirol haben die Suche nach dem Bären zu dem Zeitpunkt, wo der Bär noch nicht zum Abschuss freigegeben war, bewusst behindert bzw. falschen Fährten verfolgt, bis zu dem Zeitpunkt, wo die Freigabe kam. Was ist die Motivation der Jäger dafür? Nun, so ziemlich jeder Jäger ist scharf, mal so ein Tier wie einen Bären zu erlegen. Sehr oft kommen die ja nicht in freier Wildbahn vor, und noch weniger oft darf man die dann auch abknallen, insofern macht so ein Bär eine gute Trophäe, und damit angeben zu können, man selbst habe JJ 1 erlegt, ist gut zum Angeben im Wirtshaus. Deshalb denke ich, dass die Jäger sich das so ausgemacht haben, auf eine Freigabe gewartet haben, und den Bären dann relativ schnell aufgespürt und erlegt haben. Und um die Tierschützer, die sich gegen einen Abschuss aussprachen, zu diskreditieren, unterstellt man ihnen einfach mal Morddrohungen gegen den bayerischen Umweltminister.
Sunday, June 25. 2006
Today I finally sat down to remodel my HTTP stack/server from a forking model to a multithreaded model using the pthread library. Actually, this is my first project where I use POSIX threads, and I was delighted how easy it was to integrate them into my relatively well-designed program.
The server now works as follows: the "main" thread first creates a number of worker threads, and then accepts connections, puts them into a queue and then notifies the worker threads. The next worker thread that is ready takes the connection from the queue and handles the incoming requests. This is definitely a very simple design, which was also very easy to implement. The results can be found in httpstack/branches/pthread in the SVN repository. As usual, comments are welcome.
The next thing is where I will move that project. One idea I had was to integrate a database connection pool, and in addition probably a simple object-relational mapper, then an HTTP management interface for the whole thing and then some CMS.
|