doing it for science
Jun 24th 2009
Much to my non-surprise, someone has already gone and hacked up a crude Wave server using Django and Orbited.

Naturally, it's incomplete, as are the standards it aims to implement, but the author intends for it to evolve into a full implementation. For now, it's apparently suitable for testing gadgets, one of the numerous extension types.

It won't even let you see waves unless you are invited to them, so if you sign up, post your id and I'll add you to my awesome wave. Alternately, invite jedediah@pygowave.p2k-network.org to yours. I'll bring snacks.

Me and the other smart people are tinkering with Wave stuff now. What are you working on? A Twitter mashup? Tsk tsk, and you had such potential.
Jun 17th 2009
Here's another little gem I just factored out of my monolithic .irbrc file:

http://github.com/jedediah/debuggerer

It's a simple but powerful debugger that can be used conveniently from within IRB. It lets you quickly run fairly elaborate debug operations on a block of code.

For example Debuggerer.watch_if("thingy.bloop", "yerk.is_a? Fnord") { ... } will evaluate the block while showing a source trace with the value of "thingy.bloop", but only for lines where "yerk.is_a? Fnord" is defined and true.

It also supports conditional breakpoints and convenient wrappers like Debuggerer.run_until(condition) { ... } or Debuggerer.run_to(klass,method) { ... }.

And of course, it's full of pretty colors.

It's only barely usable at this point and I haven't even flipped the gem switch on Github but hey, release early, release often, right?

BTW my friend Stacey thinks it's hilarious that they are called "gems" and we Rubyists spend all our time making as many "gems" as we can.. and really, she's right.
Jun 10th 2009
Here's a little gem I've been working on that just might be ready to show it's face in public:

http://github.com/jedediah/print_members/tree/master




It's an interactive doodad for Ruby 1.9 that probes a class/module and shows you just about everything there is to know about it, in pretty colors. I find that about every second or third line I enter in IRB is a call to this thing.



For the most part, the info comes from Ruby's reflection features but it also parses source files to get method parameters, which is surprisingly non-slow.


The gem can be installed directly from github:
gem install \
    --source http://gems.github.com \
    jedediah-print_members

I'm taking suggestions for a more fun name.
Jun 10th 2009
If you have a Telus mobility account and you're having trouble logging in to their new "improved" web site, and your username is longer than 15 characters, try just the first 15 characters.

Also, if you use http://guru.com and your username is longer than 12 characters, ditto.

And lastly, if you are a web developer building an account system, or overhauling an old one, and for some reason you feel compelled to impose a length limit on usernames or passwords, please give your users at least a subtle hint that you are doing so, rather than silently mangling their credentials.
Jun 4th 2009
If you haven't already, watch this right now.

Without the decentralization/federation aspect, this would still be an amazing web app that would wipe out every other communication platform.

But if this thing is completely open and federated when they launch.. if I really can download their server implementation and get my own Wave server running instantly.. and we can hack on any part of the stack, end to end.. then this is, without exaggeration, the biggest fucking deal since NCSA Mosaic, bigger really since that was just a client.

This solves about 3/4 of the current problems with the internet. Communication, collaboration, publishing, interop, extensibility, open standards, early community involvement.. they've got everything covered and from what I can see, they've done it all perfectly. Google has fixed the god damn internet. I was fighting back tears watching this.

A unified standard for human communication is long overdue. I started sketching one out myself a while ago, but I never wrote a line of code. Why bother? Too much to write (if you're not Google) and no way to get critical mass (if you're not Google). I had resigned myself to a future of crippled, insecure silo junk like Twitter, Facebook, and Gmail (yes, it's a silo). And then.. this. Kaboom.

You won't be hearing Twitter brag about how they have no features and a character limit anymore. You probably won't be hearing about them at all in a few years. They add no functional value to communication.. they are architectural middle-men and Wave mends the wound they were sucking on.

Facebook can win big if they start integrating with (more like migrating to) this now, but they might have to turn their code upside down. For any app that is not just a stopgap or glue, that has actual functionality, or anybody who has unrealized visions for such an app, Wave is a very very good thing.

Email is finished. Spam is finished.

A lot of existing code will be thrown out, things will be a lot simpler, and developers will start working on entirely new classes of problems.

I've never been a big Google fan, but this redeems them for any lapses in their once believable "don't be evil" policy. In fact, this kind of fanaticism is not like me at all, but this is the real deal. Remember where you were.