Development environment

One of the problems with on-line tutorials is that we’re all running on different operating systems with different tools installed.  I find it quite annoying that every tutorial has 15 pages of alternative OS installation routines before you get to the real subject.

The simplest way to get started is if we have a common development environment.  Doing this using open source tools is obviously the most accessible.  I thought it best to start with the machine, so installing a virtual machine (VM), with a common operating system (Ubuntu) and tools (Aptana Studio).

Download and install VirtualBox https://www.virtualbox.org/wiki/Downloads

Download the Ubuntu 14.04.1 ISO image http://www.ubuntu.com/download/desktop

Set up a Virtual Machine using the Ubuntu image.

Install the Guest Additions (on the VirtualBox devices menu) in the VM to simplify use – reboot the VM once it’s installed.

Now, in the VM:

Add Terminal to the task bar

Run terminal and set-up the JDK and Chromium browser (needed for Aptana Studio) as follows:

sudo add-apt-repository ppa:canonical-chromium-builds/stage
sudo apt-get update
sudo apt-get install default-jdk
sudo apt-get install chromium-browser
sudo apt-get install git

Download Aptana Studio 3 http://www.aptana.com/products/studio3/download.html 

Extract it somewhere you like.  Run AptanaStudio3 and use the default workspace.

You should have something like this:

min web setup VM

Now shut-down the VM and create a snapshot so that you can always go back to this point if you need to later.

Open process

I’ve thought about, used and contributed to Open Source hardware and software (and 3D models – wherever they fit between hardware and software) for a number of years.

I recently decided to make a number of tools to help with the process of converting two dimensional images into three dimensional shapes for 3D printing (which is one of my passions).

The initial users of these tools are just me and my 15 year old daughter, she loves to draw (you know physically draw with paper and stuff) but is resistant to sculpting or computer based drafting.  She is also a teenager and therefore resistant to anything I may “want” her to try.  Seeing her potential and wishing to open up the 3D world to her, I thought a series of very easy to use tools may help her to dip her toes in the 3D printing waters and see if she likes it – on her terms.

As my daughter and I are the only users, I could just make some apps that we could use at home. But, I could just as easily publish them on-line and that would allow others in a similar position to give them a try and use them if they found them helpful.  I want to make the tools as accessible as possible and make the source code available for modification by others.

Now, here’s the rub:  When I publish 3D models with a Creative Commons Attribution license companies print these models and use them to display the capabilities of their printers at trade shows, in images, in videos and on their websites. Which is all just fine, but they DON’T attribute me (and many others) for the designs which annoys me – Enormously.  Now, these stealing, using, nasty, corporations aren’t going to change, so I have to calm down and just ignore them.  Focus on the people who appreciate my work and publicly acknowledge it.  After-all, as my grandmother would have said, giving is its own reward.

So I thought, how about, I facilitate use by an even broader group of people by sharing more than just the tools and the code, but by explaining the entire process that went in to developing each tool so that others can go on to do the same.  Over the coming weeks, I’m going to publish some step-by-step guides that culminate in a page on this website that allows you to perform some common 2D/3D conversion task in as simple a way as I can think without you needing to install software or register for email blizzards.  These tools will be developed in such a way as to make them accessible to people learning how to program and may well become phone apps to give them even broader appeal.

I have to say, I’m not a huge fan of the whole HTML5 / CSS / JavaScript ecosystem (I still see them as lacking cohesion and poorly suited to their task), but it’s probably the most accessible means to meet the requirements as stated, so that’s where I’ll start.