• 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…

  • Introducing NTFS-Clone

    This is a very useful project I had written quite a while ago at work and recently found collecting dust on my hard drive. It lets you create perfect 1:1 copies of NTFS hard drives on Unix. The problem with every software I had come across was that it would copy the data, but that wasn't enough, so we had to run Windows repair on every single drive.

    Continue reading…