Tech Blog

A History of Releasing Julia Packages

Tagging, releasing, registering... the same, but not

There’s an unfortunate confusion in the Julia community when it comes to making your code available to others in a registry such as General, and it’s mostly due to ambiguity in the relevant terminology. We talk about tagging new versions, making new releases, and registering packages all the time, and no one is ever sure what exactly we mean. Are we pushing a Git tag? Making a GitHub release? Adding a version to the registry?

Escaping $BIG_CORP's Grasp: Part 2

On second thought...

A few weeks ago, I embarked on a quest to stop depending so heavily on so few accounts for my online services. In short, I tried to remove Google from my life. I was mostly successful! But, somewhat unsurprisingly, some things ended up being more trouble than they were worth. More specifically, Nextcloud was a pain in the butt. It had a pretty giant footprint on my little server, it constantly encountered errors when checking for changes, and it just wasn’t that useful to me—I mentioned in the previous post that I don’t really use office software very much, and that hasn’t changed.

Building a VCR Clone in 28 Lines of Julia

The Ruby gem VCR is a tool that allows you to “[r]ecord your test suite’s HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests”. It’s really useful for testing things like web API wrappers. It also contains 3,000 lines of code. Let’s use Cassette to build it in Julia with less than 1% of the code! The first example in VCR’s README looks like this:

Escaping $BIG_CORP's Grasp

About a month ago, my YouTube account was suspended without warning or justification. They told me I violated the TOS, but all I do on YouTube is watch videos. I sent in an appeal, and it was quickly turned down, again without reason. I know I’m not the first one to have something like this happen to them, and it’s well known that the only way to get through to the machine is by raising a stink on Twitter, but… I don’t have a Twitter account.

Avoiding Race Conditions In Concurrent AWS Lambda Functions

I haven’t blogged in a long time! Here’s a quick ramble about something somewhat interesting that I whipped up earlier today. I write lots of buggy software. One such example of buggy software is TagBot, which is a GitHub Action that runs hourly on roughly 2000 GitHub repositories. A couple of weeks ago, I wrote a new bug that caused TagBot to crash and send hundreds of notifications and emails. I realized that this was bad, so I implemented an error handling mechanism that reported errors as GitHub issues to the TagBot repository.