#AANDigital: WordPress in the Newsroom

Since I’ve been involved in the news industry, I’ve been a huge proponent of open source software. In particular, this selling point: open source makes for much easier cross-institution collaboration. Open source software provides a legal framework for companies to pool development resources, and build mutually-beneficial products. However, as I learned the hard way, news organizations need to get to the point where they’re comfortable managing their own open source software before any collaboration can ever happen. We’ve made some strides, but we still have a ways to go.

Today, I was honored to speak about WordPress in the newsroom to the AAN Digital Conference. The alt-weeklies industry is in a situation very similar to what I saw in college media a few years back: one proprietary CMS dominates, editorial workflow is MS Word to InDesign to web, and most of the focus is on print. It was a bit of déjà vu. Fortunately, everyone is also super enthusiastic about the web — no curmudgeons in the audience.

The WordPress-powered sites I highlighted: Quartz, Metro, CBS New York, Rolling Stones, Online News Association, and DigBoston. Quartz is near and dear to my heart because I think they’re really at the forefront of innovation with an app-like product and responsive design. I can’t wait until they roll out their commenting system.

Features and plugins I pointed out include: distraction-free writing, drag and drop media uploader, Edit Flow and WP Frontend Uploader. If you’re looking for more publishing-related plugins, we’re slowly profiling our recommendations in the VIP Plugins Directory.

One parting note: this conference was the first time I’ve heard “dry humping” as a recommended way to show your appreciation to the organizers. Keep on rockin’, alt-weeklies.

#wcsf: The Zen of WP Development

The Zen of WP Development is being one with the code, and creating compelling web experiences with proper uses of the core API. It involves:

  • Focusing on the question at hand, and ignoring distractions.
  • Distilling complex situations into simpler parts.
  • Pulling from deep knowledge of the codebase to understand how APIs interact.
  • Striving for elegant solutions always.

Today, I was invited to present my perspective at WordCamp San Francisco. These are my slides. My notes are posted below them.

Continue reading “#wcsf: The Zen of WP Development”

#wcsea: WordPress at the Command Line

Today, I’ve been invited to give a talk at WordCamp Seattle titled “WordPress at the Command Line: An Introduction to wpshell and wp-cli”.

It’s exactly this — an introduction, because I hope to inspire further exploration of interacting with WordPress through the command line. Similar to Scribu, I’ve found “the keyboard is faster than the mouse” for many tasks, and that developing proficiency with the command line has dramatically increased my effectiveness as a programmer.

So, I hope you take the time to check out wpshell and wp-cli (and ack, for that matter). Think critically about how they can improve your workflow, and let me know what you script up!

#techrakingcir: The Future of the CMS

Today, I’m down at Google in Mountain View at Techraking, a gathering of technologists and investigative journalists. It’s been super inspiring because of the fresh to me perspectives — I’d love to help Portland media outlets with projects like those I’ve heard about.

At lunch, I learnt I was to lead a small group breakout on “the future of the CMS.” To keep the discussion going, we started out by brainstorming the things we liked and want to improve our respective software, and then did a roundtable to identify our six month personal goals.

Some things people like about their CMS:

  • Drupal done well is easy to use; there are a ton of modules
  • Affordability, open source is cheap
  • Community to work with
  • Many different homepage templates to choose from depending on the stories of the day

What people would like to improve (lots of conversation, as expected):

  • Data portability
  • More headless; produce output other than HTML
  • Scalability, faster when many people are working in the admin
  • Less steps for completing common, simple tasks
  • Integration with story budgeting, calendaring; API for story flow
  • Magical WYSIWYG editor; auto-save that works; track changes
  • Support structured data / semantic markup
  • Customization for story layout
  • Small pieces loosely joined; better integration with other services

Given the short notice, I thought the breakout session went quite well. About twenty people showed up. In terms of what worked:

  • Small group discussion; knew enough backgrounds to call out different people to talk
  • Noted salient points on the whiteboard as a way of plotting direction
  • I enjoyed the “what are you going to work on in the next six months” takeaways at the end

Next time, we should:

  • Figure out the location ahead of time so we don’t waste time finding it
  • Have people introduce themselves if they haven’t spoken yet
  • Every fifteen minutes, have something for everyone to participate in so people don’t check out

