• A new static site generator

    Over two years already without rewriting the workshop? I have to rectify this, with the greatest rewrite yet! I have abandoned Pelican because I constantly had to adjust things manually after the build process, and even then there were parts of the website that weren't working. This put me off from blogging, since after each post I would have to stitch everything back together by hand. Seeing that no static site generator would be able to meet my needs I decided to instead write my own in Scheme.

    Continue reading…

  • Goodbye macOS, hello GNU/Linux

    I knew this day would come eventually, so here we are: I moved from macOS to GNU/Linux as my operating system. It has been a couple of months since then and I have settled in pretty comfortably; some things are better some things are worse, and some things are just plain different.

    Continue reading…

  • A purely functional fixed timestep loop

    There is a great article by Glenn Fiedler titled “Fix Your Timestep!” in which the author explains various approaches to writing a game loop and concludes with a loop that provides a fixed time step for simulation. If you are not familiar with this topic go read the article first and come back later. The author has written the implementation in C or C++ using a lot of mutation and looping, so I wanted to give a purely functional approach a shot.

    Continue reading…

  • Creating a mock REPL on Unix

    During the development of REPL.nvim I had to be able to test the plugin without relying on any particular REPL present on the development system. The solution was to create a mock REPL, a shell script which acts like a really dumb REPL. Here is the code:

    Continue reading…

  • Introducing REPL.nvim

    Integrating a REPL in Vim has been a difficult issue in the past, but with Nvim's built-in terminal emulator it is just a few commands away. My new REPL.nvim plugin now puts the REPL only one command away, for any programming language you wish. The end goal is to have a complete generic and configurable REPL framework which can be customised to the needs of any language and which forms a solid foundation for other plugins as well.

    Continue reading…

  • Outlining of HTML pages is fundamentally broken

    If you were to run the Workshop through an HTML validator you would notice a lot of warnings about the document outline. What is going on here? HTML 5 defines an outline algorithm which allows browsers and assistive technologies to create an outline of the page. In theory a blind person could ask their reader for the outline of the page and get a sort of table of contents which they could use to quickly jump to a specific part of the page.

    Continue reading…

  • Introducing info.vim

    There is a new project up at the Workshop: info.vim, a Vim plugin which implements a complete reader and browser for info documents from within Vim. This is similar to the standalone info program or the Emacs info mode.

    Continue reading…

  • Rewriting the Workshop

    At this point I could start to make rewriting my website an annual tradition. There have been a number of little details that have been rubbing me the wrong way for almost a year now; the biggest one was the navigation bar on sub-sites like the Grid Framework product site. There were also accessibility issues relating to the lack of a proper HTML document outline and the use of JavaScript.

    Continue reading…

  • Introducing IPS-Tools

    I found myself needing a program to apply binary patches in the IPS file format and I was really disappointed that there are no proper Unix programs for that purpose available. So I set out to make my own, but instead of just applying patches it would be a complete suite of tools to handle all IPS-related tasks.

    Continue reading…

  • Highlighting `NSImageView` the right way

    Recently I have been working on a small Cocoa app and one of the things I needed to do was highlight an NSImageView when the user is hovering above it while dragging a file. You would think that it's a very simple task, and you would be right, but judging by some of the things on the internet it looks like an unsolved problem.

    Continue reading…