mjl blog

feed
November 7th 2024

Ysco - managed automated updates for Go services

There’s a new tool in town! It’s called ysco, and it provides managed automated updates for Go services, without requiring changes to the application.

The launch party was at the Go Rotterdam meetup earlier this evening. Special thanks to the organizers for running a we...

November 4th 2024

Vi editing mode addon for Firefox

For better or worse, I find myself typing more and more text in textarea/input elements in web apps these days. Especially now that I’m writing most emails in the mox webmail client. It was high time to enable vi editing mode in Firefox.

One problem: Firefox doesn’t see...

March 21st 2024

Cross-referencing code & specs for maintainability

You’re implementing a network protocol. You read the specs, make a mental model and a design to fulfill the requirements, do some prototyping, check against existing software implementing the protocol, then continue with the details until the implementation is finished. Yo...

January 24th 2024

A year of mox

A lot has happened for mox in the past year. And despite good intentions, I haven’t written a blog posts about any of it!

Wait, what is mox?

A modern, secure, all-in-one mail server. The goal is to make it easy to run your own mail server. So you can stay in control of y...

Full post 2 comments
March 24th 2020

Server-sent events (SSE) disconnects when clicking download link

I’m a fan of server-sent events, or SSE. They are a very lightweight option to send streaming updates from a webserver to a client. I’m using it in ding, a modest build server for small teams. Ding sends updates about a build (e.g. the build output log, build failure/suc...

March 19th 2020

Sconf: simple configuration files

I used to write config files for my admittedly small/simple services in JSON. Mostly because they are reasonably easy to read/write as human, and everyone and their programming language can handle it.

It isn’t great though. Not new information, we know this. Still, a quic...

March 19th 2020

Goreleases: package for installing go toolchains

Through the golang issue tracker I recently stumbled upon the JSON-mode of Go download page: https://golang.org/dl/?mode=json&include=all.

Quite useful for build server software that wants to allow builds (of your software) with new Go releases quickly (and automatedly), bu...

July 27th 2018

Experiences with Go modules

Go 1.11beta2 is out. And it includes the new Go modules support, what started as vgo. Go beta’s are delightfully easy to try out:

go get golang.org/dl/go1.11beta2
go1.11beta2 download

I wanted to use it. See how it feels. And… it works pretty good! I even started usin...

April 17th 2018

Announcing duit: developer ui toolkit

Hi! In this blog post I’m announcing duit, which is a

  • pure go (*)
  • cross-platform
  • MIT-licensed
  • UI toolkit
  • for developers

It is pure Go – no C code or external library involved. The asterisk represents the runtime dependence on a helper tool. It provides duit with cros...

Full post 6 comments
November 27th 2017

Running accountless for fun and ...

Want to see your software break? Run it in an way that is slightly different than usual. For example under a UID that doesn’t have a system account.

I’ve been using Ding to build software. Both Go software and Java software. Resulting in three instances of “fun”.

F...

Older posts:

Ding with privilege separation
xcode license nonsense wasting time
Announcing Ding: build server for developers
Layout glitches when switching between short & long pages
Small annoyances on the web: Checkboxes without a label
Comma or Tab in a Comma Separated Values file?
Printing a database schema on paper
Hiding UIView's in iOS
Use the function form of "use strict"
theThingsNetwork LoRaWan messages on a map
Terminals and unix tools
Serving a godoc vfs.FileSystem with http.FileServer
Backups on Google Cloud Storage, with Go
Tokenizing lines with (quoted) strings in Go
Including files in go binaries
Scgi server for go