I am a Ruby and JavaScript engineer from Belfast living in London.

I hope you enjoy my articles, if you have any questions please feel free to comment on them or contact me using the links in the footer.

Latest Posts

Please enjoy my three latest posts

Ruby Ramblings

For several years now Ruby has been my backend language of choice, here are articles that relate to my favourite programming language.

JavaScript Jollies

Like anyone who has spent time working on the internet I have cause to get my hands dirty with JavaScript regularly. Hopefully you will enjoy what I have to share on the matter.

Writing Woes

Something I am always trying to get better at is writing. In this section I share the tips and tricks I have learned over the years of writing on the internet and for publications.

Raving Reviews

My first taste of writing was reviewing Metal bands, and I never really stopped. Here I normally review tech and tech books.

Marketo Musings

I use the Marketo API quite frequently, normally with Ruby, here are my tips and thoughts on it.

Personal Ponderings

Since this is my personal blog it is hardly surprising that sometimes I write about personal topics.

Everything Else

Here is everything that I haven't put into its own category yet. As I get more oranised this list should shrink!

  1. Finding new people on Chatter
  2. Mastering Your Tools
  3. Mac Productivity Workshop
  4. A simple guide to how computers work for idiot redditors
  5. Mac Apps I use to say productive
  6. Some of my favourite mac shortcuts
  7. Up the tracking speed on your mouse
  8. Hiding the dock for fun and profit
  9. Custom Routing of Github emails
  10. iTerm Tricks
  11. You can’t use the webcam on OS X without having a Photo Booth Library?!?!
  12. iPhone photos not freeing up space when deleted
  13. Speeding up the internet on OSx Yosemite
  14. Come play Codewars with me
  15. Good Habits for Student Developers – Documentation
  16. Katrina Owen – Here be Dragons
  17. Robert Wint – Using Content to Improve the Customer Journey
  18. Patrick Jubb – Re-building the Marketing Department to be Fit for the Future
  19. Martin Trickey – Do we Tell Stories Differently Now?
  20. Mark Elkins – From Passion to Purchase
  21. Kerensa Samanidis – Breaking in to the online video market
  22. Chief Digital Officer Summit London - Day 1 Morning
  23. Ana Serrano – Digital Transformation & Continuous Innovation
  24. Amanda Neylon – The Importance of Focusing on Social Strategy
  25. Getting Money out of Uganda
  26. Good habits for student developers – Time Keeping
  27. What to do when refactoring a large codebase without tests
  28. What I would look for in a junior developer
  29. How the technical direction of a project can be influenced
  30. Sed fun on OSx
  31. Squash br inside contenteditable
  32. Good Habits for Student Developers - Backups
  33. Facebook's Anonymous Login
  34. A beginners guide to ARIA
  35. Please don't actually use Retweet and Favourite for polls on Twitter
  36. Hearthstone APIs
  37. My thoughts on the latest TechHubTuesday Demo Night
  38. Divs still have their place
  39. My highlights from On the Shortness of Life by Seneca
  40. The correct way to markup an image and caption in HTML
  41. View Markdown Files in your Terminal
  42. Some stumbling blocks I hit following my first Swift tutorial
  43. Quick Semantic Wins
  44. Accessibility and SEO are tightly linked
  45. How I am using Omnifocus
  46. What the header element can be used for
  47. Gender Neutral Swear Words
  48. Every developer makes mistakes all the time
  49. Backblaze is part of a great backup solution
  50. Kill off any process on a particular port - An explaination
  51. Space Invaders
  52. WhiteHat Aviator Phoning Home?
  53. Backing up an s3 bucket to another s3 bucket
  54. Force a CSV download from a WordPress Plugin
  55. Nav Elements, not just ul wrappers
  56. Marketing is More Important than Your Code
  57. The ways I have made Sites Pay for Themselves
  58. How Much Does Your Website Cost You?
  59. Running VimR From the Command Line
  60. VimR - A first look
  61. Turning off the PiFace Control and Display
  62. Derek Johnson talking about Modern Web Design
  63. How many people should be on my email list before I send the first email?
  64. Review: HTML5 Game Development Hotshot
  65. Kali Linux 32 bit mini ISO getting stuck on samba
  66. Raspberry Pi B+ Webinar
  67. Advertising in China
  68. Why thinking small helps create software that lasts.
  69. Removing "Protected:" and "Private:" from WordPress posts
  70. Copy and Rename multiple files in Linux
  71. The worst thing you can do for your productivity
  72. Not able to cd or ls into drive mounted by s3fs
  73. Quitting Postgres psql
  74. The safest way to track goal URLs in Google Analytics
  75. Setting to change to get notified of all interactions on Twitter
  76. Setting I changed to up my Chromebook's internet speed
  77. My Chromecast Setup
  78. Making Tech for the sake of Tech isn't always right, but it is necessary
  79. Font Faces for Dyslexic Folk
  80. Packt have a really great sale on
  81. Some HipChat Tips and Tricks
  82. CodeIgniter - when to use get_instance()
  83. Resources for getting up to speed with Redis
  84. How to install the latest version of Redis on Ubuntu
  85. Newbie Programming Resources
  86. Open a file in Github from your command line
  87. Values returned to ActiveMerchant by SagePayGateway during 3d secure
  88. Some Interview Tips for Junior Developers
  89. You should serve up assets without a protocol
  90. Things to remember to do before any video conference / online call
  91. Looking for Bootstrap's popover-inner?
  92. GitGutter – A Sublime Text plugin for seeing changes in git
  93. Indenting Text using Vim
  94. Copy and Paste in Vim
  95. Interview with Trevor Orsztynowicz about Caliper
  96. Show off your Localhost with LocalTunnel
  97. Linking Google Adwords and Analytics accounts
  98. Right clicking inside Linux on your Chromebook
  99. Getting Debian to recognise your UK Chromebook
  100. Automation is a lot like your windscreen wipers
  101. Cheap Belfast PHP/WordPress Hosting
  102. If someone does something really sucky, hit them in the Twitter
  103. Nobody Will Train You But You - A talk by Zach Briggs
  104. Getting rid of annoying text selection at the bottom of Sublime Text documents
  105. Some useful Github shortcuts
  106. Deploying a particular branch to Engine Yard from the command line
  107. Bad example of how to do unsubscribe pages.
  108. Stacking the founder chips in your favour.
  109. Internet Explorer Version 999.1
  110. MySQLslap - A quickstart guide
  111. Web Developer Equipment
  112. Working out which merge to keep in Git
  113. Stack Exchange is winning the internet and this is not a good thing
  114. Sublime Text reading SASS files as HAML
  115. Safari on Windows doesn't like outline inside of :after
  116. Slightly funny application names in ChromeOS in developer mode
  117. Turn Off the built in apache on OSx
  118. Firefox honours !important in CSS animations, no one else seems to
  119. Speculation on why Google stopped blocking sites
  120. Good Surge Protecting Power Blocks
  121. Open all your browsers at once in OSx
  122. How I got my links out of Google Reader
  123. Different ways to undo in Git
  124. Some Notes on SSL Certificates
  125. Big Wet Fish Get Marketing
  126. Some command line tips for the web developer
  127. OSx Screenshot Cleaner
  128. How to turn on invisible characters in Sublime Text 2
  129. Update your Git install
  130. Installing PEAR for PHP on OSx
  131. Google Translate tracking in Analytics
  132. Quick Tip for Reddit and Imgur and multiple sub-sections
  133. A checklist of things you will need to learn to make Firefox OS applications
  134. Using Mozilla's Mortar and App stub for bootstrapping Firefox OS apps
  135. Getting Firefox OS on your Android phone.
  136. If you store WordPress code on Github think about your wp-config.php
  137. Added some non-js social share buttons
  138. The easiest way to test out Firefox OS
  139. Using Stack Exchange to be better at what you do.
  140. A pragmatic approach to dealing with interruptions whilst you are developing
  141. The W3C Technical Architecture Group elections end today
  142. Replacing Social Media Share Buttons with non-JavaScript counterparts
  143. Quick email tip if you need to clear out your inbox
  144. Editing remote files locally in OSx
  145. Finding email to delete if you are over quota in mail.app on OSx
  146. Git branches seem to be case insensitive
  147. Barry Adams SEO Talk About the Future of SEO at DigiExNI
  148. Shopify Workshop
  149. Nobody Puts Baby In The Corner - Except Me.
  150. New Evernote
  151. Changing the font-style of placeholder text CSS
  152. Every time you write non-standard or invalid code
  153. Setting up Redmine from a blank Ubuntu install
  154. Working with Ubunutu? Save yourself a headache and run sudo apt-get install build-essential
  155. Commit Driven Development
  156. Finding out what version of Apache and PHP a webserver is running when you have little access
  157. Infographic on website monetising
  158. Entering your email at the inbox is a bad idea
  159. Setting up Apache on OSx Mountain Lion
  160. Things about learning to drive I wish I knew when I was learning to program
  161. The trigger that gets hit when you get a positive Twitter ratio.
  162. Tidy up your PayPal buttons
  163. CakePHP and htaccess caching funtimes
  164. Facebook - The optimal size for posting an image to a page wall
  165. Styling Scroll Bars
  166. Google should minify their 404 page
  167. An interview with Umut Muhaddisoglu from Uptime Robot
  168. How to search PayPal transactions by email address or name
  169. Adding plugins to Sublime Text 2
  170. How I use MindNode to help craft blog posts
  171. What would you like to see more of on the web - a follow up with Zoe Bogner
  172. HTML5 Rocks Hangout 1
  173. A case for going agile
  174. Interview with Stephen Kinkaid from Big Wet Fish
  175. Copying a CakePHP Project from Linux to Windows
  176. I just made an affiliate program.
  177. PHP - Turn UK Date into US Date
  178. Interview with Derek Johnson
  179. Things to check for in your htaccess file
  180. Chrome's Lord of the Rings Easter Egg
  181. Useful WordPress Links
  182. Printing on the web
  183. Tech Tweets - Thursday 15th March 2012
  184. Validation in CakePHP 1.3
  185. Permissions issue with Iomega Home Media Network Drive
  186. Useful CSS Links
  187. Useful PHP Links
  188. Deleting Magento Session Files
  189. Reducing Google Contacts storage on Android devices
  190. CakePHP 2.0 Read Recursive
  191. CSS Vendor Prefixes - A potential use case
  192. Canonical and Base URLs
  193. Having FTP in your IDE is part of a broken model
  194. Useful Web Developer Bookmarklets
  195. Updating PHP5.2 to PHP5.3 using apt-get
  196. Too many posts about the same thing on your Twitter timeline?
  197. The Importance of First Contact
  198. Interview with Patrick McKenzie and Keith Perhac about their podcast
  199. Get rid of var $name in CakePHP
  200. Keeping on top of my to-do list.
  201. Things I will be reading this week: 05-12-2011
  202. BuildConf is still being awesome even after the event.
  203. Kalzumeus Podcast
  204. Open Proposal: Companies - get your employees to answer questions on Stack Exchange
  205. A recipe for creating a great workshop
  206. Things I will be reading this week: 06-11-2011
  207. Interview with Shiela Dixon
  208. Things I will be reading this week: 31-10-2011
  209. My thoughts on The Increasing Importance of APIs in Web Development
  210. Things I will be reading this week: 24-10-2011
  211. Parameterise everything.
  212. Managing a Facebook development project.
  213. Uptime Robot gets an API
  214. Testing if your domain is accessible from China
  215. Checking if a password field is present in Selenium.
  216. Issue with table content held in a div not printing over several pages
  217. An open letter to EUKHost
  218. Techzing hits 150
  219. Inspiration.
  220. Trying to get a designer into a meeting...
  221. Less Than Vs Less Than or Equal To - which is more efficient?
  222. Magento Auto Install
  223. Netbeans Private Key Authorisation Problem
  224. MySQLTuner - An excellent free MySQL tool
  225. How I think I am going to start using the big 3 social networks
  226. Google+ Invites
  227. Claiming ownership of your content.
  228. [notice] cannot use a full URL in a 401 ErrorDocument directive --- ignoring!
  229. What I would change about the Computer Science degree course
  230. The W3C have released Web Application Privacy Best Practices - What do we do with it?
  231. My Feelings On Adobe Edge
  232. The Big Three Social Codes
  233. Disqus showing bullets.
  234. Changing upload permissions in vsftpd
  235. Getting Netbeans Working with OS X Lion
  236. Settings up Netbeans to develop Android applications
  237. The Obligatory Dropbox Post
  238. Soon I will be in the market for a new laptop.
  239. The importance of using the ellipsis character.
  240. Using Git to create an archive of changed files.
  241. Enabling telnet in Windows 7
  242. Interview: What is your take on the rise of e-learning sites over a more traditional text-book or course based approach
  243. IE7 td colspan width 'issue'
  244. Uninstalling Lotus Notes Traveler from your Android Device
  245. Netbeans 7.0 released
  246. HTML5 Canvas Tutorial
  247. Git command to show files changed in a commit
  248. Securing Facebook
  249. The importance of supporting OWASP
  250. Edit an option of a select menu using jQuery
  251. Interview: What would you like to see more of on the web
  252. Netbeans Redmine Integration Version 0.1 released.
  253. Netbeans and Redmine Integration.
  254. Explaining Version Control (Git) in Simple Terms
  255. Getting my Dublin Core on
  256. Yum not installing 7zip.
  257. Location of bookmarks.nsf on the mac.
  258. Speed up Lotus Notes on a Mac
  259. Two excellent talks on Git
  260. Show hidden files on the Mac OSx
  261. Howto: Email A Support Request
  262. Getting the most out of StackExchange
  263. Quick way to switch between folders in the terminal
  264. Importing a backup file from another MS SQL machine.
  265. Possible issue when using parseInt function.
  266. PHP Security - General PHP setup Gotchas
  267. Finding your SQL Server Version
  268. MySQL snippet - Selecting from table a items that aren't in table b.
  269. PHP - Quick Is Not Set Replace
  270. Internet Explorer Cannot Open The Internet Site - Operation Aborted
  271. Allowing your own From header with sSMTP
  272. What you actually do when you untar something.
  273. Find out which version of Ubuntu I am on.
  274. Help with your Social Media Strategy
  275. Useful Git Links
  276. Using Open Source - Some Legal Considerations
  277. Robin Christopherson - Accessibility in Web Design
  278. Eoghan McCabe and Des Traynor - Sexy or Meaningful
  279. Skipfish - No such file or directory.
  280. Owen DeLong - Content Providers must lead the way to IPv6
  281. Martha Rotter - Too Much Information [University Session]
  282. Gotta love the google font API
  283. Renier Lemmens - The future of Mobile Apps
  284. Simon Wardley - What is the cloud?
  285. Raffi Krikorian - How to use Geolocation in your web app
  286. Replace ereg with preg_match
  287. Useful Security Pages
  288. Clean up your variables
  289. Uptime Robot Monitors From Multiple Locations
  290. My Security Adventure Begins
  291. PHP_DEBUG a very handy little constant
  292. Uptime Robot
  293. Tweetminer is now Pluggio
  294. Editing Git Repository Descriptions
  295. Switching between full screen modes in PuTTY
  296. InFrame - Dynamic iFrame creation with jQuery
  297. Exploring Built In Functions
  298. Bloody Windows...
  299. Google Tells Us What A Browser Is
  300. Tweet Miner, why I use it
  301. HTML5 Video
  302. Mapping the inside of buildings.
  303. Refresh Belfast - The State of Typography on the Web
  304. Wordpress Cheat Sheet
  305. Webmasters - Clean out your links!
  306. Acronym and Abbreviation Tags
  307. Internet Explorer 8 Checkbox Issues
  308. Microformat Cheat Sheets
  309. Damn this guy can wireframe!
  310. Awesome Firefox Multitouch
  311. New Google Search
  312. A/B Testing with Wordpress
  313. Looking Critically at Your Design
  314. Really cool dropdown menu
  315. PHP Whitespace/Comment Removal
  316. CSS Techniques Run Down
  317. HTML5 - Anyone Played With It Yet?
  318. About Pages - Are they totally necessary?
  319. Out of the box design