My software
These days, I'm mostly just writing small programs for fun, or throw-away code relevant to some theoretical subjects I happen to get interested in in the field of functional programming, and then push them to my GitHub repos or write about them in my blog. Ones you might find interesting include:
- Space Invaders arcade machine implemented on an FPGA, running the original firmware on its Intel 8080-compatible CPU. The CPU and the whole machine are all written in CLaSH.
- A MOS 6502-compatible CPU implemented in Kansas Lava. I've turned this into a full Commodore PET and I plan to eventually build a complete Commodore 64 from it.
- Scope- and typechecker for the simply typed λ-calculus, in Agda and in Haskell. The latter utilizes many of the same techniques as the former.
- Alef: A lazy functional programming language (interpreter and compiler). I later reworked that into a simpler version for this blogpost.
- MetaFun: Compile a Haskell-like functional language into C++ template metaprograms
- Tandoori: Compositional type checker for Haskell 98 (my M.Sc. thesis)
- Brainfuck compiler & transpiler for the Commodore 64
Old stuff
I used to hack on the following free software projects in my free time. Way back, most of them were either part of the GNOME project, or were based on the GNOME platform.
Everything below is horribly out of date and unmaintained, including the project descriptions themselves.
- Guikachu: Graphical resource editor for the GNU PalmOS SDK
- Code related to various parts of the CS curriculum of ELTE
- When I find the time to do so, I like to contribute to GNOME. Modules I've contributed to include Gnumeric, Evolution, gal, gnome-libs, gnome-terminal, and Bonobo.
- Smaller GNOME things
- Collection of Elisp snippets.
- Goblin: A Python implementation of the board game Gobblet, for Windows and Unix/Linux systems.
- XSLT templates for creating your CV: This page describes in detail a simple way to generate HTML and printable versions of your resume from a single source.
- A CipherSaber implementation in QBasic
- ORBit/C++: I worked on making this usable with GNOME 2 and GTKmm for more than a year, before finally giving up. Bowie Owens took over, but the whole thing never really took off.
- RadioActive: A GNOME/GTK+ front-end for radio tuners
- I've sent quite a few patches to Gnomoku, a small game. Since then, I've become the maintainer of it.
- Bonobo Clipboard: This is a moniker-based clipboard supporting both embedding and linking. Accessing it is done via the Bonobo::Clipboard and Bonobo::ClipboardStore interfaces, and the "clipboard:" moniker.
- Bonobomm: This project intended to integrate Bonobo with the GNOMEmm C++ wrapper for GNOME. It's become part of GNOMEmm.
- Bonobo-Media: A set of Bonobo interfaces for multimedia playback
- I've ported GConfmm to GNOME 2 and cleaned it up some in the process.
- Panelmm: a C++ wrapper for developing GNOME 1.x panel applets (see the GTKmm page for details, and information on the GNOME 2 version)
- MAGE Adventure Game Engine