Thursday, February 22, 2007

How engaged is your audience?

Really excited with the latest post we put up today at the company blog: FeedBurner’s View of the Feed Market. The gist of the post is this: for all the attention focused on subscriber numbers, they’re an incomplete metric to use when evaluating a feed’s audience. What good are a million subscribers if they never read your content? Don’t get me wrong: subscribing to a feed is a start: it’s an implicit vote of trust, it’s a reader saying that your content is interesting, that they want it delivered to them as soon as it’s updated. But it doesn’t tell the whole story.

Publishers who want a better understanding of their audience’s engagement with their content can look at how often their feed items (“posts”) are rendered in feed readers, and can also use us to track click-throughs to their posts. Both of these metrics provide a way to go beyond the subscriber number – if the subscription is an indiciation of interest, then the views and clicks are a manifestation of that ongoing interest.

Anyway, we’re going to put together a few more of these over the next few weeks. With the number of feeds we host (up over 600,000 – there were only 20,000 when I joined!) and the number of publishers using us (340,000, up from 12,000 when I joined), we’ve got a lot of data, and a few more interesting observations to share. Stay tuned!

Sunday, February 18, 2007

Sunday musings

About a month ago I was starting to recognize (OK, Robin was pointing them out) that I was getting a tad burnt out. I was getting to bed after 1am, sometimes 2am (and up at 6); the laptop was starting to occupy increasing amounts of family time (and if the laptop wasn’t nearby, then the phone – with Gmail client – was); weekends too often meant “catching up on e-mail” and “checking the forums and I’d pretty much cut back on all non-work and non-family activities. (I stepped down as chair of the Naperville Democrats last fall, I’ve dramatically cut back on the writing I have done for the American Bar Association for 14 years, and I’ve been MIA at a number of recent social gatherings of friends because I felt guilty for leaving Robin and the kids at home alone.)

This isn’t to complain: I have never had more fun at a job than I’m having at FeedBurner: sure, the pace is frenetic, but the team is firing on all cylinders and we just continue to plow ahead. (And wait until you hear what we have cooked up for the remainder of 2007: it’s big!) But it was starting to be 100% of what I was doing, and that’s not healthy for me, for the family, or even for the company. A stressed and exhausted Rick is neither a productive nor particularly fun to be around Rick.

I’m slowly getting my bearings. Two weeks ago we headed up to a ski shop in St. Charles to update our winter wardrobe, as we’re heading to Breckenridge in two weeks to go skiing with my parents. While up there, we drove right by the Home Brew Shop, which we’d last visited in 2001. I used to enjoy making beer — back in Massachusetts, it was a pretty regular hobby. But then we had kids, moved a couple times, and never seemed to find the time. If you don’t know, brewing beer is a pretty involved process: day 1 is probably 4-5 hours from start to finish, then you let it ferment for a week or so, then the process of siphoning it into a bottling container and bottling it is another couple hours. Then you wait another couple weeks, and if all went well, you’ve got a great beer.

At Robin’s urging, I picked up ingredients for a new beer. It consumed my evening, but it was actually invigorating: I wasn’t thinking about feeds, wasn’t worrying about how many e-mails were piling (or had piled) up… I was just hanging in the kitchen, making beer. And for the remainder of the week while it was fermenting, I had something to think about that wasn’t job-related. It was a nice diversion.

That batch (a Pale Ale) is in the bottles now, and should be ready in another week. Today I brewed an Irish Red, and as with most things, I was able to apply the lessons from mistakes I’d made with the first batch and made a better beer (at least so far – the proof will be a few weeks away!). I started right after lunch, and I’m just now done: the beer’s in the carboy, the pot’s cleaned up, and the kitchen is (mostly) clean again. That was preceded by an hour of playing Lego Star Wars with Robby while his brother was at a birthday party – which means I got some good family time in while also vegging out. Highly recommended (on all fronts).

Not really sure why I’m documenting this, other than to say that it’s felt good to start working on non-work stuff again. FeedBurner will continue to be a 100-hour plus week – that’s the life of a start-up, and I honestly wouldn’t have it any other way. But I’m starting to reclaim some of the remaining hours, and that’s good. The digital SRL I got for Christmas is also renewing my photography obsession, which has been a lot more fun than I’d expected.

