Showing posts with label IDE. Show all posts
Showing posts with label IDE. Show all posts

07 July 2011

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:


and

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.

26 March 2011

A Better Web-Based IDE

After a few days this week without Chrome OS due to a fun error in the Dev build (though its never bad to be able to revert to Ubuntu), I am able to be a Cr-48 nerd again.  The other day one of the three readers of this blog tipped me off on Akshell, another online development environment, which I quickly dove into in order to compare it against some of my other favorites which I have checked out previously here, here, and here.  By far my favorite has been Kodingen, I still go to it to code around and generally geek it up.  This all may change.

Akshell is a brilliant development environment that utilizes JavaScript for not only the client-side programming, but also the Server-side.  There are many cool features to how apps are developed and integrated in Akshell, which can be found in their documentation here.  I have found the environment to be amazing to use utilizing the default "ak" library and their Model-View-Controller framework.  For my first test I tried to remake (and improve) the test site I created on Kodingen with Akshell.  I found it was super fast to build with the Akshell environment and enabled me to test and preview just as smoothly as Kodingen though I think the interface with Akshell is much easier to navigate (perhaps because most of the features in Kodingen are still disabled in its current Beta state).  I must admit that I did utilize jsFiddle to quickly enhance my HTML5 canvas that I had created in Kodingen and then simply copied the JavaScript to Akshell.  So what does a quick Akshell site look like?  See mine here.

One of the promising things about Akshell that I'll be getting into soon, is their relational database (PostgreSQL) that is accessible with their "Simple JavaScript API".  From the documentation and the quick test I did with their relation variables I have to agree it is simple to use.  I hope to get some time to get an app going that utilizes this database functionality soon.

I don't know if I like Akshell an better than Kodingen as far as functionality and features (they both let you code, use a database, and deploy directly within their apps) but I can say that Akshell seems to be a more elegant solution to the online coding environment so I will definitely be using it for my next online coding endeavor.

09 March 2011

RAD with WaveMaker

Yesterday VMware announced they had acquired WaveMaker.  I had not explored WaveMaker, but luckily the news exposed this wonderful development tool for me.  WaveMaker is a tool for Rapid Application Development (RAD) that is perhaps the worlds greatest WYSIWYG editor.  Not just WYSIWYG for HTML or page layout, but it can completely eliminate the need for Java coding and with its integrated data structure mappings with Hibernate it can easily integrate with any enterprise database.  The point is that anyone who is computer capable can write a fully functional web application and maintain it without the need for developer time.  As a bonus, there is integration with the big names in cloud hosting like Amazon EC2, Rackspace, Eucalyptus, and OpSource

I checked out the example videos and was amazed.  I was especially excited because I of course noted there was a cloud version available.   Of course the site is down for maintenance without any idea as to when service would be restored.  Being an avid user or Chrome OS on my Cr-48 I was extremely bummed.  So I decided to  cheat a little (its still browser based app development, however it required installing software) and I cranked up developer mode on my Cr-48 and entered my Ubuntu Linux boot.  I downloaded WaveMaker and kicked it off.  

Amazing.  I created a test project with one of the provided templates and started dragging objects onto my web page.  Styling is available at the click of a button, and wiring up events to buttons exposes so special handling can be added.  I can already grasp the power of this tool and I have not spent a whole hour in it.  I can imagine in the coming days and weeks as I get the chance to get more familiar with it, I will be even more amazed.  I am also excited for when the cloud.wavemaker.com site is operational again when the true power of being able to code an application in the cloud and even deploy to a cloud host like EC2 without leaving the comfort of the browser.

17 February 2011

Coding in the Cloud: Part I

As a web developer I feel tethered to my desktop workstation, sure I can work remotely, but how can I code in the cloud without the need for a desktop development environment.  There are several cool tools for cloud-top development environments two of which I have been trialling recently.

CodeRun is a development platform for three main types of applications, C#, JavaScript, and PHP.  To get started all you need to do is go to the CodeRun IDE select "New" and you can choose the project template of your choice and go.  Most templates start with a clever label or button as a started, for example the jQuery UI project template starts with a "HelloWorld" dialog.

One can also upload an existing project which I have stored elsewhere and get to work.  This could be a great alternative to remotely connecting to an office based IDE and coding through that connection.  With the CodeRun platform the user has access to debugging tools and an in browser secure "temporary sand-boxed environment" in which to run your projects.

In my opinion a fantastic feature of this platform is the repository of code samples.  CodeRun allows a user to share their code, assigning it a unique URL that the user may share.  Just browsing through these projects would give a developer a great view of the power that this tool holds, or ideas for their own projects.  I could see this as a great way for educators to get students to learn programming, without a need to buy/download/install massive amounts of expensive applications.  A student could code their program and turn it in by sending their linked URL to their instructor for grading.

So I think that CodeRun is a powerful application that is great for all levels of developers or even those with no experience coding who want to learn a new skill.  Go for it.  Happy Coding!