My Developer Essentials

In this entry I’m just going to mention the applications that I use in my working day.  Partly just as a reminder to myself what to install when I try a different Linux installation and it’s here on my website.  If you find the list useful, or have any better / alternative suggestions then feel free to comment below.

Note: this is a working list, and may be updated from time-to-time.

The list is as follows (in no particular order):

  • Ubuntu 14.04 LTS
  • ClassicMenu Indicator
  • Shutter
  • GIMP
  • FileZilla
  • Thunderbird Mail
  • TeamViewer
  • PHPStorm
  • Sublime Text
  • Fish
  • Terminator
  • Zeal
  • Vagrant
  • VirtualBox
  • Japanese MozC Keyboard Input

This list doesn’t include obvious tools like Grunt, NPM, LAMP, Phing, PHPUnit, XDebug, et al as they will often be covered with the Vagrant provisioning scripts or will be useful on a site-by-site basis.

Ubuntu 14.04 LTS

I’ve tried Mint, Fedora, Red Hat and other Linux derivatives, but always gone back to Ubuntu.  Especially now multi-monitors work for me out of the box, and Intel 4000 drivers run without issues, I’ve found it very stable and easy OS to use.  I’ve even grown accustomed to Unity and while I don’t love it, I don’t have any problems with it.

Classic Menu Indicator

This is just a handy tool to remind me what I have installed as I generally use Unity to use most applications I use daily.


This may be built-in to Ubuntu, and it’s really handy for creating screenshots and adding quick highlights to areas of a screenshot.


Only recently have I started using this more – it now has an option to integrate the tool-bars into a single window which makes it much more user-friendly to me.  It’s also now much quicker and easier to use.


I use standard (S)FTP less often nowadays as more of the sites I work on use deployment scripts to update.  However, this application is still on the essential install list.

Thunderbird Mail

Wishing for a nicer alternative to this, but Thunderbird is perfectly adequate.


It’s not often that I use this, but it can be a quick way to access and diagnose issues on remote computers, such as sorting out someone’s Git merge conflicts.


I’ve gone backwards and forwards with this one for a while – when I finally moved on from DreamWeaver (around 10 years ago) I tried all kinds of IDEs and text editors from NetBeans and Eclipse through to Atom and more recently Sublime Text.  Out of the alternatives I do really like Sublime Text, but it simply lacks some of the more convenient standard features like database connections and Git.

Fish shell

Previously I was using oh-my-zsh which I really liked, but recently got turned on to Fish shell.  It’s simple, efficient, and fun to use.


This is the best terminal emulator that I’ve found.  It allows you to easily add and resize panels and potentially save predefined panel configurations.


This is a handy off-line reference for all the major frameworks.  Worth checking out.


Definitely Vagrant should be almost at number one in the essential list for web developers.


Not only is this the essential companion for Vagrant, but also an essential tool for the odd time when you may need to run a virtual Windows instance to check out a site on Internet Explorer.

Japanese MozC Keyboard Input

Not a web developer’s tool by any means, but this one is an essential for me.


Get running with Laravel on Ubuntu ultra-fast

This is just a very quick guide to get a fresh Ubuntu install working with Laravel.  It doesn’t use Apache2, but the web server capability of PHP5.  It’s not a comprehensive guide, and it doesn’t go into setting up and installing a full LAMP stack, so there will be no MySQL – this is meant as a base to work from for more front-end AngularJS experimentation.

First, install PHP5 and necessary modules (Ubuntu 12.10 comes with Ubuntu 5.4 which is good enough)

sudo apt-get update
sudo apt-get install php5
sudo apt-get install curl
sudo apt-get install php5-mcrypt

Secondly we need to install composer which is used to install and update GitHub projects – like Laravel:

curl -sS | php
sudo mv composer.phar /usr/local/bin/composer

Lastly we create the project (I go to “~/Documents/Projects” for this):

composer create-project laravel/laravel project_name --prefer-dist

Lastly go to your newly created project folder and start the server (which, by default, can be seen at http://localhost:8000):

cd project_name
php artisan serve

Arduino Nunchuck project

nunchuck Sketch_bbI have cobbled together a couple of circuits to combine output to an OLED with input from a Nunchuck, through a WiiChuck adapter.  I have avoided using the analogue pin (by plugging the adapter directly into the arduino, over analogue pins 2-5) and instead used the 3.3v output because apparently the Wii Nunchuck should be powered by 3.3v and not 5v.  I have attached a diagram, but for clarity, there is the wiring explained here too: Continue reading

Processing multiple strings in an array

This post concentrates on filtering values from a one-dimensional array.

There are a lot of really useful functions in PHP, and it’s almost impossible to remember them all.  Array functions are no exception, and as with PHP functions generally the little inconsistencies are just waiting there to catch you out.

Anyway, I just wanted to mention the difference between array_walk and array_map, and why array_map is particularly useful.

Continue reading