Firefox Add-on Automated Updates

Since Firefox moved to a rapid release cycle, there has been concern by some (including myself) as to whether add-ons would stay compatible with each of the new versions, and how one would go about testing to find any breaking changes.  In news that makes a geek happy - Mozilla has taken care of that for me as I received notice from Mozilla that stated:
Dear add-on author,

Good news! Our automated tests did not detect any compatibility issues with your add-on Google Music Hotkeys and Firefox 9.*. We've updated your add-on's compatibility to work with Firefox 9.* so that our Aurora users can begin using it.
This compatibility bump is server-side and we did not modify your add-on package in any way. If you wish or need to revert this change, just go to your add-on edit page on, select the Status & Versions page, then the version, and change its maxVersion compatibility back to its previous value.

For more information on our new compatibility process with rapid Firefox releases, please read this post:

Snakes in the Cloud

I used to think that building web applications in Python for Google's app engine was reserved for a desktop development environment.  I had hacked a bit on an app or two and used the command line tools to test and publish to the app engine.  Then I discovered CoderBuddy.   CoderBuddy is a one stop shop for building python apps for the app engine.  Once signed in you can create a blank project, or get a head start with one of six template apps.  One template is of course a "hello world" app, but there are a  few other samples including 3 that come with some Django (arguably the go to MVC framework for python web applications).   I tested a couple of the template apps and found them to be quite useful.  The "Adrian Remembers Me" template creates an app that allows users to become members and sign in.   Here is a look at the editor with the file opened for this project:

Each of these templates could be either a good launching point or reference for a new developer looking to quickly create a Python app.  Deploying to the App Engine is just a few clicks away with CoderBuddy.  So I "created" my Adrian Remembers Me app in one click and about two minutes later had my site running on the app engine at  The ease of deploy along with the ability to upload files and download the project as a .zip I will definitely look to CoderBuddy for part if not all of my next project.

Cloud 9 adds Heroku Support

--- title: "Cloud 9 adds Heroku Support" date: 2011-09-02 comments: false ---
One of my favorite online IDEs has added support for Heroku.  This is great news as I have enjoyed developing node.js applications in Cloud9 but felt that the main thing it lacked was a method to deploy directly to the cloud.  So I took it for a test run.  I signed in to Cloud 9 and created a simple hello world app, make sure you use the process.env.PORT to listen on so Heroku can deploy it properly.

Commit your changes via the Cloud 9 git interface. Then all you have to do is click the Deploy button in Cloud 9, sign in to Heroku, create your new instance, and deploy. If you haven't created a package.json or Procfile (needed for Heroku deploy), Cloud 9 will create those for you. My hello world is at

github goes ace (and demos)

