Category Archives: Ideas

Great Mental Models book cover

Farnam Street’s Great Mental Models, Presented by Automattic

I’ve been a fan of Shane Parrish and his indispensable Farnam Street for many years now. Shane is a fascinating person — he’s a former cybersecurity expert for the Canadian intelligence agency and occasional blogger who turned his website into a full-time career. Oh and is on WordPress, too. 😎

His book, The Great Mental Models: General Thinking Concepts, has been tremendously valuable to me in my work. So valuable, in fact, that Automattic is now sponsoring the next printing of the hardcover edition. You can pre-order it here, then learn more about the mental models outlined in it.

Building a New Web, and a New Workplace

The Importance of Meeting In-Person

I recently returned from Orlando where Automattic hosted its annual Grand Meetup where nearly all of our 800 employees from around the world, spend a week together in the same place. (And yes, we’re hiring.)

Despite being a fully distributed company, I believe it’s still important to meet face-to-face — just not every day, in the same office. The Grand Meetup is our chance to get to know the people behind the Slack avatars and build relationships that can carry us through other 51 weeks of the year, when we’re working from more than 65 countries. It’s so much easier to hear the nuance in someone’s chat messages or p2 posts if you’ve hung out with them at Harry Potter World, or learned about their family, pets, and hobbies during a flash talk.

Some team, and behind-the-scenes photos after the company photo.

The week can be mentally exhausting, given that you’re often meeting many people for the first time. But we urge people to take it at their own pace, and the results are well worth the effort. Our data team actually studied the impact of the Grand Meetup on our work relationships — the connections established between coworkers using our “Meetamattician” tool were demonstrably closer after the meetup:

Before the Grand Meetup.
After the Grand Meetup.

This year we were proud to welcome some incredible keynote speakers: Wild author Cheryl Strayed talking about creativity and writing; Automattic board member Gen. Ann Dunwoody, the first woman in U.S. Army history to achieve the four-star officer rank; Ari Meisel on delegating and automating your life; and Dan Harris, author of 10% Happier, on the panic attack that led him to embrace meditation and mindfulness.

Photo by Leif Singer
Grand Meetup
Grand Meetup
Photo by jessicacg

I once met a Zen-trained painter in Japan, in his 90s, who told me that suffering is a privilege, it moves us toward thinking about essential things and shakes us out of shortsighted complacency; when he was a boy, he said, it was believed you should pay for suffering, it proves such a hidden blessing.

Yet none of that begins to apply to a child gassed to death (or born with AIDS or hit by a “limited strike”). Philosophy cannot cure a toothache, and the person who starts going on about its long-term benefits may induce a headache, too.

Pico Iyer in the New York Times on The Value of Suffering. Hat tip: Evelyn Rusli.

Companies Die, Cities Thrive

“It’s hard to kill a city,” West began, “but easy to kill a company.” The mean life of companies is 10 years. Cities routinely survive even nuclear bombs. And “cities are the crucible of civilization.” They are the major source of innovation and wealth creation. Currently they are growing exponentially. “Every week from now until 2050, one million new people are being added to our cities.”

That’s from the intro to Geoffrey West’s Long Now seminar “Why Cities Keep on Growing, Corporations Always Die, and Life Gets Faster”.

Kevin Kelly summarized it in this way:

All organisms (and companies) have share many universal laws of growth. Creatures age in the same way, whether they are small animals, large mammals, starfish, bacteria, and even cells. They share similar metabolic rates. Similar distributions. All ecosystems (and cities) also share universal laws. They evolve and scale in a similar fashion among themselves — whether they are forests, meadows, coral reefs, or grasslands, or villages.

Geoff West from the Santa Fe Institute has piles of data to prove these universal and predictive laws of life. For instance, organisms scale in a 3/4 law. For every doubling in size, they increase in other factors by less than one, or .75. The bigger the organism, the slower it goes. Both elephants and mice have the same number of heartbeats per lifespan, but he elephant beats slower.