Jonah Lehrer on creativity

A select assortment of (probably imperfect) notes from the OHSU Brain Awareness series lecture I attended tonight.


“Ideas are non-rival goods.” There is no cost to sharing them.

“Like a Rolling Stone” from Dylan was written in five hours of insight and produced in four cuts.

On moments of insight: “As soon as the answer arrives, it feels like this answer.” Scientists simulate these moments of insight by having people complete word puzzles. When you get undergraduates too drunk to drive, they solve 30% more of these problems.

Researchers using EEG machines could predict the moment of epiphany up to 8 seconds in advance.

Insights come mostly commonly from states of unfocus and relaxation.

“Creativity is residue of wasted time.” – Albert Einstein

What defines successful creativity? Not IQ or something that can be measured with a personality test. “Grit. Persistence, stubbornness, and the unwillingness to quit.”

“We live in a world obsessed with maximal tests.” In study after study, maximal tests have failed to correlate with typical, real-world performance. It’s more reliable to look at the historical data for the subject (e.g scanning frequency on electronic checkouts vs. running the cashier through a test).

“Making something new is really, really hard.” Grit is especially important in the creative domain.

“How do you know that you actually know something if you don’t actually know it?” A hunch is a “feeling of knowing.”

“The era of the line genius is over.” In the 1950’s, the most highly-cited research papers came from scientists working on their own. Now, the papers come from teams.

What are the ideal templates for group creativity? Steve Jobs restricted Pixar (a large-ish company) to two bathrooms in the atrium to force connection and random conversations. Physical location matters a lot. “Our most important new ideas appear in idle conversation from too many people occupying the same space.”

“Attendance at business conferences has almost doubled since the invention of Skype.”

Geoffrey West asks in his research: Why are cities so durable and companies so fragile? As a city gets bigger, everyone in the city becomes more productive. Companies do the exact opposite, and this becomes dangerous in the long term.

Later: here’s a great lecture by West on the topic

“The magic of a city is that it’s a freewheeling, chaotic place.” The walking speed of pedestrians is the single most predictive variable of patents (innovation) per capita.

#nyc12: Making the Switch to WordPress

Yesterday morning, I gave the last of three CMA NYC sessions I led this week:

Considering making the switch to WordPress? Join Daniel Bachhuber, code wrangler for Automattic’s WordPress.com VIP, to learn how to make open source work for your publication. We’ll discuss whether WordPress is the right fit for you, how to assess other options, and what steps you need to take if you’d like to make the switch.

Most of the people attending had been to at least one of my other sessions, so it was a quicker review of the slides and then more of a general Q&A session. A lot of the questions revolved around the different types of hosting, where you should go for support, etc.

#nyc12: Hacking WordPress in the Newsroom

This morning, I gave the second of three CMA NYC sessions I’m leading this week:

You publish with WordPress, are comfortable with editing theme templates and making basic CSS changes, and you’re ready to take your site to the next level. Join Daniel Bachhuber, code wranger for Automattic’s WordPress.com VIP, to learn what you need to know. We’ll discuss topics like version control, performance and optimization, debugging, and other development best practices. This session will be geared towards the tech-savvy with a practical knowledge of WordPress.

It ended up being a little less ambitious. We started out with (the importance of) setting up a local environment, reviewed what makes a plugin, and introduced a few project ideas. Between a dozen and two dozen students attended; for almost all, the information was completely new.

The most important note on this subject: there are lots of jobs available.

Also, come hit us up with WordPress questions at our Happiness Bar!

Session notes are below the slides.

Continue reading “#nyc12: Hacking WordPress in the Newsroom”

#nyc12: I Want to Learn WordPress

This morning, I gave the first of three CMA NYC sessions I’m leading this week:

So, you’ve heard of WordPress before, possibly used it for your personal portfolio, and want to learn everything there is to know about it. Well, everything we can cover in a hour at least 🙂 Join Daniel Bachhuber, code wrangler for Automattic’s WordPress.com VIP, as we cover the WordPress interface, key concepts like themes, plugins, PHP and MySQL, and how to choose a good web host and design for your site. This session will be geared towards those with limited familiarity who want to learn more.

