Build a village – or rebuild civilization – using Open Source

While researching projects for our upcoming event on Open Source Hardware I came across the amazing Open Source Ecology project. OSE features openly-licensed designs for tractors, generators, cultivators as part of its Global Village Construction Set – a set of 50 industrial and agricultural machines with which you can set up a create a small rural cooperative, or start rebuilding civilization after a zombie apocalypse or catastrophic socio-economic collapse.

Open Source Bulldozer from the OSE project

Open Source Bulldozer from the OSE project

You can keep track of the progress on each design via the OSE wiki, as each machine is developed, prototyped, documented and released.

(If the idea of building an open source industrial base sounds overly ambitious, its also worth remembering just how complex the challenge of creating a completely open source PC operating system was.)

Unclouding the issue

You can’t do anything with software at the moment, Open Source or otherwise, without the word “cloud” being thrown about.  If you’re looking at options for software you might want to use, it can be hard to see through the hype of this term, and understand what product you’re actually talking about.  This article is going to look at one area of the “cloud” ecosystem and the relevance to Open Source Software.

You might hear someone speak about “cloud servers” or “servers in the cloud”.  What’s probably being spoken about here is a product called Infrastructure-as-a-Service (IaaS).

Traditionally, if you wanted a server, you had the option of buying or renting physical machines and either hosting them in house, or in a data centre through a co-location service.  More recently, we’ve seen these physical machines replaced with virtual machines, allowing several server systems to be run on the same piece of hardware. Again, these can be hosted internally or externally.

IaaS takes this to the next level, abstracting away the underlying hardware from the customer. An IaaS service is typically housed in a large data centre, where servers’ resources are pooled into a cluster.  Virtual servers can then be provisioned on-demand, with underlying software taking care of which hardware is actually doing the work.

This model provides excellent flexibility and scalability, as new virtual servers can be provisioned and resources allocated to meet the demands of the services they are running.  It also holds the potential for cost saving – different types of customers will have different peaks in demand, which can be balanced across the shared infrastructure.  This can lower the overall computing capacity required, in turn lowering costs.

Set-ups like this are one of the reasons we use the term “cloud” – the blurring of division between pieces of hardware to make one ubiquitous “blob” of computing resource.

The best known example of IaaS is without a doubt Amazon’s Elastic Computing Cloud, or EC2.  Amazon owns several data centres across the globe.  When renting a server from EC2, you simply specify the resources you require and the location.  The system takes care of the rest and presents you with a remote login to your server.  EC2 is used by sites like Reddit and Foursquare to give them the ability to scale in line with demand.

Of Course EC2 isn’t the only player in the space.  There are 2 high-profile examples of Open Source platforms that can be used to provide IaaS: OpenStack and CloudStack.  OpenStack is produced by the OpenStack Foundation, originally founded by NASA and RackSpace but now comprising a sector-spanning group of technology companies.  Several companies in the Foundation run public cloud services on the OpenStack platform, in competition with EC2.  CloudStack was originally developed by Cloud.com, who were bought out by desktop vitrtualisation giant Citrix. Citrix subsequently open sourced the CloudStack system through the Apache Foundation.  CloudStack is used by big name brands such as BT and GoDaddy, as well as some smaller ones.

If your infrastructure is being provided as a service, it might not be immediately apparent why it matters if the underlying technology is Open Source. Your primary concern is likely to be what software you’re running on the servers that you’re renting.  However, it certainly warrants some consideration.

The first aspect to look at is the choice it affords you.  If you want a solution running on OpenStack, there’s numerous companies  for you to choose from, while knowing you’re getting the same product backed by the same group of vendors.  These companies will still want to compete between themselves, be it on price, the types of server they offer, or the management tools they provide.  Also, as the underlying system is the same across vendors, you avoid lock-in.

Another factor that shouldn’t be overlooked is that you don’t have to use OpenStack or CloudStack as a service from someone else.  If you’ve got a datacenter in your organisation, you can run your own, private IaaS system.  This isn’t for everyone, and does rather muddy the “as-a-Service” term, but you can still think of it as a service provided internally.  Rather than having to provision VMs in response to individual requests, running a private IaaS system would allow users to scale solutions to meet their needs at any given time.