On a not at all related note (I titled this post ‘musings’ for a reason), I was talking with Hiram last night, who asked whether I had a good sense of what people actually wanted to read on my site. His take was that I’d evolved from being split 50/50 politics and tech to being about 5:1 tech to politics. I don’t pay close enough attention to my stats (yes, that’s more than mildly ironic) to really have a good sense of which subjects people read more than others, so if you’re interested in sharing your opinion about what topics you want me to cover, feel free to share them in the comments. Can’t promise I’ll change my focus (er, or lack thereof), but I’d actually like knowing what y’all expect to see here.

Comments are open, let me know what’s on your mind. (Lord knows mine’s particularly all over the place tonight!)

Friday, February 16, 2007

Prediction for the day: subscription numbers will rise

OK, this isn’t exactly a bold prediction: as we noted on our company blog, Google is now reporting subcsriber numbers to feed publishers. What this means is that starting tomorrow morning, if you use FeedBurner you’ll see your subscriber number grow because we’ll be able to tell you how many Google Reader (or Personalized Hompage) subscribers you have.

This is an oft-requested data point that publishers ask for, I’m thrilled to see it out in the open. If you want to know more about how we capture feed numbers in general and how web-based aggregators work, see last month’s post on that subject.

Monday, February 12, 2007

Salesforce spam: fixing web-to-lead

For more than 3 years, I’ve been a very happy user. Unlike more bloated CRM applications that require training, lengthy implementation cycles and user revolt, is in the sweet spot of sophistication and simplicity. For us at FeedBurner, it’s been a great way to scale our lead management and is taking a growing role in proactive communication with customers and partners. Its web-to-lead feature, which lets you connect a web form to your install to seamlessly create leads within, is great.

Over the last 9 months, however, we’ve been plagued by a phenomenon all too common with weblog publishers: spam. The exploit is simple: spammers scrape your lead intake form, capture your OID number, and then use that to bypass your form and hit the lead submission script directly. The result? Thousands upon thousands of bogus leads cluttering up our system, and very annoyed users at FeedBurner. Not Good. (And not new either.)

I assumed we were missing a simple fix, so I submitted a case to support. No dice: “Find a way to secure your form, and the problem will go away.” Nice try, guys, but the problem’s not our form: we use Javascript to force the selection of a value in several fields, so someone trying to auto-submit our form would be blocked from submitting. No, the problem was that they were bypassing our form and submitting the data to directly. After several calls and twice escalating the case to Level 2 support, wouldn’t budge: Not their problem.

As I see it, this is absolutely a problem. And hopefully they’ll recognize that. (As I mentioned in the IdeaForce post linked above, simply hooking up to Akismet would be a huge step forward.)

But until they do, I figured I’d document what we’ve done to stem the tide of Cialis, Viagra, Phentermine and Online Casino leads that have been polluting our system for months. Thanks to the good folks at Arrowpointe for their suggestions over at Perspectives on Salesforce blog. Two weeks ago, they documented their approach, which is conceptually what we’ve done.

This requires using Validation Rules (click “Setup” then “Customize” then “Validation Rules” (under “Leads”)). Click New to create a new validation rule, and then enter in your rule. Here’s ours:

ISPICKVAL( ourfieldname , "ourwebtoleadfieldvalue"),
CONTAINS( Description , "mortgage") ,
CONTAINS( Description , "diploma") ,
CONTAINS( Description , "auto loan"),
CONTAINS( Description , "viagra"),
CONTAINS( Description , "levitra"),
CONTAINS( Description , "cialis"),
CONTAINS( Description , "phentermine"),
CONTAINS( Description , "href"),
CONTAINS( Description , "[URL=")

What it does: in a field that identifies the lead as created by Web to Lead (“ourfieldname” and “ourwebtoleadfieldvalue”), it looks for any of the text in the description fields that matches the strings in quotes. In addition to the popular pills, I threw in strings that don’t get submitted in valid leads but are almost always included in spam submissions: hyperlinks (formatted in either HTML or in popular bulletin board markup, [URL=]).

