Nothing But Words

Mike Toppa’s Blog

About | Contact | Archives | Photos | WP Plugins

Twitter Weekly Updates for 2012-04-08

  • Tough family trip so far in San Diego – Maria is having really severe back pain and Eidan lost his backback with his Kindle Fire in it #fb #
  • …And my dad's web site was hacked, so that needs fixing… #fb #
  • Kind taxi driver returned Eidan's backpack (with Kindle), and Maria's past her sciatica pain, now just has a numb leg… progress! #fb #
  • I'm behind posting San Diego photos. Here are 10 new ones: Balboa park, USS Midway, model train & science museums https://t.co/KIWhAy8s #fb #
  • The footage on NHK World right now, of last year's tsunami in Japan, is incredible (Mind TV, broadcast channel 35.2 in Philly) #fb #
  • Work, laundry, weeds, taxes, groceries…, yup, I'm back from vacation. More pics soon. #fb #
  • Speakers get a free extra ticket for WordCamp Nashville on 4/21. I'll give mine to the first to claim it. You can buy me a beer ;-) #wcnash #
  • Oops, my comp ticket for #wcnash is just for me as a speaker. I don't have an extra – sorry. #
  • From @auditty – a great approach to technical training. For her team it was Drupal, but you can do this for anything http://t.co/sJTF7km3 #
  • @jaredatch Cut it! I haven't had cable for years. Netflix is many times cheaper, and I have an antenna for local channels. in reply to jaredatch #

WordCamp San Diego

@theandystratton presenting "Accomplish it with Core: Galleries, Sliders and More" at WordCamp San Diego@theandystratton presenting "Accomplish it with Core: Galleries, Sliders and More" at WordCamp San Diego
@theandystratton presenting "Accomplish it with Core: Galleries, Sliders and More" at WordCamp San Diego24-Mar-2012 11:31, Canon Canon PowerShot SD780 IS, 5.8, 17.9mm, 0.05 sec, ISO 500
@norcross is out of uniform for his presentation "Stay Classy, WordPress" at WordCamp San Diego@norcross is out of uniform for his presentation "Stay Classy, WordPress" at WordCamp San Diego
@norcross is out of uniform for his presentation "Stay Classy, WordPress" at WordCamp San Diego24-Mar-2012 18:26, Canon Canon PowerShot SD780 IS, 5.8, 17.9mm, 0.05 sec, ISO 800
WordCamp San Diego Developer Day, at CoMergeWordCamp San Diego Developer Day, at CoMerge
WordCamp San Diego Developer Day, at CoMerge25-Mar-2012 14:35, Canon Canon PowerShot SD780 IS, 3.2, 5.9mm, 0.033 sec, ISO 250
@tweetsfromchris takes on Nicky Rotten's 2.5 lbs. burger challenge (with a gigantic side of fries)@tweetsfromchris takes on Nicky Rotten's 2.5 lbs. burger challenge (with a gigantic side of fries)
@tweetsfromchris takes on Nicky Rotten's 2.5 lbs. burger challenge (with a gigantic side of fries)25-Mar-2012 21:34, Canon Canon PowerShot SD1400 IS, 2.8, 5.0mm, 0.017 sec, ISO 800

This was my second WordCamp, and my first not as a speaker. When I presented at WordCamp Philly last Fall, I was blown away by the positive energy of everyone there (which is one of the things that led to my current position with WebDevStudios). WordCamp San Diego was just as much fun, and there was plenty to learn too. Coming from Philly means it’s a long way to go for a WordCamp, but WebDevStudios was a sponsor, so several of us from the company went. Since we are a virtual company, I also met a couple of my co-workers in person for the first time – @tweetsfromchris and @TobyBenjamin

WordCamps typically have 2 simultaneous tracks – one for developers and one for users. They also provide an opportunity for these two parts of the WordPress community to come together, so online businesses can find good developers, and for developers to find rewarding projects.

I stayed in the developer track for all but one presentation, and they were all excellent. WebDevStudio’s own @williamsba presented on how to configure and use WordPress multi-site. Even in the more introductory-level sessions, where I thought I’d already know everything, I actually learned a lot. The vibrancy of the WordPress community, and the dedication of the speakers, who appear without compensation, continues to impress me.

The “spring training” theme was really well done, from the matching baseball jerseys for the speakers, to the web site, stickers, and, of course, the cake. @norcross gave his whole talk as Ron Burgundy (yes, in his boxers), which was hilarous enough to justify him being the only speaker out of uniform.

The after party was a blast. It was my first experience where it was socially acceptable to both drink and have endless conversations about code and WordPress. I have found my people :-) and it was great to meet @housechick, @jaredatch, @matthewjcnpilon and @i3inary.