Private IaaS systems can have a disadvantage: systems running on a private cloud are likely to have similar peaks in demand, reducing the potential for cost savings.

This isn’t the end of the cloud story.  There’s other “as-a-Service” products that are marketed under the “cloud” banner, and there’s Open Source to be found in all of them.  We’ll be looking at them in future articles.

What is Open Source Hardware?

As 3D Printing starts to take off and hit the mainstream, the Open Source Hardware movement is also stepping up a gear.

Open Source Hardware applies largely the same model of innovation to hardware that FOSS brings to software. With Open Source Hardware, designers openly license the digital artefacts needed to create objects – for example, design files in formats that allow editing such as CAD programs – so that anyone may:

study, modify, distribute, make, and sell the design or hardware based on that design

- Open Source Hardware (OSHW) Statement of Principles 1.0

The Open Source Hardware Association have also produced this rather nice introductory video:

YouTube Preview Image

This means that its possible to operate a business model of making and selling physical products based on the design, or selling modified designs (depending on the license), or designing and selling closed-source add-ons and accessories. One obvious business model is the “print shop” one – when designs are open and readily available, the resource bottleneck is fabrication. We may see existing printing outlets turn into fabrication shops too. Or we may even see 3D printing turning up in vending machine format.

However, we’ve already seen the potential problems that may emerge with this model, with the recent controversy over 3D-printed handguns (fulfilling Bruce Sterling’s prophetic statement that the technology would only start receiving media attention once people started printing weapons). If universities do start including 3D printing facilities in libraries, or installing 3D printers as vending machines in hallways, will we need new acceptable use policies to avoid hitting the headlines?

Alternatively, Open Source Hardware designs may fuel a market for 3D printers for home and small office use; prices are certainly coming down, for example with the commercialisation of the Replicator 2;  there are also new entrants to the market, such as the Form 1 kickstarter project.

For researchers, Open Source Hardware, when combined with 3D printing, offers a route to reducing the cost of specialized equipment – for example, researchers have created low cost micromanipulators and centrifuges. Open Source Hardware  also opens up new avenues for teaching and learning technology, manufacturing and engineering, with the potential to create a generation of technology creators instead of consumers; for example, according to Catarina Mota:

But to me, the major benefit [of Open Source Hardware] is education. More and more, devices are becoming black boxes. People used to understand computers and think of them as tools because they understood how they worked, and now we don’t. Whether we like it or not, technology shapes the way we think, the way we communicate, the way we act, the way we learn. So if we buy a computer or phone and we can’t modify or even understand how they work, our thoughts and actions are dictated by this interface design that we have nothing to do with. We need to understand the objects we use because if we can’t shape them, they will shape us. There are already so many things in our lives that we’ve changed to adapt to the technology we have available.

As with Open Source Software, the key to making this work are the legal and technical foundations for sharing and using open source hardware designs. Organisations such as the Open Source Hardware Association (OSHWA) are starting to pull together principles, definitions and licenses necessary. Communities have also formed such as the Open Source Hardware User Group, where early adopters can get together and share designs and ideas. Likewise, our events such as Open Source Junction have started to include Open Source Hardware as well as software.

There is also the interaction between Open Source Hardware and Open Source Software to consider: its all very well having an open design for a device, but what if it needs proprietary firmware or software to actually work? This is something considered in the Open Source Hardware definition:

3. Necessary Software
If the licensed design requires software, embedded or otherwise, to operate properly and fulfill its essential functions, then the license may require that one of the following conditions are met:
a) The interfaces are sufficiently documented such that it could reasonably be considered straightforward to write open source software that allows the device to operate properly and fulfill its essential functions. For example, this may include the use of detailed signal timing diagrams or pseudocode to clearly illustrate the interface in operation.
b) The necessary software is released under an OSI-approved open source license.

Overall, Open Source Hardware is a major emerging area for innovation, and something we’re very interested in here at OSS Watch (or should that now be OSSH Watch?)

(Oh, and here is one last link for Minecraft fans)