The Automattic Photo, 2017 Edition

Last September almost 600 employees of Automattic travelled to Whistler in Canada for our annual Grand Meetup. As is now a company tradition a photograph was taken of everyone who attended. It’s a challenge taking a photograph of that many people. Remember how hard it was taking that family photo? The difficulty of getting everyone to look at the camera at the moment the shutter closed, or even just getting everyone in one place is multiplied when you have this number of people.

The last company photo was also taken in Whistler and we took a photo in the that same location again but it wasn’t good enough. The camera wasn’t up high enough, so people in the back were all but invisible in the photo. This photo was taken around the corner, where the photo was taken from a first floor balcony. Plenty of height and a perfect vantage point.

Taking the photo was one challenge, but then came development of the image. The camera had to be handheld because of the location on the balcony but the photographer took plenty of shots so I had a lot of material to work with.
The first issue was lining up the photos and I tried using Affinity Photo. Unfortunately it wasn’t quite up to the job (at least with the knowledge I have, it’s an excellent tool otherwise) but I learned a lot about working with layers and layer masks as I swapped parts of different images around.

Eventually I used Photoshop, loaded 3 photos in a stack and the auto align did a great job of correcting for changes in each photo.

What turned out to be the biggest pain point in developing a photo like this was removing people from the background. Here’s a few of them:

Blond Guy
This guy stayed in the crowd for about ten images. I only realised he wasn’t part of the group when I saw him with his friends in an earlier photo.
Two guys showed off their bikes for the camera. It was easy to tell they weren’t part of Automattic!
This lady thought it would be fun to join us in the photo. Her friend was laughing in the background and can be seen in the photo below.
This man stood mostly still throughout the photos that were taken making it more difficult to remove him, but he’s gone from the final image. 🙂

I’m already planning for next year. We’ll get some shots of the background to make it easier to to clone bystanders out, and have more volunteers to help organise the shoot so we make best use of the available space.

The dog bar in the Cosy Cafe

The Cosy Cafe is a small cafe in Kinsale with seating outside where, even on a cold day like this, dog obsessed customers can come for a bite to eat and their dogs can have a meal too.

Diego enjoying some doggy kibble at the Dog Bar. The food and water was originally on the raised platform but it was too high for my little chihuahua. I’m sure it won’t be a problem for most dogs!
My fish and chips were delicious.

Writing WP Super Cache Plugins

WP Super Cache is a full page caching plugin for WordPress. When a page is cached almost all of WordPress is skipped and the page is sent to the browser with the minimum amount of code executed. This makes the page load much faster.

Unfortunately if you want to run code on every page load you’re out of luck as regular WordPress plugins are not loaded or executed. You’ll need to write a WP Super Cache plugin. This short introduction will not teach you how to write plugins but the example plugins that ship with WP Super Cache will get you a long way towards understanding how they work.

Screen Shot 2017-10-25 at 16.49.10

WP Super Cache ships with some example plugins in wp-super-cache/plugins/. Some of them even do useful tasks like help with domain mapping and Jetpack integration. There’s one called “awaitingmoderation.php” which removes the text “Your comment is awaiting moderation.” when someone writes a moderated comment.
There’s also dynamic-cache-test.php which is a complicated beast but it’s heavily commented. It allows you to add template tags to your site that are replaced when the cached page is loaded.

Before you get started writing a plugin you should be aware that you should not use the wp-super-cache/plugins/ directory. Every time WP Super Cache is updated this directory is deleted. So, edit your wp-config.php and set $wp_cache_plugins_dir to another directory where you’ll put your plugin.

These plugins run before most of WordPress has loaded. That means you can’t rely on some of the nice features of WordPress such as filters and actions. However, WP Super Cache has it’s own action/filter system that is similar to actions and filters in WordPress:

  • add_cacheaction( $action, $func )
  • do_cacheaction( $action, $value = ” )

A cacheaction is also a filter. If you hook on to a cache action that has a parameter, you must return that parameter at the end of the function like you would with a WordPress filter.

Screen Shot 2017-10-25 at 16.52.59

If you need to hook into a WordPress filter use the imaginatively named cache action “add_cacheaction”. That runs on “init” so the function that is executed can use add_action() or add_filter(). You can see this in action in the plugins/dynamic-cache-test.php or plugins/awaitingmoderation.php scripts.

Two very useful filters are the WordPress filter, “wpsupercache_buffer” (in wp-cache-phase2.php) that is used to modify the page before it is cached and the cache action “wpsc_cachedata” (in wp-cache-phase1.php) is used to modify the cached page just before it’s served.

Storm Brian hits Galway

Storm Brian made landfall at Galway this morning. I wouldn’t like to be walking along Salthill now.

The south and west coasts are getting battered though.

A status orange wind warning for the coasts of Mayo, Galway, Clare, Kerry, Cork, Waterford and Wexford is in place from 10pm tonight for a period of 24 hours.

Stay safe!

The Aftermath of Hurricane Ophelia

Hurricane Ophelia hit Ireland yesterday and while it was a baby compared to the monsters that ravaged the Caribbean and US it still did plenty of damage and left 3 people dead. Many areas were left without electricity or running water for most of the day. A day later and there are still areas without those basic amenities. Telecoms services were disrupted too as lines were cut and exchanges and mobile sites ran out of power. 30,000 people were without access to phone or Internet access. A red alert was declared nation-wide. Schools closed (for 2 days), public transport wasn’t running, shops and businesses didn’t open. There was a definite fear and expectation that this would be a big one. And it was. Gusts of 156kmh were recorded off Roches Point!

We were without power from just after 11am, then the mobile phone network, Eir, went down, except my wife’s phone was able to go online for minutes at a time throughout the day. Winds really picked up around 10am, and lasted until after 2pm with driving rain almost horizontal in the wind. Later in the day I walked around Blarney village and from the far corner of the square got a weak signal from a remote antenna and had just enough connectivity to get a few text messages.

Trees behind our home were knocked down by the wind, blocking most of the main Waterloo Road. Luckily the very tallest trees survived as they’re within reach of some of the houses!

Even this stop sign was twisted around by the wind, and mushrooms flattened too..

Two trees were knocked down in the village square, and someone had attempted to drive a car and caravan up that narrow road before getting stuck and abandoning their vehicle!

Power came back late yesterday evening, as did mobile data, but friends are still without power even now so it’s going to take some time before things are back to normal. Our satellite dish is broken, and it’ll be early November before someone can come out to replace it. Parts of my garden fence blew over too, but that was on it’s last legs anyway! A TV antenna ended up in our front garden, but I have no idea who owned it.

This morning there was a lovely sunrise, and the sky was a gorgeous mix of blue and soft orange. 🙂

Next weekend we can look forward to #StormBrian apparently. Hopefully it won’t be as bad as Ophelia.

Cassini: The Grand Finale

“1:55 a.m. PDT

Cassini engineers have received the signal that Cassini has started a five-minute roll to point the instrument that will sample Saturn’s atmosphere (INMS) into the optimal direction, facing the direction of the oncoming gases. Along with this roll, the spacecraft is reconfiguring its systems for real-time data transmission at a rate of 27 kilobits per second (3.4 kilobytes per second). Final, real-time relay of data starts immediately after. That relay marks the beginning of Cassini’s final plunge.”

Not long now before Cassini plunges into Saturn. It’s sending data back as fast as it can, at a speed comparable to a modem used by many in the late nineties!

Absolutely amazing.

Check out the NASA live stream for commentary.