Writings By: tag, popularity • RSS
- 22 May 2024 Safe terminal escape codes
- 20 Oct 2021 s/bash/zsh/g
- 29 Sep 2021 Getting started with RimWorld modding on Linux
- 25 Mar 2021 Stallman isn't great, but not the devil
- 22 Feb 2021 Go is not an easy language
- 18 Feb 2021 Downsides of working remotely
- 10 Dec 2020 Bitmasks for nicer APIs
- 29 Nov 2020 Stupid light software
- 28 Nov 2020 Empathy is required for democracy
- 25 Nov 2020 An API is a user interface
- 12 Aug 2020 Freedom is not simple
- 5 Aug 2020 Analytics on personal websites
- 3 Jul 2020 Let’s not be pedantic about “Open Source”
- 22 May 2020 Some zshrc tricks
- 17 May 2020 Experiences with email-based login
- 25 Apr 2020 Storing files in .git
- 20 Apr 2020 The problems with hard wrapping email body text
- 11 Apr 2020 Statically compiling Go programs
- 13 Feb 2020 The web as a GUI toolkit
- 5 Feb 2020 Running Go CLI programs in the browser with WASM
- 8 Jan 2020 Bookmarklets to deal with annoying designs
- 4 Jan 2020 Why GoatCounter ignores Do Not Track
- 3 Jan 2020 Scripting tmux
- 30 Dec 2019 Choosing a license for GoatCounter
- 12 Dec 2019 Better UX when reading from stdin
- 5 Dec 2019 Good comments read well and are to the point
- 21 Nov 2019 Go’s features of last resort
- 9 Nov 2019 Curl to shell isn’t so bad
- 7 Nov 2019 Vim myths
- 31 Oct 2019 Effective VimScript
- 7 Oct 2019 On being the right size
- 5 Sep 2019 It’s fine to be elitist, sometimes
- 22 Aug 2019 Tired of Stack Overflow
- 13 Aug 2019 Launching GoatCounter
- 10 Jun 2019 The other kind of censorship
- 27 May 2019 Why I’m still using jQuery in 2019
- 26 May 2019 Copyright, culture, and democracy
- 1 May 2019 Using flags for configuration in Go
- 30 Apr 2019 Flags are great for configuration
- 29 Apr 2019 The value of negative arguments
- 28 Mar 2019 Anti-vaxers are not evil
- 22 Mar 2019 Easy means easy to debug
- 19 Mar 2019 Why “rape games” are worse than violent games
- 13 Mar 2019 Why isn’t Amazon.com signing their emails?
- 19 Feb 2019 Vested interest in mismanaging government
- 12 Feb 2019 Why Hello CSS doesn’t use CSS variables
- 15 Jan 2019 The Art of Unix Programming, reformatted
- 14 Jan 2019 You (probably) don’t need Kubernetes
- 13 Jan 2019 Source code shame
- 7 Jan 2019 Testing isn’t everything
- 22 Dec 2018 How to detect automatically generated emails
- 9 Dec 2018 Open source DIY ethics
- 15 May 2018 Learning a programming language
- 10 Apr 2018 Go testing style guide
- 5 Apr 2018 Being right
- 27 Dec 2017 Why write?
- 26 Dec 2017 The shell scripting trap
- 14 Jul 2017 Browsers and conflicts of interests
- 24 Jun 2017 Why teach kids to program?
- 22 Apr 2017 PHP’s fopen() is broken
- 7 Oct 2024 Go To Statement Considered Harmful
- 26 Oct 2016 I don’t like git, but I’m going to migrate my projects to it
- 5 Sep 2016 Some thoughts on CDNs
- 4 Sep 2016 YAML: probably not so great after all
- 7 Feb 2016 The downsides of JSON for config files
- 15 Jan 2015 Making find -exec faster
- 14 Nov 2014 Security of Python’s pickle and marshal modules
- 20 Aug 2014 Intercept outgoing mails in Ruby on Rails
- 24 Jun 2014 Making FlagShihTzu work well with Formtastic
- 10 Feb 2014 A primer on the str and bytes types in Python 3
- 5 Dec 2013 Creating temporary files in PHP
Code projects
zcert
★ 0Vim stuff
complete_email.vim
★ 2Allow completion of email addresses so you can use Vim as a basic "address book".
Go libraries and tools
zcache
★ 62In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications
zli
★ 41Go library for writing CLI programs. Includes flag parsing, colours, testing, and various helpful utility functions