Life Moves Fast
August 2nd, 2022
It’s been a while since I’ve talked tech and much longer since I’ve talked about anything personal. There's a lot of updates to share, so buckle up.
August 2nd, 2022
It’s been a while since I’ve talked tech and much longer since I’ve talked about anything personal. There's a lot of updates to share, so buckle up.
April 14th, 2022
It is often mentioned in Hacker News comments and the Twitters that it’s a tragedy that the web ecosystem is now dependent one only three renderers: Chromium, WebKit, and Gecko. Every time a new browser is announced I see comments like:
Tagged: rant
February 23rd, 2022
After a few weeks of work I’ve been able to get Tetris to boot and play. I can also run Dr Mario to enter the play screen but all of the pieces are hidden for some reason.
January 24th, 2022
A week or so ago I ran across a video called The Ultimate Gameboy Talk, and indeed it was. Inspired by the simplicity and elegance of the original Gameboy, I decided to try my hand at building an emulator. A week later I have this:
November 20th, 2021
I have long loved my series of TV streaming Roku devices. The UI isn’t as fancy as the Apple TV, but it’s very stable, very responsive, and far easier to use than Apple’s insane remote. Historically the Roku SDK was really only targeted at streaming TV apps (which makes sense), but there wasn’t a way to write games or other high performance apps using anything but Roku’s own BrightScript SDK. However, about a month ago Roku announced the Independent Developer Kit that lets anyone build and side load apps onto their own Roku’s using C++ and OpenGL. I was thrilled but bummed that you have to run the SDK on Linux. However, it’s just some command line scripts, so maybe we could run it in a Docker container. After a little experimenation I figured out how. Let's dig in.
Tagged: roku
July 16th, 2021
In many of my projects I need to parse something, usually a text based language. Sometimes it's inline docs. Sometimes it's a custom DSL for generating code. And sometimes it's markdown files. My goto tool for this type of work is OhmJS, an open source parser language for JavaScript based on PEGs.
Tagged: ohm
July 6th, 2021
After a few weeks long sprint I’ve got another build ready for Ideal OS. Visually it’s starting to come together nicely. Check it out.
Tagged: idealos
June 18th, 2021
It's been a whole lot of work to get to Mark 4 of Ideal OS. My real goal for this sprint was to have something that at least visually looks like a real operating system. What do you think?
Tagged: idealos
May 27th, 2021
As I mentioned before I’ve gone back to working on the bottom half of Ideal OS. So far I’ve got a messaging protocol, a central server, a few tiny apps, and three different display server implementations. The version I’m calling Mark 3 looks like this:
Tagged: idealos
April 15th, 2021
I've paused my work on Filament for a while to go back and do some more research into low level graphics for IdealOS. As part of that I wanted to emulate a Raspberry Pi on my Mac. The short version is: yes it can be done but it's useless for graphics.
Tagged: idealos
March 11th, 2021
I'm happy to announce Filament 0.4. If the previous release was about new language features, this one is about apis and docs. A language isn't useful if you don't have APIs to do stuff with.
Tagged: filament programming
February 21st, 2021
I’ve been working a lot on new graphics apis, and new examples to exercise those apis. Things like turtle graphics, which are great for learning recursive functions, and image pixel processing, which are super fun and closer to Raytracing and GPU shaders than you might realize. However, along the way, I’ve discovered some missing features that have forced me to make some tough decisions. Today let’s talk about conditionals, jumps, and lambdas.
Tagged: filament hl programming
February 15th, 2021
I'm happy to show you the next release of Filament, my humanist programming language designed for kids and scientists.
Tagged: filament programming hl
February 5th, 2021
Filament is the humanist programming langauge I've been working on. Filament's focus is entirely on computational thinking and improving the way we use PLs, not on the implementation or performance. It is for thinking about problems, not producing software artifacts. It should be easy enough for children to use, but powerful enough for domain experts. Think of it as Mathematica for kids, scientists, and artists.
Tagged: hl filament programming
January 26th, 2021
This is part of my series on the humanist programming language I’m building called (currently) HL. Read the rest here.
Tagged: programming hl
January 17th, 2021
This is part of my series on the humanist programming language I’m building called (currently) HL. Read the rest here.
Tagged: programming hl
January 14th, 2021
For years I’ve had this idea of a programming language (really a programming system) designed not for building software, but for exploring ideas. If built, it would be a system where you can easily access data both locally and remotely, process the data in many different ways, and use built in tools to visualize the answers. The current way we code just isn’t very amenable to exploring and thinking (outside of an Emacs Lisp buffer).
Tagged: programming hl
December 14th, 2020
I’m happy to finally release a Javascript library I wrote at least four years ago. (I say ‘at least’ because the last commit was 4 years ago, but I don’t remember when or where I wrote the original code it came from). Presenting the parser from TallyCat!
Tagged: javascript
August 13th, 2020
If you havn't seen the news, 25% of Mozilla was laid off this week, including me, so I'm looking for a new job managing an engineering or developer relations team.
June 8th, 2020
Every now and then I trumble around with building visual editors. Sometimes they are for vector graphics, sometimes raster. Sometimes for building GUIs, sometimes for editing JSON structures. These editors are almost always for fun and they never see the light of day. Why build a new editor when the world already has so many. Or at least that's what I tell myself.