#wcnyc: A Journey To The Center Of WP-CLI

The talk went great! I improved my wp present command to do some fancier Markdown parsing, and it worked out quite well. Here’s the markdown file if you’d like to skim through.

Although I didn’t finish my slides until this morning, I did a couple of things I’ll always be doing going forward:

  1. Produce a list of a few bullet points I want to hit for each slide, in case I get off track. I put these in Apple Notes so I could easily reference from my phone when I got stuck.
  2. Practice the presentation a couple times. This was really helpful to identify how I wanted to transition between each slide.

The visual representation of the slides are below.

Continue reading

Grist is hiring

Grist, an environmental news non-profit based in Seattle, holds a special place in my heart as the first place I ever worked. The story goes a bit like this…

During my freshman year at college, I was still keen on making my career as a photojournalist. I applied for six summer photo internships at various publications, all unpaid. I waited, waited, and waited, and didn’t hear back from a single one. Then, Corey McKrill (now with the legendary Theme Foundry) sent an email to the Whitman listserv advertising Grist’s web production internship. Paid — enough to live for the summer in Seattle. Andrew Witherspoon and I had done some WordPress hacking breaking the past semester so I applied, got the gig, and the rest is history.

Grist is hiring not one but two developers. If media, the environment, and WordPress is your sort of thing, you should talk to Nathan (and tell him I sent you).


Looking back now it seems as if waves of settlers have since bulldozed and developed every possible venue, leaving only the most difficult and gnarly specks for today’s newcomers. Thirty years later the internet feels saturated, bloated, overstuffed with apps, platforms, devices, and more than enough content to demand our attention for the next million years. Even if you could manage to squeeze in another tiny innovation, who would notice it?


But, but…here is the thing. In terms of the internet, nothing has happened yet. The internet is still at the beginning of its beginning. If we could climb into a time machine and journey 30 years into the future, and from that vantage look back to today, we’d realize that most of the greatest products running the lives of citizens in 2044 were not invented until after 2014. People in the future will look at their holodecks, and wearable virtual reality contact lenses, and downloadable avatars, and AI interfaces, and say, oh, you didn’t really have the internet (or whatever they’ll call it) back then.

Kevin Kelly — You Are Not Late

Reusing DFP slots within infinite scroll

Infinite scroll on the index view and article view seems to be all the rage these days. TIME reports their bounce rate went down by 15 percentage points with their redesign. At some point in the discussion, AdOps will raise their hand and say “how can we get ads in the scroll experience?”

Short answer: with code! Because AdOps only wants to create a limited set of ad slots, and Google DFP slots can be used once per page, you’ll need to display the slot first, and reload it for each subsequent use.

The slots are added dynamically as the user scrolls. If a given slot has already been loaded once, then the next time we try to use it we actually pull the first instance over to our new slot, reload it, and add a placeholder for its old position so the page height doesn’t jump. We can use the same trick scrolling back up, simply replacing the placeholder with the refreshed ad.

Google’s documentation has a similar example that’s a good reference point for methods, etc. Pay attention to googletag.refresh( unit ); and googletag.pubads().refresh([unitInstance]);unitInstance is what’s returned by googletag.defineSlot(), so you’ll need to store that somewhere for later reference.

I look forward to hearing about the straightforward approach I missed…


Off to Philly today for SRCCON, a gathering of some of the nerds who make the technology behind the news. I am so excited! For years, CMSes, publishing workflows, and the unsexy but very mission critical technologies have been my passion. Yet most of the conferences, online discussion, etc. have skirted around the topic, in part because legacy organizational structure hasn’t let the hackers get to work.

Funny how things go if you stick at it long enough. Washington Post and Vox have made great leaps forward, and convinced executives everywhere that change is possible. Hell, even The New Yorker relaunched on WordPress two days ago. NBD.

Back to Portland Saturday night, off to Sunriver Sunday through Wednesday, and then to New York for WCNYC Thursday through the following Wednesday. REST API retooling here we come!


We had our 6 oz toothpaste container taken from us at KEF just now — Leah mistakenly put it in the bin. When I asked why it was taken, the security agent explained there was some greater than 4 oz rule, even when it was obvious there was less than 4 oz of cream in the tube.

This logic is flawed in a couple of regards. First, if I really wanted to get more than 4 oz of liquid on a flight, I could just separate it into two or more containers. Second, the ziplock bag they generally recommend putting all of your liquids in is far larger than 4 oz. I could just fill my ziplock with a number of full 4 oz containers.

When the best explanation an agent can put forth is "well, that’s the rule", something has gone horribly wrong with aviation security. It doesn’t take much to circumvent the system.