Docker isn’t what I thought it was.
I thought it provided a way to run docker images on any host that supported docker. As it turns out, that’s not true.
I first encountered something fishy when I found this docker image on Docker Hub, whose description said, “FreeBSD Docker host is required to run this image.” I thought, “How is that even possible?” And sure enough, I could run the image just fine with a FreeBSD host. But when I tried to run it on my iMac, it silently failed. How could this be?
Continue reading “Docker’s dirty little secret”
Why Histograms are the New Pie Chart
Although pie charts are commonplace, those skilled in the art of data visualization disparage them as a poor vehicle for conveying information. Wedges, the unit being compared in a pie chart, are not something the human visual system is designed to compare with much accuracy. Furthermore, many good alternatives exist, such as bar charts, that lose no information and are easier for humans to digest accurately.
I argue that histograms are more akin to pie charts than bar charts. In other words, they do not play well with the human visual system, and a good alternative exists. This article examines the flaws of histograms, paying particular attention to how humans perceive them. This article examines the major flaw of histograms.
Continue reading “Histograms: an anti-rationale”
Macros are powerful metaprogramming tools, but they can be difficult to use well. In this article, I share several tips for creating correct, legible, and useful macros in Clojure.
Continue reading “A few tips for writing macros in Clojure”
Abstract: Keeping a test suite separate from the application itself has several benefits, including adopting a user’s perspective, (potentially) identical tests for development or production, load testing, and flexibility to totally rewrite the app.
Continue reading “The benefits of writing a separate test suite for your app”
My goal is to introduce our Time Series Explorer tool.
I wrote the tool as a small demonstration of the power of interactive visualizations. I wanted to find data that was easy to relate to, and show how a single interactive visualization could allow somebody totally new to the data to quickly absorb the meaning of the data into their minds.
Continue reading “Time Series Exploration”
Abstract: calls to
reduce are difficult to understand. An example
reduce in a code sample is analyzed and discussed to explore the reasons. An alternative version without the
reduce is offered and compared.
Continue reading “Reducing the conceptual load of reduce”
About 3 weeks ago, I switched to the Colemak keyboard layout. It’s much more efficient than the standard Qwerty layout but not as alien as the more well-known alternative, Dvorak.
Continue reading “Mapping will to keystrokes: an experiment in the Colemak keyboard layout”
We’re big fans of Clojure at Altometrics. It really gets out of the way and lets us get stuff done without a lot of fuss. Like many functional programming languages, Clojure features lazy sequences, which are especially useful if a given sequence is too big to fit into memory. (I’ll call such sequences “large” for the purposes of this post.)
I recently wrote the following Clojure function to lazily
reduce a large sequence. I couldn’t find a Clojure function that does this, so I figured it would be worth sharing. The discussion follows, but first, here’s the code:
Continue reading “Lazy reduce in Clojure”
Last night, I gave a talk at the Carolina Innovations Seminar. About a hundred people showed up to hear me talk about “Why and How to do a Software Startup”.
Here’s the abstract:
As famous investor Marc Andreessen said, “Software is eating the world.” In other words, software is and will remain relevant, making software startups popular and attractive. For aspiring and current entrepreneurs, this talk will focus on the practical aspects of creating and running a software startup. Topics will include: managing a software project, hiring tech people, hosting and operations, security, intellectual property, which programming language to use, and social media, with a dual emphasis on what to do and why to do it that way.
The slides from my talk are now up on SlideShare. Enjoy!
We recently launched a new website. Our old website was, like, so last year. Now we have a fresh new look that is also friendlier to mobile device screen sizes. Our blog got a similar update, both freshening things up visually but also moving to blog.altometrics.com.
In particular, check out our new About page. We’ve revised that to be more in line with our new mission: to amplify human intelligence by creating great tools. We have a lot of stuff in the queue related to that mission, so stay tuned!