Geeking Out: I Love Cloud9!

Introduction

LOVE Cloud9.

For the unGeeky

Me: Cloud9 is a development environment.

You: Great, that was singularly unhelpful.

Me: A development environment is the way one configures one’s computer to run the various applications used in programming (writing an application).

You: And this is so great because?

Me: Because setting up a development environment can be time consuming. There are usually a number of different applications you need to install and configuration changes that need to be made before the development environment is ready to use. For example, if you want to develop a PHP application (Wikipedia and WordPress are built on this) you’ll need an application to write code in as well as a web server to run the application. Most likely you’ll also need a database server to store all the data your PHP application works with.

In addition, programming can be messy and you may mess up your development environment and want to reinstall your Operating System (e.g. Windows, Mac OS X, Linux) – in which case you’ll have to do a bunch of work all over again to setup your development environment.

Personally, I like to have separate “workspaces” (aka development environments) for different projects. I may be writing a WordPress plugin in one development environment, experimenting with Node.js (currently one of the “hot” technologies), and have another project or two floating around. It helps me to keep things organized when my “workspace” only has the files related to the project I’m working on currently – and if I make any changes to configurations (e.g. to the web server) they will only effect this one project and not any other projects I am working on.

If you are looking to try out programming I’d recommend codeacademy and once you’ve got the swing of things, use Cloud9.

For the Geeky

Cloud9 provides a dockerized instance of Ubuntu preconfigured for development and a web-based IDE. It has prebuilt configurations for Node.js, LAMP, Python/Django, Ruby, C++, WordPress, Meteor, and HTML5.

Cloud9 IDE Screenshot
Screenshot from the Cloud9 IDE. Don’t be scared, you don’t have to have this many windows open at once.

For free you can create multiple workspaces, each workspace having 1 CPU, 512 MB of RAM, and 1 GB of HDD.

The IDE includes code completion, a JS/Node.js debugger, and a number of other features you can read about on their site.

It integrates seamlessly with Github and Bitbucket, allows you to share workspaces with others, provides a publicly accessible URL (if desired) so you can show off your application, and so on.

Looking to do a little WordPress development? You can have a workspace setup in under five minutes!

Ohh, and did I mention that the Code9 IDE is available via GitHub?

FreeBasic (Programming)

Commodore 64 computer (1982)
Image via Wikipedia

My first experiences programming where on a Commodore 64 and an Apple II+. In both cases there was no separation of the end user interface and the development interface…you could just start entering code at the command line and it would begin building. Things have come a long ways since then – this is good and bad. It is no longer quite as easy or essential to get involved in programming, on the other hand one can much more rapidly build complex applications.

If you ever long for the throw back days you may think of QBasic, which became ubiquitous due to its inclusion with Microsoft DOS…but all these concepts are so from yesteryear – in computer terms they are almost millennia away.

So what if you want to do some simple programming these days with a BASIC feel to it? One good option is FreeBasic. FreeBasic was built to be largely backwards compatible with Microsoft’s QBasic and thus can run many old QBasic programs with only minimal modifications, but FreeBasic has also gone far beyond this and delivers a fairly powerful development environment.

If you do decide to use FreeBasic I recommend downloading a free copy of FbEdit as well. See development usually consists of at least two components – the compiler and the editor. A compiler is the program that takes your code and turns it into an executable program while an editor is what you write the code in. Granted, you can write your code in any plain text editor – but trust me, FbEdit will be a big help.

The FreeBasic forums have a very friendly and active community that will help you along through the learning process. Just take some time to explore the entire site and community, it is pretty impressive.

All this said, FreeBasic isn’t the language I primarily use for development – or the language I would recommend. In general, I’m a Microsoft .NET guy – mainly ASP.NET and VB.NET. Microsoft offers free copies of the lite versions of these applications as well, and while I say kudos to the FreeBasic team and hope they keep up the great work, if you are looking for a job in technology, you might be better off starting with a Microsoft .NET technology. Actually, probably C#.NET instead of VB.NET as I do (old habits die hard).

Microsoft’s Free Development Tools.

Image representing Microsoft
Image via CrunchBase

I remember as a teenager programming for years in QBASIC – a free, lite version of QuickBasic Microsoftbundled with DOS and early versions of Windows. It was great fun – but I yearned to get my hands on the full QuickBasic so I could compile my applications and give them to others without giving away all my source code (okay, OSS was barely known back then).

Later I would save for months to purchase Visual Basic 5. $100+ is a lot of money for a teenager – but I wanted to program so bad that I scraped and saved.

After that there was the ASP.NET Web Matrix – a predecessor to the great tools Microsoft now offers for free. Unfortunately, its development was abandoned and for a long period of time I was left in a painful lurch….but then Microsoft started the trend that has made me extremely happy – free lite development tools.

These development tools include Visual Basic 2008 (for desktop applications), Visual C# 2008 (also for desktop applications, but in C#), Visual C++ (just like the last two), and Visual Web Developer (for web applications) – all in the Express line. Additionally they’ve thrown out there SQL Server Express (database back-end) and SQL Server Studio Management Studio Express (for writing SQL and managing databases).

While these applications are noted as “express” that doesn’t suggest that they are majorly crippled – rather they are extremely full functioning applications which can be used to create many impressive applications. For the new, hobbyist, or small business developer many times the Express Editions will be all that you ever need.

This was a smart move on Microsoft’s part – it gets people hooked on Microsoft development young – and it works great for us as well – because we get free development tools. By the time Microsoft expects us to shell out cash – well, we are probably making some from our now decent development skills. Go grab yourself some free development applications: http://www.microsoft.com/express/.