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.
Server Basics
I wanted to write up a selection of articles covering really basic server stuff, most posts assume little or no prior knowledge. I hope you find them useful.
Everything Else
Here is everything that I haven't put into its own category yet. As I get more oranised this list should shrink!
- CSS –
- Stopping your wireless from turning off on your Raspberry PI –
- Steps for replacing an SSL certificate –
- See what disk space is left on your Linux web server –
- The SSH Command –
- Grep flags that I like –
- Viewing what is running on the server –
- How does Capistrano work? –
- Debriefing Development Teams –
- Art & Math & Science, Oh My! –
- Setting up Moat and DFP –
- Omnifocus Custom Columns –
- Safari Extensions I am using –
- What I have learned about roadmaps –
- Speeding up accessing Safari’s URL bar on El Capitan –
- Meteor @dev was not detected –
- I am starting a fortnightly email list –
- The steps I take before a large backup on the Mac –
- Setting up the Windows 200 Wired keyboard on the Mac –
- Udemy Fail –
- Breathing new life into an older Mac –
- Finding new people on Chatter –
- Mastering Your Tools –
- Mac Productivity Workshop –
- A simple guide to how computers work for idiot redditors –
- Mac Apps I use to say productive –
- Some of my favourite mac shortcuts –
- Up the tracking speed on your mouse –
- Hiding the dock for fun and profit –
- Custom Routing of Github emails –
- iTerm2 Tricks –
- You can’t use the webcam on OS X without having a Photo Booth Library?!?! –
- iPhone photos not freeing up space when deleted –
- Speeding up the internet on OSx Yosemite –
- Come play Codewars with me –
- Good Habits for Student Developers – Documentation –
- Katrina Owen – Here be Dragons –
- Robert Wint – Using Content to Improve the Customer Journey –
- Patrick Jubb – Re-building the Marketing Department to be Fit for the Future –
- Martin Trickey – Do we Tell Stories Differently Now? –
- Mark Elkins – From Passion to Purchase –
- Kerensa Samanidis – Breaking in to the online video market –
- Chief Digital Officer Summit London - Day 1 Morning –
- Ana Serrano – Digital Transformation & Continuous Innovation –
- Amanda Neylon – The Importance of Focusing on Social Strategy –
- Getting Money out of Uganda –
- Good habits for student developers – Time Keeping –
- What to do when refactoring a large codebase without tests –
- What I would look for in a junior developer –
- How the technical direction of a project can be influenced –
- Sed fun on OSx –
- Squash br inside contenteditable –
- Good Habits for Student Developers - Backups –
- Facebook's Anonymous Login –
- A beginners guide to ARIA –
- Please don't actually use Retweet and Favourite for polls on Twitter –
- Hearthstone APIs –
- My thoughts on the latest TechHubTuesday Demo Night –
- Divs still have their place –
- My highlights from On the Shortness of Life by Seneca –
- The correct way to markup an image and caption in HTML –
- View Markdown Files in your Terminal –
- Some stumbling blocks I hit following my first Swift tutorial –
- Quick Semantic Wins –
- Accessibility and SEO are tightly linked –
- How I am using Omnifocus –
- What the header element can be used for –
- Gender Neutral Swear Words –
- Every developer makes mistakes all the time –
- Backblaze is part of a great backup solution –
- Kill off any process on a particular port - An explaination –
- Space Invaders –
- WhiteHat Aviator Phoning Home? –
- Backing up an s3 bucket to another s3 bucket –
- Force a CSV download from a WordPress Plugin –
- Nav Elements, not just ul wrappers –
- Marketing is More Important than Your Code –
- The ways I have made Sites Pay for Themselves –
- How Much Does Your Website Cost You? –
- Running VimR From the Command Line –
- VimR - A first look –
- Turning off the PiFace Control and Display –
- Derek Johnson talking about Modern Web Design –
- How many people should be on my email list before I send the first email? –
- Review: HTML5 Game Development Hotshot –
- Kali Linux 32 bit mini ISO getting stuck on samba –
- Raspberry Pi B+ Webinar –
- Advertising in China –
- Why thinking small helps create software that lasts. –
- Removing "Protected:" and "Private:" from WordPress posts –
- Copy and Rename multiple files in Linux –
- The worst thing you can do for your productivity –
- Not able to cd or ls into drive mounted by s3fs –
- Quitting Postgres psql –
- The safest way to track goal URLs in Google Analytics –
- Setting to change to get notified of all interactions on Twitter –
- Setting I changed to up my Chromebook's internet speed –
- My Chromecast Setup –
- Making Tech for the sake of Tech isn't always right, but it is necessary –
- Font Faces for Dyslexic Folk –
- Packt have a really great sale on –
- Some HipChat Tips and Tricks –
- CodeIgniter - when to use get_instance() –
- Resources for getting up to speed with Redis –
- How to install the latest version of Redis on Ubuntu –
- Newbie Programming Resources –
- Open a file in Github from your command line –
- Values returned to ActiveMerchant by SagePayGateway during 3d secure –
- Some Interview Tips for Junior Developers –
- You should serve up assets without a protocol –
- Things to remember to do before any video conference / online call –
- Looking for Bootstrap's popover-inner? –
- GitGutter – A Sublime Text plugin for seeing changes in git –
- Indenting Text using Vim –
- Copy and Paste in Vim –
- Interview with Trevor Orsztynowicz about Caliper –
- Show off your Localhost with LocalTunnel –
- Linking Google Adwords and Analytics accounts –
- Right clicking inside Linux on your Chromebook –
- Getting Debian to recognise your UK Chromebook –
- Automation is a lot like your windscreen wipers –
- Cheap Belfast PHP/WordPress Hosting –
- If someone does something really sucky, hit them in the Twitter –
- Nobody Will Train You But You - A talk by Zach Briggs –
- Getting rid of annoying text selection at the bottom of Sublime Text documents –
- Some useful Github shortcuts –
- Deploying a particular branch to Engine Yard from the command line –
- Bad example of how to do unsubscribe pages. –
- Stacking the founder chips in your favour. –
- Internet Explorer Version 999.1 –
- MySQLslap - A quickstart guide –
- Web Developer Equipment –
- Working out which merge to keep in Git –
- Stack Exchange is winning the internet and this is not a good thing –
- Sublime Text reading SASS files as HAML –
- Safari on Windows doesn't like outline inside of :after –
- Slightly funny application names in ChromeOS in developer mode –
- Turn Off the built in apache on OSx –
- Firefox honours !important in CSS animations, no one else seems to –
- Speculation on why Google stopped blocking sites –
- Good Surge Protecting Power Blocks –
- Open all your browsers at once in OSx –
- How I got my links out of Google Reader –
- Different ways to undo in Git –
- Some Notes on SSL Certificates –
- Big Wet Fish Get Marketing –
- Some command line tips for the web developer –
- OSx Screenshot Cleaner –
- How to turn on invisible characters in Sublime Text 2 –
- Update your Git install –
- Installing PEAR for PHP on OSx –
- Google Translate tracking in Analytics –
- Quick Tip for Reddit and Imgur and multiple sub-sections –
- A checklist of things you will need to learn to make Firefox OS applications –
- Using Mozilla's Mortar and App stub for bootstrapping Firefox OS apps –
- Getting Firefox OS on your Android phone. –
- If you store WordPress code on Github think about your wp-config.php –
- Added some non-js social share buttons –
- The easiest way to test out Firefox OS –
- Using Stack Exchange to be better at what you do. –
- A pragmatic approach to dealing with interruptions whilst you are developing –
- The W3C Technical Architecture Group elections end today –
- Replacing Social Media Share Buttons with non-JavaScript counterparts –
- Quick email tip if you need to clear out your inbox –
- Editing remote files locally in OSx –
- Finding email to delete if you are over quota in mail.app on OSx –
- Git branches seem to be case insensitive –
- Barry Adams SEO Talk About the Future of SEO at DigiExNI –
- Shopify Workshop –
- Nobody Puts Baby In The Corner - Except Me. –
- New Evernote –
- Changing the font-style of placeholder text CSS –
- Every time you write non-standard or invalid code –
- Setting up Redmine from a blank Ubuntu install –
- Working with Ubunutu? Save yourself a headache and run sudo apt-get install build-essential –
- Commit Driven Development –
- Finding out what version of Apache and PHP a webserver is running when you have little access –
- Infographic on website monetising –
- Entering your email at the inbox is a bad idea –
- Setting up Apache on OSx Mountain Lion –
- Things about learning to drive I wish I knew when I was learning to program –
- The trigger that gets hit when you get a positive Twitter ratio. –
- Tidy up your PayPal buttons –
- CakePHP and htaccess caching funtimes –
- Facebook - The optimal size for posting an image to a page wall –
- Styling Scroll Bars –
- Google should minify their 404 page –
- An interview with Umut Muhaddisoglu from Uptime Robot –
- How to search PayPal transactions by email address or name –
- Adding plugins to Sublime Text 2 –
- How I use MindNode to help craft blog posts –
- What would you like to see more of on the web - a follow up with Zoe Bogner –
- HTML5 Rocks Hangout 1 –
- A case for going agile –
- Interview with Stephen Kinkaid from Big Wet Fish –
- Copying a CakePHP Project from Linux to Windows –
- I just made an affiliate program. –
- PHP - Turn UK Date into US Date –
- Interview with Derek Johnson –
- Things to check for in your htaccess file –
- Chrome's Lord of the Rings Easter Egg –
- Useful WordPress Links –
- Printing on the web –
- Tech Tweets - Thursday 15th March 2012 –
- Validation in CakePHP 1.3 –
- Permissions issue with Iomega Home Media Network Drive –
- Useful CSS Links –
- Useful PHP Links –
- Deleting Magento Session Files –
- Reducing Google Contacts storage on Android devices –
- CakePHP 2.0 Read Recursive –
- CSS Vendor Prefixes - A potential use case –
- Canonical and Base URLs –
- Having FTP in your IDE is part of a broken model –
- Useful Web Developer Bookmarklets –
- Updating PHP5.2 to PHP5.3 using apt-get –
- Too many posts about the same thing on your Twitter timeline? –
- The Importance of First Contact –
- Interview with Patrick McKenzie and Keith Perhac about their podcast –
- Get rid of var $name in CakePHP –
- Keeping on top of my to-do list. –
- Things I will be reading this week: 05-12-2011 –
- BuildConf is still being awesome even after the event. –
- Kalzumeus Podcast –
- Open Proposal: Companies - get your employees to answer questions on Stack Exchange –
- A recipe for creating a great workshop –
- Things I will be reading this week: 06-11-2011 –
- Interview with Shiela Dixon –
- Things I will be reading this week: 31-10-2011 –
- My thoughts on The Increasing Importance of APIs in Web Development –
- Things I will be reading this week: 24-10-2011 –
- Parameterise everything. –
- Managing a Facebook development project. –
- Uptime Robot gets an API –
- Testing if your domain is accessible from China –
- Checking if a password field is present in Selenium. –
- Issue with table content held in a div not printing over several pages –
- An open letter to EUKHost –
- Techzing hits 150 –
- Inspiration. –
- Trying to get a designer into a meeting... –
- Less Than Vs Less Than or Equal To - which is more efficient? –
- Magento Auto Install –
- Netbeans Private Key Authorisation Problem –
- MySQLTuner - An excellent free MySQL tool –
- How I think I am going to start using the big 3 social networks –
- Google+ Invites –
- Claiming ownership of your content. –
- [notice] cannot use a full URL in a 401 ErrorDocument directive --- ignoring! –
- What I would change about the Computer Science degree course –
- The W3C have released Web Application Privacy Best Practices - What do we do with it? –
- My Feelings On Adobe Edge –
- The Big Three Social Codes –
- Disqus showing bullets. –
- Changing upload permissions in vsftpd –
- Getting Netbeans Working with OS X Lion –
- Settings up Netbeans to develop Android applications –
- The Obligatory Dropbox Post –
- Soon I will be in the market for a new laptop. –
- The importance of using the ellipsis character. –
- Using Git to create an archive of changed files. –
- Enabling telnet in Windows 7 –
- Interview: What is your take on the rise of e-learning sites over a more traditional text-book or course based approach –
- IE7 td colspan width 'issue' –
- Uninstalling Lotus Notes Traveler from your Android Device –
- Netbeans 7.0 released –
- HTML5 Canvas Tutorial –
- Git command to show files changed in a commit –
- Securing Facebook –
- The importance of supporting OWASP –
- Edit an option of a select menu using jQuery –
- Interview: What would you like to see more of on the web –
- Netbeans Redmine Integration Version 0.1 released. –
- Netbeans and Redmine Integration. –
- Explaining Version Control (Git) in Simple Terms –
- Getting my Dublin Core on –
- Yum not installing 7zip. –
- Location of bookmarks.nsf on the mac. –
- Speed up Lotus Notes on a Mac –
- Two excellent talks on Git –
- Show hidden files on the Mac OSx –
- Howto: Email A Support Request –
- Getting the most out of StackExchange –
- Quick way to switch between folders in the terminal –
- Importing a backup file from another MS SQL machine. –
- Possible issue when using parseInt function. –
- PHP Security - General PHP setup Gotchas –
- Finding your SQL Server Version –
- MySQL snippet - Selecting from table a items that aren't in table b. –
- PHP - Quick Is Not Set Replace –
- Internet Explorer Cannot Open The Internet Site - Operation Aborted –
- Allowing your own From header with sSMTP –
- What you actually do when you untar something. –
- Find out which version of Ubuntu I am on. –
- Help with your Social Media Strategy –
- Useful Git Links –
- Using Open Source - Some Legal Considerations –
- Robin Christopherson - Accessibility in Web Design –
- Eoghan McCabe and Des Traynor - Sexy or Meaningful –
- Skipfish - No such file or directory. –
- Owen DeLong - Content Providers must lead the way to IPv6 –
- Martha Rotter - Too Much Information [University Session] –
- Gotta love the google font API –
- Renier Lemmens - The future of Mobile Apps –
- Simon Wardley - What is the cloud? –
- Raffi Krikorian - How to use Geolocation in your web app –
- Replace ereg with preg_match –
- Useful Security Pages –
- Clean up your variables –
- Uptime Robot Monitors From Multiple Locations –
- My Security Adventure Begins –
- PHP_DEBUG a very handy little constant –
- Uptime Robot –
- Tweetminer is now Pluggio –
- Editing Git Repository Descriptions –
- Switching between full screen modes in PuTTY –
- InFrame - Dynamic iFrame creation with jQuery –
- Exploring Built In Functions –
- Bloody Windows... –
- Google Tells Us What A Browser Is –
- Tweet Miner, why I use it –
- HTML5 Video –
- Mapping the inside of buildings. –
- Refresh Belfast - The State of Typography on the Web –
- Wordpress Cheat Sheet –
- Webmasters - Clean out your links! –
- Acronym and Abbreviation Tags –
- Internet Explorer 8 Checkbox Issues –
- Microformat Cheat Sheets –
- Damn this guy can wireframe! –
- Awesome Firefox Multitouch –
- New Google Search –
- A/B Testing with Wordpress –
- Looking Critically at Your Design –
- Really cool dropdown menu –
- PHP Whitespace/Comment Removal –
- CSS Techniques Run Down –
- HTML5 - Anyone Played With It Yet? –
- About Pages - Are they totally necessary? –
- Out of the box design –