Ecosystems and cities, on the other hand, scale by greater than one, or 1.15. Every year cities increase in wealth, crime, traffic, patents, pollution, disease, infrastructure, and per capita by 15%. The bigger the city, the faster it goes.

Geoff’s talk is worth a listen, especially as you consider how companies grow and evolve over timespans measured in decades, not years or rounds of funding.

On Microbiomes

Your body has about ten times the number of microbial cells as it does human cells. Collectively this bacteria weighs about three pounds, about the same as your brain. The evolution of our understanding of these bacteria has been evolving rapidly over the past twenty years, and I expect its findings to be the most impactful on our health and wellness in the coming decades.

The New Yorker has a fantastic article by Michael Specter that starts and ends with our changing perception of heliobacter pylori, linked to gastritis and peptic ulcers, but whose absence in children (it used to be universal, now fewer than 5% of children in the US carry it in their guts) is linked to asthma. It also has consequences for weight:

There is equally convincing evidence that destroying H. pylori could alter metabolism in ways that increase the risk of obesity. Several research groups, including Blaser’s, have found a strong relationship in humans between the bacterium and two stomach hormones, ghrelin and leptin, both of which play central roles in regulating our appetites […] The more ghrelin you have in your bloodstream, the more likely you are to overeat. Leptin functions in the opposite way, suppressing appetite and increasing energy levels. For people whose stomachs are infected by H. pylori, ghrelin became far less detectable after a meal. For the others, levels of the hormone remained high, and the effects are evident. […]

That finding was not a complete surprise. Roughly three-quarters of the antibiotics consumed in the United States are fed to poultry, cows, and pigs, not to treat illness but as dietary supplements to promote faster growth. […] Until recently, the biochemical reasons for that weight gain, and its unsettling implications or humans, were murky. […] “A lot of things are happening at once,” he said. “The rise in obesity, celiac disease, asthma, allergy syndromes, and Type 1 diabetes. Bad eating habits are not sufficient to explain the world-wide explosion in obesity.

The environment inside our body is as complex and varied as the one outside our body and responds just as unpredictably to wholesale changes to its ecosystem. I’d recommend reading the entire article, unfortunately it’s not available in its entirety on the New Yorker’s site, however here’s a PDF of the entire thing.

Password Coalition

Users use the same passwords for multiple services. It’s a fact of life, it’s just so easy to that most people end up having 2-3 passwords they use everywhere, including one “hard” one for financial sites, etc. The downside is your password is only strong as the weakest link of where you’ve used it — when something like the Gawker hack happens there is a huge wave of compromised accounts that follow.

You can ask users not to use the same password, you can even encourage things like 1password (too expensive for many people I recommend it to), but what if there was a way to enforce that people registering for your site hadn’t used the same password elsewhere?

It actually wouldn’t be too hard, if you’re registering with and the password “abc” when you register and the site hasn’t encrypted and stored the password yet it could try to log into your Gmail account with those details, and if it works force you to choose a different password. There’s no reason this has to be limited to email logins, you could put it against the APIs of, Twitter, Facebook, LinkedIn, any number of other services that expose simple authentication APIs and see where it works. Any successful logins, tell the user they need to pick something else.

Of course all that work and they’ll probably just put a 1 at the end of it.

Kindle Statistics

Dear Kindle Team, one of my favorite features of Google Reader has always been its “Trends” or more simply its statistics that give you insight into your reading patterns and volume.

As the Kindle has become a bigger and bigger part of my life, much of my reading time has shifted from RSS-based sources to content on my Kindle, but I’m really curious how much time, how many words, at what times of day, etc I’m consuming all this new content. I think providing stats would also encourage people to read more, and highlight to them how the Kindle has changed their habits.

Asynchronous Voice IM

