34 bits · 5 kinds · since 2026

0 entries
week 1
0 entries
week 2
0 entries
week 3
0 entries
week 4
0 entries
week 5
0 entries
week 6
0 entries
week 7
0 entries
week 8
0 entries
week 9
0 entries
week 10
0 entries
week 11
0 entries
week 12
0 entries
week 13
0 entries
week 14
0 entries
week 15
0 entries
week 16
0 entries
week 17
0 entries
week 18
0 entries
week 19
0 entries
week 20
0 entries
week 21
0 entries
week 22
0 entries
week 23
0 entries
week 24
0 entries
week 25
0 entries
week 26
0 entries
week 27
0 entries
week 28
0 entries
week 29
0 entries
week 30
0 entries
week 31
1 entry
week 32
0 entries
week 33
0 entries
week 34
0 entries
week 35
1 entry
week 36
1 entry
week 37
0 entries
week 38
1 entry
week 39
0 entries
week 40
1 entry
week 41
3 entries
week 42
7 entries
week 43
1 entry
week 44
2 entries
week 45
2 entries
week 46
2 entries
week 47
2 entries
week 48
3 entries
week 49
1 entry
week 50
1 entry
week 51
5 entries
week 52

34 entries over 52 weeks of bits activity. Less More

update #wilhelm.codes#github

Welp, I finally did it! I’ve moved the git repository for this site from Github to the Forgejo instance in my homelab. Further, I’ve replaced Cloudflare’s build pipeline with a simple 20-line YAML file used by my Woodpecker CI server, which is also hosted in my homelab. I’m still using Wrangler to push the static assets to Cloudflare Pages and I’ll always need an external DNS provider for my domain, but you can’t reasonably self-host everything.

It’s nice to have almost full control of my little website now! And all it took was 3 attempts to get the integration right. 😅

Alternative text for screen readers

A great note to end on for a Monday evening!

quote #wisdom

“Nearly all men can stand adversity, but if you want to test a man’s character, give him power”

— Robert G. Ingersoll

blurb #css#wilhelm.codes

Goodbye Tailwind. Goodbye Node. We’re rolling vanilla HTML, CSS and JS. No more webfonts, we on them system faces now. A couple of hours on I have not missed the webfonts once. The site is lighter, the text is sharper on my screen and the only person who ever noticed was me. 750kb cold start for the main page is now under 18kb.

Everything is so much faster now I should’ve done this months ago when I first revamped the site.

quote #wisdom

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”

— Brian Kernighan, The Elements of Programming Style

update #wilhelm.codes

Spent an evening on the tags. A few of them were doing the same job under different names, so the duplicates are merged and the thin ones are gone. The cloud in the rail is shorter and rather more honest for it.

blurb #aws#cost-optimisation

Opened the bill expecting a fright and found a NAT gateway I have not needed since March. It has been quietly charging me rent to forward packets nowhere. Coding is my passion.

blurb

I keep promising myself I will write more on the weekends. The drafts folder keeps returning a different answer.

quote #go#wisdom

“A little copying is better than a little dependency.”

— Rob Pike, Go Proverbs

blurb #tmux

Sat down to fix one broken keybind. Three hours later the whole tmux config is rewritten and the keybind is still broken.

quote #wisdom

“The most damaging phrase in the language is: ‘It’s always been done that way.’”

— Grace Hopper

blurb #golang

Strangely sudden news today. Looks like “Go Report Card” has been completely sunset as of a couple weeks ago. I really dug that little service. At least it’s still available for self-hosting, but now I have to go on cross-repo badge cleanup duty.

update #wilhelm.codes#hugo

Decided to introduce a new projects page to showcase some of the bigger things I’m working on. I’m still working out the kinks and I’m not 100% sold on the current design. Each card is powered by a .toml based datasource in Hugo, contains a kind of linear heatmap of activity related to the associated project’s tag as well as the 5 latest related posts. Good enough to publish, I guess.

I also can’t decide on which activity graph animation I like the most. 😅

update #wilhelm.codes#github

I am very smart. I only just realised over the weekend that issues and discussions in the parent repo for this site were disabled. Meaning, article coments using Giscuss was functionally disabled here. WOOPS!

blurb #glazier#hcl

Welp. I’ve convinced myself that Glazier needs Terraform-style variable declaration blocks to validate --var flags. I’m doing it and I will not be stopped. I’m thinking something as simple as the following session block-adjecent top-level spec:

HCL
variable "name" {
  description = optional(string)
  type        = required(string | bool | number)
  default     = optional(type)
}

Time to do what I do best: make things more complicated than they have any right to be.

blurb #plantsm.art

I should update Plant Smart. Thinking it should get a similar treatment to this site. Maybe even exploring moving completely to Hugo instead of a haphazardly-assembled static Svelte site.

update #wilhelm.codes

Some small incremental updates for the site today:

  • The addition of a new bit type for site updates like this one.
  • Proper RSS feeds for both long-form articles and bits. Check the footer!
  • A quick sweep of the site map to ensure everything maps out properly. There were a few dead links previously.
  • You can now filter bits by type! Have a play with it at the top of this page.
  • Some minor grammatical updates here and there for some recent content.

Something to note is that the bits filter is purely JS based and assumes all content will be displayed in a single page. This is fine for now, but there may be 100s or even 1,000s of entries on a long enough timeline. At that point, basic text search and filtering that supports pagination may be necessary. But, not today!

blurb

Tempted to drop the custom fonts altogether. They account for well-over half the transfer on a hard refresh.

blurb #woops#wilhelm.codes

I am not a smart man. I completely forgot I was using the “Pro” version of FontAwesome and had the entire library committed to this very public repository without any licensing coverage. I mean, the pro version shouldn’t be shared anyway. You may have noticed the associated Github repository has been temporarily set to private and that all commit history as been wiped. Sucks, but I felt this was much more pragmatic than removing multiple specific files from the tree. I am not an expert git surgeon, so that got a hard pass from me.

I’m currently experimenting with some alternative OPEN SOURCE web icons and updating the third-party licensing notice bundled with the repo to cover icons as well as web fonts.

Luckily, only I noticed this issue and immediately worked to address it.

edit: Good-bye, sweet git history!

quote #wisdom

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.”

— Edsger Dijkstra

blurb

I’m keeping these stupid test quotes around. I love them. Fight me.

quote #wisdom

“There are only two hard things in Computer Science: cache invalidation and naming things.”

— Phil Karlton

quote #wisdom

“Programs must be written for people to read, and only incidentally for machines to execute.”

— Harold Abelson

quote #wisdom#design

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”

— Antoine de Saint-Exupéry