Storage, Transmission, and Display

A Labeled Property Graph is a collection of nodes and edges, such that each node has a label and a value, where the value is an edge relationship to another node. It’s a form of multigraph. There are a few different ways to think about this. Labeled Property Trees are simply Labeled Property Graphs with an added rule that cycles are not allowed. Labeled Property Trees (LPTs) are one of the most ubiquitous data structures in computing.

First thoughts on Maduro's abduction

Welp. That escalated quickly. First thoughts: Trump has a number of reasons to want to depose Maduro. He believes that this will strengthen his hand in the midterm elections, and it likely will among Latino communities, in particular in Florida, but probably not much anywhere else. It will appease Marco Rubio, who has long pushed for regime change in Venezuela. It also gives him sway with the US oil industry, who – as Trump has already stated – will be “very strongly involved” in the exploitation of Venezuela’s immense hydrocarbon resources going forward.

The Boats!

For a few blissful months in 2024, I lived in Curcaçao, an island roughly 60km north of Venezuela. One of my favorite things to do there was to wander from where I lived in Otrobanda down across the Wilhelmina bridge over to Punda, the central area of the capital, Willemstad, and visit the floating market. Most mornings, weather permitting, a number of small boats would come over from Venezuela, laden with some of the freshest and most amazing fruit and vegetables I’ve ever seen.

Quality Culture

Last year, upon an unintentional nerd snipe from a friend, I spent a weekend writing a pretty performant XML library in Jai. In order to make sure it handled things correctly I used the XML 1.1 test suite as conformance tests, even though realistically it consists to a very large degree of tests of weird encodings and bizarre edge cases. I got most of it done, but for the last year I’ve had this weirdly deep sense of guilt over not having finished adding support for UTF-16.

2024 in Books & Papers

My reading list of 2024 is marked by not having had much time to read, or rather, my reading being mostly in the form of code and papers. But here’s the list. It’s not quite in the right order, because some of these I started last year and finished this year (similarly, books I’ve started but haven’t finished aren’t on this list). I’ve tried to put a tiny review with each one, but it’s not quite intentful enough to be actual reviews.

Four Years of Jai

I’ve been programming for long enough to be righteously cantankerous about a lot of things. The list of languages, frameworks and libraries I’ve worked with professionally or on personal projects is too long to list – but it includes everything from C and assembly languages through C++, Pascal and Delphi, through Java and Clojure, through Perl, PHP, Python, Javascript, Typescript and so on. I’ve tinkered with Rust, APL, Uiua, Erlang and Haskell.

The Icelandic voting system

It’s election season here in Iceland! The election is on Saturday, 30th of November, so next Saturday from when this is written. Every time elections are upcoming, somebody inevitably asks me how the voting system here works, probably expecting a simple answer. So, here’s a stab at it. Iceland uses a biproportional apportionment system, as do Norway, some cantons of Switzerland, some German regions, and a few other places. Such systems have a few general features:

Thoughts on Escalation and Descalation

Israel has begun its second land war of the last 12 months by invading Lebanon. Having leveled most of Gaza to the ground with 60% of housing damaged, 65% of croplands destroyed; having killed over 42 thousand civilans in Palestine, with another ten thousand missing and over 100 thousand injured; having rendered Palestine incapable of sustaining life without outside support, which has been kept to a trickle, Israel is now escalating in other directions.

Coming to America - August-September travel plans

2024 was the year I transitioned back into nearly full-time professional vagrancy, although I still maintain a default home base in Iceland for now. I’ve not been very actively writing on this blog this year. I keep feeling guilty about that, but I’ve really been quite busy with other stuff, mostly working on building EarthOS. I’ve also traveled a lot this year - Curaçao, Miami, Malaga, London, Malta, Kentucky, Indiana, West Virginia, New York, Pennsylvania, Tennessee, North Carolina, Washington DC, Iceland, Croatia, Ireland, Bosnia & Herzegovina… I’m probably forgetting something.

JSON is dangerous (and slow)

Okay, so, I ranted a bit on YouTube. Oops. Here’s an accompanying longread, to waste even more of your life. Here’s the TLDR(oW) version: JSON is a ubiquitous structured data format, used for both data storage and exchange. But it’s slow, and what’s worse, it’s dangerous. We should use other formats, probably MessagePack. JSON is a weird accident of history. It grew out of Douglas Crockford’s need to be able to send messages between server and browser.