Work examples

Here's some of the Open Source software that we have published.

Perl

  • Functional Perl - library for purely functional programming on Perl 5

    Drawing from our experience with Scheme and implementing purely functional libraries in it, we have made multiple attempts at achieving the same on Perl 5 over time. Recent advances in the Perl interpreter and a more persistent effort in getting things to work smoothly have led to a workable set of solutions. The project also contains goodies such as generic value comparison, and pretty-printing infrastructure, and a repl (read-eval-print loop) that can show values nicely (using the mentioned pretty-printing) and allows to inspect and modify values in any call frame (debugger functionality).

  • recordvideo - a video recorder for Ubuntu using Gtk

    This is in principle a simple program, since the job of actual video recording and preview is delegated to mplayer and mencoder, but it tries to do the user interface right, which entails the aim that it never blocks. The project includes a somewhat Erlang-inspired 'process' abstraction on top of both unix processes (and unix domain sockets) and the Gdk event system. recordvideo hasn't really been polished or widely announced yet (the current approach of using mplayer and mencoder is resulting in some issues that, once a wide audience is using it, might require us to replace those programs with libraries, and we don't like to spend the time to do that right now).

  • megacp - a file copy tool for huge numbers of hard linked files

    GNU cp, when instructed to preserve hard links, currently uses a hash table to remember the inodes and paths of files it has seen. This doesn't work well when there are too many files with hard links to keep the hash table in RAM. megacp attempts to handle this case better by using a different algorithm. This is a work in progress to research the best trade-offs with the idea that the insights could be used to improve GNU cp, or at least an alternative exists that could be used when running into the problem.

    This project currently has almost no tests because it was originally just a quick proof of concept. Tests will be added when it turns out to be a long-lived program.

  • perllib - various Perl libraries

    This is a collection of libraries we use for internal and some other projects (amongst them, many utility scripts). Not all of them are worth using anymore, but we're planning to sort out those that are and intend to publish them on CPAN rather soon(ish).

Scheme

  • vCard-scm

    A library to generate syntactically and structurally correct vCard files. It does this by using classes with (runtime) type constraints. Constructors are just function calls, thus the syntax to create vCards is as simple as it gets (there's also an optional abstraction on top that simplifies it even further).

  • chj-schemelib

    A collection of libraries that we use in our Scheme projects.