Julia is awesome, but..
Here's a language that gives near-C performance that feels like Python or Ruby with optional type annotations (that you can feed to one of two static analysis tools ) that has good support for macros plus decent-ish support for FP, plus a lot more. What's not to like? I'm mostly not going to talk about how great Julia…
Will It Optimize? (2010)
See how well you know (or can anticipate) gcc's optimizer. For each question, the left box contains some code, while the right box contains code that purports to do the same thing, but that illustrates a particular optimization. Will gcc apply that optimization? Put another way, will the code on the left be as fast as…
Java Pain
In 2014, it’s not OK if it’s hard for a developer to run a simple program from the command line.
Code review without your glasses
You’re part of a preternaturally enlightened dev team, and have set aside an entire day for nothing but code review. However, after the first 2 hours, you realise that you have forgotten your glasses and have just been staring at colourful blurs all morning. What do you do?
A Year of Functional Programming
It's been a year since I first came across the concept of functional programming. To say it's changed my life, is an unjust understatement...
Celery – Best Practices
If you’ve worked with Django at some point you probably had the need for some background processing of long running tasks. Chances are you’ve used some sort of task queue, and Celery is currently the most popular project for this sort of thing in the Python (and Django) world (but there are others).
Interface Upgrades in Go
Much has been written about Go’s interfaces . They’re one of the language features I like best, providing a very pragmatic trade-off between the complexity of more powerful type systems and the anarchy of duck typing. If you’re not already familiar with Go or Go’s interfaces, I’d encourage you to read an introduction…
History of Apache Storm and Lessons Learned
Apache Storm recently became a top-level project , marking a huge milestone for the project and fo...
Why I like XSLT
I first fell in love with XSL in 1999, when Microsoft rolled an XSLT processor into MSXML. I got my hands on the works of Shakespeare marked up in XML
Clojure to die for
A selection of the details that makes Clojure such an enjoyable language to work with.
Evolutionary algorithm to find Quake III's fast inverse square hack with Python
Curiosity killed the cat I've always been amazed by early game developers. Unlike today, they had to bend and twist software to its extre...
The programming error that cost Mt. Gox 2609 Bitcoins
In October 2011, Mt Gox lost over 2609 bitcoins by accidentally creating transactions that can never be redeemed. (At the time, 2609 bitcoin...
Why I like Common Lisp
In a recent email exchange discussion, Charlotte Herzeel gave a summary of Common Lisp that I believe is worth repeating publicly. With her ...
Lost Lessons from 8-Bit BASIC
It's not about technology for its own sake. It's about being able to implement your ideas.
Go 1.3 Linker Improvements
Go obtains much of its compilation speed from the Plan 9 compiler, of which it is a direct descendant. The Plan 9 toolchain deferred much of the work traditionally performed by a compiler to the linking stage and its performance was summarised in section 8 of this paper
On Error Handling in Rust
My thoughts about error handling in APIs after writing a Redis library in Rust.