FYWP #257-262: wpautop and shortcodes/oEmbed do not play nice at all

It occurs to me that wpautop() is the register_globals of WordPress—a feature that was instrumental for its growth and popularity, but really needs to DIAF. They should rename the function wppeepee() because it finds a way to pee pee on your content at the most inopportune moments, causing unending headaches in your code.

For those of you who don’t know, wpautop can be seen as nl2br() on steriods, or (as I prefer to call it) a poor man’s Markdown. It’s been in WordPress for almost forever, and it’s hard to imagine writing a blog post without it, even if it’s a Really Bad Idea™.

Continue reading about the interaction of wpautop, shortcodes and oEmbed after the jump

The Innovator’s Dilemma and the impossibility of remaking an organization

One year ago today (2014-03-03):

During Tech budget and resourcing meeting for the 2014-2015 Annual Plan, one of the ideas proposed was possibly sourcing an incubator group to (re)“build Wikipedia or other major project in line with the Vision from the ground up, without prior constraints from existing technology, processes”, or communities. The idea was, even if it didn’t succeeded it would cause the organization “to think differently, to create energy around being BOLD,” and catalyze the movement.

This had some currency from many of the participants1, even the C-level2 involved, that was until a director argued that this was infeasible due to the Innovator’s Dilemma. Ignoring the obvious misreading of the book, he argued that because this might destroy the existing order inside the organization, it couldn’t be done by the organization itself, and thus the proposal died despite never going up for consensus consideration.3

Deciding that it is politically stupid to point out their Readers’ Digest understanding of a deeply-flawed business text, I instead argued that an organization built around vision, rather than profits, does not have the same constraints that allow disruptive technologies to spell their undoing.

That argument didn’t carry weight because people with more experience than me were sure that this initiative would be defunded in the next annual plan and that no one would ever get behind a project that is a direct threat to them. Incubation outside the WMF is only possibility.

It’s sad that people don’t bother to know the most basic lived history of their own industries (or have a terribly short memory).

I give you the history of Firefox:

The Mozilla Firefox project was created by Dave Hyatt and Blake Ross as an experimental branch of the Mozilla browser.

The Phoenix name was kept until April 14, 2003, when it was changed because of a trademark dispute with the BIOS manufacturer, Phoenix Technologies (which produces a BIOS-based browser called Phoenix FirstWare Connect). The new name, Firebird, met with mixed reactions, particularly as theFirebird database server already carried the name.

The project which became Firefox started as an experimental branch of the Mozilla Suite called m/b (or mozilla/browser). After it had been sufficiently developed, binaries for public testing appeared in September 2002 under the name Phoenix

Hyatt, Ross, Hewitt and Chanial developed their browser to combat the software bloat of the Mozilla Suite (codenamed, internally referred to, and continued by the community as SeaMonkey), which integrated features such as IRC, mail and news, and WYSIWYG HTML editing into one software suite.

Dave Hyatt would leave Netscape4 for Apple in 2002 and go on to architect the number one competitor to Firefox, Safari and WebKit (the core of Safari and Google Chrome). Blake Ross would work at Netscape/Mozilla until 2004 and be nominated the next year for Wired magazine’s top Rave Award, Renegade of the Year as all of Mozilla’s resources had were redirected to Firefox, a project started internally by two employees to combat the poor direction of original Mozilla project.

So yeah, Fuck you.

One Year later

It really is astounding when you think about the level of incompetence that was on display.

There are only two large-scale consumer-facing Internet non-profits: The Wikimedia Foundation and Mozilla Foundation (which owns Mozilla Corporation). Someone makes a statement that everyone accepts and affects the entire annual budget. Meanwhile, the only other company that shares organizational affinity with yours is a living counterfactual to the statement.

I didn’t say anything as I was sitting on my resignation letter and didn’t want to humiliate my colleagues, but the disappointment I had back then was immense. Now that I’m gone, that disappointment has turned into relief.


  1. In the months since this time whenever I mentioned this to a WMF staff member, often you’d pretty much have to hold him or her back from wanting to switch into this team if it were to exist. 
  2. Chief level, as in CEO, CTO, Vice President, etc. 
  3. Not that it would have won that given that this would have required a resource sacrifice among all the Directors… Still, it would have been worth it just to see who cared more about the mission and who more about their fiefdom (or their job). :-) 
  4. Mozilla Foundation before it was separated in from Netscape in July 2003. 

