I’ve ummed and ahhed over removing my contact form entirely. Quality enquiries are rare but still worth the risk of spam. I’d like to hold out a little longer. At least until “AI” apologists ruin the web (don’t pretend you’re not!) Until that day, I’m open for contact. […] | Continue reading
The future of Deno Land Inc. is not looking bright. Their commercial product Deno Deploy claims to be “edge” hosting with “massive global scale”. “JavaScript applications on Deno Deploy run server-side logic geographically close to users, offering low latency and great performanc … | Continue reading
Bunny provide CDN services, edge storage, DNS, JavaScript; you know, the usual suspects. More importantly, Bunny are what’s become known as a European alternative. Something that non-US web folk are starting to pay more attention to. I moved from Netlify to Cloudflare back in 202 … | Continue reading
I talked about replacing Home Assistant and I’ve only gone and done it! Home Assistant powered the back-end infrastructure for my macOS/web app light switch. I’ve replaced it with a tiny custom built Zig service. I discuss my Zig learnings below. […] | Continue reading
My last self-hosted updated was Summer 2024, what’s new? The Mini-ITX Proxmox server I built has been rock-solid. No downtime, no hardware hiccups, though I never bothered to use graphics PCI passthrough. My Raspberry Pi 5 is unplugged 😔 just no use for it. […] | Continue reading
I was a serial terminal hopper until I switched to Ghostty for the cool name and I stayed for the cool features. Founder, developer, and fellow Zig fan Mitchell Hashimoto discussed Ghostty on the PodRocket podcast. There I learnt of a hidden macOS feature; the Quick Terminal. […] | Continue reading
I did a three part series on blogging but Jim just tagged me so… I guess the threequal becomes a quadrilogy? Why did you start blogging in the first place? I was new to the web scene, fresh out of college† and starting a new job in London. I’ll blame my boss Iain Scott who loved … | Continue reading
For a few months now I’ve received sporadic reports that my website was broken. They said the layout was askew and things were sized strangely. They had screenshots to prove it. This was embarrassing for a professional website builder. Thankfully my audience is tech-savvy and the … | Continue reading
I’ve been on a bit of a journey ever since I shamed myself into rolling my own accounting software, henceforth The App. To buck a trend, I’m coding The App vibe-free without “AI” because I’m an adult capable of writing my own technical debt thank you very much. […] | Continue reading
It’s time to lock-in! You might have noticed a change with my blog posts (take a look if you’re in an RSS reader). If you’re on a phone there isn’t much of a difference to see. I love my design so this is more of a realign than a redesign. I know what you’re thinking, a single ce … | Continue reading
I built a small app with Zig and I’m using it across my fleet of homelab devices and VMs. I’m testing Zigbar “in production”, or dogfooding as they say. What’s become apparent is that getting new changes to a dozen machines is tricky. Until now I was copying files over SSH: Copy … | Continue reading
I built a prompt! Not the “AI” kind. I’m talking about this thing: I customised the part of the terminal shell that asks for user input. I used Zig to write my own dev-focused prompt. Why I’m currently on Ghostty terminal with ZSH. I’ve also used Starship prompt for years but nev … | Continue reading
Last year I struggled to choose a browser after declaring Firefox dead. I was accused of being a tad dramatic, which held truth, but if anyone was following Mozilla’s actions they’d have seen what we all saw this week. Mozilla execs have been floundering for a long time. […] | Continue reading
I’ve added a new feature on my blog following the advice and example from Salma Alam-Naylor: “How to build a copy code snippet button and why it matters” “It is impossible to highlight and copy code blocks when you are unable to use your hands. […] | Continue reading
This is a public service announcement because the JavaScript world has lost its collective mind! Frameworks are everywhere. Where did the libraries go? Background Skip below for the main course if you don’t care but I’m building a CRUD-heavy web app for my personal finances. […] | Continue reading
There was a time before t’internet when new episodes for Friends were delivered on a weekly schedule. If memory serves that was Friday night, Channel 4 in the UK. Fast-forward a generation and Netflix invents cold dropping all episodes on demand. […] | Continue reading
Learning Zig as a front-end developer involves plenty of unlearning. JavaScript is lenient and even TypeScript allows for mischief. With Zig, and basically everything that isn’t JavaScript, the rules of engagement are strict. Zig is a low-level compiled programming language. […] | Continue reading
Advent of Code is an annual advent calendar full of fun festive themed programming puzzles. Over my winter break I had a great time solving all puzzles for AoC 2024. This was my first year participating in AoC. It was such a fun experience I’ve gone back to previous events and st … | Continue reading
This is the third and final post in my three part series on blogging. It was due last year but I got a little busy! Part 1: Why Blog Part 2: In Numbers Part 3: For Humans Part 3: For Humans I don’t blog for robots. I find it quite alarming how many people do. I write for humans. … | Continue reading
This is the second post in my three part series on blogging. They don’t need to be read in order, but I’d be happy if you read them! Part 1: Why Blog Part 2: In Numbers Part 3: For Humans (coming soon) Part 2: In Numbers My website today is a dozen pages and approaching 400 blog … | Continue reading
Isn’t “Weblog” such a fun word? Not we-blog, web-log. Although we-bloggin’ sounds fun too. Why did it ever get shortened to blog? Anyway, this is gibberish, I’m here to discuss writing on the web, aka blogging. This is part one of a three part series: Part 1: Why Blog Part 2: In … | Continue reading
Hyperlinks are cool. They’re what make the web, The Web. You know what’s really cool? Linking to specific sections of a web page. We’ve done that forever with the URL hash/fragment linking to an element with an id attribute. Now there is a more powerful way! […] | Continue reading
I suggested the idea of a “links initiative” as a way to kick-start the more daunting task of building a front-end resource directory. Basically just blog your favourite dev related links and maybe they can be collated to bootstrap a directory. […] | Continue reading
My website has been static since — checks new search index — at least July 2014! I’ve gone through so many static site generators and custom build scripts I’ve lost track. In that time I’ve amassed quite a big blog. Finding old articles has become harder than it should be. I need … | Continue reading
My social media posts have been boring on the visuals. Not anymore! I now auto-generate a nice typographic preview. Scroll down to see an example. This is what shared links to my website looked like before: I love my origami crane mascot but three copies is a little excessive! [… … | Continue reading
Last week I refreshed my website to take advantage of new baseline 2024 stuff (and one old thing). Another change I made was a move from rem to px units. I pondered this change back in August. The idea being: keep rem for font size and use px elsewhere. This is a big change for m … | Continue reading
Have you ever added this CSS? What’s the deal with that? I’ve always tried to avoid this CSS because a long time ago Dmitry Fadeyev asked us to Please Stop “Fixing” Font Smoothing. “The antialiasing mode is not a “fix” for subpixel rendering – in most cases it’s a handicap. […] | Continue reading
My 2024 end-of-year resolution — it’s like a New Year’s resolution but better — is to return to the front-end! I’ve been neck-deep in server-side JavaScript this year. I’ve had a blast but my true speciality and passion lies in the browser. Front-end web standards have never move … | Continue reading
Saturday morning I attempted to code an SSH server in JavaScript and gave up quickly when e = g^x mod p. On Sunday morning I regrouped — I am a real coder 😤 — and I wrote an HTTP tunnel to prove it. An HTTP tunnel or HTTP proxy is used to forward web requests. […] | Continue reading
Over the weekend Matt Mullenweg — creator and would-be destroyer of WordPress — has seemingly released malware upon two million innocent websites. Every WordPress website I have ever built may be victim. For ongoing WordPress vs WP Engine updates visit: mullenweg.wtf Malware?! [… … | Continue reading
Deno 2.0 launched with an announcement video that opens like an episode of Silicon Valley. I have to admit I do enjoy a bit of cringe acting. Following the intro is an Apple-esque keynote that I skipped through, like an Apple keynote. Bun 1.0 did it better and kept it shorter. [… … | Continue reading
Despite better judgement I decided to code a basic HTML parser. Not the full HTML spec but enough to create a tree of nodes and attributes. I’ve already written a streamable XML parser that has been working for my podcast web app. Parsing (most) HTML isn’t as complicated as it so … | Continue reading
CSS container queries are spectacular! And I keep being mislead by the same mistake. It’s starting to irritate me! In this blog post I document a bad code pattern to avoid. The Mistake Consider this example with a and two elements inside: With the CSS below I’ve made box a […] | Continue reading
My “smart home” has gotten progressively dumber. Can you remember a time before the AI-pocalypse? The tech trend of yesteryear was to give everything with a digital pulse an IP address and a dubious 2.4GHz radio. The “Internet of Things” is what they called it. What a heap of gar … | Continue reading
The Tailscale magic ✨ is starting to wear off. I gave positive opinions on Tailscale back in August 2022: “Basically Tailscale does one thing extremely well and the accompanying features aren’t bad either. The free tier suits me very well too! […] | Continue reading
I rolled my own Markdown library! It’s called Hmmarkdown on GitHub. It’s published on both JSR and NPM too. I’m testing in production on my own website! That might be a mistake but it’s too late now. ⚠️ Work in progress! ⚠️ Hmmarkdown is bad code and full of bugs. Okay, well it d … | Continue reading
Docker is great! Docker networks are grand. I know, controversial opinions! Docker and Docker networks are not easy to understand and often table-flippin-infuriating for newcomers. Trouble is they don’t get much easier for experienced users either. I’m by no means a Docker expert … | Continue reading
With my first impressions and second look of JSR (the JavaScript Registry) I tried to be positive and optimistic. I saw the potential that JSR could offer something more than NPM. Half a year after public launch, how is JSR looking now? Well… not good. But let’s start on a high n … | Continue reading
Deno packaging is now a fragmented mess. It didn’t start that way. This is what Ryan Dahl — creator of Deno and Node — is now saying. Contrast this to Dahl’s 2018 JSConf talk in which NPM and package.json were regrettable mistakes. To fix this Deno would use ESM imports with URLs … | Continue reading
Back in March I shared my spring self-hosted update. I had a new ZimaBlade to play with. I bought a cheap GeForce GT 710 just to try the PCIe. It worked. That graphics card is terrible (more on that later). The ZimaBlade is also, frankly, terrible. The CPU thermal throttles itsel … | Continue reading
Captain’s log: it’s been 10 days since I entered the Git LFS rabbit hole. Following an emergency in-prod GitHub replacement I got nerd sniped by the Git Large File Storage API. Git Granary 🌾 Git Granary is the end result. I coded my own LFS server! I plan to self-host Gra … | Continue reading
For years now both my website source code and content have lived side by side in harmony within a public GitHub repository. This was convenient for the various build and deploy scripts I’ve monkeyed with. Fast-forward to July 2024 where I was forced to replace GitHub LFS with alt … | Continue reading
GitHub sent me a scary email notification: 80% only one week into a monthly quota — oh dear! You might have seen my microblog note — this is the full article I promised. Basically GitHub’s free LFS is trash and you can do much better using any S3-like storage. Reminder that Git a … | Continue reading
David is on board. Who else? adactio.com/links/21280 | Continue reading
I stealth launched a new microblog on this here website last week. You can subscribe to my microblog RSS feed — do it! My main blog is for longer, more considered content. I don’t want to drown the good stuff in mid takes, so to speak. That’s not to say my microblog isn’t worth f … | Continue reading
Yesterday I blogged about how Google and others ruined email. They act as gatekeeper, hamstring smaller email providers, and make self-hosting practically impossible. Email is not the only slice of the internet Google want control over. They’re after the web too using their searc … | Continue reading
I listened to Mostly Technical episode 42 — great podcast btw — Aaron Francis talks about the struggles of sending an email newsletter. Google are quick to rate limit new domains to prevent spam. Spam sucks, but it concerns me just how much authority big players like Google and M … | Continue reading
It’s quite amazing just how dead Twitter is in my follows. It’s a real ghost town over there. Now I get more engagement from a few on Mastodon and nothing from thousands on Twitter. Twitter is dead. Like super dead. I joined Mastodon with uncertainty last April. It’s taken me a w … | Continue reading