Google Analytics

Google Analytics is what I’ve been saying a search engine should have done years ago, provide hosted stats to any website that uses it. People love stats so this will get huge uptake, and probably provide Google really invaluable information. A year or so ago I hoped Technorati would do this for blogs, but they probably saw it as outside their core business. Interesting note: this is the first stat tracking javascript I’ve seen that validates as XHTML Strict. Good job, guys. (Most examples leave the language attribute.)

The Word is WYSI

It’s official now, the excellent TinyMCE has been integrated into WordPress 1.6. The real test after the search was if I could use it on a day to day basis, even though I normally can’t stand WYSIWYG-type things. With this integration I’ve actually found it more enjoyable to use and the code it produces is top-notch. Of course if you don’t like it, there’s a new checkbox to disable it under Options > Writing.

More on Ubuntu

So after starting the installation a few minutes ago, Ubuntu is up and running! I’m really more shocked than anything, I had already put 6-10 hours in getting Gentoo running and then it just wouldn’t work, probably something to do with my SCSI card. Ubuntu just worked. I’ve got a beautiful desktop running right now. I plugged in a USB mouse and it works with the scroll wheel. That might not seem trivial, and it is if you’re on Windows or a Mac, but my previous experiences with desktop (as opposed to server) Linux have been so awful, this is like heaven by comparison. And installation was so easy… Ubuntu is the WordPress of Linux distributions.

Vanilla Sponsored Links

Vanilla, the popular open source forum software, is now embedding sponsored links in every download so when you install it they’re on your site. This strikes me as a bad idea the same way sponsored themes are, except worse because it’s in the core code. This and things like the sale of Pligg say to me that many open source web products are having a hard time transitioning to businesses. It also bothers me when people cite “hosting costs” as the reason for doing something like this. Hosting has never been cheaper, there are plenty of free resoures like Sourceforge and Google Code, and plenty of people would donate hosting if it was asked for, including myself.

Wildcard DNS and Sub Domains

What follows is what I consider to be best practice for my personal sites and a guide for those who wish to do the same. Months ago I dropped the www. prefix from my domain in part because I think it’s redundant and also because I wanted to experiment with how Google treated valid HTTP redirect codes. The experiment has been a great success. Google seems to fully respect 301 Permanent Redirects and the change has taken my previously split PageRank has been combined and now I am at 7. There are other factors that have contributed to this, of course, and people still continue to link to my site and posts with a www. (or worse) in front of it, but overall it just feels so much cleaner to have one URI for one resource, all the time. I’m sure that’s the wrong way to say that, but the feeling is there nonetheless.

Now for the meat. What’s a good way to do this? Let’s look at our goals:

  • No links should break.
  • Visitors should be redirected using a permanent redirect, HTTP code 301, meaning that the address bar should update and intelligent user agents may change a stored URI
  • It should be transparent to the user.
  • It should also work for mistyped “sub domains” such as ww. or wwww. (I still get hits from Carrie’s bad link)

So we need a little magic in DNS and in our web server. In my case these are Bind and Apache. I am writing about this because at some point the code I put in to catch any subdomain stopped working and while I reimplemented it I decided to write about what I was doing. This method also works with virtual hosts on shared IPs where my previous method did not.

In Bind you need to set up a wildcard entry to catch anything that a misguided user or bad typist might enter in front of your domain name. Just like when searching or using regular expressions you use an asterisk (or splat) to match any number of any characters the same thing applies in Bind. So at the end of my zone DB file (/var/named/photomatt.net.db) I added the following line:

*.photomatt.net. 14400 IN A 64.246.62.114

Note the period after my domain. The IP is my shared IP address. That’s all you need, now restart bind. (For me /etc/init.d/named restart.)

Now you need to set up Apache to respond to requests on any hostname under photomatt.net. Before I just used the convinence of having a dedicated IP for this site and having the redirect VirtualHost entry occur first in my httpd.conf file. That works, but I have a better solution now. So we want to tell Apache to respond to any request on any subdomain (that does not already have an existing subdomain entry) and redirect it to photomatt.net. Here’s what I have:

<VirtualHost 64.246.62.114>
DocumentRoot /home/photomat/public_html
BytesLog domlogs/photomatt.net-bytes_log
ServerAlias *.photomatt.net
ServerName www.photomatt.net
CustomLog domlogs/photomatt.net combined
RedirectMatch 301 (.*) http://photomatt.net$1
</VirtualHost>