It was a quick introduction to the WordPress project, key terminology you’d hear, and then a tour through the WordPress admin. The room was packed with maybe 30-40 people which was sweet. Tomorrow is “Hacking WordPress in the Newsroom” and Tuesday is “Making the Switch to WordPress.”

#wcphx: Five tenets to mastering WordPress development

Enlightenment is knowing what your code is doing and why. Thankfully, instead of having to depend on your inner calm, there are a number of tools and strategies you can use to better see what’s going on. We’ll survey a range of topics you should explore to turn your frustration into bliss.

Feeling better already? In this session, we’ll touch on everything from debugging to best practices to coding standards to version control to performance and optimization. You’ll hear the insights WordPress.com VIP shares every day.

Session notes are below the slides.

Continue reading “#wcphx: Five tenets to mastering WordPress development”

Notes from livecoding the ONA11 website

This is a quick post I’ve been meaning to do about the work we did this year on the ONA11 conference website.

Background: last year, I was late on getting a conference pass and ended up volunteering for an entire day in the student newsroom. ONA’s student newsroom produces stories, video, and other coverage related to the conference. I had so much fun that I volunteered to do it again this year. I planned to work on it over the summer, but 90% of the work ended up being done in the last week.

The goals for the website varied depending on the context:

  • Before the conference, the focus was convincing journalists to purchase tickets and attend.
  • During the conference, there are two audiences: those who are physically at the sessions and those who want to participate virtually. The former probably want a backchannel for conversation and capturing the highlights, whereas the latter probably want to participate in realtime as much as they can.
  • After the conference, everyone wants to access a historical archive of the content presented in sessions, either to catch those they missed or find the link they heard referenced.

With this in mind, we worked on making the website dynamically reflect these needs. It was helpful, although somewhat distracting from the experience, that I was working on the website during the entire conference.

What worked this time:

  • Session pages as a custom post type. This gave us a structured database of all sessions and allowed us to easily build a session listing, etc.
  • Using Posts 2 Posts to associate posts and presenters with session pages. Our realtime curation crew could easily publish content from the WordPress admin, associate it with a session, and have it automatically pulled into the session page. Furthermore, every presenter had a dedicated profile page and their information could automatically be pulled into other contexts on the website.
  • Auto-showing the livestream player on an individual session page based on timestamp. Every session was associated with a track and I had a bit of logic to pull in the correct livestream based on current time, session start, and session end.
  • Showing the session updates in reverse chronological order during the event (because the user is most likely refreshing the page and wants the most recent updates at the top) and then flipping to chronological order 15 minutes after the event.
  • Leveraging the Zoninator on the homepage for featured stories and events. Editorial loved that they could have full control over which stories were highlighted. WordPress normally lists headlines in reverse chronological order, and developers hack this with “featured” categories, etc.
  • Post formats presented content exactly as it was intended to be presented. I was particularly proud of my gallery implementation, even if there weren’t the visuals to go with it.

Next time I’d like to:

  • Get started earlier so these features are actually fleshed out before the day of.
  • Build an interface for posting updates from the session page so it’s brain dead simple to update (no associating with session post, choosing post type, writing a title if you don’t need to, etc.)
  • Allow for “featured” session updates a la NY Times Editors’ Picks for commenting.
  • Guest session update submissions with a moderation queue.
  • Live update the session page so it’s essentially liveblogging with rich media.
  • Show the bylines/avatars for people covering the event, so you know how well it’s going to be covered (e.g. one person versus five people participating)
  • On the all sessions page, show the number of updates an event has, whether it’s currently live/being livestreamed, etc.
  • Order content on the single session page based when it was published (e.g. you can assume everything 30 minutes after the session is coverage of it, whereas during the event is realtime updates on it).

Lastly, I have one more idea I’d like to pitch: a way of indicating who you want to meet at the conference. Every attendee that registers get access to a page on the website listing every other attendee. Then, they can go through and indicate whom they want to meet at the conference. It’s a double win; you get to notify who you want to meet that you want to meet them, and you get to see in advance who wants to meet you.

For archival purposes, I’ve captured a gallery of screengrabs from the website too.