Ben's blog

rambling through cyberspace

WikiNarau: Interactive Learning Meets Wiki

Hello again, This time I'll be talking about another of my (many) projects where development stalled but I'm not quite ready to call it quits, this one is called WikiNarau, since everything is open-source / free software you can take a look at the source c…

WolkenWelten: From C++ to TypeScript in Game Development

The WolkenWelten Journey Today I'm diving into one of my most ambitious projects, WolkenWelten - a voxel sandbox game that evolved across multiple programming languages over several years. While development has slowed down (I'm now focusing mainly on the W…

VibeOS: Day 1 - Creating an Operating System from Scratch with AI

Alright, so today while talking to a friend about the limits of current AI coding tools I've been wondering whether it is possible to do low-level "vibe coding" — specifically, an operating system from scratch. So this is what I set out to do today, and I …

CLuix: A Common Lisp Approach to Functional Package Management

Hey there, This time I'd like to talk about an idea I've been carrying around for some time, percolating in my subconscious. Hopefully, I'll get to explore an actual implementation soon. The main idea is that instead of the approach used by Guix/Nix where …

Seeqie: A Terminal-Based Image Viewer Using Sixel Graphics

What is Seeqie? Seeqie is a lightweight terminal-based image gallery browser inspired by geeqie but built exclusively with sixel graphics. It allows you to browse and view images directly within your terminal environment, eliminating the need to switch be…

Nujel: A Lightweight Lisp Implementation

Today I'm going to write about another old project of mine where development stopped but where I'm still somewhat excited about the overall idea. It's my attempt at writing my own Lisp-like programming language called Nujel - a lightweight, dependency-free…

ZZTerm: A Terminal Emulator with Extended Graphics Capabilities

In today's post, I'm excited to share my work on ZZTerm, a next-generation terminal emulator that bridges the gap between text-based terminals and graphical applications. This project, like my previous work on RMake, is something I developed earlier but pu…

Modern C Makefiles: Complete Setup with CI/CD

Introduction Today I'd like to talk about Makefiles, since these days they seem to have fallen out of favor and are basically forgotten by anyone without a beard. I'll start by giving a simple C example application where we'll build the Makefile up step by…

CodeWaifu: Building an AI Code Assistant with Voice Control and VTuber Avatar

Greetings, this time I'll write about a project I haven't started yet but rather one I'm about to start with. Instead of writing about things I've learned/experienced, I'll try and use this entry to sort out my thoughts and come up with a plan on how to ap…

MandoMaster: AI-Powered Chinese Learning with Spaced Repetition

Hey there! First off, MandoMaster is live and free to use, so if you're interested you can just take a quick look to see what I'm talking about. Alright, time to write about another project of mine, this one is almost finished just waiting on a couple of …

RMake: A Modern GNU Make Alternative written in Rust

I've often thought that make is a solid tool, but it could really benefit from modern features like package management and file watching capabilities. After considering this for a while, I decided to stop just thinking about it and actually build something…

Building a Digital Menu Startup: Lessons from bitmenu

In this comprehensive retrospective, I'll share everything I've learned while building bitmenu, a startup that enables restaurants to create digital menus accessible via QR codes and links. This project also served as an excellent opportunity to explore th…

6 Tips for Effective AI-Assisted Coding

Introduction: My Journey with AI Coding Tools So, I've started using Cursor about 6 months ago, in the beginning I was quite skeptical but by now I can't imagine going back to coding everything by hand. Generally it seems to me as though people are still t…

WS2HTTP - Day 2: Implementing Message Routing

Progress Update I've been somewhat busy with other things on the weekend but today I've returned to work some more on WS2HTTP, and by now things actually work pretty well. It's also a lot less complicated than anticipated (the entire Node.js server is ~150…

WS2HTTP - Day 1: Switching from Rust to Node.js

Initial Attempt with Rust/Tokio Today I've continued experimenting with this WS2HTTP idea and first started building the backend with Rust/Tokio... Gotta say, I really didn't like it, it just felt so overly complicated. I suppose that's the price one has t…

WS2HTTP - Day 0: Bridging WebSockets and CGI

The Problem with Modern Web Stacks So, because I've been thinking a lot about how to do small projects on the web without all the complexity inherent in modern stacks I came upon an idea that might be able to allow for efficient WebSockets with a (Fast)CGI…

Skill X Change - Day 1: Why I'm Abandoning the Project

Decision to Abandon the Project So, I'm calling quits on this project. Mainly because working with this stack is just no fun and mostly just slows me down. Still good that I tried things out, so that now I know WHY I don't like certain parts of the stack. …

Skill X Change - Day 0: Project Setup and Tech Stack Exploration

Project Introduction So for my first project I thought I'd build a simple Web Page/App where people can specify what they know and what they'd like to know, and the system then matches people up so they hopefully learn something nice from each other, not p…

Future Projects: One-Week App Development Challenge

Digital Nomad Life So, I've finally become one of these digital nomad backpackers, floating through Asia with neither purpose nor goals. While it is pretty nice to get to see so many different places and cultures it does become a bit weird after a bit to n…

Thoughts on Interactive Programming

Exploring Guile for Game Development So, after deciding to take GuixSD for another spin on my x220, I've become interested in trying out Guile again. For starters I wanted to do a simple Pong, since it shouldn't be that hard, and after getting things worki…

Trade-offs between Single- and Multiple-Dispatch

Introduction Lately I've been thinking about the trade-offs between multiple-dispatch and single-dispatch. Single-Dispatch: Simplicity and Efficiency Single-dispatch has its appeal in its simplicity. The process involves traversing the inheritance/prototyp…

Hello, World! My Journey into Tech Blogging Begins

Welcome to My Tech Blog Finally set up a blog, this time using Zola instead of going down the rabbit-hole of writing a custom SSG (which gets even more time intensive if it's written in a custom language). I'll mostly write about various tech related thing…