The two magic lines are the ServerAlias directive which is self explanitory and the RedirectMatch line which redirects all requests to photomatt.net in a permanent manner.

There is a catch though. The redirecting VirtualHost entry must come after any valid subdomain VirtualHost entries you may have, for example I have one for cvs.photomatt.net and I had to move that entry up in the httpd.conf because Apache just moves down that file and uses the first one it comes to that matches, so the wildcard should be last.

That is it, I’m open to comments and suggestions for improvement.

Why Your Company Should Have a Creed

Does your company have a creed? Twice a year, True Ventures (one of Automattic’s investors) organizes an event called Founders’ Camp, a one-day conference for the founders and CEOs of companies in their portfolio. The latest was held in the Automattic Lounge at Pier 38 in San Francisco (it could be the last).

There was an interesting conversation led by Ethan Diamond, Alex Bard, Howard Lindzon, and Narendra Rocherolle on the importance of culture in an organization and how it gets formed. Despite its importance, “culture” is one of those fuzzy things that’s difficult for many founders, especially men, to discuss earnestly.  Even though I have extremely strong opinions about company culture, I find it feels “corny” to talk about it directly. Nevertheless, as part of the discussion, I shared the following practical example from Automattic about something we did to codify and share our values.

It started innocently enough — someone copied me when they emailed their paperwork to accept a job offer. For the first time in a while I looked at the offer letter and realized that it read like a bad generic legal template: no branding; terrible typography; the most important information (start date, salary, stock options) buried under a sea of text; and, worst of all, it was being sent out in .docx format (especially embarrassing for a company whose foundation is Open Source). The offer didn’t reflect who we were, how we worked, and certainly not how we thought about design and user experience.

Nick and MT of the Janitorial team at Automattic designed new documents and worked out a clever way to have a web form on our intranet generate the pages as HTML. It has some extra goodies like vector signatures. Anybody sending a contract or offer can create a PDF out of that web page, and email the document out to the recipient. Everything is logged and tracked. (As a bonus our legal templates for employees and contractors are now tracked in SVN along with the rest of our code.)

Finally, as a hack to introduce new folks to our culture, we put a beta “Automattic Creed”, basically a statement of things important to us, written in the first person. We put it after the legal gobbledygook and before the signature area; if you chose to accept the offer, you’d sign your name next to the values before starting work. This seemed like a powerful statement and might affect people’s perceptions in the same way that putting signatures at the top of forms increases honesty.

That was around the beginning of May last year, and everyone who has joined since then (about half the company) has gotten the creed in their offer letter. The feedback from the beta was excellent and later that same month we added the creed to the home page of our Automattic Field Guide (our internal reference site), where it still lives today with a link to a recent discussion about what the creed means in practice.

Adding the creed before the signature block ended up being an easy change that had a big impact on the company.

A fair number of founders at the event have asked what the creed is. If you’re curious here it is (as of September 19th, 2011):

I will never stop learning. I won’t just work on things that are assigned to me. I know there’s no such thing as a status quo. I will build our business sustainably through passionate and loyal customers. I will never pass up an opportunity to help out a colleague, and I’ll remember the days before I knew everything. I am more motivated by impact than money, and I know that Open Source is one of the most powerful ideas of our generation. I will communicate as much as possible, because it’s the oxygen of a distributed company. I am in a marathon, not a sprint, and no matter how far away the goal is, the only way to get there is by putting one foot in front of another every day. Given time, there is no problem that’s insurmountable.

I’m sure that it will evolve in the future, just as Automattic and WordPress will. If you’re building a startup or any sort of organization, take a few moments to reflect on the qualities that the people you most enjoy working with embody and the user experience of new people joining your organization, from the offer letter to their first day.

Of course if you’d like to see the above in an offer letter, consider applying for Automattic.

If you write a creed for your company or non-profit after reading this, please leave it in the comments!

Centered Twitter Backgrounds

