Skip to main content

Liskell at the International Lisp Conference 2007, Cambridge, UK

It's been over a month since I returned from Cambridge and still I have not found time to blog an epilogue for this trip.

First, here is the material: Liskell presentation-ILC 2007.mov.torrent. This is a screencast of my talk at the International Lisp Conference 2007; one of the two presentations I have given in Cambridge. Notice that this talk was prepared for a Lisp audience, so my job was to highlight the features of Haskell. The other talk in Cambridge was at Microsoft Research and I plan to make this talk available in a similar style (but with the objective to sell Lisp ideas to a Haskell audience).

A few remarks:

  • The implementation of cond as defmacro is a pedagogical code mock-up. It operates on the wrong data structure. The Liskell paper has a correct implementation of cond as defmacro.
  • There are a few errors in the codec stream for qtrle. For some reasons, my recent sync with ffmpeg subversion HEAD caused this trouble. There are only 3-4 errors, and they are usually corrected in a few seconds with the next Pframe in the stream.
  • Levelator rox. I spent about 2 hours finding suitable settings for mastering my voice track in Audacity with no useful results at all. The first try with Levelator was a perfect mastering. Lovely.
  • The liskell-mode you see in this video is just a tiny minor mode wrapping haskell-mode with scheme indention. A video on how to set up this development environment is also on my todo list. Grab liskell-mode.el.
Audio and video recordings of the original session are available. But unfortunately, the video is incomplete and the quality is insufficient for reading anything from the projection, also the background noise of the audio recording is quite high. I recommend to download the screencast above. The slides and source code files are available here.

And finally a few photos in my semi-private flickr stream.

Comments

Popular posts from this blog

Liskell standalone

Some time has passed since I last blogged about Liskell. It is not dead nor have I changed my mind that Haskell needs a proper meta-programming facility not to mention a better syntax.Liskell was a branch of GHC once. Now it sits on top of the GHC API, or I should rather say sneaks behind its back as it creates its own API as the original one is not suitable for the stunts I'm interested in. If Liskell sticks with GHC as its soil, I will definitely send patches upstream to refine the GHC API in the areas where it needs more flexibility for Liskell. However for the moment, my main target was to get something out that compiles with a stable version of GHC.You can grab it with the usual: darcs get http://code.haskell.org/liskell/ This version has been tested with ghc 6.10.1 and should install like: ./Setup.lhs configure ./Setup.lhs build ./Setup.lhs install cd LskPrelude make install-inplace Optionally you can run make tests in the testsuite subdirectory. Thanks to community.haskell…

XMonad GridSelect

Personally, I not just need a window manager, I need a focus manager. I tend to think of windows as TODO items, and as there are many TODOs in life there are many windows on my workspaces. Usually a fraction of that can't be closed or worked on immediately, so they linger around on my desktop, cluttering my workspace.I used to use the Tabbed layout. But Tabbed isn't the answer when you are a guy who reports bugs such as "XMonad 0.6 with Tabbed dies when firefox-session-restore slams 40 windows at once on the desktop". In other words, I use a lot of windows. The workspaces concept isn't particularly useful to me either. My mind just doesn't work with mental boxes. So the result is, that I have too few workspaces with too much windows on them, so that Tabbed has trouble displaying useful window titles, and navigating through them is slow and cumbersome (mostly because tab switching generates a lot of useless X Expose events).GridSelect is my answer to that. It…

Removing CHS based access from windows boot loaders

Recently, I had troubles to migrate my Windows installation from VMWare to VirtualBox. When booting the vmware created partition in virtualbox, I got "NTLDR not found". So I sharpened the knives and got down to business with vmware's gdb interface and virtualbox's internal debugger. Tracing the execution showed that the BIOSes of the two products reported different geometries on the INT 13h interface. The generic method contained in the boot loader to read a sector from disk is "clever" as it checks whether the sector is below the maximum sector index that is reachable with the CHS geometry reported by the BIOS. If not, it uses the LBA interface of the BIOS. If yes, the cleverness of the boot loader suddenly vanishes. Instead of using the BIOS reported geometry to break the absolute sector down into its CHS components, the boot loader uses a geometry stored in the so called BIOS parameter block. That's a section of the first sector embedded into the boo…