Zombie approach to software design or 10 best tools
Of all the open source analogies we’ve come across, zombies has to be one of the most unusual.
One member of the undead infects another, who goes on to bite another. The zombie infestation spreads rapidly. Meanwhile their human counterparts can’t replicate as quickly.
Their birth and development is slow and their progress sluggish. Paired against each other, the zombie future is inevitable.
Zombies are the equivalent of open source software. Open source software development can identify, debug and grow at a much faster and nimble rate than the progress of humans (proprietary software) which are limited by time and resource.
Instead, open source allows developers to dive straight into a codebase to fix bugs and propagate the improved software.
The benefit of the zombie-approach to software development is that everything it builds is open to constant improvement and the sheer volume of its adoption provides safety in numbers (most of the time at least).
Think your developer toolbox is full? Think again.
Open source tools and software are built by a community trying to solve the same problems you are, and by feeding back into the zombie frenzy, software iterations become stronger and more beneficial as the community grows.
We’ve rounded up some recommendations from our engineers on the tools and software they couldn’t design, build, implement and support without. From mobile to design, the zombie approach is helping these go from strength to strength.
Twitter Bootstrap – If you want a really quick way to spin up a nice basic interface for hardware hacking, then Twitter Bootstrap is the way to go. It’s responsive (works on mobile, tablet and desktop) and allows you to rapidly prototype interfaces using your web browser.
Cordova Project – If you are looking for a way to access native APIs relating to a mobile device, (for example, its camera or one of its sensors) then the Apache Cordova project is one for you. It is a powerful and evolving toolkit that allows you to really mobile-enable your hardware projects.
Android – The Google-created operating system, Android, is actually built on open source. It’s not just mobile, though; it’s already being used in televisions, cameras, kiosks and even in factories to monitor equipment.
If you really need to give your hardware a brain and build apps on it, then Android has a powerful set of features that you can customise and use to create something formidable.
Inkscape – For colouring, illustrating or icons, Inkscape is your holy grail. Particularly renowned for its illustration features, Inkscape has become a staple for professional designers worldwide. To convert shapes into objects, direct edit on SVGs and edit clones on canvas, check out Inkscape. Oh and it converts Bitmap to Vector automatically.
GIMP – As a free, open source alternative to Adobe’s Photoshop, GIMP has been given a rough ride in its time for poor UX and for not quite being on a par with its licensed counterpart. GIMP has now been overhauled with a varied and powerful set of features that gives Adobe a run for its money.
Drupal – Drupal does many things, but at its heart is content. It runs millions of sites including whitehouse.gov. At a content level, it has tonnes of built in features for SEO and its default installation comes with a high level of security and file maintenance tools.
Varnish Cache – Searching for a web accelerator for a dynamic site with a shedload of content? Varnish is a good place to start to help speed up your website. If it’s good enough for Facebook, Twitter and LinkedIn, it’s probably good enough for you.
Jenkins - Although you don’t need a specific tool for Continuous Integration, it’s pretty darn handy. Written in Java, Jenkins is a fork from Oracle’s Hudson. After a tumultuous inception, Jenkins has established a firm foothold in the automated testing space.
Nagios – If you’re looking for open source options on the infrastructure side of things, Nagios is worth looking into. It’s fast becoming a standard for system and infrastructure monitoring. It’s robust, reliable and runs on many operating systems.
This is by no means an exhaustive list of the tools and software our engineers use every day, but that’s also part of the appeal of the zombie approach to software development. By the time you’ve got to grips with the first round of tools, there’s a whole new wave waiting to make their move.
Writer is Barney Hanlon, technical team lead at Inviqa, with over seventeen years experience in software development.