I don’t usually make public feature requests and I know our friends at Twitter are dealing with crazy scaling issues but I would like to register one simple request: the option for centered backgrounds. Background: Twitter lets you upload a background image, but it’s always left-aligned which means unless its tiling interacts awkwardly with the main centered window. But with a single line of CSS, background-position: center, you could use the width of Twitter’s content window (763px) to create something beautiful and exciting that dovetailed perfectly with the main content area. If you’re feeling crazy afterward, allow a different background to be specified for single-tweet permalink pages, which would also make Blackbird Pies even tastier. If your name is Ev Williams, Biz Stone, Dick Costello, Ryan King, Kevin Cheng, Mark Trammell, Doug Bowman… pass this on to someone. (And help me verify the WordPress account.) 🙂 I think a whole new Twitter design community could flourish. And I could forgive you for using a table for layout. Update: This is getting some nice pick-up.

Announcing bbPress

The software that was running the WordPress support forums was getting long in the tooth and was not handling the load of increased exposure terribly well. A PHP upgrade rendered it nearly unusable. Anyway, long story short, I wrote some forum software. It’s called bbPress and is similar to WordPress in a lot of ways, including being Free-as-in-Software. The things that WP does well—unicode, timezones, XHTML, speed–it does well too. You can read all about it on the new bbPress site and grok its philosophy, comment on the blog, join the mailing list, checkout the code, submit bugs, patches, et cetera. I have been putting this off for almost a year now, so it’s very fufilling to get this project rolling. It went so fast that I’m kicking myself that I didn’t do it sooner.

The goal of bbPress is to bring some weblog and WordPress sensibilities to forum software. It’s never going to have a tenth of the features of phpBB or vBulletin, but that’s a feature itself. My experience with those packages is they’re like a herd of elephants who evolved on a strange island in bizzare ways, and they tend to foster a type of community that is antithetical to I’m trying to accomplish. We’ve learned a lot in the past few years about how the interactive web works, why do most forums look and act the same they did in 2000? Why is it still so hard to integrate user systems or mesh designs? Why can’t I ping a thread like I can a weblog post? Why can’t I filter by XFN values?

bbPress is not and will not be right for everyone. There are open source traditional forum packages, like PunBB, that get a lot of things right and push the envelope in interesting ways, so that’s covered. bbPress is not going to have avatars, or put post counts next to your name, or give every user 80 options about how they want their dates formatted, and for some people (maybe most people) that just won’t work. However even if WordPress.org is the only site that ever runs this software, it’ll be totally worth it just to get the forum technology growing again and create a richer support experience for the WP community.

