antonijn's Personal Homepage

I'm Antonie Blom (known online as antonijn: ['ɑntənɛin], or "antonine" if you can't pronounce that), a software developer from the Netherlands, currently a student in Physics and Mathematics at the Radboud Universiteit Nijmegen. I intend to use this page as a sort of curriculum vitae, although information may occassionaly be out of date; I have a habit of neglecting these sorts of things.

Other pages on this website:

My development interests lie mainly at systems software and compilers -- the lower end of the spectrum, or occassionaly game development. I write my code exclusively on UNIX systems (Linux, although I may try some BSDs in the future), but aim to write portable code. I nearly exclusively use C, Python, bash and/or assembler for my projects. Before switching to this toolset I mostly used C# (with Mono). I've also noticed a tendency of occasionally thinking it's a good idea to write in C++, only ever when I've not touched C++ in a long time though...

Most of my software has been open-source so far (usually under one of the GPLv2, LGPLv2.1, ISC or MIT licenses), and I do intend to keep that trend going. I'm not a large contributor to any other open-source projects but I hope that changes in the near future.

Links and contact

Contact me at: ablom (at) science (dot) ru (dot) nl.


Notable projects

Pencil.Gaming

Initial commit: .

Pencil.Gaming is a gaming library for C# with bindings to OpenGL, OpenAL, GLFW and Lua. I started it after being annoyed at the unstability of the most-used cross-platform C# gaming library at the time, OpenTK; it was unstable on Linux and the lead maintainer had stopped developing (I believe they have restarted development since).

After I stopped writing games myself I handed over maintainership to Andy Korth, who has been maintaining it since.


Less-notable projects

Below is an incomplete list of not-so-noteworthy projects I've been involved with.

acc

Initial commit: .

The antonijn C Compiler is a moderately large project under active development. The project was written with the goal of writing my own optimizer through an LLVM-like middle-end. The C front-end is not complete yet but supports basic features. The middle-end contains a few optimizations that can significantly improve the generated code.

In the end I hope to be able to target multiple architectures/ABIs, although there is currently only one "working" (only for the most trivial programs, and by trivial I do mean trivial) backend: the one for x86.

acc is written to be portable, although I have not tested any builds on any operating system but Linux with glibc.

Boh

Initial commit: .

Boh was a project written quite a while ago written for the sake of creating a new C#-like language that suited my needs better (the name Boh is a play on the name of the programming language Java, which was a reference to a brand of coffee: Boh is a brand of tea). The compiler implementation remains incomplete, and there are two versions: a newer version that targets LLVM, and an older (ugly) one that source-to-source compiles to C.

The project was never finished and is still very immature. Both the old and the new version of bohc are written in C#.

cheax

Initial commit: .

cheax is a Haskell-inspired Lisp implementation that is meant to be embedded as a scripting and configuration language, but initially designed as a language for a cheat prompt; it allows synchronisation between variables in C and variable names in cheax.

The DOS Game "Suite" aka Snake for DOS

Initial commit: .

This project was written to become more familiar with writing larger projects in assembly -- it is written only in 8086 (nasm) assembler. The game suite currently implements a working version of snake!

fack

Initial commit: .

The Finn-Antonie Compiler Kit is a very simple C compiler targetting the 8086. It was written by Finn O'leary and me. I do not know the extent to which it is functional.


Game development

I have previously worked on some small games, but I've stopped since I'm quite inept at game design, and I find other projects more fun to work on. Games have mostly included those written for Ludum Dare and 7DFPS.


Ideas

Text editing

I'm a NeoVIM user, and I've used VIM for quite a while now, but I used graphical editors (mainly Kate, MonoDevelop, Visual Studio, Eclipse) before. VIM is clearly fast, but it can feel sluggish, especially when you fail to get a command just right. Navigation is a pain in any editor, since usually you want to navigate using existing structures in the code. Also, text editors (with the exception of sam and acme) tend not to blend into a UNIX system, almost aspiring to be a separate system themselves (emacs, IDEs...).

To address a few of these problems I've made a concept for a new text editor: structural navigation and extensive use of selection piping. However, modal key-based commands steepen the learning curve, and sometimes require more brain power than you'd like to use when simply editing text. Therefore, I've been thinking about writing the editor as two Atom plug-ins: one for mouse gesture based navigation, and one for easy selection piping. Hopefully that will make text editing a whole lot more pleasant.