I’ve noticed a problem with iChat for the last year or two: if your network drops, you stay Disconnected until you manually tell iChat to log back in. That’s pretty lame, my Comcast cable drops several times a day so I need something a little more robust than that. I found a workaround: use cron [...]
Entries Tagged as 'Software'
Getting iChat to automatically reconnect
December 30th, 2011 · No Comments
Tags: Software
Background Processing vs Message Queueing
May 4th, 2011 · 8 Comments
One common simplification I see engineers make is equating message queueing with background processing. This is what they are missing: message queueing is a superset of background processing. All message processing is done in the background but background processing does not have to be done via message queues. Take a simple use case: “I want [...]
Tags: Software
Node.js Roundup
March 18th, 2011 · No Comments
I just finished a three-part series of blog posts on Node.js over on the Carbon Five blog. JavaScript and Node are very different from Ruby and EventMachine, providing me lots to learn over the course of the last few weeks. Take a look; I hope you learn something too! Node.js, Part I: Overview Node.js, Part [...]
Tags: JavaScript
The Dangers of Shortcuts
March 1st, 2011 · 1 Comment
MongoDB has amazing write performance. Node.js has great I/O concurrency. Telehash is an extremely efficient wire protocol. All three of these systems have a common theme: they take a shortcut in order to provide a leap in performance over existing systems. In MongoDB’s case, they don’t provide true durability so writes can be batched into [...]
Tags: Software
Apache Tuning
November 22nd, 2010 · 5 Comments
Want to wreck your afternoon? Just have a poorly configured WordPress install linked from Hacker News. Here’s the postmortem. In my case, my slice was freezing. I didn’t know what the problem was until I ran top and saw this. Yikes. The problem was the Apache is configured by default to allow up to 150 [...]
Tags: Software
Always Be Closing
October 6th, 2010 · No Comments
I’ve been working on a complex telecom system recently with a codebase that is hard to trace and learn. Given several tickets to fix, my morale flagged a bit as I waded through code last week. Then I remembered an easy morale booster for me: close at least one ticket a day. As an engineer [...]
Tags: Software
Securing Network Services
August 5th, 2010 · No Comments
The recent memcached security exposé highlighted the fact that simple vulnerabilities require constant vigilance and education for new developers. Rule #1 of Network Security: Don’t expose services which are not designed to be exposed. Web and app servers will usually have 2-3 ports open to the public: ssh, http and https. All others should be [...]
Tags: Software
Detecting Duplicate Images with Phashion
May 21st, 2010 · 9 Comments
Recently I was given a ticket to implement a “near-duplicate” image detector. Look at these three images: The original image files have different bytesizes and different sizes but they show essentially the same thing. This is what we call a “near-duplicate” and the problem was that when displaying an automatically generated image gallery for a [...]
Stream Processing and “Trending” Data
May 5th, 2010 · 1 Comment
The Britney Spears Problem is a fantastic article from American Scientist about real-time processing of streaming data to determine trends. I love discovering clever new algorithms and the “majority algorithm” is simple, easy to implement but something you probably wouldn’t think up yourself if solving the same problem. If you’ve ever wondered how Twitter’s trending [...]
Tags: Software
Risk and Startups
April 20th, 2010 · 11 Comments
I’ve worked at 7-8 startups in the last 12 years, learning along the way that I love the freedom and flexibility that a small company affords. You pay a good price for that freedom though in the form of risk: your job will be measured in terms of months and years, not decades. My parents [...]