What’s in My Bag, 2023

  1. 16” M3 Max MacBook Pro, with all the memory and storage. I went from carrying two laptops earlier in the year, a 14” as well to just this. I like the Space Black color because it’s novel but might go back to silver next time. Brand new so just a few stickers so far!
  2. Black Magic Mouse, steady and useful when I’m doing lots of emails. Looking to replace this, as it uses Lightning. At home I’ve been using the Mojo Pro Performance Silent Gaming Mouse because it’s wired and quiet when you click, so something wireless and quiet could be nice for when on the go… I do like the gestures of the Magic Mouse though. I’ll be testing out some new mice over the holidays.
  3. Universal Airplane Phone Holder, also good along with #4 for mounting an iPhone for using the Continuity camera or selfies (after taking that he said “please don’t go to jail”). Also super cheap, <$20 for two.
  4. Capstone Continuity Camera mount for MacBook laptops, easy way to mount your iPhone to your laptop to use as a webcam. Looks amazing, but a bit of a pain, which is why I’m excited about #6.
  5. Anker 655 USB-C 8-in-1 Hub. I use this mostly for Ethernet, but since everything is USB-C now I can also use this with either phone or the iPad. I seem to have bad luck with USB hubs, I’m always burning through them, but this one has lasted a while. This thing is heavy! I could go smaller/lighter here.
  6. Opal Tadpole webcam, this is the Opal product everyone has been waiting for. Quality close to iPhone at a smaller size, plugs in via USB-C so you don’t have to worry about connectivity or charging, doesn’t need any special software, looks amazing. Only fits a laptop though, not a bigger monitor. The way the cable works is really clever, great design.
  7. This is one of my most delightful new additions, a Pixel G1s RGB Video Light, it can cast warm light for a Zoom call or you can send it to a specific color to enhance the ambience of room for a party. It can rotate through a rainbow of colors. I ended up giving this to all my friends, and now when we’re in the same place we can instantly vibe out a room with two or three of these devices, and turn off any unpleasant default lighting a space may have. It charges via USB-C, natch. Hat tip: Robb Walters.
  8. UE Premier custom headphones. The best aural experience you can have. Invest the time in visiting an audiologist to get earphones and earplugs customized for your ears.
  9. Belkin Rockstar headphone splitter, great for sharing audio with others, especially if they have #8.
  10. Small USB-C to 1/8th inch converter, to be extra though upgrade to this one from Belkin with power.
  11. Rolling Square inCharge XL 6-in-1 Multi Charging Cable, nice compact all-in-one I’ve been playing with. They make some other interesting accessories. A 100w Swiss army knife of cables, and the thing they do combining Lightning and Micro-USB is so cool.
  12. Baseus has made a retractable 100w/5a USB-C beautiful cord. This is probably the one you’ll want to carry around. Someday it will replace all other cables when we achieve USB-C nirvana.
  13. Chafon USB-C multi-cable is my ultimate workhorse, what I use the most. It’s available at different lengths. I like the way the attachments can be moved around, but there is some fragility being entered at every connection so I like to travel with these not linked so they don’t bend or break.
  14. Tiny Miisso 6000mah battery pack with cables built in.
  15. Pixel Fold. I always try to have an Android device for testing and the pixel fold has been a interesting one, because I found myself using it in ways that feel like sci-fi. Reading a book on the Kindle where you can turn the pages it’s really nice. It’s just a fun tool.
  16. Pixel Buds Pro, they sound remarkably good. Airpods for Android.
  17. Airpods Pro, now with USB-C as God intended. I have a little robot on mine. Just amazing, and how great that you can buy them anywhere in the world. This is the first thing I’d replace if I lost it.
  18. iPhone 15 Pro, now that it has USB-C, my favorite iPhone ever. No notes.
  19. Maruman N196A Nemosine Notebook, great paper. I have a small Pilot Couleur pen tucked into the spiral binding. Both brands are Japanese and I think I picked them up on a trip there, probably at the amazing Daikanyama T-Site.
  20. OHTO Needle Point Knock 0.7mm pen, a nice daily driver. I was carrying around a Montblanc Heritage Egyptomania Doué ballpoint pen but I lost it somewhere.
  21. Notecards from Ugmonk Analog. I really enjoy everything they make, great company, I keep these on every desk as well. These cards are often what drives my day.
  22. Kindle Paperwhite Signature Edition, finally with USB-C! I prefer the Oasis, but they inexplicably haven’t updated it to be USB-C, so I carry the Paperwhite instead.
  23. 11-inch iPad Pro, always great in a pinch. I have the pen in case I magically develop an ability to draw and the keyboard and alway-connected 5G makes this great for hopping on Slack or Texts.
  24. 35w dual USB-C charger, from Insignia I probably picked up at Best Buy. Here is a 40w Amazon alternative I recommend and usually carry. This is one of the items I give away the most, so I must have given away my Highsay version.
  25. Ugreen 100w 4-port compact charger, this is what I break out when I want to charge my laptop quickly.
  26. Belkin 37-Watt Dual USB Car Charger, I use this very rarely now but it’s great in a pinch, especially on older cars that have very weak USB ports.
  27. Epicka travel adapter. Nice that it has some built-in ports, but I rarely use them. I probably should switch back to the smaller and lighter Muji adapter.
  28. Still my favorite power cable: Baseus 60w. I tried the higher watt models, they didn’t always work on planes. This is a 6-foot extension cord and can charge a laptop directly. Really a joy. When they do an all-USB-C version I’ll probably upgrade..
  29. Apple Watch Magnetic Fast Charger, of course with USB-C
  30. This year, I’ve been focused more on my overall health. As I’m getting into the habit of moving my body everyday, the Apple Watch Ultra 2 has been motivating because it’s great at letting me know how much I don’t run. Jokes aside, I’m a data person so seeing the numbers of my habits have helped me optimize my goals. 
  31. A candle can make a space feel cozy. Though I don’t travel with my own candle, I like to have my trusted Rechargeable Candle Lighter. Light fire with USB! 
  32. Swiss Army Card, let’s talk about cool gadgets. I use every feature of this card on a regular basis during my travels. It’s incredibly compact and slim. I’ve had to reorder this card a couple of times because they will confiscate the tiny knife. 
  33. Petzl e+LITE Headlamp, as a former boy scout, I’m always prepared for anything including a potential blackout.  
  34. Lockpick set.
  35. Carabiner is always good to have on hand.
  36. You know, a Disposable mask is just good practice. This mask shape is my favorite and very comfortable. 
  37. Immunity Throat Spray was recommended to me by Paul Stamets. I’m not sure if it’s a placebo, but I haven’t gotten sick. Thus, 3 sprays twice a day will keep the doctor away… for me at least. 
  38. Lately, I’ve been curious about the quality of air. I carry the Aranet4 CO2 monitor to gain insight about different spaces. Higher CO2 literally makes your brain slower!
  39. Winter is coming… BioDerma Chapstick is my go-to for dry lips. 
  40. I must admit I don’t really eat the mints from this Marunao Mint Case. However, I have a high admiration for this elegantly crafted case. It has a soft finish feel and a satisfying magnetic closure.
  41. Kikkerland Red Plaid Earphone Case is where I store my custom molded ear plugs. 
  42. SmartMouth travel packets was the best recommendation I received in 2019. It really tackles mouth hygiene well for all day freshness. 
  43. Cloth card holder / wallet, simple minimalist way to carry some extra cards and a few bills. I believe Tim uses one of these as well.
  44. WordPress ring.
  45. Sea2See Sunglasses. Sunglasses made from recycled plastic collected from the ocean. I discovered this from a goodie bag at the Brilliant Minds conference and have since purchased more to have it everywhere I go.
  46. Small plastic holder I got from my sister that helps me carry around stickers without them getting crinkled.
  47. Hermes business card holder. There are some occasions where exchanging business cards is a ritual. Also great to wedge it in a door jamb to keep it from autolocking. 
  48. Passport, never leave home without it. Always be ready for adventure! My passport photo is actually AI-generated, because, why not? We live in the metaverse.
  49. Eye Mask. I like these because the material feels nice on the skin and the wraparound is excellent for blocking out the light and some sound since it covers your ears. Great for sleeping or just needing a moment away from overstimulating environments. Similar one here (the version I have doesn’t appear readily available outside of Europe). 
  50. REI Goretex mittens. They’re shell liners, lightweight and water resistant. The ones I have are an older version and no longer in stock. Version 2.0 available. There’s no bad weather, only bad clothing.
  51. Gloves, nice in the winter but I carry them year round in case I need to carry wood or something. Also the fingertips have the conductive material that makes it touchscreen compatible for devices.
  52. This is a grey wool buff, which works as a scarf, a hat, or an eye cover if I’m trying to sleep. I tried this out because of one of Tynan’s also-great gear posts.
  53. Gore Thermo Beanie, my favorite feature are the slits by the ears for sunglasses. Kept my eyes and ears protected while in Antarctica with Tim. He and I recorded a podcast episode in our tent talking about our personal fears, bucket lists, and more. Have a listen!
  54. Aer Fit Pack 3 backpack, embroidered black-on-black with Automattic and WordPress logos. I upgraded this year from version 2 to 3, which changed some of the interior pockets a bit, and most notably added outside side pockets, which I have found super useful. This is the bag that makes it all work.