I wonder what a true voice IM clent would look like. The beauty of I’m that is lost in clients like Skype is it’s impossible to maintain several asyncronous near real-time conversations at once. You can hear this problem is you ever listen to a taxi radio. Perhaps when you focus different windows it could catch up on the discrete voice clips since the last time you were on that window. The whole chat UI could be a button you hold down while speaking, like a HAM radio.

The Trouble With WordPress

Recently it leaked on a blog (there are few secrets in Open Source) that elements from a design known as “Kubrick” by Michael Heilemann would be incorporated into the default template for the next version of WordPress. Kubrick is many things: a design, a set of templates, some plugins, and a removal of a lot of cruft currently in the default template. It makes things much friendlier for readers. Best of all Michael released everything under the GPL and submitted it to WordPress for inclusion. After it had had several iterations I checked it out and saw a lot of great ideas that would make WordPress a better product, especially for new users. Even though no decisions had been made and no code had been committed, a number of questions were raised in people’s minds. A thread was started in the forums that I’m not even going to link to because it’s not worth reading past the first page, if that. Many people seemed to misunderstand what was going to be incorporated and what wasn’t, even though that was stated pretty clearly in the original blog post.

Michael is primarily a designer, not a coder, and coding things in a way that works on the variety of platforms and setups that WordPress itself does is hard, so there are issues with that in the templates Michael has released. WordPress devs have a lot of experience with those issues, however, and anything added to the core will work just as well (if not better) than WordPress does now. Several others questioned the inclusion of graphics in a template. If graphics were included, how would people be able to edit it? We can’t expect people to have graphics editors, so if graphics are included in the final template (that hasn’t been determined yet) I’ve committed to providing an online interface on for people to customize the graphics to match their color choices without needing any software beyond a web browser. There were some questions about the CSS being used in Kubrick, but the CSS used for it in WordPress won’t be the same and will be treated like any change to the WordPress code, that is it will go through the normal QA process and be tested across platforms by the developers and the few dozen or so people who keep up with the nightly builds, and then extensively tested by the hundreds that use the beta releases once we enter that phase for 1.3. Any problems will be treated as bugs and fixed as such. Watching trends on the forums and continuing a high level of support is very important to everyone.

The problem was after all this was explained the thread continued long after all these questions had been answered with everyone talking past each other. If it shows anything it’s that people can be very passionate about the smallest of things. It’s interesting to note that while this all was occuring what has actually happened in WordPress development in the last week: Dougal wrote a plugin to slow down spambots, literally; Alex made a new style for the styles page; Kitten sent in another comment moderation plugin that’s going to be included in the core; Craig Hartel and Kevin Francis (amoung many others) did some great work on the new wiki; Michel is refactoring the XML-RPC code; we started the process of moving to a better source control system; Ryan is coding too much cool stuff to mention, but the next version of WP be the easiest to customize and template ever. That’s just off the top of my head, there’s lots of other exciting developments happening.

In other words, life moved on. It showed up on a few blogs, but that’s a price of popularity: bad news gets more buzz than good. Numerous examples are in the checkout line of every supermarket. (Not to mention the blogosphere.)

So what’s the state of the WordPress community today? I’d say it’s better. The number of people who actually got out-of-hand was only a handful, and personally I’m ready to apologize and move on. I’ve never been good at holding grudges. The things that make the WordPress community great haven’t changed, and several lessons have been learned. Hundreds of new WordPress blogs have been started, testimonials and donations keep coming in, I’ve noticed more people helping out on the forums, and best of all there’s a healthy amount of disagreement keeping the project young.

Redirection Proposal

As many people have heard now, blogs that were previously hosted at are now needing to find new homes. Dave is going to be sending people their backup files but it looks like a lot of links may be broken, and some people proposed keeping a list of the old and new URIs.

