• I started a new job, working on train computers, but I didn’t get to do anything yet, because the intranet didn’t log me in properly (management seems to have been at least slightly clueless about the onboarding process). This week I was finally able to log in, but then I got sick on Tuesday. So I still haven’t done anything…


    score 1 · canonical

  • Got three Supermicro E302-12D-8C fanless servers to play with. Planning to set up a small Ganeti cluster on NixOS, experimenting with DRBD and live VM migration. The goal is to be able to take any physical node down for upgrades or maintenance without having to shut down the VMs.


    score 0 · canonical

  • At work I’m profiling (and hopefully fixing :-) performance problems in our Jt translator.

    Outside of work I’m trying to squeeze in as many after work bike rides as possible before the shrinking days make them all night rides.

    Also working on some demo projects to help flush out my OpenGL utility library. I recently threw away the whole thing and started again with new ideas about what it should look like. I realized I’m basically creating my own version of GLUT, but it has things like 3D mouse support, quaternion based 3D view calculations, etc. that make it easier to get small visualization projects up and running.


    score 1 · canonical

  • Many things planned, let’s see how many I can actually act upon!

    • Work.
    • Getting into Uiua (the short-term goal most likely being a Game of Life implementation).
    • Continuing to learn the Unix networking stack by writing an HTTP server in C.
    • Implementing $1 Unistroke Recognizer in a TIC-80 cartridge and possibly making a tiny game built around the algorithm.
    • Newfound friends exposed me to toki pona and while I usually didn’t care much for constructed languages, this one grasped my heart for some reason, so I want to try learning it.

    score 1 · canonical

  • More job applications! Also hoping to draft an application for an artists residency. Warehouse job applications in the meantime, though even BJ’s turned us down for a couple positions.

    Outside of that: Reading a play for book club, attending another hiring hall (claws crossed), and scrounge up what side gigs or other income we can in the meantime. Offers of or referrals to contract work would be a huge help.


    score 1 · canonical

  • Making a logo for our teahouse so we can work on other branding-related things while we talk with some interior designers. I moved somewhere nice, small when remote work was feasible & programmers had leverage & demand, but now I’d rather do this with less opportunity at big money than have to move back to the US. This was supposed to be my early retirement thing to do, but I guess I need to gear up to make it more aggressive as a way to make some income.

    Been playing with Factor again recently with the 0.102 release & it’s really fun to program again while learning/debugging. It keeps me excited even when the prospect of programming seems pretty dead financially (since that inevitably needs to be the primary marker we have to care about in this economy).


    score 1 · canonical

  • Work: project planning! We are finally doing a big version 3 of a business critical service that we have been itching to do for years now.

    Personal: Working on sound fx and music for a game I signed on to. Also hopefully finish the slides to my talk about magement/leadership on technical teams for the local developer meetup in my city.


    score 1 · canonical

  • I’m trying to design a custom shelf to fit underneath the weirdly angled roof in the attic. For this I’m learning some FreeCAD.

    I’ve already had 2 attempts at getting started with FreeCAD in my life that ended in frustration but I think this time I’m slowly getting the hang of it. The software itself has also improved I think, it used to outright crash on me but today it’s stable. The learning curve is still quite steep though.


    score 1 · canonical

  • I’ve been on and off hacking around the firmware of a Casio XJ-F100W projector to try and get the latency down from 2 frames -> 1 frame, and also try to get some gaming specific features added in. The end goal is to make it a good MiSTer display to accept arbitrary refresh rates without duplicating / dropping frames.

    The Casio XJ series are surprisingly good laser / LED hybrid DLP projectors you can get cheap second hand.


    score 1 · canonical

  • Rewriting the VM for Ekto—my little, typed, embeddable language that’s a mixture of Koka, Lua, and Erlang.

    One key thesis of Ekto is that algebraic effects are a good type formalism for talking about host-client interop in embedded scripting languages. I’m taking huge inspiration from Koka here and had been steadfastly committed to supporting multishot resumptions.

    These are cool, they let you directly encode things like backtracking parsers or probabilistic programming as an effect. They’re also very uncool because they make resource management a total headache. A resumption captures “the rest of the program” up until where the effect is handled and, more or less, that entire thing needs to be, in Rust terms, Clone at least.

    There are ways around this, but they’re all pretty unsatisfying. After chatting with some folks at Systems Distributed a few months ago I’d finally convinced myself to try just dropping multishot and using an effect system closer to OCaml 5: it’s a runtime error to use a continuation twice.

    That’s really unsatisfying in it’s own way. I feel like I’m still mourning this a bit. At the same time, single shot resumptions using a segmented stack are pretty nice and benefit a ton from an interpreted bytecode VM. I’m coming around to it being the right tradeoff. But, again, mourning a bit.


    score 1 · canonical

  • I follow, with no small amusement, a curious play as it unfolds in Aragoste, a fictitious modest town of medieval Italy, where the Mayor, the Clerk, and the Captain of the Guard (whose mighty army numbers scarce fifty souls, each more soldier in name than deed) labour most earnestly to keep the peace between two quarrelsome houses, eager to draw swords over a matter so trifling that even the court fool might blush to speak of it.

    And thus the tragedy unfolds, though with less romance and more folly! Lets see how it goes…


    score 1 · canonical