Not pictured: Flipper Zero, which was actually in my pocket and I forgot to put it in the photo. I have found this device really handy and fun to play with, just a delightful piece of technology.

Here’s what I was rocking earlier in the year:

I’m not going to label it all, just posting for posterity. It’s mostly the same except I gave up on carrying around the Airpods Max, the grippy tripod, and haven’t found a great disco phone light yet.

Matt 2.2

We’re very proud to announce the final release of Matt 2.2, a full year in the making since the last major release. This version includes dozens of enhancements ranging from DSLR support to the new facial hair module (which we could never quite get to work in previous revs). The knowledge base has been expanded, though it’s still a bit light on the experience benchmark. We’ve also fixed that bug that was around since about 1.7 where it thought the knowledge base was already full. Now it knows more, but knows it knows less. Short-term RAM is still a little flakey. Email processing is also still slow, but the “piano” and “reading” plugins have come a long way. This version also runs without a support contract from a major corporation. Most people surveyed agreed this was a solid upgrade, but we know there’s a lot of work left to do still. We hope to continue listening to feedback and keep up the regular release schedule.

All birthday posts: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40.

Curious QRIO

QRIO, our new robot overlords friends. Hat tip: Robert. Some videos in Windows Media format:

I’m really at a loss for words.

QRIO knows your face. It’s equipped with a camera and the ability to analyze the images it sees. It detects faces and identifies who they are. It can even learn the faces of people it just met. And it responds to specific people individually, adding to the fun.