The 2nd day of the conference was a developers’ day, held at the very sleek Co-Merge workplace. This was similiar to the developers’ day at WordCamp Philly, with some short presentations, but the focus was more on people making connections and helping each other code.

The one challenge for me was sleep. WebDevStudios rented an apartment since several of us were there. The first night there was a party happening in an adjacent unit, and the thumping bass didn’t stop coming through the floor until about 3AM. The next night someone was shot and killed right outside our apartment, and the last night one of my co-workers had to get up and leave really early for his flight. But I’m not so old (yet) that I can’t handle it (actually, having kids has conditioned me to handle sleep deprivation better than I did years ago).

My next WordCamp is in just a few weeks. I’ll be speaking at WordCamp Nashville, on how to apply dependency injection techniques to WordPress plugin development.

I took pictures throughout the day – here’s the complete album:

2012 - WordCamp San Diego2012 - WordCamp San DiegoMar 23, 2012Photos: 14

Twitter Weekly Updates for 2012-04-01

Twitter Weekly Updates for 2012-03-25

Plugin support post 4, and what’s coming for Shashin

There are almost 100 comments total on my last two Shashin related posts, so its time for a new support thread. Please use the comments section of this post for questions about Shashin or any of my other plugins.

Here’s what’s coming up for Shashin:

  • Simplifying upgrades: I plan to integrate Plugin Dependencies so Toppa Plugin Libraries will be automatically installed or updated when you install/update Shashin. And I’ve already removed the need to deactivate and reactivate Shashin when auto-updating (this is actually an interesting issue with WordPress’ automatic plugin upgrades).
  • A Highslide add-on for Shashin: I plan to make this available outside the wordpress.org repository, but in a way that will stay within the good graces of the GPL.
  • Social media buttons: my #1 request is for Facebook like buttons, Google Plus, etc
  • Provide the ability to make a Shashin photo the featured image of a post (maybe): I need to confirm this is possible

…And possibly making Shashin more responsive design friendly (if it doesn’t make it in the next version, it will in the following one).

Twitter Weekly Updates for 2012-03-18

  • In Newport with my brother and sisters for my mom's birthday #fb http://t.co/JmSfAnp1 #
  • Submitted my 2nd patch to WordPress core. It's just a wording change, but it's been causing headaches for me: http://t.co/SFauunwe #
  • On the train back to Philly, doing some @webdevstudios work, and enjoying the intermittent wifi #
  • @ericandrewlewis In hiring people, I found a drive for ongoing self-improvement mattered more than having a CS degree in reply to ericandrewlewis #
  • Shashin 3.1.4 fixes the annoying activation issue, and fixes a Fancybox bug with Firefox http://t.co/gOR0JxU9 #
  • Trying to decide if it's worth $5 to see @williamsba at the Philly WordPress Meetup Tues, talking about multi-site ;-) http://t.co/WYG1h0FQ #
  • "losing 1 hour of sleep/night for a week causes cognitive degradation equivalent to a .10 blood alcohol level." http://t.co/c9xrQjJ4 #
  • Neighborhoods need a social media site for exchanging trash can lids when they blow way down the street #
  • Forgot to make Eidan a "kiss me I'm 3/16 Irish shamrock," like the one Kai used to have https://t.co/dcZtg6ed #fb #
  • Americans don't like gov't spending generally, but they like every spending program; same is true for regulations http://t.co/jq0d6vQd #fb #

Twitter Weekly Updates for 2012-03-11

  • On the Bolt Bus to NYC with @williamsba for a meeting with @LearningTimes – enjoying the wifi! #
  • Just pushed fixes for Shashin and Toppa Plugin Libraries to http://t.co/Gi0D4ZfY. Solves the new site install bug in Shashin 3.1 #
  • Just wrapped up a 7 1/2 hour conversation on all the great enhancements we're going to make to BadgeStack http://t.co/CsFNM0NE #

Shashin 3.1.3, and why all the recent changes

Update: Shashin 3.1.4 takes care of the activation issue – you no longer need to click the “deactivate” and “activate” links in the plugin panel when upgrading.


I’ve uploaded Shashin 3.1.3 to wordpress.org. Several people have complained of error messages that start with “Invalid data property __get for…” when updating to 3.1.x. These messages relate to new settings that are added during activation, but they were not actually being added. This puzzled me because the WordPress automatic updater shows a message saying it is deactivating and reactivating the plugin when it upgrades. The problem is, it’s not actually doing it – here is the WordPress defect ticket: Auto update plugins does not activate activation hooks.

Apparently this behavior is an intentional choice. I’ve submitted a patch that corrects the wording (so at the very least, plugin authors like me don’t misunderstand what it means). In the future I will make sure to work around this, but with 3.1.3, you will need to deactivate and reactivate Shashin one more time yourself from the plugin menu after upgrading.

