Mike Perham

On Ruby, software and the Internet

Entries Tagged as 'Software'

Slabs, Pages, Chunks and Memcached

June 22nd, 2009 · 3 Comments

Many people don’t know this but the latest memcached release (1.2.8 right now) can be about 15% more efficient in its memory usage than older releases. If you have a 600MB memcached server, upgrading will magically “gain” you 100MB of RAM. Why is this? When you ask memcached to store a value, it looks up [...]

[Read more →]

Tags: Software

A Guide to Varnish VCL

May 19th, 2009 · 3 Comments

I’ve been working with Varnish 2.0 for the last two weeks, going from complete n00b to someone who knows enough to feel I can improve the terrible lack of documentation for Varnish and VCL. There’s not a lot out there and what’s there is hard to find and sometimes erroneous. I’m hoping this post will [...]

[Read more →]

Tags: Software

memcache-client 1.6.2 released

February 4th, 2009 · No Comments

I released the first official update to memcache-client since 1.5.0 tonight. In the last year, my fork added a number of stability features, became the de facto “best” version and is now the official version. My goal for the next year is to get the latest version integrated into Rails. Highlights since 1.5.0 Socket failover [...]

[Read more →]

Tags: Ruby · Software

How I Achieved my Dream with the iPhone

January 15th, 2009 · 4 Comments

This article spurred me in a completely unexpected technical direction over the winter break: Massive Christmas iPod Touch Sales Boost App Store Downloads. Two facts struck me: An application which makes farting sounds was selling 40,000 units/day. I’ve had a secret dream for a year… My dream? To make a $5 keychain sold at the [...]

[Read more →]

Tags: Gadgets · Personal · Software

Consistent Hashing in memcache-client

January 14th, 2009 · 6 Comments

One of the most important features needed to create a scalable memcached infrastructure is consistent hashing. I recently added consistent hashing to the Ruby memcache-client project and I want to take a moment to explain why this is important. The Naive Approach Memcached is simple in principle: just like a hashtable, a unique key maps [...]

[Read more →]

Tags: Ruby · Software

Clojure vs Ruby, Part I

December 13th, 2008 · 34 Comments

I’m a performance guy, I’ll admit it. I love performance tuning and comparing code to see why one thing is slower than another. I’ve recently taken a shine to the Clojure programming language as it seems to combine two good things: an incredibly fast and reliable VM and a functional language designed for concurrency. Here’s [...]

[Read more →]

Tags: Ruby · Software

Ruby.rewrite Ruby

December 10th, 2008 · No Comments

Here’s an interesting talk from Reginald Braithwaite on Ruby code manipulation. I’m wondering if the difficulties he’s found in trying to build macro processing in Ruby is intrinstic in Ruby’s design. It seems like macros are a fringe feature in Ruby, but a core feature in Lispy languages due to language design. When code is [...]

[Read more →]

Tags: Software

Video: Distributed Computing

November 27th, 2008 · 2 Comments

Here’s the video for my RubyConf 2008 talk, Patterns in Distributed Computing.

[Read more →]

Tags: Software

Consensus Protocols: Two-Phase Commit

November 27th, 2008 · No Comments

A very good overview of consensus, the fundamental problem in distributed computing. My talk and politics project deal heavily in this stuff. Consensus Protocols: Two-Phase Commit at Paper Trail

[Read more →]

Tags: Software

Caption Contest

November 23rd, 2008 · 6 Comments

This blog is usually dry and technical. Let’s go off the beaten path and have a bit of fun with a caption contest. Meet Steve and his pet rat. What is he saying?

[Read more →]

Tags: Software