From a first glance at the Webassembly (abbreviated as WASM) site, it’s hard to tell what it’s for. A little bit of digging, though, gives me the idea that it’s a way to write an application that gets delivered to users from a web server and which runs in the browser. This is sort of like Java applets or Angular or Flutter apps. The world, apparently, needs yet another one of these things because…well, obviously, because they all suck in various ways as anyone can tell you. So why does WASM not suck? Apparently, the way that WASM is cool is that you write the code in the programming language that you actually like to use, and then there’s a compiler that will read that and output WASM. So you don’t have to burn out your brain remembering the syntax and idiosyncrasies of lots of stupid programming languages and frameworks, just a couple.
Music Software: Ensemble
Ensemble is billed by its creators as music score software specifically intended to make piping and drum scores for pipe bands. It claims to be able to play the scores so you can hear what the arrangement sounds like. It even claims to be able to import scores from other music software packages. It and all the score data reside in the cloud1 so you can share the scores with your whole band, or with your students, et cetera.
Continue reading “Music Software: Ensemble”Tapestry and the Limitations of RSS
Okay, first thing: big ups to @IconFactory@iconfactory.world for releasing the first beta of Tapestry. This promises to improve my quality of life and I’m thrilled to be a supporter. As requested, I shall not be posting screenshots.
Cloud Development Environment (CDE)
This morning I had to restart Docker Desktop and the marketplace tab had a notification. There was a new extension available, “OpenVS Code for the Web.” So then I had to go find out what that even means and why I ought to want to install it. The answer is that I don’t.
It seems that all the exciting tool development these days is happening around what one company is calling “Cloud Development Environments.” The general idea is that the source repository sits on a server somewhere, and then there’s another server, the CDE server, that knows about the source repository and maybe all the other services you need in order to work on that source repository (a database, maybe an artifact repository, maybe a build server, probably some testing pipelines, whatever). Then, instead of pulling the source locally and firing up their own instance of whatever IDE they like to use, a developer will instead fire up a web browser and connect to that CDE server and they’ll be instantly configured and working on the project inside the browser window.
This is the thin client model that we’ve seen before. Things that lead to thin client are, generally:
- really, really cheap network I/O
- really expensive local storage
- highly paranoid and proprietary engineering management who don’t want individual contributors to take any code out of the organization’s grasp
This is hardly an exhaustive list, but from here it gets less general. For instance, at Netflix, I had a Windows desktop and a MacOS laptop and, when I worked remotely, rather than run my dev instance locally and tunnel its connection to the dev database through the VPN and keep mentally current with all the stupid configurations necessary for both operating systems, I just used remote desktop software to use my laptop as a thin client for my desktop computer. It reduced my mental load and kept me productive.
Still, I am no longer in a situation where thin client makes a lot of sense. Well, sort of. I mean, I develop services that run in Docker containers on my laptop, so the shape of my environment looks kind of like the server side of a CDE. It’s not true, though, that I need to bring new employees onboard, and it’s not as though adding yet another piece of software to my system will reduce my mental load. Meanwhile, out here in the woods network I/O is the opposite of cheap. So, no, I don’t need to get smart or excited about whatever CDE gets thrown up in front of me.
Another Really Cool Thing I’m Not Gonna Do
I just read an article on Ars Technica, reviewing a new telescope. Super cool. Well written and, while I was reading it, nearly convinced me to buy a telescope. We live out in the woods. Often, when I take the dogs out at night, I look up and see stars and planets, and frequently even satellites zooming past. For five minutes in a row, I thought I might enjoy having a digital telescope to take pictures of Mars, or Jupiter. That would be cool.
The activity is cool and the process sounds kind of neat but, and this is the part that’s easy to forget as one reads the story, what thing are you doing right now that you are willing to stop doing in order to start doing this new thing? Sleep is not optional.
What Did You Think It Did?
This morning I read an article with the headline, “Novel attack against virtually all VPN apps neuters their entire purpose.” This seemed really alarming and, to be sure, the details are pretty bad. But as I read through the article I was thinking about what I expect from a VPN, and how the attack would affect those expectations, and, maybe I’ve been thinking about VPNs wrong all this time?
Continue reading “What Did You Think It Did?”nix, lix, and Reproducibility
I’ve just spent the morning reading through some documentation and tutorials for nix, trying to figure out what it is, whether it’s cool, and whether I should be using it. Also, trying to figure out what this lix thing is. And of course, this is a dependency chain — I started out at the last element and, before I could answer that, I had to investigate the one before it, and so on. Why did I list it out this way? Because investigation is a stack, and I am reading out my stack by popping elements off it.
Safety: Only YOU Can Prevent Harm to Yourself
The other day, someone in my extended network posted something about how Toronto just isn’t safe for their kids. This has got me thinking about safety and responsibility. I thought about how when I was a kid, I was instructed on how to behave in public spaces. “Look wrong way, right way, then wrong way before crossing the street, because if someone’s driving on the wrong side of the road they’re going extra fast.” “Sure, go play outside, but stay out of the road.” “When you ride your bike, keep as far over as you can; the cars can’t see you.” My safety and security was definitely something I was supposed to be actively engaged in, and if I got hurt, it was probably in no small part down to my own decision making.
This gets me thinking about those “Baby on Board” stickers you see in so many car windows. Like, who needs to see that? Emergency responders are trained to look for a car seat. Believe it, if there’s a baby in the wrecked car that they’re opening with the Jaws of Life, they’re gonna notice it. That sticker isn’t for them, it’s for the rest of us. It’s saying, “The safety of the occupants of this vehicle is the responsibility of everyone around the vehicle.” Implicit, there, is the idea that the person with the most direct control over the safety of the vehicle’s occupants — the driver — is less responsible.

