Conditionals in Ginger, Errata

After publishing the last post in the series I walked away from my computer feeling that I was very clever and had made a good post. This was incorrect. To summarize the previous post, it’s not obvious which is the best way to structure conditionals in a graphical programming lan…
Read more...

Conditionals in Ginger

In the last ginger post I covered a broad overview of how I envisioned ginger would work as a language, but there were two areas where I felt there was some uncertainty: conditionals and loops. In this post I will be focusing on conditionals, and going over a couple of options fo…
Read more...

Building gomobile Using Nix

When I last left off with the nebula project I wanted to nix-ify the build process for Cryptic’s mobile_nebula fork. While I’ve made progress on the overall build, one particular bit of it really held me up, so I’m writing about that part here. I’ll finish the full build at a lat…
Read more...

Old Code, New Ideas

About 3 years ago I put a lot of effort into a set of golang packages called mediocre-go-lib. The idea was to create a framework around the ideas I had laid out in this blog post around the structure and composability of programs. What I found in using the framework was that it w…
Read more...

Goodbye, bit rot

Take a look at this picture: That's a photo of Smalltalk 76 running the prototypical desktop UI. It's taken for granted that this photo will be viewable for the indefinite future (or as long as we keep a PNG viewer around). But when we think about code, maybe the very same Small…
Read more...

Building Mobile Nebula

This post is going to be cheating a bit. I want to start working on adding DNS resolver configuration to the mobile nebula app (if you don’t know nebula, check it out, it’s well worth knowing about), but I also need to write a blog post for this week, so I’m combining the two exe…
Read more...

Goodbye, Github Pages

Slowly but surely I’m working on moving my digital life back to being self-hosted, and this blog was an easy low-hanging fruit to tackle. Previously the blog was hosted on Github Pages, which was easy enough but also in many ways restricting. By self-hosting I’m able to have a lo…
Read more...

The Web

With the recent crisis in the US’s democratic process, there’s been much abuzz in the world about social media’s undoubted role in the whole debacle. The extent to which the algorithms of Facebook, Twitter, Youtube, TikTok, etc, have played a role in the radicalization of large s…
Read more...

Ginger

This post is about a programming language that’s been bouncing around in my head for a long time. I’ve tried to actually implement the language three or more times now, but everytime I get stuck or run out of steam. It doesn’t help that everytime I try again the form of the langu…
Read more...

Component-Oriented Programming

A previous post in this blog focused on a framework developed to make designing component-based programs easier. In retrospect, the proposed pattern/framework was over-engineered. This post attempts to present the same ideas in a more distilled form, as a simple programming patte…
Read more...