Why the passive voice is considered harmful

Faceless
Photo by MadMannequin

I really, really hate the passive voice. I had to rewrite my bachelor’s thesis after my supervisor rejected my active version. People use it to add an aura of faceless authority to what they’re writing, as if it’s not just someone’s opinion, it’s the way the world is. Things occur, there’s nobody to argue with, they just are. George Orwell agreed too, including it as one of his 5 rules of effective writing.

Most companies I admire write their copy in the active voice, see Feedburner’s about page for a good example. It’s part of a stance that they are in a conversation with their customers as equals, not talking down to them. The passive voice says "There’s no one you can talk to, this is a one-way communication". Active verbs give the feeling that you’re hearing from a human being who might welcome a response. Blogs use the active voice, and that’s what makes them seem so fresh and energetic.

It’s tough when you’re starting off to steer clear of passivity. You want as much authority as you can fake, since a big hurdle is getting anyone to take a chance on a startup with no history, but the language you use affects your thoughts and actions. Using the passive voice is all about putting distance between you and your customers, and you’ll end up losing out. Be active and engage people instead.

Death of a startup

Graveyard
Photo by Auchinoon

My old roommate Dave taught me snowboarding, and one thing he said stuck with me: "If you don’t fall down at least once every day, you’re not pushing yourself hard enough". (He also comforted me with the claim that "chicks dig scars" after I impaled my leg on a fencepost on my first day out.) One of the things I’ve found liberating here in the US compared to England is that it’s possible to fail without being labeled as a failure. On that topic Bob Sutton has a post on why "Am I a success or a failure?" is the wrong question to ask.

I’ve never been through the death-throes of a startup, but Visual Sciences, a games startup I worked at for four years, collapsed in a painful bankruptcy throwing a lot of good friends out of work. Andrew Hyde laments the sense of shame that still comes when you’re involved in a failed business, and like me wishes there were more post-mortems out there to help us all learn. Nick Napp, founder of the promising Disruptor Monkey, has taken that up that challenge with a post explaining what happened to the company. It’s tough because it’s an emotionally charged topic, and there’s always details that have to remain private, but he’s done a great job covering what he’s learnt. Now I guess it’s up to me to pick one of my own professional failures and return the favor.

Easily create gorgeous graphs with the Google Charts API

I’ve looked at a lot of ways to create graphs dynamically on the web. PHP/SWF charts are fantastic if you want a beautiful results, a lot of options, and interactivity, but they require flash, which both limits the platforms that can use them, and can result in slower loading. For better compatibility, you need something that generates images on the fly.

I’d investigated using jpgraph, but the results looked really ugly and it takes up precious cycles on your own server. Then I discovered a free Google web service that generates images on the fly for you, the Charts API. The pictures above are examples of the high-quality results it produces, with clean fonts, nice 3D and most importantly antialiasing. The API is incredibly simple to use, you just pass in the data and options as parameters to the URL. You don’t even need to register or get a key. Here’s the URLs for the two images:

http://chart.apis.google.com/chart?cht=p3&chs=480×200&chd=s:Hellob&chl=May|June|July|August|September|October http://chart.apis.google.com/chart?cht=lc&chd=s:pqokeYONOMEBAKPOQVTXZdecaZcglprqxuux393ztpoonkeggjp&chco=676767&chls=4.0,3.0,0.0&chs=480×200&chxt=x,y&chxl=0:|1|2|3|4|5|1:|0|50|100&chf=c,lg,90,76A4FB,0.5,ffffff,0|bg,s,EFEFEF

While it’s easy to get started with this style, it does have some downsides. Since the data is encoded as part of the URL, there’s a hard limit on how many points you can have since some systems choke on URLs over 2000 characters long. The API also doesn’t support as many styles or options as PHP/SWF, and no animations is possible.

Despite those disclaimers, this is an amazing tool, and I’ll be having a lot of fun with it. One of my favorite features is the map graph type, which lets you easily specify just colors and states or countries, and it generates an image showing that on a simple map. It would be insanely easy to create some geographic data visualizations using it if you’ve got interesting data. Here’s an example of the results:

http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=s:fSGBDQBQBBAGABCBDAKLCDGFCLBBEBBEPASDKJBDD9BHHEAACAC&chf=bg,s,eaf7fe&chtm=usa&chld=NYPATNWVNVNJNHVAHIVTNMNCNDNELASDDCDEFLWAKSWIORKYMEOHIAIDCTWYUTINILAKTXCOMDMAALMOMNCAOKMIGAAZMTMSSCRIAR&chs=440×220&cht=t

Speed up your Gmail IMAP downloading

Launch
Photo by IslandBoy

Now I’m getting deeper into using the IMAP API to pull email from Google, I’m hitting a lot of performance issues. Most of them are on the parsing and database loading side, but while profiling I did discover a few ways I was using IMAP inefficiently. I’ve updated my original PHP/Gmail example with some optimizations. The main speed boost was switching from grabbing all the email headers using imap_headers() just to get the total number of messages in the mailbox. That’s very inefficient, especially on large mailboxes. Instead I just call imap_num_msg() to get the count directly, and that’s much faster. Another wrinkle was asking for the INBOX mailbox to get all the messages. It’s better to look for [Gmail]/All Mail if you want the complete set of non-spam email in case the user has organized their mail into different folders, though you do also get the sent mail as part of that.