Why not go one step better? I apologize if this is not technically feasible for whatever reason, but here’s my idea. DNS is very flexible, Dave can have specific A records for subdomains of sites that are going to stay under, and then set up a wildcard * A record to point to a different IP. This IP could be anyone running a service that would allow people to redirect their old domains to their new ones. Technically this would be pretty simple, no more than a few hours of hacking. The machine serving the redirects could have a wildcard virtualhost entry in Apache and a simple PHP script (or Python script, or RewriteMap) to serve 301 Moved Permanently headers depending on the hostname.

It could redirect to whatever the site owner wanted. The hosting overhead would be minimal. I’m willing to personally commit to writing the code and hosting it for at least 2 years.

Feature Creep: PowerPhlogger

It’s always sad to see a good project go a direction that you’re not going to follow it in. Case in point: Power Phlogger. It’s a neat stats application that I was always partial to because it gave information like user resolution and color depth that you don’t usually get from stats programs. It is called through javascript or a backup “image” so you only get “people” in your stats, not bots. It makes it easy to view your stats in terms of actual people visiting your site, what pages they went to, how long they spent on each, information that I find a lot more useful than “X number of people came to your site in May, here are the browsers they used.” Most web logs (not weblogs) have a lot of redundant information that can be easily abstracted in a relational database. (Okay, weblogs too.)

However it’s been half a year since the application has been updated, and much longer since there have been any significant upgrades. They basically stopped working on it to focus on PowerPhlogger3, which is going to be built from an entirely new codebase. That should have been my first warning. Part of the reason WordPress has been so successful when other PHP blogging applications that started about the same time haven’t is that it built on the b2 codebase rather than rewriting everything from scratch. The old code had a lot of problems, but it’s something we’re improving incrementally with each version. (The old code also did a lot of things right.) What if the Firefox developers had decided they needed an entirely new rendering engine and we had to wait 3-4 years for the first release of Firefox? The release date for PPhlogger has fallen back again and again, and no code is currently available to the public. It went from requiring PHP 4.2 to not working on anything but PHP 5, which hasn’t even been released yet and is a long way from being available on most hosts. Along the way they created yet another PHP5 framework. Whenever version 3 comes out it will run on a dozen different databases (11 more than I need). Everything is object-oriented now.

I’m sure all of this is very exciting from some sort of computer science standpoint of code purity, but on the other end there is an impatient user. The situation is made worse by the fact that, as I have found on, PPhlogger 2 does not scale well, to the point of slowing down everything else on the server. I ended up just removing it. I’m going to have to turn it off on this site soon. To some extent logs become useless when your traffic grows; you just can’t watch stats like you used to. That’s why services like Technorati are popular amoung high-traffic bloggers—they extracts meaningful data (who’s linking to me?) out of the noise of web stats. I’m looking for another program that will do this.

PowerPhlogger’s first release candidate will come out “no earlier than July 2004,” a date that has been moved several times. I hope I am wrong in thinking the project has jumped the over-architected shark and they release an amazing product that is fast, useful, and stable.

Temporally Challenged

Eric has a new book you should buy, despite the fact he’s all wrong about weblogs. His thesis is that it’s easy to read chronological items that relate to each other from top to bottom on a page. It’s not that Eric has his facts wrong, he’s just looking at the wrong facts.

Weblogs are not 20 chapter books. Eric’s entries refer and develop more than the average weblog’s, he is no exception to the rule that most weblogs would be just as intelligble if they randomly ordered the entries you haven’t read yet than if they presented the newest ones at the top. For some reason Eric insists on using monthly archives for his permalinks, which isn’t helping his visitors or Google (or the bandwidth he’s concerned about). Anchored monthly archives should never be used for permalinks. The only people who still use these are those who are technically hindered from or too lazy to implement post-level permalinks.

