Experiment: Unit testing isn't enough; You need static types, too
When I was working on my research for my Masters degree I promised myself that I would publish my paper online under a free license, as soon...
Why critics of Rails have it all wrong (and Ruby's bright multicore future)
Edit: Contrary to what I said here, José Valim is not stepping down from Rails core, he is merely on sabbatical. My bad. Lately I've been ...
Read the masters
Some time ago, I came across the Wikipedia article of Niels Henrik Abel , and something there burnt its way into my mind. Abel changed the face of mathematics, despite dying at 27. And here comes the thing – I give the mic to Wikipedia now:
Ruby Patterns from GitHub's Codebase
Written pieces, talks, and other bits by Zach Holman.
The /bin/true Command and Copyright
Lest you think that this is a fluke that was quickly corrected, here is the /bin/true program from AT&T's Sys/V libraries as of 1990:
In-memory key-value store in C, Go and Python
"Coder's paternity leave turns into polyglot key-value store adventure"
Alligator Eggs
In 2007, I met Philip Wadler at a conference, who mentioned to me that he wanted to teach lambda calculus to his eight-year-old children.
Stop validating email addresses with your complex regex
Just stop, y’all. It’s a waste of your time and your effort. Put down your Google search for an email regular expression, take a step back, and breathe.
True Scala complexity
Due to the recent php2shell vulnerability , to save time and effort for both users and maintainers alike, and out of an overabundance of caution, all Scripts sites have had PHP (php-cgi) disabled until a patch is available and backported.
Things I like about programming in Go
I recently wrote a blog post for CloudFlare about our use of Go . I thought it was worth following up with a bit more detail about why I li...
Programmer Time Translation Table
An experienced project manager I used to work with claimed that he took the programmers’ time estimates, multiplied by pi and converted to the next time magnitude to get the true number. 1 day converts to 3.14 weeks. He had learned the hard way that programmers are bad at estimating times . To get a more precise…
Python Application Deployment with Native Packages
Speed, reproducibility, easy rollbacks, and predictability is what we strive for when deploying our diverse Python applications. And that’s what we achieved by leveraging virtual environments and Linux system packages.
Light Table Playground Levels Up
I’m happy to announce the release of v0.0.7 of the Light Table Playground . This version is a serious upgrade to the Instarepl that brings the ability to manually evaluate things and work in your own projects.
Github is making me feel stupid(er)
I’m approaching my fourth anniversary of using github. I should hardly have to state that it’s a wonderful service, and especially so for being kept freely available to the open source community. At the same time, I’ve noticed over the past year or so that in many ways I feel less efficient using it now than I used…
The Art of Unix Programming
My fourth book.
Don't use bcrypt
(Edit: Some numbers for you people who like numbers) If you're already using bcrypt, relax, you're fine, probably. However, if you're ...
Shumway: a SWF interpreter entirely in JavaScript
Today, Mozilla Research publicly announced the Shumway project . Shumway is JS/HTML library which displays SWF (Flash) content entirely using open web technologies.
Both true and false: a Zen moment with C
I ran into a really fun bug at work yesterday, where I discovered that my C program was branching down logically inconsistent code paths. After drinking another cup of coffee and firing up GDB I realized that somehow, a boolean variable in my code was simultaneously testing as both true and not true.
You Really Should Log Client-Side Errors
Karl Seguin's Blog - A mix of coding and creative writing