I had some kind of point in mind the I started writing this, but honestly, I let time pass and I’ve edited out a lot of the snark and digressions, and it’s really just come down to the simple observation that I stated in the post’s title. Your safety is your own responsibility, first and foremost. Other people may be able to act in ways that affect your safety independent of your own decisions and actions, but you are always the person in most immediate control of your security. Act like it.
Experimenting With Federation
Generally, I reserve this blog for, you know, blog stuff. Long form, where I ramble about things and post code snippets and multiple links to things I’m thinking about. For quite a while, now, I’ve had the ActivityPub plugin enabled on this site, as I tried to figure out how to engage with the Fediverse after I deleted my other social media accounts. Today, I saw an explainer video that contained an interesting comment about how a WordPress blog could, in effect, be a single-user Fediverse instance. So I started poking around.
Read more: Experimenting With FederationThe ActivityPub plugin takes care of publishing blog posts in the ActivityPub format. This means that people on other Fediverse instances can follow my blog by following @pirateguillermo and that works just fine. However, that’s only half the equation, right, because that’s essentially shouting into the void and not ever listening. When I first started doing Fediverse/Mastodon stuff, that was all I had so I wound up setting up an account on a “local” Mastodon instance, sfba.social. That isn’t bad, really, but it means that I wind up having two places where I type stuff and where people can engage with me.
Today I learned about the Friends plugin for WordPress, and it takes care of the listening half of the federation process. It adds a tab to the WordPress bar on my blog where I can see a feed of posts from accounts I follow. So, that’s cool. I already mostly use MarsEdit to compose posts, as I really hate having to use a web browser to do that. If I could get the reading and actions to work within an app as well, then I’d be a happy camper. As it is, this blog is not a Mastodon instance, and the swell native apps that are Mastodon clients will not pretend that it is. That means that, if I were to migrate all my Fediverse presence to this blog, I would be able to post from a variety of tools that I like, but I’d be stuck reading via a web browser, which is not the way I want to do it.
It might be acceptable for some folks, just not for me.
Just Say No to AR
I’m seeing a lot of people being excited, today, about putting in their orders for the first visionOS devices. Although it would be easy to dismiss this as simple Apple fan dribbling, their excitement is sort of hyperbolic. “This is a once in a lifetime opportunity,” says one person, talking about how now is the time to develop programs for this platform before all the existing tech giants come along and repeat their horrible “attention slot-machine” applications for this “new way of computing.”