On monthly, weekly, or daily archives it makes perfect sense for the entries to be ordered chronologically, because the defining characteristic of the posts is their chronological relation to that date range. On a search result page, I want to see the results ordered either in reverse chronological order or by some search relevance. Both Technorati and Feedster get this, and both default to reverse chronological order of their results. On the front page, which is where Eric has his main beef, the most relevant thing to at least 95% of visitors is going to be the latest items. Anything else is going to be making the site less useful to the majority of users for the benefit of a few. There is a much larger precedent for putting the most recent items at top than just weblogs: most email and webmail software I’ve used, every press release page, news sites like CNN, Zeldman, the Board of Governors, the White House. Breaking the convention of thousands of familar sites for the benefit of the occasional reader who checks back every week or so but is really annoyed at having to scroll funny to what they’ve missed breaks the Hippocratic Oath of design. Weblogs aren’t ordered the way they are because of some freak historical accident, they’re ordered this way because it works.

(A sidenote about the bandwidth issue: it’s dead. Of course pages should be made as small as possible using standards and efficient markup to help them load quickly. No one is going to argue that. However an optimized 10K page loaded thousands of times a day is still a healthy chunk of bandwidth. If you are adjusting your content or paying more for the popularity of your website, find a better provider. The server that this site (and others) is on is allocated 1.2 terabytes of bandwidth transfer per month. At worst it uses a third of that. Server bandwidth should not be an issue anymore these days.)

I mostly disagree with his post, however I feel Eric’s pain. I’ve had to do the scroll-catchup thing before, and it was annoying. Without breaking the website for the vast majority of my users, I can offer some relief:

  1. Eric is a busy guy and I’m guessing he uses a newsreader (like NetNewsWire) to keep track of who has updated. If you click through to the permalink of a new item it will take you to the individual archive for that page, complete with comments. I have always had intra-post navigation at the top of the page, but after reading Eric’s screed it occurred to me where that would really be useful is after you’ve read the article and want to move on to the next thing. So now I have post navigation above the article, after the article, and after the comments. If you’re a few posts behind, navigate the individual archives instead of a monthly archive or the front page. Enjoy.
  2. One benefit to a completely dynamic system is that you can change views on the fly pretty easily. So if the reverse chronological thing bothers you that much, at least with WordPress blogs you have a easy fix. Simply add ?order=asc to any WordPress URI and it will order the dates ascending instead of descending. Example: my March archives, my March archives descending. It would also be pretty trivial to set a cookie to allow people to see things ordered different ways, and I imagine within a few hours of writing this there will be a new hack or plugin on the forums. If only everyone used WordPress.

Link Archiver

(Pardon my verbification.)

Here’s an idea for any website, though it could be particularly applicable to weblogs. I’m a reading junkie, I can’t get enough. When I come across a blog I like I often go back in its archives, which is a great way to get a feel for a site. It’s fascinating to see how some blogs have evolved over the years, how posting styles evolve, and to see what people were thinking around the time of important events.

There is one common thread in every archive I browse, I constantly run across dead links. Long-dead links. Dead permalinks even. I have read that the average life-span of a web page is 100 days—I think that may be generous. What good is the wonderful archiving of modern weblog software if those archives become irrelevant less than a year after they’re written?

I think the answer lies in some kind of automatic archiving of all linked content. When you publish a new post an intelligent spider tied to your blog engine could go and grab the content of the page you link to and store it locally. Once a week the spider checks all links on your weblog and if the resource no longer exists it updates the link in the entry to point to the locally archived version. The local archive would have a disclaimer and a link to the original location of the resource, much like Google’s cache. The link in the entry could also be modified in some way, perhaps with a different CSS class or rel value than normal links. The engine could also alert you so you could be sure to be wary of that website or publisher in the future.

How hard would this be? I know there are copyright issues that I’m ignoring, but I don’t forsee that being something that would hold this back. I doubt copyright holders who can’t keep their URIs cool are going to devote many resources to tracking down blogs violating their missing content. Besides, this could be covered.

I could see this done as a centralized service, something like Technorati meets Furl, but that would really defeat the purpose. Decentralization is the path of the future.