Your Version Control and Build Systems Don't Scale
Let's spend a minute and talk about the performance of a tool you use every day: your build system. For this purpose, they're all the same, so let's assume you use GNU Make. For a no-op build, what is Make's running time? You know, that O(N) stuff.
Is Good Code Impossible?
I'm a Staff iOS Developer living in Denver, Colorado, who's been building mobile apps for 17 years!
What Business is Wall Street In?
My last two posts were designed to stimulate discussion. But lets talk the real problem that regulators, public companies, investor/shareholders and traders face. The problem is that Wall Street doesn’t know what business it is in. Regulators don’t know what the business of Wall Street is. Investor/shareholders don’t…
Engineer #2 at Mint.com on when to join a startup
Having been an engineer at a startup I empathize with people who are being recruited into startups especially if it's their first startup. The key
Teach Like You're the Student
“I never have let my schooling interfere with my education.” – Mark Twain Every time I see my graduate students try to teach for the first time, it’s usually so painful I bite my lip. Then I …
Build your own Startup Death Clock
Here's a simple, powerful trick for focussing your mind on one of the most important things about your startup: The date that you run out of money.
Who killed Prolog?
There are a thousand programming languages out there (Literally, it seems, according to people who actually count such things.) A classification of so many species is bound to be complex and subjec…
Why C Is Not Assembly
In response to a previous article a poster in some forum called me an idiot and said "everybody knows that C is a portable assembly languag...
Thoughts on Clojure
Programming Zen is a blog about programming and emerging technologies, authored by Antonio Cangiano, a Software Development Manager and AI Evangelist at IBM.
The Building Blocks of Ruby
When showing off cool features of Ruby to the uninitiated (or to a language sparring partner [http://stackoverflow.com/questions/1099305/why-is-ruby-more-suitable-for-rails-than-python/1099367] ), the excited Rubyist often shows off Ruby's "powerful block syntax". Unfortunately, the Rubyist uses "powerful block…
In praise of git’s index
I still run into people lambasting Git for the concept of the index from time to time. It seems strange and superfluous to users of other VCS s – like a speed bump that serves no purpose. Why not just commit the changes in the working copy? This perception is understandable; when I first heard of Git, back as a…
Programmer feel-good quote
From a bit to a few hundred megabytes, from a microsecond to a half an hour of computing confronts us with completely baffling ratio of 10 9...
Changing Passwords
How often should you change your password? I get asked that question a lot, usually by people annoyed at their employer’s or bank’s password expiration policy: people who finally memorized their current password and are realizing they’ll have to write down their new password. How could that possibly be more secure…
Pure CSS Twitter Fail Whale
This domain name has been registered with Gandi.net. It is currently parked by the owner.
The Importance of Abandoning Crap
Curating the intersection of modern lifestyle and technical obsession. We are currently architecting our systems for the upcoming launch.
Yacc is dead: An update
The draft of " Yacc is Dead " that David Darais and I posted on arXiv received some attention, so we'd like to share updates and feedback.