When a lead matches this rule, it effectively aborts the lead creation process (computationally intensive for Salesforce, but as they pointed out, this isn’t their problem!) and triggers an alert message to the default lead owner. Eric is the designated default owner, so he now has a rule in Gmail that traps the alert message and throws it away.

We’re keeping an eye on things. So far, it appears to have been largely successful. It’s already blocked dozens of spammy leads, while letting legit ones through. If it starts missing spam leads, we can tweak our rules to match to other criteria (there are a handful of names that appear to be pretty popular), so this should be flexible enough to keep up with the arms race that is form hijacking by spammers.

(For those that wonder why they’d do this, my best guess is that they’re simply trying to submit to the form to capture as many valid e-mail addresses as they can by seeing what auto-responder rule gets triggered by when a lead is submitted. They can then add that e-mail to their spam list, which they’re presumably selling to others. Anyone have any other ideas what they might be up to?)

Are you using Are you seeing similar spam problems? What are you doing to tackle them?


I wrote about Facebook a couple weeks ago, and since then have spent a bit of time playing around. Prior to this, I’d only really spent time on MySpace, which often left me wanting to curl up into a fetal position and weep. Fourteen years of lessons learned in web design and that is the most trafficked site on the Internet?

Facebook, on the other hand, is under-stated and rather elegant. Rather than fostering an odd lust for hideously-designed personal pages on the web (honestly, haven’t we already been down that road?), Facebook is geared explicitly to sharing information with friends. In just a few days of using Facebook to build up a circle of friends, I can already see that what LinkedIn is to my professional life, Facebook will become for my personal life. I’ve reconnected with professors from law school, classmates from college, and our former babysitter who’s now in college. My cousin who recently graduated from school is there, as are countless friends from the Dean campaign. It’s genuinely interesting to log in and see what people have done in the past day or two via my homepage.

Are you using Facebook? What’s your experience been?

Saturday, February 10, 2007

Let's get to work

Barack Obama just concluded his announcement speech in Springfield. To a crowd estimated to be 10-15,000 supporters, he declared he’s officially running for President. The crowd’s a hearty bunch: it’s hovering right around zero degrees today.

Visitors to my site will see a link to a fundraising page I built using the new Barack Obama website. I will hopefully raise my goal in the next few months, but I figured I’d start with a relatively modest $10,000 goal. If you’re interested in contributing to Barack’s campaign, this will simply associate your contribution with my community. (All the money goes to the Obama campaign.) I’ll be contributing shortly, and would love for you to do the same. I promise this blog will not become an all-Obama-all-the-time blog, but I will periodically update you on things I think are of interest to you. (More regular updates on Obama specifically will be at either my page on the Obama site or at Facebook.)

In the meantime, if you’re interested in contributing, you can go here.

Friday, February 9, 2007 - new site on the way

Just watched Barack’s preview of tomorrow’s announcement in Springfield. About half-way through, he talks about the new site that will go live as soon as his announcement’s official (transcription is mine, may not be 100%):

I hope that you use this website as a tool to organize your friends, your neighbors and your networks. The website will be set up to set so you can build your own profile, plan your own events, take campaign fundraising into your own hands so we can collect small donations instead of having to rely on large campaign contributions. It’s also going to give you a chance to chronicle your campaign experience on your own blog. I hope you take advantage of all these tools. Obviously, I’m extraordinarily excited about the possibilities of this campaign, but I’m humbled by the enormity of the task at hand, and I know I can’t do it by myself. Ultimately it has to be a vehicle for your hopes and your dreams, and I hope you feel the same way.

I can’t wait for this site to go live. When Zack asked earlier this week whether Barack would wear the make-up (read the post, the reference makes sense), I think this demonstrates how Barack is thinking about what role technology can play in his campaign: in a world, a central one. While Barack has a very sharp team surrounding him (including several net-savvy individuals with battle scars from some high profile campaigns), at his core he’s a community organizer. When we faced some internal resistance in getting his campaign blog launched in ’04, it was Barack who “got” it and made it core to the communication strategy. He also recognized that people didn’t necessarily to hear more from him, but that they wanted to hear more from each other. When that blog worked, it was when Illinois residents swapped stories, connected, and felt engaged with the campaign.

