Monday, February 18, 2008

S3 Outage

A bit surprised this didn't make more news, but I find the S3 outage (originally via Tim Bray) fascinating. From what I can tell reading between the lines, it seems as though a handful of demanding clients ground the service down with bad authentication requests. Makes sense on some level, auth requests are computationally expensive and in this case, they came from within EC2. My guess is that Amazon treats EC2 as a more privileged network and ultimately allows a higher QoS level between EC2 nodes and S3 nodes. So, while it may be en vouge to diss "architects", it's also important to have people around who understand the fundamentals from TCP stacks through the crypto and application layers and who build reliable systems across all three.

My prediction is that we'll see more of these incidents from EC2-hosted nodes, then growing out to bad S3 requests across the public network launched from various bot nets. It's not an easy problem Amazon is undertaking with EC2 or S3 to begin with, it's an even more difficult one to protect from DDoS and DoS attacks.

Wednesday, February 13, 2008

The Power of Simple, Online Collaboration

I won't attempt to use any fancy market-speak or terminology. I've long been a believer in how blogs and wikis can drive collaboration inside a company. One of the things Jive is really good at is capturing ROI around open collaboration in quantitative terms and telling a compelling story. Sam's latest blog is a great example. In short, based on a self-organizing set of categorizations, we can track cross-departmental collaboration and interactions. Cool stuff, not the type of data you can see from Share Point, that's for sure.

Friday, February 1, 2008

Rhino with readline - Hurray for rlwrap

Stumbled across dr.bob's sweet post on getting a readline wrapper around rhino.

Prior to reading his post, I had no idea rlwrap even existed, I'm simply amazed. GNU readline is IMO one of the most useful abstractions in all of *nix-dom. If I had known that I could use it even with tools that weren't readline-enabled, my previous lives would have been much easier. For example, looks like some foo-equipped DBAs (inspired by one of my heroes Tom Kyte) have found a way to use rlwrap to get a command history for sqlplus. It's been ages since I've actually used sqlplus (most time these days is in psql thankfully which natively supports readline), but this would be step 0 in my Oracle client install.

Anyway, back to Rhino. rlwrap + rhino is lethal. Gives me vi key bindings in rhino.

My setup ended up like so:

* Installed Rhino to ~/java/rhino
* Created script in ~/bin which was already on the path
* chmodded said script
* Added vi editing mode to ~/.inputrc
* Edited rhino commands with vi bindings
* Lived the good life

The various files looked like so:

~/.inputrc
set editing-mode vi

~/bin/rhino
#!/bin/bash
for jar in `find ~/java -type f -iname '*.jar'`; do
export CLASSPATH=$CLASSPATH:$jar;
done
rlwrap /opt/java/current/bin/java -cp $CLASSPATH org.mozilla.javascript.tools.shell.Main -strict "$@"


Drop an exploded rhino anywhere into ~/java, and you're good to go.

Of course, GNU Readline supports hundreds of options including other bindings like emacs if your are so inclined.