LinkedIn and the dangers of A-B Testing

LinkedIn brags about their use of A-B testing.1

Here is a fucking clue, guys. When you vary where a mail header (from:2, to:, subject: line, etc.), you bypass peoples’ mail filters and of course e-mail open rates will test higher.

Fuck you, LinkedIn

So many companies don’t know the limits of analytics. To those idiot business analysts that are data-driven instead of data-informed: please DIAF. ktnxbai!


  1. Never mind the fact that LinkedIn took years to go viral and only after Reid Hoffman became on Tagged’s Board of Directors. 
  2. invitations@linkedin.com, member@linkedin.com, invitations-noreply@linkedin.com, communication@linkedin.com, messages-noreply@linkedin.com, updates@linkedin.com, communication@linkedin.com, connections@linkedin.com, … 

I'm speaking again!

After a couple year hiatus, I thought it’d be nice to start speaking again — the disconnect of basically stopping speaking at open source conferences when I started working at two companies producing some of the world’s largest open-source products ([WordPress][] and [Wikipedia][]) was becoming too much.

I decided to apply this year. Luckily, [Northeast PHP Conference][nephp] forgot to check the The Great Offensive PHP Speaker Blacklist™, and accepted my talk!

The talk will be: [Ten Evil Things: Features Engineering at Wikipedia][10 evil things]. Now with 30% less swear words, but don’t worry, it’ll still be fun. 😀

When registering, belatedly, I noticed they had an interesting preferences page, I thought I’d share my answers with you

[WordPress]: http://wordpress.org “WordPress: Blog Tool, Publishing Platform, and CMS”
[Wikipedia]: http://en.wikipedia.org “Wikipedia: The free encyclopedia”
[nephp]: http://www.northeastphp.org “Northeast PHP Conference 2013”
[10 evil things]: http://www.northeastphp.org/talks/view/156/Ten-Evil-Things-Features-Engineering-at-Wikipedia “Ten Evil Things: Features Engineering at Wikipedia—Northeast PHP Conference”

Continue reading my answers to their questions after the jump

Enterprise job recruiting

> Hi Terrence,
>
> I am following up on previous emails and calls. I am doing some research on PHP. I understand that you are focused on [canonical model](http://en.wikipedia.org/wiki/Canonical_Model) management, [SOA](http://en.wikipedia.org/wiki/Service-oriented_architecture) or [ESB](http://en.wikipedia.org/wiki/Enterprise_service_bus) initiatives. Do you have 10 minutes for a quick call tomorrow afternoon?
>
> The [redacted] platform enables rapid service design, construction, and management all from a Canonical Model. This enables the following:
> 1) Your services are managed in our repository aligned to all of your business capabilities
> 2) Impact analysis on how a change from a provider system ([Logical Model](http://en.wikipedia.org/wiki/Logical_data_model)) can impact the Canonical and other services
> 3) Rapidly propagate the changes to the impacted services
> 3) Rules based [version management control](http://en.wikipedia.org/wiki/Version_control)
> 4) Mapping provider systems to the canonical model reduces the number of mappings required by over 99% for a complex integration projects.
>
> I know this is a busy time of year. If someone else is better suited for this discussion, can you please refer me to them?

I understood every third word.

The other day, I sat through a presentation from from an enterprise consultant, they had an 8 category scrum chart just for feature choice and a 10 category one for development. The former had categories like: “paths to insight” -> “validation” -> “harvesting”, so I spent most of my time imagining what would happen if people were story cards that ended up dying due to being harvested at the end of validation due to improper paths to insight.

