As someone 100% in camp `net/http.ServeMux`, this rant pleases me. #golang
Gin is a very bad software library: https://eblog.fly.dev/ginbad.html
As someone 100% in camp `net/http.ServeMux`, this rant pleases me. #golang
Gin is a very bad software library: https://eblog.fly.dev/ginbad.html
ual v0.7.3 released
ual is a systems language for orchestration and embedded computation. It comes in two forms: a compiler targeting native binaries, and an interpreter for development. Both share the same runtime and produce identical results. This release marks the completion of runtime unification — the interpreter now has full parity with the compiler, including true goroutine-based concurrency, using Go as IR and bootstrapping tool.
What makes ual different
ual is built on a specific philosophical foundation: that coordination is the primary problem of programming and that types and computation are subordinate within coordinated contexts. Data lives in typed stacks accessed through perspectives (LIFO, FIFO, Indexed, Hash). Time is explicit — blocking waits, timeouts are native. Errors must be acknowledged before proceeding.
Binaries available for:
Linux (amd64, arm64, arm, 386), macOS (Intel, Apple Silicon), Windows (64-bit, 32-bit), FreeBSD, OpenBSD, NetBSD
Release:
https://github.com/ha1tch/ual/releases/tag/v0.7.3
Docs
https://github.com/ha1tch/ual/blob/main/docs/MANUAL.md
#ual #golang #foss #rust #rustlang #forth #programming #compsci
Go Proposal: Secret Mode
https://antonz.org/accepted/runtime-secret/
#HackerNews #GoProposal #SecretMode #GoLang #Programming #HackerNews
Added support for the new #age recipient `p256tag` in `age-plugin-tpm`. It introduces a generic recipient for hardware tokens like yubikeys and TPMs, this allows you to avoid having to have the plugin installed to encrypt files for those recipients.
https://github.com/Foxboron/age-plugin-tpm/pull/34
Solved Advent of Code 2025 Day 5 Part 2 in Go. This was really difficult due to the test input not containing an edge case that was present in the puzzle input (I initially thought I had an integer overflow instead). So my 'do these ranges overlap' algorithm was incorrect, which threw off everything else.
Thought process:
https://www.godeveloper.co.uk/advent-of-code/2025/05/
Code:
https://github.com/godev-uk/advent-of-code/blob/main/2025/05/b/5b.go
Tests:
https://github.com/godev-uk/advent-of-code/blob/main/2025/05/b/5b_test.go
Part 1 Today is the first day where we have a split input, with two chunks. Chunk 1: List of fresh ingredient ranges, one per line. Start and end IDs are separated by hyphens and are inclusive, i.e. 3-5 means 3, 4 and 5. Chunk 2: List of available ingredient IDs, one per line. An ingredient is fresh if and only if it falls into one or more fresh ingredient ranges.