Here’s the source code as a zip, or you can give it a try online. Big thanks to Rob and Josh at EventVue for trying some of this out on their mailboxes too, they’ve been a fantastic help.

Do you need a privacy policy?

Hiding
Photo by kkelly2007

I’m a fan of plain English all the time, everywhere. I had to rewrite my undergraduate thesis to use the passive voice ("the experiment was performed") after I submitted a first person narrative ("I performed the experiment"). When I needed a privacy policy, I was pleasantly surprised to find that it didn’t have to be in legalese. In fact, it’s hard to find any hard instructions on exactly what you do need in there. California law requires that you have one if you collect any personal information, but only gives a general idea of what you need to explain.

Most privacy policies are organised as a series of questions, with the answers spelling out what you collect, how you use it and who else sees it. SafeSelling has a comprehensive article on privacy with a section halfway down the page titled "What should my privacy policy include?" that covers the sections you’ll need. I love starting with a template, and ended up basing my policy on this example from the Better Business Bureau.

As I mentioned, I was impressed by how readable most policies are, even for big companies like Google. They don’t have much legal force yet in the US. I wonder if they’ll be drowned in latinate obscurity if they end up in court more often?

Do you want to know a secret?

Whisper
Photo by Dr John 2005

There’s a strong bias in the web community towards openness. We all know information wants to be free, and we apply that to our daily lives through wikis, blogs, twittering. We’re very comfortable publishing content that’s available to the whole world.

Most people don’t behave like this. My parents worry about people knowing they’re away on vacation in case the house gets burgled, they go out of their way to make sure someone takes the mail in. Some engineers I’ve worked with hoard information like gold, afraid that if they give too much away they’ve lost their own value. Most parties require an invitation from the host, and to avoid giving offense you probably won’t tell anyone about it if they’re not on the list.

Email has a fine-grained, laborious but very powerful mechanism for controlling who sees any information. You specify exactly who it goes to. Others can forward it, but at least that requires an explicit action and leaves a trail.

Things start to get really interesting once you add circles of trust. JP Rangaswami opens up his mailbox to all his direct reports, but not to the rest of BT. Only my friends on Facebook can see that I’ve just turned 20 in hexadecimal.

Email is the biggest private silo of information by far. I’d be happy to share 75% of my mailbox with everybody I know, but there’s no way to do that, yet. But I’d only be willing to open up any of it if there was some way to be certain that the items I needed to be private really were sacrosanct.  The key to opening up email will be making sure there’s a simple and understandable way to keep secrets. Once we do that, we can take the next leap forward in email by liberating all of the information that’s currently gathering dust in everyone’s inboxes.

Do you ever stare at a blank document wondering where to start?

Blankpaper
Photo by Mark78_xp

When I’m coding, designing a web page or writing up a document, it’s often helpful to start with an existing example. I’ll usually finish up completely rewriting it, but having a guide to the expected structure and main points to hit makes the process much faster. For business and legal documents, that’s where DocStoc comes in.

They offer a platform for users to share free templates for things like business agreements, wills and expense worksheets. It’s focused on professional documents, which separates it from services like Scribd, and has a flash-based interface for browsing through the material. They have a rating system that’s designed to help you find the most useful content. One thing I’d love to see is an official seal of approval on some of the legal documents, at the moment I would be nervous using it for something like a will without some reassurance.

They’re run out of Los Angeles, and recently announced a $3.25 million Series B funding round with Rustic Canyon Partners. I met Jason Nazar, the entrepreneur behind DocStoc, when he gave a talk at the Entrepreneurs Mentor Society last year. Back then it was still in the early stages, and it’s great to see it turn into such a local success story. I do wonder if the same idea could be applied to a company intranet, so that commonly used document templates could be shared in a central location?

Have you seen PicLens?

Piclens

I’ve been a fan of CoolIris’s work since they started over two years ago. I ran across them because their first product was the eponymous browser extension that let you view live, in-context previews of web pages by hovering over the links on certain pages. This was in the same area as my GoogleHotKeys and SearchMash projects, where I was trying to find a better interface to search results than the standard text listing.

Since then they’ve kept innovating and experimenting with new approaches to interacting with web content, and PicLens has been a break-out success. It’s also a browser extension, but gives you a full-screen interface to a lot of popular image-based sites like Flickr, YouTube. The images or movies are shown in an infinite 3D wall that you use a gesture-like interface to fly up and down, and zoom into. Initially what draws you in is the gorgeous rendering, with subtle but classy effects like the reflections, and smooth animation and transitions. What keeps you using it is the interface, it’s like the next generation of channel surfing. After using it for a while, going back to the traditional model of a static page with embedded 2D images or movies feels very awkward and slow.

This week I was fortunate enough to spend a few hours with the CoolIris team, who I’d never met before. They were a lovely bunch of people, and had an inspiring story. The initial team spent two years self-funding all of their work, running up big credit card bills and working without a salary. Recently they closed a Series A together with Kleiner Perkins and now they’re running full steam ahead on some very interesting developments that I could tell you about, but then I’d have to kill you.

They’re on the lookout for good engineers, particularly people with experience of writing 3D engines for games or similar graphics applications, and anyone who’s been thinking about really innovative interfaces. Contact kathy at cooliris dot com if you’re interested in talking to them about this.