And it’s clear to me, from what he said above, that he more than gets it. His campaign will be our campaign. I like the direction that the Edwards campaign is already going in (no shocker there, Ryan and Matt are probably the two smartest people thinking about this stuff right now), but I’m thrilled to see that Barack is on board with giving us tools to shape the campaign in our own image. He talks of changing the nature of the debate, and of transforming how we think about politics. The campaign must not be about the tools. But with the right tools in place, we can increase the likelihood that he (and we) will be successful.

This is exciting.

Tuesday, February 6, 2007

More on the site update

A postscript to last night’s update — though it worked on 99%+ of the posts, several posts that already had hyphens in them were resulting in 404 errors. If you’re running WordPress, I found two plugins that you should absolutely look into using:

  • 404 Notifier. This monitors any 404 errors and notifies you by e-mail and/or by RSS feed. I have these notifications collecting in a Gmail label, which I can then scan for “popular” 404s (i.e., pages hit a lot) and correct them. Which leads to…

  • Redirection. A simple plugin that is incredibly powerful, it lets you identify a “broken” URL and provide it with a good replacement, select which kind of redirect you want (301/302/307) and then it will implement the redirect and log stats on how many times the redirect has been hit.

Between the two of these, I’ve been able to identify and correct the handful of pages that didn’t get seamlessly handled last night. Just more evidence of how powerful and flexible the WordPress CMS is. (It should go without saying, but just in case: if you see anything out of the ordinary, just shoot me a note and let me know.)

Converting from Outlook to Gmail

Last week, I gave up on my Treo and replaced it with a Samsung D807. It’s not a smart phone, it doesn’t have a keyboard. But thanks to the phone, I switched from Outlook full-time to Gmail. And after just a couple days, I’m hooked.

OK, the details: the D807 is one of many phones that have the ability to run Gmail mobile – a Java app that talks directly to the Gmail server. Unlike my Treo, which relied on POP3 to access Gmail, the D807 is a real-time front-end to Gmail. I can delete from the server, reply, filter the inbox by label, etc. It even opens Word, PDF and image attachments. In other words, this non-smart phone was both a faster and a more fully-featured e-mail client than my Treo was. (The real reason for replacing the Treo was that it had ceased being even a passable phone – months of missed calls convinced me its time had come.)

So the phone is a great front-end to Gmail. Big deal: Outlook still has the advantage of being an integrated contact manager and calendar, right? Sure, but once you see the Gmail + Google Calendar integration, its harder to think of Outlook as smarter. Gmail detects language in an e-mail that indicates an appointment – yesterday, I received an e-mail from Eric saying: “Can we talk at 1:30 about FAN approval?”. Right next to the headers of the message was a simple link: “Create task for this e-mail” along with a preview of the day’s events so I could see if I was free at 1:30. In one click, the e-mail turned into an appointment on my calendar. With Google Calendar’s “quick add” I could type in plain English “Call Jeff at 2pm” and it does the right thing.

In telling Eric about how great this was, he replied, “Sure, but Google Calendar doesn’t have notification of events”. Except that now they do: by e-mail, SMS and pop-up window.

But the clincher had to be the Getting Things Done Firefox Extension for Gmail. I’ll note in passing the irony of me postponing jumping back on the GTD bandwagon, and say that I’ve had the book in my briefcase for a few weeks as I looked for time to re-read it. (Yes, I know. It’s ironic. I get it.) What GTDGmail does is turn Gmail into a flawless GTD console: e-mails get action/next action/waiting on/etc. labels which are dynamically updated. E-mails can have projects associated with them. I got more done today than I’ve gotten done in months, and I feel more on top of my current todo list than I have since, oh, I don’t know when. (Oh, and did I mention that all of this info is accessible from my cell phone?)

I actually love the Outlook 2007 interface. But the reality is that Gmail + Google Calendar + GTDGmail + Gmail mobile make me orders of magnitude more efficient than my old setup did. You know, I think Jason just might be on to something…