QRIO is equipped with wireless networking equipment, and can connect to your home wireless network out of the box. There might even come a day when it serves as a guide between people and information technology.

We made QRIO as quiet as possible when it moves to help it fit in pleasantly in a home. Its motors and gears turn when it walks or moves, but the vibration-resistant frame dampens the noise. You’ll be amazed to see it move so silently.

Blo.gs Lives On

Do you guys remember Blo.gs? In addition to being a cool domain, it’s a ping-update service like Ping-O-Matic that was started by Jim Winstead and acquired by Yahoo in June of 2005.

Some exciting news today: Yahoo! is transferring blo.gs to Automattic for safekeeping and further development. I’ve been a long-time fan of the service, and it even inspired the early WordPress feature which reordered your blogroll based on update times.

We’re looking forward to beefing up the service and giving it a refresh, while continuing its reputation for reliability. It makes me nostalgic to hear the name “blo.gs” again, I even still have the t-shirt they made for a Feedmesh meetup years ago. (For a big blast from the past, check out the discussion around feedmesh and real-time, distributed updates. Everything old is new again.) Major kudos to Yahoo! for giving us the chance to do so — I think most companies would have just shuttered it.

Toni has a few more thoughts.

Theme Quality and Downloads

There’s been a common argument that sponsored themes are higher quality because they were paid for and removing them from the theme directory will make it suck. While I find this argument insulting to the designers who have put their work out there without sponsorship, and having personally looked at hundreds of them I had a general feeling that most sponsored themes were junk, I didn’t really have any data.

Well I ran a few queries against the theme viewer DB a few minutes ago and found out some interesting stats:

  • We’ve removed 2,107 themes so far, or a bit under 60%. Those themes had 2,243,735 downloads total, or about 1,064 downloads per theme.
  • There are 1,737 themes still in the directory and those had 3,480,244 downloads, or about 2,003 downloads per theme.

(There may be some spam themes still left in the 1,737 number, but I think we’ve gotten most of them. The reports have slowed to a trickle.)

So if you assume downloads are a measure of the public interest in a theme, then non-sponsored themes are about twice as popular as sponsored ones.

Of course you might not accept that assumption, and the data is fuzzy, and there are certainly a handful of sponsored themes that are very high quality, but overall the indications are that they were a net drain on the site. Rather than making one-off exceptions to the no-sponsored-themes policy and being accused of favoritism or of having ulterior motives* I’d rather spend time doing things to reward and encourage the people who are making high-quality themes without embedded advertising.

* Which we get enough of already.

The Four Freedoms

Eleven months before the U.S. declared war on Japan, President Franklin D. Roosevelt said “As men do not live by bread alone, they do not fight by armaments alone.” He articulated four fundamental freedoms that everyone in the world ought to enjoy:

  1. Freedom of speech.
  2. Freedom of worship.
  3. Freedom from want.
  4. Freedom from fear.

Fast forward 72 years: technology has advanced at dizzying rates and permeated every aspect of our lives, from how we are born to how we die and everything in between. In this co-evolution of society and technology, what it means to be truly “free” is no longer about just the country we live in, or even its laws, but is shaped by the products we live on.

As Marc Andreessen says, software is eating the world. It’s a creative gale of destruction that irreversibly changes every industry it touches, and if you don’t control the software, the software controls you. It mediates how and with whom you communicate, what news you see, and what other software you’re able to run. It influences the very way your brain works, as you process the creative gale of distraction that interrupts us all hundreds of times each day. With every ping, software burrows deeper into our lives.

In the early nineties, a prescient hacker named Richard Stallman — working at MIT, where today’s future had already happened — recognized this shift. He proposed a set of four freedoms that were fundamental for software in an enlightened, tech-dependent society.

  1. The freedom to run the program, for any purpose.
  2. The freedom to study how the program works, and change it so it does your computing as you wish.
  3. The freedom to redistribute copies so you can help your neighbor.
  4. The freedom to distribute copies of your modified versions, giving the community a chance to benefit from your changes.

(Aside: I originally thought Stallman started counting with zero instead of one because he’s a geek. He is, but that wasn’t the reason. Freedoms one, two, and three came first, but later he wanted to add something to supercede all of them. So: freedom zero. The geekness is a happy accident.)

