New Kivik web site

Just a quick note to mention the new web site I launched this weekend for Kivik, my open-source CouchDB driver for Go. http://kivik.io/ will be the future home of all Kivik related news, rather than cluttering this blog with such details as I have in the past.

My Reservations about the Agile Principles

As a software developer, I’ve read the Manifesto for Agile Software Development countless times. It’s sort of a high-tech analog to the Hippocratic Oath for software people. Its full text is: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: …

Continue reading ‘My Reservations about the Agile Principles’ »

The Go/HTTP handler impedance mismatch

When it comes to writing web apps in Go, I have yet to see a clean solution for a very fundamental problem. I see an impedance mismatch between Go idioms and the necessities of the HTTP protocol. It’s by no means exclusive to Go, but this is where it bothers me, so I’ll limit my …

Continue reading ‘The Go/HTTP handler impedance mismatch’ »

Automated Testing False Dichotomy #2: All vs None

This is the second installment in my series The False Dichotomies of Automated Testing. If you’ve ever met a recent test convert, you’ve probably heard them talk about the mythical creature that is “100% test coverage.” As with most benevolent mythical creatures, this one is highly sought after, and possibly even worshiped. It is claimed …

Continue reading ‘Automated Testing False Dichotomy #2: All vs None’ »

The False Dichotomies of Automated Testing

This is the first in a series of posts about automated testing for software developers. I’ve been fascinated by this thing called “programming” since I first learned I could enter BASIC programs into my family’s Commodore 64 when I was 8 years old. I became a full-time software developer in 2006. And I “got religion” …

Continue reading ‘The False Dichotomies of Automated Testing’ »

Announcing Kivik: the general-purpose CouchDB client API for Go and GopherJS

For nearly 3 months now, I’ve spent most of my free time working on a new open-source project: a Go client library for CouchDB and PouchDB. As I’m now putting together the last major feature for a 1.0 release, I feel it’s time to make my work public. So today I am announcing Kivik! View …

Continue reading ‘Announcing Kivik: the general-purpose CouchDB client API for Go and GopherJS’ »

Configuring CouchDB 1.6.1 with LetsEncrypt free SSL certificate on Debian 8 (jessie)

Enable jessie-backports, if not already enabled on your system. As described here: echo deb http://ftp.debian.org/debian jessie-backports main | sudo tee /etc/apt/sources.list.d/backports.list > /dev/null aptitude update Install certbot as described here: sudo aptitude install certbot -t jessie-backports Configure a web server, so certbot can communicate with the outside world. I use lighttpd. sudo aptitude install lighttpd …

Continue reading ‘Configuring CouchDB 1.6.1 with LetsEncrypt free SSL certificate on Debian 8 (jessie)’ »

Remembering significant minutiae

Today I reached a meaningless milestone. My most popular post on StackOverflow, the leading Q&A site for programmers, earned its 500th vote*. The post is short, and pretty hilariously insignificant. The question asks how to repeat a simple search-and-replace operation. My answer was essentially to add a single character, the letter “g”, to their code. …

Continue reading ‘Remembering significant minutiae’ »

Installing Docker 1.12 in Debian 9 (stretch)

Debian ships with an old version of Docker, and the official installation instructions for Docker on Debian are a bit dubious (run an entirely untrusted shell script as root! yay!), not to mention error-prone, and result in a completely non-functional Docker installation on Debian, thanks to aufs being deprecated. So these instructions should make it …

Continue reading ‘Installing Docker 1.12 in Debian 9 (stretch)’ »

Praise for Let’s Encrypt — Free, automated SSL certificates

After a few weeks of not hacking one of my hobby projects, I decided to get back to it today, only to discover that the SSL certificate guarding it had expired. Being just a hobby project, it wasn’t important, but it was annoying. But before I went to buy another $9.99 SSL certificate for the …

Continue reading ‘Praise for Let’s Encrypt — Free, automated SSL certificates’ »