• HiPhish
  • Grid Framework
    • Overview
    • Features
    • Examples
    • Gallery
    • Showcase
    • FAQ
    • News
    • Support

    • Buy Now 35$
  • Open Source
    • NTFS-Clone
    • IPS-Tools
    • roll
    • Newton's Method in C
    • Xeen Tools
    • Wolf3D Extract
    • Game Source Documentation
  • Vim/Nvim plugins
    • Info.vim
    • REPL.nvim
    • Quicklisp.nvim
    • jinja.vim
    • Guix channel
  • Blog
  • About
  1. blog
  • Writing a ring buffer TDD style

    Published: 2024-02-15

    Let’s write a ring buffer in Python! OK, that’s not particularly exciting. Let’s use test-drivent development, that should make things a bit more interesting. In this blog post I will go over the individual steps and my train of thought, because TDD requires a certain discipline and mindset. Why a ring buffer? A ring buffer is not quite trivial to implement because it has a couple of edge cases, but at the same time it is not hard to implement either. This is a post to follow along at home, so grab your text editor and let’s get going.

    Continue reading…

  • Introducing Yo-Dawg.nvim

    Published: 2024-02-01

    Yo dawg, I heard you like Neovim, so I put a Neovim inside your Neovim, so you can edit while you edit! Ahem… anyway, in my previous post I proposed a plugin which would make it easier to control an embedded Neovim from within Neovim. So I went ahead and wrote yo-dawg.nvim (GitHub mirror), named after the “Yo dawg” internet meme.

    Continue reading…

  • Testing Neovim plugins with Busted

    Published: 2024-01-29

    The most annoying part about writing plugins for Neovim has been the lack of a good test framework. There are a couple of frameworks, and Vader has been my favourite so far, but they all have their downsides. This made me wonder: why limit myself to Vim/Neovim test frameworks? We have a full Lua runtime, and other people already have solved the testing problem for Lua. Busted does 90% of what we need, so let’s fill in the remaining 10%. The following is based on my experience with adding tests to rainbow-delimiters.nvim.

    Continue reading…

  • Rainbow-delimiters.nvim version 0.3.0 released

    Published: 2023-12-24

    I have just published version 0.3.0 of rainbow-delimiters.nvim (GitHub mirror). This update brings in a number of the usual improvements to to queries and strategies, but more importantly it also makes configuration at runtime more flexible, but most importantly in light of the current date it also includes a fun little Christmas-themed strategy.

    Continue reading…

  • Big change to rainbow-delimiters.nvim

    Published: 2023-11-12

    No, not another rewrite. Much better than that: the long-standing ugliness of highlighting being limited to only one node at a time has been fixed. Previously only one opening node and one closing node could be highlighted. This was perfectly adequate for most languages where you have one opening parenthesis and one closing parenthesis. However, consider HTML: we want to highlight the opening and closing tag, but if we highlight the entire top-level node we also highlight the attributes of the tag, which looks too vibrant. The alternative was highlighting the tag name, but this left the angle brackets without highlighting, which looked jarring as well.

    Continue reading…

  • Grayjay is not Open Source

    Published: 2023-10-18

    Today FUTO released an application called Grayjay for Android-based mobile phones. Louis Rossmann introduced the application in a video (YouTube link). Grayjay as an application is very promising, but there is one point I take issue with: Grayjay is not an Open Source application. In the video Louis explains FUTO’s reason behind the custom license, and while I do agree with their reason, I strong disagree with their method. In this post I will explain what Open Source means, how Grayjay does not meet the criteria, why this is an issue, and how it can be solved.

    Continue reading…

  • Free Software is necessary but not sufficient

    Published: 2023-09-29

    Recently Unity announced changes to their pricing model (archive) which have been very poorly received by their users, to put it gently. They have since backtracked (archive2) somewhat, but at this point it would not matter even if they completely scrapped their plans and went back to how things used to be. The trust has been broken and many game developers are waking up to the fact that Unity is effectively holding their project hostage. Switching from one engine to another is akin to a full rewrite, and depending on the size and progress of the project porting might not be a feasible thing to do.

    Continue reading…

  • Introducing rainbow-delimiters.nvim

    Published: 2023-07-13

    Wait what, again? Yes, another rainbow delimiter plugin, a fork of a fork. The previous one nvim-ts-rainbow2 was built as a module for nvim-treesitter because that is what the original plugin did and what everyone else was doing. However, nvim-treesitter is deprecating the module system. This means nvim-ts-rainbow2 will eventually stop working, so we will need a new rainbow plugin sooner or later anyway.

    Continue reading…

  • Free Software is important for non-programmers as well

    Published: 2023-06-10

    Free Software is software which respects the user’s freedom. The Four Freedoms ensure that users can run the program for any purpose, study the source code, modify the source, share the software and share modifications of the software. However, what if you are not a programmer? Does this mean Free Software only adds value to people who know how to program, and if you are a non-programmer you might as well use proprietary software? Is it all just the same then? No. In this post I will try to illustrate why Free Software matters even to non-programmers.

    Continue reading…

  • The game modding scene has a source code problem

    Published: 2023-05-21

    Sometimes I like to play video games. Sometimes these games have issues, or they can be improved upon. Sometimes these issues are so severe that the game is virtually (or even literally) unplayable. Fortunately some really smart people have done a fantastic job reverse-engineering parts of these games, their file formats, or found workarounds for engine limitations. Unfortunately too often that knowledge never gets written down and just keeps rotting in someone’s head.

    Continue reading…

  • « First
  • ‹ Previous
  • 2 of 9
  • Next ›
  • Last »
Subscribe: RSS

Archive

  • 2026 (3)
  • 2025 (2)
  • 2024 (8)
  • 2023 (11)
  • 2022 (13)
  • 2021 (5)
  • 2020 (15)
  • 2019 (17)
  • 2018 (1)
  • 2017 (4)
  • 2016 (6)
  • 2015 (2)

Categories

  • organisation (15)
  • vim (24)
  • open-source (25)
  • misc (12)

Tags

  • html (11)
  • vim (21)
  • cocoa (1)
  • info (1)
  • rant (15)
  • lisp (21)
  • msgpack (3)
  • awk (1)
  • math (1)
  • unix (8)
  • guix (2)
  • linux (5)
  • lua (9)
  • elixir (1)
  • neovim (4)
  • web (6)
  • network (2)
  • markdown (2)
  • wine (1)
  • games (4)
  • git (2)
  • terminal (1)
  • unity3d (1)
  • python (2)
  • testing (3)
  • functional programming (1)
  • javascript (1)
  • css (1)

© 2015-2026, licensed under CC BA-SA 4.0

GitHubGitLab