This is our Bill of Rights. Stallman called it Free Software. The “free” doesn’t have to do with price, as you’re still free to charge for your software, but with freedom to create. Or as we geeks often say: not free as in beer, free as in speech.

People are scared of free software, and I understand why. You’re taking the most valuable thing you have, your intellectual property, and granting the freedom you enjoy as a creator to anyone who downloads your work. It’s terrifying, actually. It’s releasing your ideas, and letting anyone build on them — in a way that might be better than your own work. It’s releasing your traditional understanding of ownership, and your fear of being out-developed.

The most experienced entrepreneurs can cling to the concept that your idea is something precious that must be protected from the world, and meted out in a controlled way. Lots of us hang on to the assumption that scarcity creates a proprietary advantage. It’s how many non-tech markets work.

Open source abdicates your flexibility as a developer to better serve the people who actually use your products. You can see that as a constraint… or you can see it as a door to iteration, innovation, and constant progress.

I’ve spent a third of my life building software based on Stallman’s four freedoms, and I’ve been astonished by the results. WordPress wouldn’t be here if it weren’t for those freedoms, and it couldn’t have evolved the way it has.

WordPress was based on a program called B2/cafelog that predated it by two years. I was using B2 because it had freedoms 0 and 1: I could use it for whatever I wanted, including my zero-budget personal blog, and the source code was open. It was elegant and easy to understand, and anyone could tweak it.

B2 was ultimately abandoned by its creator. If I’d been using it under a proprietary license, that would have been the end — for me, and all its other users. But because we had freedoms 2 and 3, Mike Little and I were able to use the software as a foundation, giving us a two-year headstart over building something from scratch, and realize our own vision of what blogging could be.

We were just consumers of the software, volunteers in the forums, and occasional contributors to the codebase, but because (of the GPL) we had the freedom to build on B2, we were able to continue development as if it had been our own creation.

Ten years later, those freedoms are still embedded in every copy of WordPress downloaded, including the 9.2 million downloaded in the past month or so since our 3.8 release.

I believe that software, and in fact entire companies, should be run in a way that assumes that the sum of the talent of people outside your walls is greater than the sum of the few you have inside. None of us are as smart as all of us. Given the right environment — one that leverages the marginal cost of distributing software and ideas — independent actors can work toward something that benefits them, while also increasing the capability of the entire community.

This is where open source gets really interesting: it’s not just about the legal wonkery around software licensing, but what effect open sourced software has on people using it. In the proprietary world, those people are typically called “users,” a strange term that connotes dependence and addiction. In the open source world, they’re more rightly called a community.

The core features of WordPress aren’t rocket surgery. A handful of smart people in a room for a year could create a reasonable approximation of the software, and undoubtably improve some things — I see other startups do this three or four times a year.

What they miss is that WordPress isn’t a checklist of features. It’s over 29,000 plugins created by the community, from the in-demand things like SEO to niche features like using your 404 page to help adopt homeless dogs in Sweden. Every WordPress site looks different, because of the thousands of themes available. Instead of one event to outdo, there are more than 70 volunteer-organized WordCamps on six continents (and there’ll be more in 2014).

WordPress marketing has nothing to do with its website or logo, it’s the tens of thousands of people who make a living building WordPress sites and receive so much value from it that they proselytize to anyone that will listen, spreading the flame one site at a time. It works — as of December 2013, 21% of websites are powered by WordPress. One-fifth of the web is built with a tool that anyone can use, change, or improve, whenever and however they want (even more when you count other open source projects, like Drupal).

This approach to building isn’t an abdication of developers’ and designers’ responsibility to build beautiful, functional software. Design and forethought are more important than ever when every change sends millions of independent actors down a new path. Changes to WordPress have consequences today, tomorrow, five years, and ten years down the road, but the passion and talent of the community helps ensure that it always moves forward in a positive way.

The four freedoms don’t limit us as creators — they open possibilities for us as creators and consumers. When you apply them to software, you get Linux, Webkit/Chrome, and WordPress. When you apply them to medicine, you get the Open Genomics Engine, which is accelerating cancer research and bringing us closer to personalized treatment. When you apply them to companies, you get radically geographically distributed, results-based organizations like Automattic. When you apply them to events you get TEDx, Barcamp, and WordCamp. When you apply them to knowledge, you get Wikipedia.