A week ago GitHub announced they were incorporating the Ace editor (which powers the Cloud9 IDE).  Since I am a fan of both Cloud9 and GitHub, I gave it a whirl on my GitHub Pages site and was not disappointed.  As advertised one can easily open a file for editing, preview the diff of your changes and commit.  I think it will likely become useful to edit posts when (if) I finally decide to move my blog from here at Blogger to Octopress (just because it looks fun).  For me, this is particularly useful for simple changes like those I have made to my demos and experiments.  Speaking of demos, I had created a simple drawing app using HTML5 canvas for my preschooler which evolved into a demo of the HTML5 History API thanks to a tweet by Christian Heilmann and subsequent read of his blog post.  I decided to use this History API to create the undo/redo functionality that I rely on heavily if i'm trying to draw something in a painting tool.  As a bonus I added a localStorage call that will recreate your last drawing if your browser closes or you are forced to leave the site for a while.  What does that look like:

 I entered the demo in the DevDerby, you can find it here.  I hope you 'like' it too.  (note: I've only really tested my demo on firefox 5, 6, 7, and 8 as well as chrome 13 & 14, so your results may vary if you use a different browser)

Chrome Dev Tools as an IDE

I've spent a lot of time trying to find the best development method in Chrome OS.  Recently I decided I wanted to create a chrome extension using Chrome OS.  My first stop was CodeRun IDE which has a sample Chrome Extension project so I thought it would be great for a starter.  The development is pretty mess free, but the problem comes once its downloaded.  It comes downloaded and zipped.  When loading an unpackaged Chrome Extension you can point Chrome to a directory, but not a zipped directory.  So I had to unzip the files...which was pretty easy to do once I found wobzip.

Now that I had a skeleton Chrome Extension up and running, I could start to make it my own.  I decided on a simple calculator for starters, plus I thought it might be useful.  I have to admit it had been a while since I'd used the user 'chronos' in Developer mode, but once I got it there I found that Chrome OS had a new default text editor (thankfully) in 'vi'.  This is where it got really fun.  I edited my popup.html file to have a stylesheet and JavaScript file and loaded the html directly in Chrome.  Enter the best web app ever... Chrome Dev Tools.

With Dev tools I am able to make changes to my stylesheets through the inspector to get the style just how I want, then save the modified .css file to the extension directory.
 Similarly, I can edit and save versions of my JavaScript file directly from Dev tools.  The only issue with this is when I overlooked some invalid code which prevented Chrome from loading the JavaScript file.  This was not much of an issue the one time it happened to me, as I was able to enter vi and quickly rectify the rogue curly brace and was back to Dev Tools in no time.  So If you ask me what my choice is for rapid JavaScript development, I'll say Chrome Dev Tools.

 The result from blank files to:


I Cloud

Earlier today Apple announced a revolutionary set of services called iCloud.  I must say it sounds incredible to be able to edit a document, sync contacts, view my calendar, listen to music, read my electronic books, view my photos, and access my email from any internet enabled device. , It does seem like a great advantage to not have to upload to a cloud music service like the Amazon Cloud Player or Google Music, which iCloud offers via iTunes "scan and match" and I'm certain it will be another service I try in my attempt to find the best cloud experience.   I've been happily clouding for some time now, and hope that Apple does good things in the space.  Happy clouding.

Chromebook first dibs

Being a test pilot has some perks.  The latest of which is a special invitation to early released Chromebooks via the Gilt Groupe.  Below is the email I received earlier today inviting me to Gilt's privileged offering of the newest Chromebook.

Be the first to get a Chromebook.
Since we announced the Chrome Notebook Pilot Program back in December, we’ve been humbled by the amount of interest that we’ve received from users like you.
We’re excited about the brand-new Samsung Chromebook that goes on sale on June 15. Fortunately, we’ve managed to get our hands on a few machines a little earlier, and we’d like to make these available to you, our biggest enthusiasts.
When you buy your Chromebook, you’ll also be getting a limited edition, custom-fit Chrome sleeve designed by Rickshaw so you can carry your new Chromebook in style.
Our good friends over at Gilt, the premier invitation-only shopping site, have agreed to put these Chromebooks up for sale -- but only for a very limited time.
Samsung Series 5 Chromebook

Duostack acquired by dotCloud

A few weeks ago I wrote about utilizing the Duostack platform as a service to host a Node.js application on the cloud.  Today Duostack announced they were joining forces with dotCloud, another platform as a service provider.  Here is the announcement as I received it:

 Duostack Announcement - May 24, 2011

We are pleased to announce that Duostack is joining forces with DotCloud.
DotCloud is a Platform as a Service that provides unsurpassed flexibility. Developers have the freedom to assemble their own deployment environment by selecting stack components on DotCloud, instead of being restricted to a limited stack configuration typical of cloud platforms. Supported components include PHP, Ruby, Python, Perl, Java, Node.js, MySQL, Redis, RabbitMQ, Solr, PostgreSQL, and now MongoDB.
As part of DotCloud, we will continue to raise the bar for cloud platforms and further our commitment as the best place to deploy apps.
See the full acquisition announcement here:
What does this mean for apps hosted on Duostack?
Current Duostack developers will receive immediate access to DotCloud. Invite codes will be delivered by email.
Apps currently hosted on Duostack will remain online through the end of June 2011. We will provide assistance for migrating apps to DotCloud. More information about the transition will be available this week.
The Duostack name will be phased out. However, the best parts of the Duostack platform and the feedback from our beta program will be incorporated into DotCloud. This starts today as DotCloud launches support for MongoDB, and there is plenty more to come.
We are very happy to welcome you to DotCloud.


--- title: "Chromebooks!" date: 2011-05-12 comments: false tags: - chrome os ---
Yesterday, at Day 2 of Google I/O, it was officially announced that Chromebooks will be available in retail locations worldwide starting June 15th.  Perhaps even more exciting news was the mention that for Educational institutions (and businesses) these would be available at $20/month/user ($28/mo/user for business) which could be a huge savings (70% over traditional PCs according to the graphic here).

Here is the Keynote from Google I/O day two for those who missed it:

Duostack: Cloud Platform as a Service

I have been using and trying many of the all-in-one solutions for web-based development on my Cr-48, but what happens when your favorite editor does not deploy directly to where you want your app to live (cloud9)?  I tried this recently with a NodeJS app and a cloud platform (currently in beta) called Duostack.  For my NodeJS app, just as everyone else toying with Node, I reinvented reworked the wheel and used Ryan Dahl's (creator of NodeJS) basic chat application.  All I did was partition the client to act like it had multiple rooms rather than one group room as in the original.  That is not what this post is about. This post is about how easy it is to get a node instance up and running on Duostack.

Duostack is a super easy to use cloud platform as a service for Node and Ruby apps.  Databases that are available by default are MySQL, MongoDB, and Redis (the documentation states external DBs are welcome).  The deployments live on the Amazon EC2 by default, but there is 'cross-cloud reliability' that will allow for fail over to the Proactive Cloud in case of a possible Amazon outage.  Deployment is as simple as it could get with a cloud platform (well it could get simpler, but its super easy as you can read below). 

To setup Duostack I had to move away from Chrome OS and into Ubuntu on my Cr-48.  I followed the simple steps to get the command line interface installed.  I used the curl method versus the node package manager install and had my Duostack instance configured shortly thereafter.  So now to create a Duostack app.  This is even easier then setup of the command line client, simply type 'duostack create <yourappnamehere>' and you have it. Duostack uses Git to control deployment so deploying is also a snap, just feed the command 'git push duostack master' from your git repository, wait a few seconds while Duostack works the deployment magic, and you have your Duostack application deployed.  Mine lives here.  So far I am more than pleased with my Duostack beta access and invite anyone with interest in deploying a Node or Ruby app to a cloud platform to signup and give it a try.  I have a few other betas for platform as a service solutions to check out, but Duostack got first dibs by granting me beta access before the others.