26 April 2011

changing old habits

I have been doing a lot of development on my Cr-48 lately.  And as I sit here coding away I wanted to note how useful chrome is to me as a developer.  As I have written about previously there is a plethora of web-based IDEs to develop with in Chrome OS.  So what I have been finding particularly useful regardless of the development environment is something any chrome user (I'm talking browser now, not OS) can utilize...the Chrome Developer Tools.  Before I received my Cr-48, the majority of my browser based debug sessions lived in Firefox with the amazing and powerful tool Firebug, but thanks to Google I was forced to try something new.  I thought nothing else compared to Firebug (I am not going to speak out against Firefox or Firebug as both are spectacular), but as I have familiarized myself with the Chrome tools I find they are just as powerful and robust.  I love how easy it is to inspect an element on the page and edit CSS and JavaScript, check network events, record a timeline, or just drill through local variables in the console.  So if you are like I was, before you move from chrome to some other tool just to step through your JavaScript in the console, stop and give the Chrome Developer Tools a try, you might decide to stay.

16 April 2011

Chrome OS Everyday

Writing code in the browser with Chrome OS is an important item for me as a developer and there are a growing number of apps available to get your geek on in the cloud, but what else is awesome on Chrome OS?  Tons of things.  I have been almost exclusively utilizing my Cr-48 since early February at home, with the exception of my taxes (chrome beta/dev wasn't supported),  some photo management, the time when the developer build rendered the OS impossible to use (hooray for being a test pilot), and the occasional connection to my remote work computer.  So it is promising that I am able to find a replacement for everything I do on a computer in Chrome OS with limited exceptions.  What else?

I recently have been running some rigorous durability tests on my Cr-48, or I guess I should say Preschooler compatibility tests.  I realized this was needed when I arrived at my son's daycare to see a dozen preschoolers huddled around a computer clicking things and learning their letters, numbers, and sequences.  At home my son enjoys the stock windows Paint... a bunch.  What could I use on the Cr-48?  deviantArt muro is a cool choice although it took us a bit to get used to the track pad.  Of course the Chrome web store has many options like Poppit, a balloon popping game which really tests the durability of the track pad.  But one of my favorite apps is MeeGenius! Children's Books, which reads classic children's books out loud and highlights the words as it reads.  Our favorite kid friendly site is and has been the PBS kids site which as an avid PBS kids family is full of friendly educational games from our most familiar characters.

For me, I have recently been utilizing my Cr-48 to read books on Google Books.  It may not read super easy in direct sunlight, but I can read at night without a light.  There are tons of books, "over 3 million", which is enough to keep any reader busy for a while.  So there is plenty for everyone on Chrome OS, especially for everyday computer needs.

09 April 2011

ShiftEdit web-based IDE

I have come to the conclusion that there is plenty of selection for online application development using a web-based development environment.  After trying out several online IDE's over the last few months I was asked by a reader to check out ShiftEdit.  I had read that this was an editor of choice for many on some of the Chrome OS forums where the question of what is used to develop on the Cr-48 usually shows up.  So I decided I would try out another IDE to get a feel for how it compares to others I have tried.


First off, bonus points for allowing Google (or Facebook) login.  After authentication, this feels like a desktop IDE similar to what I feel like in CodeRun, Cloud9, or Akshell (I usually test this by going full screen on my Cr-48 and say its good if it isn't obvious I am in a web browser).  Selection of file formats is diverse and allows for PHP, HTML, JavaScript, CSS, Perl, Python, Ruby, Java, or Text with built-in FTP support, which is nice for those who enjoy diverse development.  I tried to create a trivial web page and was pleased with the HTML editor with the exception of when I tried the split view (HTML and Design viewed at the same time) I found it hard to keep the focus on the HTML screen and ended up navigating away from the editor when hitting backspace to delete a <div>.  This is not a huge deal as I would likely not develop full time in split view.  


JavaScript editing is almost too full featured for my taste by default.  There is an auto complete feature that will auto close brackets in your code as you type.  I found that I was creating double closing brackets so I turned that feature off which was easy enough in the Edit -> Preferences menu.  However,  JSLint is a wonderful addition to any JavaScript Editor, and is fully configurable in the Preferences section (so if you don't like to be forced to use === instead of == you can allow that).


A feature that I've recently learned is important to me in an online IDE is allowing for multiple tabs to be opened at once.  ShiftEdit does this well. (I have been working a lot in Akshell for some recent development and the lack of tab support is nearly a deal breaker...along with the times when I log in and all the open files disappear and I have to select the current project again to restore the view).  There are many other features that I have yet to try in ShiftEdit which could be handy, though I'm not sure I'll try them out anytime soon.  Perhaps I will never need to utilize them.  


I have found I'm no longer sure what I'll be using as my web-based development environment (most likely a combination of many, just as I develop in a desktop environment).  I am fairly certain I have seen enough for now (of course if you have found "the best" one, let me know, I'll check it out) that I will be able to find the one (or two, or three) that suits my needs best.  Recently I've been trying all these IDE's out and sticking with the current flavor of the week only to later find out certain limitations or something that I preferred in a different editor.  This is no different than using a full featured text editor outside of Visual Studio for example to edit JavaScript or XML files because I don't particularly care for the way these appear in Visual Studio.  What I really need or want in a cloud-based IDE is still being defined as each one's limitations or offerings reveal themselves through  repeated use.

03 April 2011

Cloud9 revisited

A while ago I tried to use Cloud9 IDE to code in the cloud on my Cr-48 and it was too buggy to even try to accomplish anything in it.  It now appears that the issues have been resolved.  I have been interested in learning some of the awesome that is node.js.  I could easily move to my Ubuntu partition, install and build node, and try it there.  However, I really like Chrome OS and I've really been enjoying my other Google V8 JavaScript engine based development with Akshell so why not try Node.js in the cloud too.  Cloud9 is the perfect place for this.

First let me say the the github integration with Cloud9 is super smooth.  To start editing a github based project just enter the github url and click "start editing".  So I created a new github repository and started a simple web server with node to see how it would go.  I checked out one of Ryan Dahl's (the creator of node.js) introductory videos to get a simple server created in my server JavaScript file.   Then I setup the server configuration in Cloud9 which only required me to tell it which JavaScript file to use and what command line arguments to send it (i.e. "node server.js") to get it running.  Cloud9 does not let you specify a port number like one would in a desktop environment, but they add a helpful hint when running a server "Important: in your scripts, use 'process.env.C9_PORT' as port and '0.0.0.0' as host."  So I modified the server file with the tip, clicked run and sure enough I created a node.js server.

I think using node.js on Cloud9 is up to par with any other web-based IDE.  One thing it lacks versus something like Akshell or Kodingen is the ability to deploy to a subdomain directly.  I can however build my app up (if I continue to use Cloud9 versus Akshell) and then deploy to a node.js hosting platform like duostack.  For now I plan on using Cloud9 to learn some node.js and see what things I can make with that.