William Gibson is attributed with saying “The future is already here — it’s just not very evenly distributed.” The world is changing faster than any one person or organization can keep up with it. Closed off, proprietary development creates closed off, proprietary products that won’t keep pace in the long run. Open source provides another path — one that’s open to everyone, and can take advantage of the skills and talents of anyone in the world to build software that helps everyone.

As Bill Joy said, “No matter who you are, most of the smartest people work for someone else.” Good ideas aren’t the sole province of groups of people behind high walls, and software shouldn’t be either.

This was adapted from a talk I gave at the Life is Beautiful festival in Downtown Las Vegas. Thanks to Michelle, Ben, Davide, and Paul for help with this.

Death of Flexible Width Designs

It’s over, it’s done. Those of you holding on should wave the white flag as two of the best flexible width sites, Doug Bowman and Dan Cederholm, have thrown in the towel and gone fixed-width without even an entry of explanation, I suppose because the benefits of fixed-width are so obvious no explanation is necessary. Update: Cedorholm’s design is now centered.

Bowman's Stop Design Cederholm's Simple Bits

The assault is coming from all sides:

Dear Mr Antonioni:
I recently screened your classic film, The Red Desert, starring Monica Vitti and Richard Harris. I have a problem with the way you used screen space. My theater’s screen is big and wide. It is capable of handling many actors at the same time. For instance, crowd scenes and battle scenes work well. But in your movie there are only a few actors — and many times they are pictured in one corner of the screen or another, against a stark minimalist background. This is a terrible waste of screen space. For instance, there is one scene where Ms Vitti is filmed on the left side of the screen and there is a white forest behind her. The white forest is not much to look at. Sure, I can look to the left and watch Ms Vitti’s performance, but what do I see when I squint my eyes and look only at the right side of the screen? Not much! I urge you to add extra characters and situations to your movie so every inch of my screen bursts with action at all times.

Sincerely,
Howard Gumpf

Ouch. Now I think the film/web analogy is a bad one, and it breaks down with any sort of critical thought. Zeldman knows this but he’s trying to make a point.

Was it that long ago that flexible-width designs were all the rage? They came in with a bang, and left with a whimper. Is anyone still holding out? Are there any good flexible sites left? The only place I see it anymore in web applications (such as the WordPress administration interface) and in lightly designed e-commerce sites like Amazon.

Back to Firefox

After a good while (I can’t search my Twitter stream) on Chrome I’m switching back to Firefox as my primary browser, and actually uninstalled Chrome. Why? I was getting the “Oh snap” failure page all the time, even on Google’s own Youtube! The only support I was pointed to was this page, and when I followed the instructions there when I restarted Chrome everything was gone. The sentence “copy the relevant files from the “Backup User Data” folder to your new “User Data” folder.” is useless when you consider the folder has 50+ files to sort through and I wasn’t sure which one was causing my previous problems. So back to Firefox, and thanks to Xmarks all of my stuff is there. I’m also using this persona which is pretty sweet. The feature I missed most on Chrome was lame: the ability to click and hold a folder then release on a bookmark I wanted to open. On Chrome you have to click twice. It bugged me. Now back on Firefox I feel like the browser has a large head.

Staticize 2.5

Version 2.5 of the Staticize Reloaded plugin is now available for download. Installation instructions are included in the archive. What does Staticize Reloaded do? It is a highly advanced caching engine that dynamically and automatically caches pages on your site that need to be cached, when they need to be cached. It also allows for some parts of a page to be cached and others not to be, so for example your menu could always be dynamically included from a single file while your main blog content was cached. With Staticize Reloaded you don’t have to worry about rebuilding, stale caches, slow posting times, or any of that. It works silently, efficiently, and trasparently to both the end user and the author.

This version adds the ability to have dynamic functions on a page in addition to dynamic includes. It also adds full support for etags and last modified headers, though you must turn it on in the plugin file. My one tip is that when you redesign or tweak your template temporarily deactivate the plugin. Staticize Reloaded is well-suited for sites on older servers or that receive more than twenty thousand visitors per day. WordPress is so fast anyway I find it’s not worth caching on lower-traffic sites.

Update: The zip archive had a slightly older version of the plugin than the final 2.5 release. Please re-download to get the latest and greatest and fastest.