MEMP Stack on Yosemite

This is a great article on getting a MEMP stack running on OS X 10.10 Yosemite:

Personally, I skipped everything with regards to phpMyAdmin, since I use Sequel Pro for interacting with MySQL databases. You may notice that there’s a known bug with the current stable version of Sequel Pro (1.0.2) on Yosemite, but if you don’t need user management, you’ll be fine.

New Theme: Twenty Fifteen

My favourite default theme in quite a while. Congrats to all involved! News

It’s that time of year again. The snow has started falling in northern countries, friends are gathering together to exchange presents, and it’s time to launch a beautiful new annual theme for WordPress.

Hello World, Twenty Fifteen is here.


Twenty Fifteen is all about the details. Everything you publish is elegantly set in Noto Sans and Noto Serif, keeping the design harmonious and balanced in multiple languages around the globe. That polylingual pixel perfection is matched by its responsive design. From device to device, Twenty Fifteen will look smart and polished.


The attention to detail is reflected in the menu design. Check out the descriptions under the links in the demo and the screenshots above. Learn how to add menu descriptions on the theme showcase page.

The fine details and strong structure make Twenty Fifteen look even better with a bit of customization. We have five featured color…

View original post 94 more words

On API Correctness

Great summary pointing to the heart of working with APIs.

Developer Resources

Developing APIs is hard.

You pour your blood, sweat, and tears into this interface that bares the soul of your company and of your product to the world. The machinery under the hood, though, is often a lot less polished than the fancy paint job would lead the rest of the world to believe. You have to be careful, then, not to inflict your own rough edges on the people you expect to be consuming your API because…

Using APIs is hard.

As an app developer you’re trying to take someone else’s product and somehow integrate it into whatever vision you have in your head. Whether it’s simply getting a list of things from another service (such as embedding a reading list) or wrapping your entire product around another product (using Amazon S3 as your primary binary storage mechanism, for example), you have a lot of things to reconcile.

You have your own…

View original post 834 more words

JSON in the Chrome Inspector

Sometimes you get back JSON data in a browser window, and it would be nice to just check it out without having to fire up anything else, or muck with copy/pasting. A quick Google search implies you need an extension for Chrome, but there is a simple (if somewhat buried) way to browse JSON objects with the Inspector: in the Network tab, select your source and then the Preview tab (beside the Headers tab). Enjoy!

What WordPress Themes are really about (and WordPress 4.1)

A good reminder of what meaningful theme development is all about.

Ian Daniel Stewart

I’ll be committing code to WordPress again with version 4.1! I made my last big contribution with Twenty Ten and Twenty Eleven where I had a hand in both design and coding. (It was with Twenty Eleven where I was actively contributing code). This time I won’t be working on a theme I designed. Instead, I’ll be helping to bring a design from my friend and colleague Takashi Irie to millions and millions of people. As cool as it is to work on the core WordPress project — it’s the software behind 1 in 4 of the websites you visit! — I think I’m just as excited, if not more excited, to work with Takashi on it.

Yes, he’s a great designer and a great person to work with but more than that he understands what themes are about.

  • How people use them as the foundation for personal expression on the…

View original post 142 more words

Simple testing of different Git commits

I use branches a lot with Git, as I find them easy to understand and a great tool for organizing. If you want to easily switch back and forth between versions of your code base for testing, you can just create a branch with a particular commit:

git checkout -b before-refactor a8b912c0ebdce6173f6e7af5d93fafc0f50175c0

This also lets you easily compare versions by diffing the branches:

git diff master before-refactor

Debugging theme mods

When developing themes, it can be useful to see what theme mods (setting values from get_theme_mod()) are set for your themes at the database level. However, this information is serialized, making it difficult to access, read, and modify while testing.

I’ve been relying on two tools for this sort of work lately: Sequel Pro and the Online PHP Unserializer.

Sequel Pro is a Mac-only, open-source tool for working with MySQL databases; it’s much faster, robust, and intuitive than PHPMyAdmin, and easier to work with than MySQL Workbench. The Online PHP Unserializer does its one thing, and does it well.

Copying serialized data from the database back and forth from the Unserializer makes it easy for me to troubleshoot mod settings, revert to previous values, or zero out certain values without having to delete the whole row from the database. This can be invaluable when testing code for the Customizer, or anything involving multiple themes at the same time.

If you have other troubleshooting tips, or any other tools to suggest than those above, let me know!

Evolving the Customizer

The Customizer is dead. Long live the Customizer.


The Customizer is great. I’ve been working in and around it to offer site customization features to our users since it launched with 3.41, coinciding with when I joined Automattic on Team Custom. We’ve especially used it to build great tools as part of the Custom Design upgrade, but as we’ve pushed the boundaries of what awesomeness we can unlock for our users, certain aspects of the Customizer have started to create roadblocks for us. Some of these are addressable, and some probably aren’t.


The Customizer doesn’t work on a phone/small screen. Anyone who thinks this isn’t a dealbreaker is just wrong. The UI was designed for the desktop web. This could possibly be addressed in core, but it will require a pretty fundamental rethinking of the interface.


The Customizer can get really slow. This is partly because of its two-requests-to-load model: one for the

View original post 834 more words