We’ve got a really complex redirection setup for the current project at work, a mix of some general rules (http://blog.example.com/ to http://www.example.com/blog/), some oddball domain redirects (http://blog.example.jp/ to http://www.example.co.jp/blog/), and some more esoteric ones thrown in there for luck. I started off briefing my colleague with a description of what I needed, but this very quickly became too complex and I realised I really needed to give him a set of initial URLs and expected results. Why not express these rules in a quick test script? My colleague could run the script against the redirects as he wrote them, and see the successful ones and the failures, along with detail about why they failed. Continue reading “Testing HTTP redirects with Curl”
Redirection recipes
Some 3,000 Apache redirection rules are getting scrapped by a client (not a bad thing), and I wanted to make sure I had a note before that happened. All 3,000 rules are all variations on the following few types of redirection rule. Continue reading “Redirection recipes”
Teaching myself to tell tales
One of the joys of having a young baby, I’m finding, is reading. I wasn’t expecting reading to come to us so early, it was my mum who suggested it when Rufus was only three or four months old. He loves us reading to him; the shapes, the colours, the closeness, the sound of our voices, the turning of pages, the taste of the corner of each page as he takes a pensive suckle before it
goes past. I’ve recently started to wonder if I can make stories up for him. I remember at OFFF in Lisbon, Joshua Davis was talking about creativity and how he made up stories to order for his daughter every bedtime. I’d like to give it a go, and I thought
writing about it would give me a chance to think it through and some motivation to continue.
Sleeping on London Bridge
Our son Rufus slept in different ways as he reached different milestones. The first kind of sleep, when he was a tiny baby, was more a some kind of rapidly cycling consciousness and unconsciousness designed to disrupt parental sleep, this was a phase where we were lulled into a false sense of security. “It’s easy having a baby! Look here we are, out at the pub, and our baby is sleeping next to us at nine-o-clock at night!”. This phase passed and we fairly rapidly realised that Rufus wasn’t going to be the kind of baby who could just fall asleep on the play mat, or in the pushchair at a café, or in our arms at the pub, or in fact anywhere unless we did something to sort this situation out.
Human readable Gravity Forms exports using XSL
We have a client who needs to review a very complex form created in Gravity Forms. The form has many fields, and to make things worse the labels displayed to the user and the labels displayed to the administrator when someone submits the form are different. Because Gravity Forms has an XML export, it occurred to me that I should be able to create some transformational XSL to turn that XML export file into a human readable description of the form. Continue reading “Human readable Gravity Forms exports using XSL”
Alfred Workflow to open a directory in Sublime Text
I’ve recently switched to development in two Vagrant virtual machines (VMs), one VM running Nginx and one running Apache. This means that are two locations I might need to open files from, with two sets of directories representing the document roots of my various development sites. Eventually I got bored of using the terminal to “subl ~/Vagrants/nginx/www/wordpress-whatever/” and decided to write an Alfred Workflow. Now I just trigger Alfred, hit “v client“, and Alfred shows me all my projects in directories with “client” in the name. Continue reading “Alfred Workflow to open a directory in Sublime Text”
Dumpnaming
Whenever I dump a database out to a file, I always like to have it named sensibly: example-20130718-1523.mysqldump. Having a consistent name for the database dumps helps keep them in order, and helps me to clear up unneeded files at the end of jobs. Continue reading “Dumpnaming”
Taxonomies talk at WordCamp Lancaster 2013
Using the OSX clipboard from the command line
The OSX pbcopy
terminal command, which adds “stuff” to the clipboard to be pasted later, is really useful. For example, to download some webpage and put the HTML source in the clipboard:
curl -s http://example.com/ | pbcopy
Here’s a WordPress example; want to get some fresh API salts and keys for a wp-config.php
? Try this:
curl -s https://api.wordpress.org/secret-key/1.1/salt/ | pbcopy
Want to be notified when the download and copy are complete? Add the say
command, like this:
curl -s https://api.wordpress.org/secret-key/1.1/salt/ | pbcopy; say 'Ready to paste';
I use DTerm, which is an excellent little “popup terminal” which inherits the current context, and these commands are super handy here.
Spot the duplicates, using a Gravatar identicon hack
A project at work needed me to write a UI to find and delete duplicate attachments on a single post, from a client’s WordPress website. Creating a couple of queries where I could look over each post in turn, and check a hash for each file attached, then spot the duplicate hashes wasn’t too hard. Where I was struggling was making the rows with the duplicates stand out visually, file hashes, e.g. bc38d8d8993b5e9f4617576d2adeb875
, are just not that easy to distinguish from other hashes, e.g. dbe0256fe35b88ebd4e4e433604b7487
… see the problem?
What I wanted was some way of mapping a file hash to a colour, or something strongly visual. Which is when it occurred to me; Gravatar could do this! Continue reading “Spot the duplicates, using a Gravatar identicon hack”