Abstract Nonsense

A place for musings, observations, design notes, code snippets - my thought gists.

Project Hail Mary by Andy Weir

I really enjoyed this book, I thought it was an excellent read.

I found the quality of the writing to be a bit haphazard at the start, but the Haldeman-esque humour and storyline more than make up for that. Weir does a superb job of capturing the pure joy in experimental and theoretical physics without detracting from the pacing or science-fiction nature of the book.

The “vaguely-crustacean alien meets human and becomes intrepid buddy explorer” plotline was delightful, and reminded me of a combination of Arrival and Arthur C. Clarke’s Rendezvous with Rama series.

I haven’t seen the film yet, but I hope it matches the book in quality and enthusiasm. I finished this read in just a day!

Favicon

I’ve added an animated favicon to the site:To avoid becoming distracting, it only plays once, on page load, instead of indefinitely looping.

The design has a few motifs:

  • An upper case $\Lambda$ symbol: a nod to both the Lambda Calculus and the A in Abstract.
  • That morphs into an uppercase blackboard bold $\mathbb{N}$ symbol: the set of natural numbers and the N in Nonsense.
  • All of which is surrounded by square brackets (an array) to give the favicon a bit more presence.
  • Lastly, the serifs are arrow-heads, evoking morphisms from Category Theory.

Full disclosure: I tried multiple times to manually craft an SVG that had all the above components, but I just couldn’t get it right. Thus, inspired by a Google blog post announcing improved SVG design capabilities in the Gemini 3.1 Pro model, I decided to give it a try. It took many, many iterations to coerce Gemini’s output into something I was satisfied with, but I think the end result is pretty good.There’s some issues with the animation keyframes splines not interpolating as smoothly as I’d like, but that’s a problem for another day.

Since SVG favicons are now Baseline-supported across all major browsers, I didn’t need to worry about fallback PNGs and .ico files, which was a nice bonus. It’s also picked up by Google Search and other platforms. Lastly, since I can embed CSS into the SVG file, it also supports dark modes via a prefers-color-scheme media query.

I used an object tag to embed the favicon file above, to ensure that the animation played correctly on page load. I noticed some inconsistencies between browsers with respect to animated SVG support using an img tag.

Generative AI Policy

I’ve added a /ai slash page to my blog with my GenAI policy. I’ve excerpted the current contents below:


“Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them.”Dune by Frank Herbert.

Every word on this blog is handcrafted by me, often painstakingly. I think of writing as an invaluable form of self-expression, and not one that I wish to delegate to a language model. I enjoy collecting new words, and I’m constantly struggling to develop my writing voiceI freely admit that my grammar could really do with some improvement..

Unless otherwise stated, all code snippets are also written from scratch. If I used any textbook or blog resources to inform my code, I’ll attribute it inline.

That’s not to say that I’m a complete luddite.

If I want to learn how something works in more detail, I think using an LLM for rubber-ducking can be an invaluable asset to practice the Socratic method. A lot can be gleaned by cutting down a provided scaffold to its essentials, and through that process coming to understand how it works. I wrote a little bit about that here, but I should probably revisit that post and flesh it out into a mini-essay sometime.

I will also happily delegate HTML, CSS, JS to LLMs. Whilst I’d like to be better at it, design is certainly not my forte. Similarly, I don’t mind using LLMs to generate throw-away shell scripts for data munging and the like.

Lastly, if I respond to your email, rest assured it’s really me and not a bot.


There are many essays that I concur with on the nature of thinking-through-writing and the dangers of AI-induced atrophy. A good place to start is “The machines are fine. I’m worried about us.”

TIL Hyperlinks in terminal emulators

TIL that terminal emulators can opt to support hyperlinks via the OSC 8 escape sequence. In terminals that support it, the following snippet should produce a clickable link:

shell
$ printf '\e]8;;https://abstractnonsense.xyz\e\\This is a link to this blog\e]8;;\e\\\n'
This is a link to this blog

I tested this to work in iTerm and VS Code’s terminal, but not in the native macOS Terminal. Conceivably, this could be used nefariously, since a URL rendered may not match the URL opened. The linked post has some valuable points re mitigation and security rationale, though.

Real-World Cryptography by David Wong

This March I read through Real-World Cryptography by David Wong (Manning). I’ve been trying to learn more about homomorphic encryption, but I don’t have any formal background in cryptography. This was the perfect introduction to a wide range of cryptographic primitives (hashing, signatures, authentication, key generation and derivation, encryption…) and the delicate choreography of how to employ these building blocks to build protocols. There’s some interesting context on the conception of the textbook on David’s blog.

Of course, nothing replaces learning the core mathematics from the ground up, and toying with implementations. I envision my next steps will be a combination of trying some practical exercises, and working through a more rigorous textbook. But for the curious software engineer or those, like me, who want a launchpad, this book does an exceptional job.