Communication mechanisms

Lets face it the internet has bestowed upon us many wonderful things. From the instant knowledge of Google to the voyeurism of Chat Roulette. However I’d like to focus on the latter, more to the point I’d like to focus on how internet services have begun to redefine how we as humans communicate with one another.

Since it’s inception the internet has redefined communication. Email is an obvious proponent of this, it is used daily in business to trade ideas and send messages to one another not disimilar to it’s predecessor Mail(Snail Mail) albeit a lot faster; so how else has the platform of the internet contributed to our 21st century communication mechanisms.
As a summary here’s a quick list of a few common communication mechanisms used regularly online:

  • Email
  • Instant Messengers
  • Forums
  • Skype
  • Twitter
  • Google Wave
  • Chat Roulette

The landscape in which we communicate is shifting at a rapid pace; Let’s look at Twitter for example, whilst Twitter remain quite guarded about information like the number of active users currently registered, I think it’s fair to say it is becoming a more common place communication methodology.

In Australia just try reading the public twitter stream during the airing of ABC’s Q&A Program on a Monday night. You will be presented with a flurry of #qanda hash tags, since the program now actively promotes viewer participation using that tag. And why wouldn’t they? It’s a free way for them to receive a high volume of short messages quickly. They can track the messages; follow users who are clearly interested in there service; and they can easily quantify the results of the #qanda hash tag at the end of a program. Prior to twitter this was virtual impossible. Look also at champion cyclist Lance Armstrong refusing to speak to media at the Giro d’Italia in 2009, telling journalists that have questions for him to, just send it on twitter. Ten years ago I’m not sure any sportsman of any fame could do that and get away with it like Lance did in 2009.

Ben Folds recent foray into the world of Chat Roulette is however, what really sparked my curiosity with the whole notion of new communication methods.

Fast Tube

In an ode to another Chat Rouletter Ben Folds setup on stage in front of 2000 people in concert, and connected to Chat Roulette in order to randomly connect with people throughout the world and sing to them, about what he was seeing. It’s is a fascinating and wonderful thing, a fleeting moment, that can never be recreated – think of the joy that must have overwhelmed all those involved, what an amazing way to leverage a new form of communication – that being a video chat with a random stranger.

What communications mechanisms will be next? I’m not sure that anyone would have predicted the explosion of Twitter or Chat Roulette ten years ago. Lets face it both are such simple ideas, and so simple to execute that if you’d thought they would be that big, you’d have built them yourself.

So where too from here? It’s a fascinating path, and one I’m interested in following. Communication after all is part of what makes us who and what we are; we can deliver and decode complex messages to and from one another. This in turn allows us to collaborate and problem solve better than anything else on the planet, these new forms of communication only make it all the more interesting.

Elastic Particle Experiment

The latest little Action Script experiment is “Elastic Particles” – It’s out there in the wild somewhere…

Bet you can’t find it.

Tip: Search for Snepo on a wayfinding kiosk in Chadstone Victoria…

Jar of Rubygems

I find Rubygems a great tool for manging dependencies for an application; Yehuda Katz’ recent work on the bundler gem has made that even better, by allowing you to specify and transport dependency instructions with your application. For most Ruby applications Bundler works really well. It’s fast approaching 1.0 and will be a part of the immenent Rails 3.0 release.

However. The project I am currently working is leveraging Jruby. The main reason for choosing JRuby was that this applications main data source is a .Net soap service. My initial experiments led me to find that Ruby’s SOAP implementation and the various gems didn’t really want to play nice with .Net implementation that I was working with. Hmm, Java has lots of awesome SOAP libraries, maybe I could use JRuby and levergae them. AXIS to the rescue, and it’s all been going swimmingly since.

Problem arose however when I went to use Bundler in a Tomcat instance. Creating a war using warbler and deploying it to a Tomcat instance; and well of course Tomcat has no idea how to install and/or build gems.

Turns out I can create a mini-gems repoository and store it inside a JAR. Nick Sieger has a great post about it here, but I summarize and share my experience below:

$ java -jar jruby-complete-1.4.0.jar -S gem install -i ./gem_dependecies active_support maraku --no-rdoc --no-ri

$ jar cf gem_dependencies.jar -C gem_dependencies .

Now you’ve created a jar that is basically a mini-rubygem repository. If you require ‘gem_depedencies’ then require ‘rubygems’ all those gems in the gem_dependencies.jar will be available.

One small gotcha I encoutered though, if you(or `rackup` in my case) require ‘rubygems’ first, then the gems in gem_dependencies will not be added the Gem load_paths.

You need to Gem.clear_paths after requiring your dependency bundle to force Rubygems to set_paths again.


require 'rubygems'
require 'dependency_bundle.jar'

# Force Rubygems to reload the gem paths
Gem.clear_paths

After clearing up that little issue every works wonderfully.