-
Joind.In Needs Help
14 August 2016
Read moreThis post is about the open source project, Joind.in. Joind.in is a tool to allow attendees at conferences or other events to offer immediate public feedback to speakers and organisers at those events. Joind.in is an open source project run by volunteers. For the last 6 years I've been a maintainer of this project, following a year or two of being a contributor. Over the last few months, myself and my comaintainer Rob Allen have been mostly inactive due to other commitments, and we have agreed it's time to step aside and let others take up the baton.
-
Connect to RabbitMQ from PHP over AMQPS
11 August 2016
Read moreI work a lot with data these days and queues are a common addition to my applications to move data between applications. At the moment I'm working with RabbitMQ (and loving it!) but I wanted to deploy to a hosted RabbitMQ service and struggled to find examples of doing this over SSL so I thought I'd share what worked for me. Disclaimer: I work for IBM and they own Compose.com, which means I have a "do anything you like!" account there :)
-
Zap to Schedule Adding Todo List Items
21 July 2016
Read moreI won't admit to being a productivity nut but I am a pretty busy person :) I manage my tasks with the excellent TodoTxt system which is a simple line-per-task textfile that lives in dropbox and can be accessed by all my various devices (I'm usually a linux/android user). One use case that I've never really had a solution for is when I need to do something, but not now.
-
Vagrant Box With This Name Already Exists
15 July 2016
Read moreDue to the unique approach of Canonical to packaging vagrant boxes, the current ubuntu/xenial box has a hardcoded machine name which causes an error when you try to bring up a second VM using the same base box:
A VirtualBox machine with the name 'ubuntu-xenial-16.04-cloudimg' already exists.Please use another name or delete the machine with the existing name, and try again.There's a stackoverflow question about this and a good answer (not the accepted one, the highest-voted one) which helped me a bit but it still wasn't completely clear to me how to fix my problem and I had to dig about a bit.
-
Using OS X From The Keyboard
04 July 2016
Read moreI have a new job (Developer Advocate with IBM Cloud Data Services) and subsequently a new work laptop. It's a mac and after almost 10 years as a linux-only user, that's rather a shock! Due to some nasty RSI issues, I don't use a mouse or any other pointing device*, so as well as learning a whole new operating system I also needed to learn its accessibility tools. I'm still at the swearing stage but mostly past the tears so I thought I would share what I've found - using a computer from the keyboard is fast and productive for everyone as well as less painful for me, so you may find some tools in here that you want to try yourself.
I collected all my tools, my own notes and scribbled cheatsheets and put them into this gist so that I could refer to them later; I also intend to keep updating this as a reference.
-
Find Mongo Document By ID Using The PHP Library
09 June 2016
Read moreMy new job as a Developer Advocate with IBM means I get to play with databases for a living (this is the most awesome thing ever invented, seriously). On my travels, I spent some time with MongoDB which is a document database - but I ran into an issue with fetching a record by ID so here's the code I eventually arrived at, so I can refer to it later and if anyone else needs it hopefully they will find it too.
-
Heroku "No app specified"
31 May 2016
Read moreI've been having a maddening problem where one (but only one) of my heroku apps doesn't know which heroku app it is, which means I need to append --app app-name to every single command. It seemed to happen when I moved my app to an organisation rather than having it …
-
MySQL 5.7 Introduces a JSON Data Type
21 April 2016
Read moreThere's a new JSON data type available in MySQL 5.7 that I've been playing with. I wanted to share some examples of when it's useful to have JSON data in your MySQL database and how to work with the new data types (not least so I can refer back to them later!)
MySQL isn't the first database to offer JSON storage; the document databases (such as MongoDB, CouchDB) work on a JSON or JSON-ish basis by design, and other platforms including PostgreSQL, Oracle and SQL Server also have varying degress of JSON support. With such wide adoption as MySQL has, the JSON features are now reaching a new tribe of developers.
-
Simple Access Control for CakePHP3
11 April 2016
Read moreThe newest version of CakePHP doesn't ship with built in ACL, which means you need to write your own. Personally I think this is a smart move, having looked at the one-size-fits-all solutions for previous versions of the framework and knowing that every system has different requirements, this version has good hooks and documentation on how to add something that works for your application. I thought I'd share what worked for mine.
-
Change Form Input Type in CakePHP3
16 March 2016
Read moreI've been having my first experiences with generated code, generating a new admin backend using CakePHP3 (yes CakePHP is still around, it's alive and doing rather well in fact!). So far it's going great and producing a much more complete solution than I'd have managed for myself on this timescale.
One thing is bothering me though: it guesses form input types from the database column types, which mostly works well but sometimes it picks something that doesn't reflect the way that the user will store information in this field. It's actually pretty easy to change the forms that get generated though, so here's an example.
-
Documentation First: A Recipe for API Success
23 February 2016
Read moreI've shipped a handful of greenfield APIs in recent months for different clients, and in each case I've been building the documentation before the API. I hadn't really recognised it as a pattern until someone else commented on it, but I do find this approach has worked well for my projects, so I thought I'd share my thoughts on this in a bit more detail.
-
PHP 7.0 (and 5.6) on Ubuntu
11 February 2016
Read morePHP 7 is released but for those of us who don't usually compile our own PHP, it can be a long wait for our preferred distro to release the packages we want. For Ubuntu, I'm using a PPA which allows both PHP 5.6 and PHP 7.0 to be installed, including things like extensions, at the same time. It was very easy to set up (I'm running Ubuntu 15.10 but this process should also work on older versions back to at least 14.04 which is the previous LTS) so here's a quick walkthrough of what I did.