-
Moving to Denver
October 25, 2013
You know those hilarious “pranks” where someone posts something embarrassing someone else’s Facebook account? Apparently in the improv community of Chicago the standard prank is to post something saying that they’ve accepted a lead role, and that they’re moving to Denver, Colorado. We found this out when some improv actors at our going away party took some convincing that we were actually moving, and that it wasn’t an elaborate prank.…
-
The Dangers of Partisanship
July 15, 2013
Anyone who knows me personally knows that I am a huge Clojure fan. I could go on and on about why it’s the best; the regularity, the macros, ClojureScript, core.logic, etc. etc. But last week I attended LambdaJam , which was awesome by the way, and I came back with a different opinion. No, I don’t think Haskell or Erlang tops out Clojure, I’m still probably going to reach for Leiningen for all my personal projects.…
-
Stealing Terminology
July 2, 2013
One of my favorite tricks is to borrow terminology from other walks in life. This is particularly important for me, since it’s all too easy for engineers to end up living and talking in pure engineering speak. Looking to other careers for the correct words to describe something allows one to express ideas that might not be easily communicated otherwise. If you look carefully, you can see examples of this in engineering blog posts.…
-
Fast Cheap Good
June 5, 2013
In the distant past (1950’s or so), project managers and engineers came up with what is known as the project management triangle: fast, cheap, or good; pick two. While software engineering can be very different from mechanical, it does at least share the same project management setup. Quality software designed cheaply will be late, cheap software released early will be poor in quality, and quality software released on time will be expensive.…
-
Stop Surprising Me Ubuntu
June 4, 2013
There are almost as many design principles as there are articles about them. But my two favorites are the Principle of Least Surprise, and You Ain’t Gonna Need It. The Principle of Least Surprise, is one of the design principles of the language Ruby, specifically in the context of “the principle of least surprise after you learn Ruby very well.” And all good systems have the property that they do not surprise experienced users, but great systems do not even surprise inexperienced users.…
-
Introducing Butler.el
May 3, 2013
I’m a big fan of reducing barriers to increase adoption and compliance. One of the largest examples for me in the past few months was when I tried out Eclipse for Python Development. The most important plugins for me (other than Python and Git) were the Jenkins and Jira plugins. Quick access to my tasks and instantaneous in-editor feedback about job status increased the likelihood that I would respond to failed builds or fill out tickets correctly.…
-
A New Addiction
April 30, 2013
Well, I have officially started collecting watches. My first decent purchase was a few months ago, but I’m counting it as a collection now because I have more pieces than is functionally required, which arguably is 1 in the cell phone era. Why collect watches? Well, first of all they’re modern Mens jewelry. Mens fashion has changed remarkably little in the century, especially compared to Womens'. So with suits that may stay “in style” for 2-6 years depending on the cut, men only have a few places to go to express their style: shoes, watches, ties, and cuff links.…
-
Binding vs Assignment
April 30, 2013
A coworker of mine was recently running into problems with the following snippet of Python code, and turned to another functionally oriented developer and myself for help. funs = [] for i in ["a" "b"]: def internal_function(): return i funs.append(internal_function) print funs[0]() print funs[1]() At first glance, one would expect this to print “a” then “b”. But much to my surprise (and my coworkers frustration), it was returning “b” both times.…
-
Size Matters
April 23, 2013
About 6 months ago I started to look for a new language for hobby projects. I wanted something practical, yet fun. I managed to limit the criteria down to: Functional Good community Growing acceptance This automatically eliminates a lot common languages, like Python, Ruby, and Java. After my Common Lisp job, I knew that a sane compilation system/target were an absolute must, so I looked at Scala first. On the surface Scala seemed a real winner: growing fan base, increasing commercial adoption, functional, and targeting the JVM.…
-
Octopress
April 22, 2013
I’m currently in the process of changing my website over from Wordpress.com to Octopress on Github pages. There are two things driving me from Wordpress.com: control and price. Wordpress is fine if you are either a big PHP afficianado, or are afraid of web programming in general. It’s quite easy to install themes and plugins without any knowledge of what this means. However, this only is true if you’re self-hosting Wordpress.…