For those who care, the phone itself is great. Far superior sound quality over the Treo (that’s not much different than saying “He throws better than Rex Grossman”, I realize), the data connection is pretty zippy, the voice commands work surprisingly well, and it’s got a great form factor. I realize I’m still in the gadget honeymoon phase, but given that you’ll actually pocket $100 if you buy it through Amazon (after rebates), that seems like a pretty good deal to me.

Monday, February 5, 2007

Converting from Movable Type to WordPress permalinks

Well, it’s almost a year late. When I converted from Movable Type to WordPress, one of the things I put off doing was switch to WordPress permalinks for individual posts. I know, this sounds like a completely useless discussion – whether your posts are published at or couldn’t be more boring, right?


Turns out, it’s much better to use hyphens in your permalinks. (If you care about how your site ranks in Google and you’re not reading Matt Cutts, you don’t care about how your site ranks in Google.) So… I could abandon 5 years of archives at old URLs (definitely not preferable), or I could use htaccess to convert underscores to hyphens. Only problem is, I can’t for the life of me understand htaccess and its voodoo ways. So I punted, and installed the Underscore Permalinks plugin and just published in WordPress to the same URLs I’d published in Movable Type.

Then a funny thing happened. I started speaking at Search Engine Strategies conferences, and I’d often co-present with Stephan Spencer, one of the founders of Netconcepts. Stephen knows a lot about SEO for blogs, and was adamant that using hyphens was the only acceptable option when it came to permalinks. Whenever I’d tinker with my blog, I’d make a note that I should really figure out how to convert the underscores to hyphens. Each time I looked, it seemed hard. And hard = not tonight.

Last week, I dropped Stephan a note. The first step to solving a problem, I reasoned, was admitting I had one. Sure enough, Stephan not only came back with some useful advice, he actually looked into the specifics and figured out some helpful info:

  • the Underscore Permalinks plugin actually modifies the post_name row in the wp_posts table by swapping the hyphens out with underscores. I’d need to modify the post_name entries for all 2500 posts to replace the underscores with hyphens. (For those who are curious, the SQL command to do this is:
    update wp_posts set post_name = replace(post_name,'_','-');

  • I’d need to deactivate the Underscore Permalinks plugin so that future posts won’t be modified.

  • I’d need to implement a script in htaccess to search for underscores and replace them with hyphens.

The first two steps were pretty straightforward, though I’m pretty sure I wouldn’t have figured out the first without Stephan’s help. With those accomplished, I set out to implement the htaccess rules Stephan sent me. (Talk about above and beyond the call of duty, Stephan actually bothered to write up the 10 lines of code necessary to do the transformation!)

This is where I hit a bit of a roadblock. No matter how I tweaked the htaccess rules, I couldn’t get it to do the right thing. While IMing with Ed, I mentioned my headache, and he quickly hit Google and found this page, which seemed to document precisely what I was trying to accomplish. (Of course, the author hadn’t postponed his misery by a year, so he didn’t have to deal with my database and plugin issues. Lucky for him!)

With a little massaging, I was able to implement the author’s solution of creating a simple PHP file (convertperma.php) and referencing it in the htaccess rules; now, requests for the old permalinks do the right thing. (One caveat: I can’t figure out how to make the rewrite rule in ColdForged’s instructions be a 301 redirect; I’ll worry about that after I get some sleep!) I’ve also regenerated my Google Sitemap (using the excellent Google Sitemap plugin), which should help in getting the right permalinks indexed by Google. And adding the Landing Sites plugin code to my 404 page means that any errant search results that bring up a 404 will at least include helpful pointers to pages that are related to the originating query.

It’s not perfect, I’ve found a couple pages that appear to be edge cases that will need further attention. But this is more than 99% of the way to completion; I couldn’t have done it without Stephan’s and Ed’s help. Thanks, guys. I owe you both big time!

Wiki helps pass law in Utah

Wow, this is just fascinating. Congrats to Ross and the Socialtext crew for making this happen… it’s exciting to see such a wonderful example of civic engagement made more effective through the use of technology.

Update: Britt Blaser has some background on how this came to be; it’s just so cool to see how this takes shape. Bi-partisan technology. I love it.