Maybe if they spent less time throwing verbiage and more time doing, [Enterprise](http://terrychay.com/article/php-enterprise-scalability.shtml) [wouldn’t](http://terrychay.com/article/php-pro-con.shtml) [be such](http://terrychay.com/article/php-enterprise-myths.shtml) [a joke](http://terrychay.com/article/enterprise-scalability.shtml).

22 categories? **This** is agile?

My theory is that someone with [Wernicke’s aphasia](https://en.wikipedia.org/wiki/Wernicke%27s_encephalopathy) would make [a killing in Enterprise software development](http://www.youtube.com/results?search_query=wernicke%27s+aphasia).

You lost me there, bub

Reading [this blog post ranting on PHP][phphorrors]

> No corporation supports PHP’s growth & maturity like Sun & Google do for Java, Google (Guido van Rossum) for Python (jnc Django framework), Ruby (inc RoR) by 37 signals etc…

37Signals & Ruby? Thank his noodly appendage PHP’s support isn’t as terrible as that company on that language.

You lost me there, bub.

When it comes to engineering choice, programming language is not even in the top 10 of important choices a software architect has to make. If you’re worried about the language, you’re worried about the wrong thing. (I’m also a little amused that the author holds Python as a language with great unicode support.)

[phphorrors]:http://www.theroadtosiliconvalley.com/technology/php-coding-horrors-poor-excuses/ “PHP: coding horrors & poor excuses—The Road to Silicon Valley”

response to questions concerning the VisualEditor

I feel somewhat responsible for putting James Forrester on the hot seat concerning [this article][Visual Editor post] as I was the one who asked him to take out time from his busy schedule to explain some of the challenges faced by the team concerning the project and manage expectations somewhat concerning the release.

I hope it is clear from the post that the [VisualEditor project][] has to overcome many “firsts” to become a reality. Some of the ones mentioned include:

1. The criteria to support 290 languages is beyond the scope of support of existing software.
2. The VisualEditor UI needs to be programmable in such a manner that “free form” HTML editing cannot be permitted unless those edits can be synced with an internal, client-side “data model.”
3. The VisualEditor needs to leave room for extensibility in all fronts to adapt to the extensible nature of current WikiText capabilities like transclusions and templates.
4. A **two-way** representation needs to be created out of wikitext to HTML *back to wikitext*. This cannot be emphasized enough since before the [parsoid project][], it was actually unclear if this was even possible.
5. In both the parser and in all points of the VisualEditor, edits must be made in a manner that only manipulates the areas intended by the editor so was to not introduce “dirty diffs”.
6. All of this must be done in a forward thinking transactional manner to allow things like real-time collaboration, micro-edits, and the ability to walk through actions.

[Visual Editor post]: http://blog.wikimedia.org/2012/12/07/inventing-as-we-go-building-a-visual-editor-for-mediawiki/ “Inventing as we go: building a visual editor for MediaWiki—Wikimedia”
[VisualEditor project]: http://www.mediawiki.org/wiki/VisualEditor “VisualEditor—MediaWiki”
[parsoid project]: http://www.mediawiki.org/wiki/Parsoid “Parsoid—MediaWiki”Continue reading

Pear-to-Pear networking

> This resume I’m reviewing claims the dude developed a “pear-to-pear private tracker”

Since [I had ComicLife open anyways][techcrunch], this was too good to pass up:

pear-pear networking

[techcrunch]: http://terrychay.com/article/the-only-people-who-read-techcrunch-are-your-competitors.shtml “The only people who read tech crunch are your competitors”

The only people who read TechCrunch are your competitors

> I’m playing video games and drinking champagne because after all the press I got, the only thing my client can say is “Aww. No TechCrunch? Is it too late to give them an exclusive?” [FML][]

I’ll repeat a rant I first said five years ago to a CTO friend told me his co-founder and CEO was obsessed with getting on TechCrunch.

“Why the f— does anyone want to be on TechCrunch? The only people who read TechCrunch are your goddamn competitors. Think of your product, do your customers even know WTF TechCrunch is, let alone read it?”

No. Fucking. Way.

TechCrunch for Humans

This is what TechCrunch looks like to a normal human being

Anyone who gives a shit about being on TechCrunch is someone sending a big [signal][wp signalling] that they don’t give a shit about their customer, or that their **real** customer is their investors who are stupid enough to sink money in that person’s latest grift. Anyone who wants to be on TechCrunch has a a big inferiority complex and values their ego more than their business.

> It’s okay I’m enjoying killing zombies with my friends who don’t even know what the fuck a TechCrunch is, thank God!

More dead zombies, less ‘Crunch.

[FML]: http://www.fmylife.com “F— My Life”
[wp signalling]: http://en.wikipedia.org/wiki/Signalling_(economics) “Signalling (economics)—Wikipedia”