This is the homepage of Martin Tournoij, also known as Carpetsmoker and arp242 on the web. You can also find me at GitHub, Stack Overflow, couchsurfing, Keybase, Lobste.rs, Hacker News, and reddit. Send an email to email@example.com or create a GitHub issue if you want to contact me. Also see my CV.
Also see the archives. I archive things based on “interestingness” to the general reader, rather than age. “How to detect automatically generated emails” is useful if you’re creating an email system, but most people aren’t. Archived does not mean outdated.
Writings (RSS feed)
- Anti-vaxers are not evil
- Easy means easy to debug
- Why Rape Day is worse than violent games
- Why isn't Amazon.com signing their emails?
- Vested interest in mismanaging government
- Why Hello CSS doesn’t use CSS variables
- You (probably) don’t need Kubernetes
- Source code shame
- Testing isn’t everything
- Open source DIY ethics
- Learning a programming language
- Go testing style guide
- Being right
- Why write?
- The shell scripting trap
- Browsers and conflicts of interests
- Why teach kids to program?
- PHP’s fopen() is broken
- Project status badges
- I don’t like git, but I’m going to migrate my projects to it
- Some thoughts on CDNs
- YAML: probably not so great after all
- The downsides of JSON for config files
- Security of Python’s pickle and marshal modules
- A primer on the str and bytes types in Python 3
- Generate passwords from the commandline
See GitHub for a full list.
- aurgit – A simple way to manage AUR packages.
- autofox – Automatically configure Firefox.
- dotfiles – My configuration files.
- download-npo – Download episodes from npo.nl
- find-cursor – Highlight the cursor position.
- hello-css – A CSS template focused on readability.
- info – Texinfo made palatable.
- orgstat – List git author statistics for an entire GitHub organisation.
- 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.
- trackwall – DNS proxy and filter − /etc/hosts on steroids.
- uni – Query the Unicode database from the commandline.
Go libraries and tools.
- goimport – Add, remove, or replace imports in Go files.
- hubhub – Set of utility functions for working with the GitHub API.
- rhttp – Make returning from HTTP handlers a bit easier.
- sconfig – A simple and functional configuration file parser for Go.
Go libraries I created/maintained at my previous employer; I still try to maintain these (as I continue to use many of these packages myself).
- asbyte – Print data as Go byte slices.
- easytpl – A very simple template system.
- godocgen – Generate self-contained HTML documentation with godoc.
- guru – Go errors with a Guru Meditation Number.
- kommentaar – Generate documentation for Go APIs.
- mailaddress – Mail address parsing library for Go.
- middleware – Collection of Go HTTP middleware.
- reload – Lightweight automatic application reloading for Go.
- spamc – Go client for SpamAssassin.
- test – Small Go testing helpers.
- toutf8 – Convert text to UTF-8.
- utils – Collection of often used extensions to Go's standard library.
- validate – Simple validation.
~/.vimdirectory – All sorts of stuff.
- My first vimrc – A simple vimrc generator for new users; see /my-first-vimrc.
- auto_mkdir2.vim – Automatically create directories.
- 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.
- packman.vim – A simple Vim plugin/package manager.
- startscreen.vim – Customize Vim's start screen.
- testing.vim – Small 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.