pesco is currently certified at Journeyer level.

Name: Sven Moritz Hallberg
Member since: 2004-11-22 14:39:59
Last Login: 2009-01-31 10:11:08

FOAF RDF Share This




I am

  • from Hamburg, Germany,
  • a student of Mathematics and Informatics,
  • obsessed with programming, and
  • one of the founders of the KHJK.

I started with C,
My mother tongue,
Never used BASIC.
Avoiding Pascal I proceeded,
To C++ for long.

I passed Prolog
When the years turned,
And Scheme a half-sem.
Rejecting Java for the money
With LISP it is earned.

But I'm an aesthete,
So in the end:
They all dissappear,
My love currently lent
To Haskell the clear.

Recent blog entries by pesco

Syndication: RSS 2.0

Sometimes it can be so easy... chvt(1). I'll just run an extra X-server without WM on a separate virtual terminal and switch to it remotely via SSH. It won't give of fancy transition animations à la Beryl or Mac OS X, missing some of the futuristic-look-factor, but the functionality is what counts, right?

On a side note, this whole plug-me-in-and-I'll-autojoin-the-larger-setup business reminds me of reading about "FlashMob computing" the other day. It sounded pretty much like they were still missing such "auto-integrate" (and auto-"exegrate") functionality...

PS. I apologize for a lack of links in my posts, but I've been sending them from my cell phone (yay advopost) and can't look up the references, so bear with me for having to google out the links yourselves... ;)

12 Feb 2007 (updated 12 Feb 2007 at 23:26 UTC) »

My laptop as a Plug&Play device

I'm the owner of two laptops, one slightly older and rather bulky 17" PowerBook, and a recent Panasonic T5. I now use the PB as my (stationary) main display via remote X while all work is done on the T5. To this end I've already got a script to automate the "attaching" of the T5, i.e. launching a window manager on the remote display and joining the two displays wrt. keyboard and mouse input with x2x.

I still have to manually kill the old WM on the PB, which I keep running when the T5 isn't connected (the PB still runs my MP3 player and an "emergency" web browser), and start up the network connection on the T5. The latter would be easy to automate but what I'm really looking for now is a way to also automatically have the WM on the PowerBook squirelled away in some "fast user switching"-like fashion so the regular environment could set itself up. Then on some other event, the whole thing should revert to the disconnected setup, automagically unsquirreling the "solo" environment again. I wonder how well the current state of the art in Linuxland will allow me to do that.

I've got my project for the weekend...

4 Feb 2007 (updated 4 Feb 2007 at 15:53 UTC) »
Oops, a duplicate!
4 Feb 2007 (updated 2 Feb 2008 at 00:02 UTC) »

Oh my god, I finally found it...

...a decent MP3 player with stream support. Finally.

Hello, MOC[1]! XMMS, go eff yourself.

Of course I'm sorry for not using hmp3[2], but it doesn't do streams, appearently. At least not that I can tell from the website. Also missing Ogg support is a bit of a let-down.

"Music On Console"
"hmp3 :: purely functional sound"

Back from the dead, with a nonlinear parser

Soo, everything went well different than planned. What was supposed to be a holidy clean-up rewrite of a fun weekend project has turned into a half-year side project running next to university.

To recap, I initially set out to implement a Markdown[1] parser in Haskell so I could post formatted text to my Advogato blog. An email-to-Advogato gateway was quickly whipped up[2]. The first prototype version of a Markdown parser was also finished within reasonable time[3]. Unfortunately, the code was a mess, so I set out for the rewrite[4]. Much progress was made but it kept screwing up in certain minor but annoying cases and the code still looked convoluted. Basically, Parsec just didn't want to bend in the right direction...

So I replaced Parsec. The module is called Text.ParserCombinators.Nonlinear[5] because it allows one to slurp in parts of the document in one part of the parser and reparse them again later. This allowed me to split up the document according to its block-level structure and re-assemble, for instance, the text pieces of quoted or indented lines (without the leading quote marks/indetation) and run the corresponding parser over the thus extracted subdocument. Such embedded parses can also work with a completely different token type than the enclosing parser, a capability which also came in handy.

I recently came across "Frisby"[6], a Haskell implementation of PEG grammars, which I had never heard of before. The description sounds cool. I wonder if my Markdown variant could be represented by one? My parser library is neither optimized for space nor speed, and PEGs sound compelling in that regard...

Anyway, the implementation based on my nonlinear parsers worked out really nice wrt. the code structure and doesn't show any of the kinks that plagued the Parsec version. Since I've deviated somewhat from Markdown syntax in the places I didn't like, I've dubbed the package k-tex. I've still got to update the documentation but if anyone is interested in looking at or even improving the code, you can find it at

Best regards, Sven Moritz

PS. Yep, the Advogato gateway[7] already uses k-tex, and if this post appears on my blog[8], it's working. ;)


"Structural plain-text, next iteration"

18 older entries...


pesco certified others as follows:

  • pesco certified pesco as Apprentice
  • pesco certified shapr as Journeyer
  • pesco certified marnanel as Apprentice
  • pesco certified salmoni as Journeyer
  • pesco certified rillian as Journeyer
  • pesco certified Chicago as Apprentice
  • pesco certified clubfan as Journeyer
  • pesco certified company as Master

Others have certified pesco as follows:

  • pesco certified pesco as Apprentice
  • shapr certified pesco as Journeyer
  • salmoni certified pesco as Journeyer
  • rillian certified pesco as Apprentice
  • badvogato certified pesco as Journeyer
  • cdfrey certified pesco as Journeyer
  • fzort certified pesco as Apprentice
  • Omnifarious certified pesco as Apprentice
  • murajov certified pesco as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page