Writings By: tag, popularity • RSS
- 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
- 17 Dec 2016 Project status badges
- 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
- 3 Feb 2014 Generate passwords from the commandline
- 5 Dec 2013 Creating temporary files in PHP
Code projects
See GitHub for a full list.
- border – Simple commandline tool to add a border around PNG images
- cantuse – List browsers in which a feature *won't* work.
- find-cursor – Highlight the cursor position.
- GoatCounter – Web analytics platform.
- hello-css – A CSS template focused on readability.
- imgzoom – Simple JavaScript image zoomer.
- info – Texinfo made palatable.
- pkg_clearleaves – Remove packages on which no other packages depend.
- readon.js – Continue reading a web page from where you left last time.
- sanitize_files – Basic cleanup of your code.
- singlepage – Bundle external assets in a HTML file.
- uni – Query the Unicode database from the commandline.
- zsrv – Static file server which packs all data in the binary.
Go libraries and tools
- gogo-release – Build cross-platform binaries.
- goimport – Add, remove, or replace imports.
- hubhub – Utility functions for working with the GitHub API.
- sconfig – A simple and functional configuration file parser.
- formam – Scan HTML forms in to a struct.
- guru – Go errors with a Guru Meditation Number.
- mailaddress – Mail address parsing library for Go.
- reload – Lightweight automatic application reloading.
- spamc – Go client for SpamAssassin.
- isbot – Detect HTTP bots.
- utils – Collection of often used extensions to Go’s standard library.
- zhttp – Martin’s HTTP package.
- zli – Library for writing CLI programs
- zlog – Logging library.
- zpack – Pack static data in binaries.
- zstripe – Utility functions for working with the Stripe API.
- ztest – Testing helpers.
- zvalidate – Static validation that returns parsed values.
Vim stuff
~/.vim
– All sorts of stuff.- My first vimrc – A simple vimrc generator for new users; see /my-first-vimrc.
- VimLog – A ChangeLog for vim; see /vimlog.
- auto_mkdir2.vim – Automatically create directories.
- batchy.vim – Perform batch operations on files.
- confirm_quit.vim – Ask for confirmation before quitting Vim.
- default2.vim – Vim’s default colour scheme with some small enhancements.
- globedit.vim – Use globbing patterns for :edit, :tabedit, etc.
- gopher.vim – Plugin for the Go programming language.
- helplink.vim – Link to Vim help pages with ease.
- jumpy.vim – Filetype-specific mappings for
[[
and]]
. - lazy.vim – The really simple snippet manager.
- packman.vim – A simple Vim plugin/package manager.
- runbuf.vim – Run the contents of a buffer in psql, python, bash, etc. and display the output.
- startscreen.vim – Customize Vim’s start screen.
- switchy.vim – Switch to related files.
- testing.vim – Testing framework for Vim.
- undofile_warn.vim – Warn when using the undofile.
- xdg_open.vim – Run xdg-open from Vim; re-implements netrw's gx.
- zev.vim – Easily apply predefined substitute patterns.
Other
- bestasciitable.com – Or, why does Ctrl+i insert a Tab in my terminal?
- dotfiles – My configuration files.
- The Art of Unix Programming – Reformatted version.
Also see the archives for some outdated and not-especially-interesting-after-all stuff.