I recently started using Panic’s Coda as an alternative to Sublime Text, and it looks really slick – the inbuilt SFTP particularly could make a big difference to my workflow.

But I hit a snag pretty early – Coda wouldn’t accept my SSH key – neither would Transmit (a straight FTP app from Panic) – throwing a “ssh key is not in a supported format” error. Now they key definitely works – Terminal and Cyberduck were both fine with it.
There was nothing unusual about how the key was generated – it was under Yosemite in accordance with GitHub’s guidelines, and using a passphrase.

A quick search threw up quite a lot of similar problems, and plenty of different solutions – however none worked for me…

Luckily Panic give prompt support on Twitter and after a couple of suggestions found a solution that worked for me:

In fact I didn’t even need to use a ssh config file – but I have quite a simple setup at the moment. The important, and counterintuitive, part was to NOT select the key file, but enter the passphrase.
If that doesn’t work for you, and you’re getting SSH key errors in Coda or Transmit, there are a selection of other solutions in this thread.

6am Saturday the 24th I headed down to London for UK GovCamp 2015 – an unconference centered on the public sector.

As usual the was a huge variety of topics pitched, and personally I really appreciated the lack of an “introductions” session – it got things moving much faster.

My day went sonething like this:

  • The other half of open source: wordpress, local GDS, github, APIs selfishness. Hosted by @simond and @danmaby
  • Content strategy at scale. Hosted by @tomhewitson
  • Stop me before I hack your website! and “How to do wordpress securely”. Hosted by @edent and @harrym
  • Security screw-ups. Hosted by @glynwintle
  • Corridor session catching up and drinking tea

Now this isn’t a full write up of the event, or even my day, but there’s a few things to highlight:

  • GDS hasn’t filtered down to Local level. One was to tackle this, since Local Gov. is focussed around transactions, is to build a new middleware framework to integrate font- and back-end systems. Another tack would be a build an extensible platform, along the lines of WordPress, that could deal with creating and managing the front-end and integrate with any necesary back-end system.
  • You must pentration test your site – reapeat 10 times. Particularly authoritative domains, which are high value for spammers in particular – watch for comment and hidden link spam. Think of it like an annual gas check – not a one off.
  • A domain is for life, not just for… Orphaned domains can be re-registered by people with nefarious intents. This is especially dangerous if your domain is widely linked to, made even worse if they are authoratative themselves – there were some really nasty examples like the re-purposing of the Bloody Sunday and Hutton Inquirey sites.
  • People are always a security weak spot – but that doesn’t mean you shouldn’t batten down the technical side. Don’t let the “script-kiddies” in.
  • Password complexity requirements tend to weaken security – most people put a capital as the first letter, and punctuation (!) / number (0 or 1) as the last.
  • Please(!) leave the water out all day. It’s not only at lunch time that people are thirsty – this is a speaking orientated event after all…

There’s a very interesting blogpost by @jonathanflowers that puts some thought’s I’ve had much more eloquently. I recommend you read the original but in essence – the session pitching format could do with some work. This would really increase the value of the conference to me, being able to ensure I’m in sessions that I really care about, or not – an informed decision at least.

There’s a Flickr pool of photos from the day, the tweets were all under #ukgc15, and all the liveblogs can be found by looking at the session list.

Nivo Lightbox isn’t the most widely known of Dev7studios products, but it’s a solid and simple image slider.

However one feature it doesn’t currently have is transition effects when navigating left/right through a gallery. It turns out though that a couple of small modifications were all that was needed to provide the required hooks. You can see my pull request on Github here. This gives you two more functions you can configure on the front-end to trigger whichever Javascript or CSS library you prefer.
Continue reading

I recently setup a small server monitoring script using the APIs from Gandi and Monitor.us – both services I would recommend – to use as a module within Status Board.

There was one small quirk – I decided to run it from a Gandi PAAS instance and discovered that the PEAR install they provide doesn’t include two PEAR modules required to run their own API… Luckily it is easy to fix.

  1. Download HTTP_Request2 and Net_URL2 from PEAR and extract them locally.
  2. Navigate inside the extract folders and upload the HTTP and Net folders respectively to /lamp0/web/includes
  3. That’s it!

A strange oversight perhaps but at least Gandi provide the ready configured includes path/folder.

20130122-220026.jpgLately I’ve been working with the conservation group in a local village. They were awarded Big Lottery funding for promoting and growing the group, and decided a website was an ideal partner to traditional leaflets. A local designer was contracted to design the print media and I built the web site around the identity he created. It will be launching over the next two weeks but here’s a sneak peak.
Continue reading

Background

WordPress offers quite a friendly hybrid WYSIWYG / HTML editor that makes publishing easy even for those with no HTML experience. One of the ways it accomplishes this is through a function called wpautop. This runs on the_content as the page is drawn to insert <p> and <br/> tags as needed. By inserting them dynamically like this it prevents code creeping in to the editor and leading to potential confusion / corruption. However, it can sometimes lead to unexpected results – especially when combined with shortcodes.
Continue reading

One of the big problems with Responsive Web Design is dealing with fixed size elements, especially iFrames and Tables. While a table can be flexible, there will also be a minimum size past which it will spill out of it’s container or be cropped/trigger scrolling, depending on your CSS setup.

Whilst working on a site recently I started looking for a solution and came across a good round up of responsive table techniques by Chris Coyier. There are no perfect solutions, and each of the techniques there have pros and cons depending on your exact design. From a UX perspective I think Chris’ technique displaying a table as a list using pseudo elements is great – however when non-code-savvy editors will be creating your content, you can’t expect them to create custom CSS or add unusual variables to the table HTML. In the end I decided the most versatile was the second solution created by Scott Jehl that shrinks the table using CSS below a @media-query defined break and allows you to view it as an overlay. One big problem with this implementation is cross browser compatibility – there isn’t a lot of it…
Continue reading

Prior to WordPress 3.1 you could only use one meta_key : meta_value : meta_compare in a query_posts. This meant that you could, for example, get the custom post type (cpt) product, filter it to get only those products that have a price >= 100. However you could not then orderby department ASC. Neither could you get the products with a price over 100 and colour green.
Now you can do advanced CPT filtering in WordPress since 3.1 with meta_query. There’s a nice intro post to this which I won’t repeat, but here is the code I used last week as an example:
Continue reading

UK GovCamp 2012 official logo
As mentioned on Thursday, Friday was the 5th UK GovCamp and the biggest yet.

The day started well (with free t-shirts and lots of tea/coffee & biscuits), and even 260 people introducing themselves to the room was kept on schedule. You can see the agenda agreed on Flickr courtesy of David Pearson.
There was a definite social media theme (managing it, measuring ROI, best practices, safety, custom internal social networks etc), but also sessions covering a huge variety of topics, both practical and theoretical.
Continue reading