-
Parler, AWS, and the ACLU
January 12, 2021
Parler, AWS, and the ACLU Parler was recently kicked off AWS, and as of this writing is currently offline. I would be fairly surprised if we see it come back online anytime soon. I was only mildly surprised to see the ACLU step in to make arguments on Parler’s behalf, but not that surprised. Free Speech law and general advocacy almost universally involves defending speech that is either unpopular or said by repulsive people; popular speech is rarely first up to be banned.…more
-
Two Open Source Models
April 10, 2020
Two Open Source Models I have repeatedly seen clashes between users and maintainers of open source projects over who “owes” whom what, and I believe that these clashes come from a difference in mental models that are not explicitly stated. These clashes result in hurt feelings and the occasional accusation of entitlement or elitism, exacerbating the problem. The heart of this disagreement can be simplified as such: are open source maintainers giving a free gift to the community, or are they fulfilling a role that comes with privileges and expectations?…more
-
False Novelty
December 19, 2018
Introduction The internet is starting to worry me. This is a problem for me. I make my money on the internet, and I also spend a lot of time on it for entertainment. Beginning to worry about the internet is a bit like looking at your pet kitten and realizing that those tiger stripes are real and not merely an adorable coloration. It’s a slow growing fear that you might be living with something much more dangerous than you thought.…more
-
No You Probably Don't Need a Blockchain
February 21, 2018
On Bitcoins and Blockchains Oh Bitcoin, the darling of everyone’s economic dreams. Some think it’ll destroy the fed, others hope it’ll kill off the big banks. Some just think it’s going to make them rich, others go as far as hoping it’ll kill off governments completely. Whatever you happen to hate, Bitcoin is coming to destroy it! All of this is complete nonsense, of course. There are enough mutually exclusive dreams about Bitcoin that it’s clear that not all of them can come true, possibly even the hopes of easy riches given its unpredictable volatility.…more
-
MDC and Threadpools
September 1, 2017
Well written web services must have clear and easy to follow logs. Without good logs a programmer will be unable to diagnose or reproduce problems that might arise. And while many systems will keep logs in their reverse proxy like Nginx, a well written system will also have application/domain specific logs written within the application itself. A common goal of application logs is to tie a given log line to a specific request.…more
-
Java Without If
January 26, 2017
Over the past year my team has been doing something shocking to a lot of engineers: we’re favoring pure Java over Clojure. We aren’t rewriting all our Clojure code, but we definitely prefer Java for green field projects. This post is not going to be a compare and contrast between the two, nor am I going to bash Clojure. Language compare and contrast posts always descend into flame wars, and it’s very easy to confuse the result of hard lessons learned with the benefits of a new language.…more
-
My Increasing Frustration With Clojure
June 11, 2016
Edit: TL;DR: This is about how bugs in Clojure are handled by the Clojure Team, not just complaints about specific bugs I’ve seen. First off, this is not a “I’m quiting in disgust” post. Those are childish and a waste of everyone’s time. But this is a post of frustration as I watch something I really like being slowly allowed to get worse. First off, some history. My first job out of College was in Common Lisp, and I love/hated it.…more
-
Integrating test.check and Javascript
September 25, 2014
Introduction I was recently on The Cognicast with Craig Andera where we discussed using Generative Testing on a large non-Clojure(script) codebase, in particular Ruby on Rails and Backbonejs. If you haven’t listened to the show yet I highly recommend it first. As I promised on the show, I’d like to share how we used Test.Check to test our Backbone.js code base. Our overall strategy for testing Javascript is going to be:…more
-
Unusual Productivity Hacks
June 19, 2014
The internet is lousy with productivity ideas, mostly about how to work harder or longer. I personally believe that good productivity is about maximizing per hour results, not working harder. And the fastest way to improve your productivity is to eliminate some of the things slowing you down. So rather than going over the usual suspects, let’s take a look at eliminating some of the low hanging fruit. 1. Conquer Your Diet.…more
-
The Primacy of the Build Tool
March 31, 2014
No programming language stands alone. Besides the compiler, every programming language includes an ecosystem of libraries, build tools, analyzers, debuggers, and other utilities. Languages often rise and fall depending on the quality of these tools and libraries. For every language there needs to be one central item upon which every other tool depends. In most languages, this is the compiler or interpreter. Your Rails project is entirely dependent on the version of Ruby provided by the current environment, and similarly Maven depends on the version of javac and java available on the path.…more