My apologies if you’ve had other difficulties with the recent Fancybox changes. I’ve included Highslide with Shashin since 2008, and I gradually added features and made improvements as I learned the capabilities and quirks of Highslide. Due to a licensing conflict I was alerted to, I had to rip Highslide out of Shashin immediately and switch to a different viewer with a GPL compatible license (Shashin was temporarily removed from the wordpress.org plugin repository because of this). Some of the other great viewers, like PrettyPhoto, are also not GPL compatible, so I went with Fancybox. I had only a short period of time to add it, and I’ve spent many hours recently working through some of the intricate issues involved with making it work with Shashin.

Version 3.1.3 makes the following improvements:

  • Added automatic timed slideshows
  • Improved captions for photos shown after clicking an album thumbnail (this also fixes the bug with then “return” link for albums)
  • In FancyBox caption, show exif data if requested, even if there is no photo caption text
  • Bug fix: show correct FancyBox captions on photos shown after clicking an album thumbnail, on pages that have a mix of photo groups and album thumbnails
  • Possible bug fix: add a 30 second buffer to the time check when synchronizing albums, in case there is a delay between synchronizing the album’s meta data and the album’s photos (this is to try addressing occasional reports of photo ID numbers changing, which means they are being deleted and re-added).

Also, its worth highlighting that in 3.1.2 I resolved the problem of the Fancybox slideshow navigation controls overlaying controls for videos. The video controls are accessible now.

Plugin support post 3

Update 3/9: I’ve uploaded version 3.1.2 of Shashin, which makes two improvements: the code for handling the FancyBox captions is now cleaner (no HTML embedded in the title attribute) and the navigation controls in slideshows now don’t overlay controls for videos (so you can use the video controls now).

Update 3/7: I’ve uploaded new versions of Shashin and Toppa Plugin Libraries that corrects the installation bug in Shashin 3.1 that was affecting new installations. You will need to update both plugins.


You can use the comments below for any support questions about my plugins. Please read the Shashin 3.1 release announcement post, as it explains the replacement of Highslide with Shahsin, and explains some of the limitations of Fancybox.

A couple other things to note when installing Shashin 3.1:

  • You’ll also need to latest update of Toppa Plugin Libraries for WordPress
  • On my own site I got an error on the Shashin settings page after doing the automatic upgrade. Deactivating and reactivating Shashin will solve this problem. Deactivation and reactivation should happen as part of the automatic upgrade, but it didn’t seem to happen for me (the automatic upgrade process is handled through WordPress itself, so I can’t modify it).

Shashin 3.1, with Fancybox

Update 3/9: I’ve uploaded version 3.1.2 of Shashin, which makes two improvements: the code for handling the FancyBox captions is now cleaner (no HTML embedded in the title attribute) and the navigation controls in slideshows now don’t overlay controls for videos (so you can use the video controls now).

Update 3/7: I’ve uploaded new versions of Shashin and Toppa Plugin Libraries that corrects the installation bug in Shashin 3.1 that was affecting new installations. You will need to update both plugins.


Shashin 3.1 is now available for download at wordpress.org. I’ve added support for WordPress multi-site installation, and improved error reporting when there are problems with album synchronization. But the biggest change is that, due to a licensing conflict, I have removed Highslide and replaced it with Fancybox 1.3.4. Highslide uses a Creative Commons license, which is not compatible with the GPL, and all code in the wordpress.org plugin repository must be GPL compatible.

While the visual style of Fancybox is different from Highslide, the functionality is mostly the same. However, there are a few limitations with Fancybox:

  • Loading Twitpic photos may be slow. Twitpic URLs for photos redirect to cloudfront.net, and Fancybox is unable to resolve redirects. I added my own code that resolves the redirect before passing the link to Fancybox, but this means two calls for loading every photo.
  • Fancybox requires this approach to the code when mixing videos in groups with photos, and this approach if you want to dynamically set the dimensions of a video, and the two are not compatible. I decided including videos in groups was more important, so video dimensions are fixed for all videos (you can set your desired video size in the Shashin settings page).
  • A related issue is that the Fancybox overlay for navigating videos in groups overlaps the video controls, which means you can’t pause, adjust volume, etc with videos if they are in groups. This is simply an unfortunate limitation of Fancybox. As of Shashin 3.1.2 this is no longer a problem.

So why Fancybox? Despite these issues it is still one of the more robust viewers available, and it is GPL compliant. Highslide, PrettyPhoto, and even the just released version of Fancybox (2.0) all use GPL incompatible Creative Commons licenses.

Making the transition to Fancybox was a huge effort. I’ll be willing to entertain including another GPL compatible viewer if you can recommend one that doesn’t have these technical limitations, but not right now ;-)