Wednesday, November 16, 2011

Developing on a Chromebook - Part 2: Cloud, it's not me, it's you.

...You're just not ready for me yet.

Cloud9IDE is way too buggy (sudden disconnects, unable to commit and push, endless loading, random error popups). Because of this and other shortcomings of a Chromebook (e.g. complicated opening of archives) changing just one typo in my Chrome extension's source code and deploying the new code to my browser takes me a few minutes and lots of nerves.

So, what do we (or, Chromebooks) need in order to make using it for development more comfortable?

1. Easier archive management
I want to be able to double click an archive in order to open / mount it, open / mount it using the context menu and also extract all of its files into the current directory... with just two clicks! If I'm not mistaken it should be possible to realize this using a Chrome extension (file handlers?).

2. Automated Chrome extension "building" and packaging
One thing I love about Heroku.com is how you deploy your apps: git push heroku master and you're done. Why not take this principle to Chrome extensions and Chromebooks: git push origin master, and it packages a shiny .crx file for you. You navigate to your building server (or GitHub, where the .crx file is stored?), click the file and it is being installed automatically.

3. Vim. Vim? Vim! Oh, no...
Yes, there is vim preinstalled on Chromebooks. I couldn't believe that it's real, but you're really able to start vim after rooting your Chromebook, pressing Ctrl + Alt + T, typing shell and typing vim. But the version of vim shipped with Chrome OS / Gentoo Linux seems to be different than what I'm used to in Ubuntu. At first, navigating by arrow keys appends characters ("A", "B", ...) to your currently opened file and deleting characters doesn't work. However, I figured out that enabling (or disabling?) compatibility mode fixes most of these issues (:set nocp in command mode). Some things, like editing your vimrc still doesn't work. Bummer. :/

4. Version control with git.
Writing code locally with vim on your Chromebook is cool, but who cares about that if you can't get it off of your device? I don't. I'm not really hoping for preinstalled git (although I would appreciate a packaged version of git), but I'm hoping for a workaround, like a combination of a full-blown git.js and the HTML5 file-system API, or some web service I can upload my code to in order to get it uploaded to my git repository.

5. A local editor. Local9IDE, anyone?
vim could replace a local editor in the browser, but latter would be a better solution when aiming for the masses. Like David Notario said, there's no doubt vim is "An editor for the masses"... not.
My friend Dominic started working on a local editor using Cloud9IDE components (namely, the ace editor) a few days ago. We'll see how this project evolves...

PS: My solution to problem #3 and #4 seems to be a high-end router with DD-WRT, vim and git installed, running all day long at home, waiting for my Chromebook to connect via SSH. :)

Want to read more about this topic? Check out the other posts of this series:
Part 1: Chromebook
Part 3: X-Forwarding
Part 4: Ubuntu