» tagged pages
» logout

sorted by: recent | see : popular
Content Tagged with Kellan-Elliot-Mcrea + Programming

A Couple of Caveats on Queuing

“The Great Rotary Duck Race,” benefiting agencies that fight child abuse.

Les’ “Delight Everyone” post is latest greatest addition to the 17th letter of the alphabet for savior conversation.

And believe me I’m a huge fan, and am busy carving out a night sometime this week to play with the RabbitMQ/XMPP bridge (/waves hi Alexis).

But …. there are a couple of caveats:

1) Some writes need to be real time.

Les notes this as well, but I just wanted to emphasize because really, they do.

If you can’t see your changes take effect in a system your understanding of cause and effect breaks down. It doesn’t matter that your understanding is wrong, you still need one to function. Ideally a physical analogy too. There are no real world effects that get queued for later application. Violate the principle of (falsely) seeming to respect real world cause and effect and your users will remain forever confused.

del.icio.us showing you the wrong state when you use the inline editing tool, and Flickr taking a handful of seconds to index a newly tagged photo are both good examples of subtly broken interfaces that can really throw people.

My data, now real time. Everyone else can wait (how long depends on how social your users are).

2) You’ve got to process that queue eventually.

Ideally you can add processing boxes in parallel forever but if your dequeuing rate falls below your queuing rate you are, in technical terms, screwed.

Think about it, if you’re falling behind 1 event per second, processing 1,000,000 events a second, but adding 1,000,001 for example, at the end of the day your 86,400 events in debt and counting. It’s likes losing money on individual sales, but trying to make it up in volume.

Good news: Traffic is spiky and most sites see daily cycles with quiet times.

Bad news: Many highly tuned systems exhibit slow down properties as their backlogs increase. Like a credit card, processing debt can get exponentially unmanageable.

In practice this means that most of the time your queue consumers should be sitting around bored. (see Allspaw’s Capacity Planning slides for more on that theme.)

If you can’t guarantee those real time writes for thems that cares, and mostly bored queue consumers the rest of the time then your queues might not delight you after all.

See also: Twitter, or Architecture Will Not Save You

Kellan-Elliot-Mcrea: Laughing Meme

Working Notes on Consistent Hashing

Nice to see consistent hashing go from obscure to blindingly obvious in a few short whitepapers.

Dynamo is certainly the sexiest discussion of distributed hash tables (DHTs), while Programmer’s Toolbox Part 3: Consistent Hashing is the most straightforward. libketama is open and easy to use implementation of the 64-bit space mapped to a circle style consistent hash, discussed above and originally “popularized” by Chord. (and proposed over a decade ago)

And best quote:

“…and if anyone tells you that you shouldn’t use MD5 for this because it isn’t secure, just nod and back away slowly. You have identified someone not worth arguing with.”

Kellan-Elliot-Mcrea: Laughing Meme

Alan Kay - Wikipedia, the free encyclopedia

"Technology is anything that wasn't around when you were born", "People who are really serious about software should make their own hardware", "I invented the term Object-Oriented and I can tell you I did not have C++ in mind", and more great quotes

Kellan-Elliot-Mcrea: del.icio.us/kellan

OAuth in PHP (for Twitter)

Mike released HTTP_Request_OAuth today, so I spent a little while this evening coding up Service_Twitter as helper class for making OAuth authorized requests against the Twitter API.

Both are early enough in the dev cycle to be called proof of concepts.

Mostly I wrote it because I had always envisioned there being wrapper libraries around the low level OAuth implementations that wrapped the calls, and constants, and as Mike graciously went out and wrote a low level library I felt compelled to write a wrapper.

Also twittclient, an interactive client for getting an authed access token, essential to bootstrapping development.

And nota bene, HRO currently only supports the MD5 signing algorithm, which is undefined in the core spec, and subject to change. (Just in case you didn’t believe me about the early state of things.)

Kellan-Elliot-Mcrea: Laughing Meme

r0ml.net: History teaches us …

r0ml.net: History teaches us ….

r0ml explores the secret Catholic bias present in Java enterprise development. (in case the hair shirts weren’t a dead giveaway)

Kellan-Elliot-Mcrea: Laughing Meme

shaver » the high cost of some free tools

If you choose a platform that needs tools, if you give up the viral soft collaboration of View Source and copy-and-paste mashups and being able to jam jQuery in the hole that used to have Prototype in it, you lose what gave the web its distributed evoluti

Kellan-Elliot-Mcrea: del.icio.us/kellan

Liminal Existence: MapReduce in 36 lines of Ruby

Liminal Existence: MapReduce in 36 lines of Ruby.

Amazing what you can do with a higher order functional language, and a couple of good libraries. Short step to (1..100).each { ec2.spin_up }.dmap { hard problem }.inject { take over the world }

Kellan-Elliot-Mcrea: Laughing Meme

Twitter from TextMate

Twitter from TextMate.

Every since I heard about this, I’ve been thinking this could be adapated to be actually useful if instead of Twitter it posted to snippets site, like pastie or pastebin

Kellan-Elliot-Mcrea: Laughing Meme

Page 1 | Next >>