Guest post on TechCrunch: How fast is your site?

On Friday I had the privilege of writing my second guest post for TechCrunch. My article was titled How Fast Is Your Site? Measure It With Google’s Page Speed Online. I talked about the new Page Speed Online tool from Google and how you can use it to analyze the performance of your website. It’s been a while since I’ve written for TechCrunch and it’s always fun to write for an audience of millions. A huge thanks to Erick Schonfeld for giving me the opportunity and helping me get my commas in the right places. I seriously wish he could edit everything I write.

I believe we are still in the early days of web performance optimization. Most people aren’t aware of how slow their sites are or how much their performance is hurting them. A big part of my job as CEO of Torbit is educating people on why speed matters. People need to understand the problem before they can be sold a solution. Tools like Page Speed Online make my job easier by showing people their sites aren’t as fast as they could be. The statistics are out there and the correlation between performance and revenue is undeniable. You’re losing money if your site is slow.

One person who “gets it” is Micah Baldwin. Micah added Torbit to his site a few weeks ago and reported a noticeable speed improvement as a result. He left a comment on my TechCrunch post that says:

It’s amazing how much speed matters. We have found a direct link to pageviews and revenue.

I’m stoked to be helping people like Micah get faster sites, increased pageviews and more money. We’re building an automated solution to fix slow sites and are making a lot of progress. We’ve got a ton of people on our waiting list and are looking forward to opening up our BETA soon. The technology isn’t trivial, but it sure feels good to be working on something that really matters.

 4 comments

Brick walls

This is one of my favorite quotes of all time:

Brick walls are there for a reason. The brick walls are not there to keep us out. The brick walls are there to show how badly we want something. Because the brick walls are there to stop the people who don’t want something badly enough. They are there to keep out the other people.

– Randy Pausch

This quote is a good reminder for me today and everyday. It’s my encouragement when things are hard. Instead of getting frustrated, I try to use my stubbornness to my advantage. From rock climbing I’ve learned that I can get up just about anything if I stick with it long enough.

Randy Pausch was a Carnegie Mellon professor who passed away in 2008. Before he left us, Randy gave one last inspiring lecture on Achieving Your Childhood Dreams. It’s worth watching if you haven’t seen it already.

  comments

Detecting subdomains & effective TLD’s using publicsuffix.org

How do you detect if a domain contains a subdomain and then return that subdomain? At first it seems like it should be a simple problem. Just write a regexp that looks for the first period and return everything up to that point, right?

example.domain.com

But then you remember that subdomains can have multiple levels:

another.example.domain.com

And then you have those effective top level domains like co.uk to consider:

another.example.domain.co.uk

Hmmm, maybe this isn’t going to be so simple after all.

There are a couple ways to look at this problem. One way is to ask: how you know which part of a domain is the registered domain? Once you know the registered domain, you can figure out the subdomain.

One way of finding the registered domain is to do a whois lookup on the entire domain. If the whois comes up empty, strip the leftmost subdomain and try the whois lookup again. Continue this process until you get a match and that is your registered domain. While this method works, it comes at the cost of multiple network lookups.

Thankfully, there is a better way. It turns out browser vendors need to be able to parse domains too. The Mozilla Foundation started a cross-vendor initiative called publicsuffix.org that is a list of all the effective top level domains. This information is particularly important to browsers to be able to restrict cookies to a given domain. For example, without the public suffix list, anyone on a co.uk domain would be able to read the cookies set by any other co.uk site.

To figure out the registered domain, you need to know all the possible top level domains (like .uk) as well as all the effective top level domains (like .co.uk). There are some great libraries available that make it easy for you to parse the public suffix list to find a registered domain. Google has one in Java and regdom has libraries available in C, Perl and PHP.

While it feels a little inelegant to keep a list of effective TLD’s that has to be updated every now and then, it really is your best option for now. Using this list, it’s trivial to get a subdomain from a domain. For example, using the PHP library from regdom, the code to check for and return a subdomain is simple:

function has_subdomain($domain) {
    return ($domain != getRegisteredDomain($domain));
}

function get_subdomain($domain) {
    if (!has_subdomain($domain))
        return false;
    $registered_domain = getRegisteredDomain($domain);
    return str_replace(".".$registered_domain, "", $domain);
}

The public suffix list is incredibly useful and there are probably many more applications for it that I haven’t considered. I’m surprised it doesn’t get more attention from developers. If you need to do anything that requires you to know a registered domain, the public suffix list is the best place to start.

 2 comments

Why charging for developer tools is stupid

I saw today that Apple has started charging for Xcode. For the non-developers out there, Xcode is a tool from Apple for building software for the Mac, iPhone and iPad. It used to be free, now it costs $4.99.

Seeing this reminded me of a Microsoft focus group I was invited to be a part of a few years ago. As a CTO who had decided to build everyone on top of free software, they wanted to know what it take to make me to switch to a Microsoft stack. I told them they were 10 years too late. You see, I made the decision to use LAMP stack not because it was cheaper, but because it’s what I knew. And the reason I knew LAMP stack was because that’s all I could afford when I was 15. The question for Apple isn’t whether businesses or experienced developers can afford their development tools, it’s the teenagers they should care about. And while $5 is still well within the average teenagers reach, it’s still a lot more friction than free. This is especially true since many teenagers don’t have a credit card of their own. What kid wants to take the time to explain to mom why he needs to borrow a credit card for something called Xcode, when he can jump over to Google and get Android tools for free?

Apple already charges $99/year to be a member of their developer program which you need to be able to distribute applications on the App Store. While this pricing hasn’t seemed to hurt them much so far, it’s short sighted even if the effects aren’t immediately apparent. I’m a huge Apple fan and I hate watching them repeat the same mistakes Microsoft made years ago.

 12 comments

TechStars companies’ hosting decisions

The other day I stumbled across a post on Hacker News titled Chart of YC companies’ hosting decisions. The post caught my attention as it’s always interesting to see the decisions other smart founders are making. Being a TechStars alum, I immediately reached out to the creator, Joel Franusic and asked if we could make a similar chart for TechStars. He agreed and after finding a list of active TechStars companies the new charts are ready.

The charts were generated by an open-source tool built by Joel called domain-profiler. It’s a neat tool and surfaces publicly available information in a really interesting way. It’s also interesting to compare the TechStars graph with the Y-Combinator graph. For example, notice how MediaTemple has a deal with TechStars and gets a much larger slice of the pie for TechStars than YC. Some other things of note about the TechStars graphs:

  • Smaller percentage use Google Apps for email
  • Greater percentage use SSL certificates
  • Greater diversity in web hosts

Joel is a startup evangelist for Microsoft and I look forward to following his work with domain-profiler and other projects.

 2 comments

Seeing the world between startups

On Christmas, Paras Chopra wrote a post titled Do a startup or travel the world? I found it on Hacker News and started to leave a comment before deciding to turn it into a blog post instead.

I happen to have a lot of thoughts on the subject. I’m 26, have visited 13 countries and am on my 3rd startup. My goal is to visit 50 countries by the time I’m 50. I guess you could say traveling and entrepreneurship are two of my biggest passions.

One of the reasons I gave people for starting my own company was that I could work from anywhere. Want to work from the beach in Thailand for a month? Sure! That plan turned out to be rather naive (at least for me). I soon discovered that running a company requires 110% of your focus. There are tons of extra complications of trying to run a company on the go. I have a hard enough time keeping up with email on business trips around the country! How do you hire and manage a team? How do you take sales and support calls? These issues aren’t trivial, but they can probably be overcome depending on your business and how big a priority travel is for you. I think the bigger challenge is the lack of mental focus. How do you figure out a bus schedule and diagnose a server issue at the same time? I’m not going to wait to be a millionaire to do the things I want to do, but I haven’t been able to figure out how to travel the world while giving a business the attention it requires to be successful.

I’ve also found that people I meet while traveling usually have very different attitudes from the people I’m usually around. Every day you are meeting people who quit their job to travel. They don’t have a care in the world. They have no idea what their career will be and their care-free attitude can be very contagious. It’s probably good to relax and remember there is a world outside our tech bubble, but that attitude is the last thing you want rubbing off on you when you need a 110% focus on your startup.

For me, the answer has been to go travel the world between startups. I ran EventVue for 3 years. After it shut down I traveled to Australia and New Zealand for a month. I did contract work for a few months and then traveled to Europe and Egypt before starting Torbit. I don’t know how long I will be working on Torbit, but I’ve accepted that I won’t get more than a week or two of pleasure travel a year. Yes, I’m dying to see Machu Picchu, climb a mountain in Nepal and eat Italian food in Italy, but I’m also really happy right now. I’m working on something I care about. Something that excites me. Something that matters.

I always seem to have time and no money or money and no time. I have a rule that whenever it works out that I have both, I go travel. If you’re in a startup and wishing you were traveling instead, my advice is to save up and get out of debt now so when things line up for you to travel you are in a place to take advantage of it. I’ll get back to traveling the world at some point, but in the meantime I’m laser focused on speeding up the web and I’ll continue to live vicariously through Andrew Hyde as he travels the world for a year.

 2 comments

Guest post: Minimizing negative App Store reviews

Zack Shapiro is an ambitious entrepreneur and a good friend. I offered him a chance to guest post here after hearing him complain about Tumblr still being down. Zack is a senior at the University of Colorado at Boulder. He runs an iPhone development company, 59thirty, and is currently working on a stealthy startup. You can find him blogging on The Startup Student or on Twitter as @ZackShapiro.


Some software users are never satisfied. From my experiences dealing with the App Store, some users that leave feedback often expect the Holy Grail out of one particular app, regardless of development or technological constraints. People love to rant; they love to tell others about negative experiences. By ranting, we cope. We begin to make peace with a transgression, no matter the size.

Normally users have no place to leave their negative feedback other than on the App Store. The 1-5 star review system, at the end of the day, is broken because many people use 1 star reviews to get the attention of the developer so that their thoughts are heard, regardless of what they really thought of the app.

This leads to the sales of apps with small user bases being co-opted by a small set of unhappy customers who want their voices heard. For a small or medium sized app with few reviews, each single piece of feedback is important for the outside viewer or potential customer.

When I designed Beeline RTD (a transit app targeting commuters in Denver and Boulder, Colorado) I thought that it would be important to include a feature that allowed users to email the transportation authority, RTD, directly, to inform them of experiences both good and bad that might have occurred while riding pubic transportation.

I specifically wrote the copy for the Feedback section of Beeline so that users knew their thoughts were being sent to RTD and not to the developer. This wasn’t a trick. I created a Gmail account to share with RTD in hopes that they would check it. I hadn’t planned on visiting the account at all until one day my curiosity peaked.

In the past five months since Beeline’s release, the Feedback section of the app has turned from transportation feedback into app feedback. It has turned rants and suggestions from 1 or 2 star reviews into constructive emails with no App Store impact.

Here’s why it works:

Take 1 built-in support, add 1 part ability to rant and finally, 1 part instant gratification.

You’ve suddenly constructed a way for all users to have their voices heard without actually leaving the app. The friction of feedback is eliminated. Sure, if they’re pissed off enough they’ll go on the App Store and leave a review there as well. From what I’ve noticed, however, the simple act of typing their thoughts out in the app is enough to reduce inflammatory reviews significantly.

 3 comments

My new gig: making the internet faster

I’m incredibly excited to announce a brand new company from Jon Fox and me. It’s called Torbit. We’re here with a simple but audacious mission: to make the internet faster.

Jon and I met at TechStars in 2007 and have been good friends ever since. Jon’s previous company was IntenseDebate which he sold to Automattic. We have both been itching to get into another startup and we’re extremely excited about Torbit. I have a huge amount of respect for Jon and I’m stoked for the chance to finally get to work with him.

The idea behind Torbit is to have a service that automatically speeds up your website.  We want to take all the best practices for website speed optimization and apply them automatically to your website.  Jon and I have both wasted countless hours learning this stuff on our own so we both feel the pain and have a good idea of how to build out a solution.  I’m looking forward to stretching new muscles this time around as I tackle more of the business side of the company.

If you want to know more, head over to torbit.com. We’d love any feedback you may have on what we’re doing. We’re also currently looking for some brave souls to be our first customers when we launch, so if you’re interested, be sure to sign up.

We have a huge vision and a ton of work ahead of us. I’m looking forward to doing my part at making the internet better by making it faster.

 7 comments

Google Apps for your domain is awesome, except when it isn’t

I recently bought a new domain name from a domain squatter. I used Sedo as the escrow and started the transfer on October 25th. Sedo are horribly slow and so I didn’t get the transfer completed until November 3rd. The first thing I did once I had the domain was attempt to set up Google Apps for my domain. I entered my domain name on their Standard edition signup form, only to be greeted with the following message:

This domain has been registered and is in the process of ownership verification. If you believe this registration was unauthorized, please have your domain administrator contact Google support.

Ok, so I guess the previous owner used Google Apps too. Figures. That shouldn’t be hard to fix, right? I did a little hunting around and found a Google help page that says:

The first thing to do is to visit the control panel login page for the domain. The control panel login page URL is https://www.google.com/a/your_domain.com. (Note: Your extension may vary eg: .com, .net, .org).

If this is a valid login page and you are the rightful owner of the domain name, you can reset the administrator password to gain access to the account. Please also contact other people in your organization who may be managing this account.

If it’s an invalid login page with a server error, this means the account is currently being deleted and you can sign up again in 5 days.

That’s annoying, but okay. At least I was seeing the server error message they mentioned. I figured I could wait 5 days. Besides, I’d started the transfer 9 days before, so there was a good chance the clock had already started counting.

It’s now November 12th and I’m still waiting for Google to release the account so I can set up my email. That’s 9 days since I got the domain in my possession and 18 days since I initiated the transfer.

I’m posting this in hopes that someone will have some suggestions on what I can do. Google makes it virtually impossible to get in touch with a real person on the Apps team. The fact that Google doesn’t have a straightforward process for resolving this is mind blowing to me.

I can’t possibly be the only person who has run into this situation. Anyone dealt with this before and have any tips on what I should do?

Update 11/13/10:
WIthin a couple hours of posting this, multiple people reached out to me offering to help and my domain was up and running shortly after. A huge thanks to everyone who reached out and got this resolved for me.

 5 comments

How business guys can identify good coders

You’re the business guy. The idea guy. You have an MBA and a killer business idea to boot. The only thing standing between you and becoming the next Google is finding a good technical person to build it for you. The only problem is you don’t know how to code and you’ve got no clue how to interview or evaluate developers. What do you do?

Thankfully, identifying good developers doesn’t have to be hard. You can actually find great developers without knowing a thing about coding. Just like good sales guys can be measured by how much they sold, there are some simple questions that can act as your filter for finding talented programmers.

How old were you when you started programming?

I started coding when I was 10. Most of the best developers I know started coding long before college. While it may seem like a weird thing to evaluate someone on, I’ve found there is a strong correlation between the age someone started programming and their skill level as a developer. It makes sense. Just like most professional athletes started perfecting their art at a young age, the best developers did the same.

Think about all the distractions you face growing up. As Paul Graham says in Hackers and Painters, being smart in elementary school is a guaranteed way to be unpopular. While the kids who are coding in middle school may not be cool then, they’re the people I want to hire when they are 20. The intellectual curiosity that drove a kid to code instead of hanging out at the mall is probably still with them later in life.

And all things being equal, the kid who started coding at 10 has 8 years extra experience on the guy who didn’t start until college. This doesn’t mean there aren’t exceptions to the rule, but it’s a surprisingly good indicator.

What weekend projects have you built?

If you’re a developer, you have the ability to turn your ideas into reality in a way that few people have. Think there should be a better way to share pictures with your friends? You can just build it. You don’t need money or permission from anyone. I’m suspicious of anyone who claims to be a developer but doesn’t have any projects to show off that they built “just for fun”.

Programming is more of an art that a science. You usually either have a mind for it or you don’t. If you don’t enjoy coding you’re not going to be any good at it. More than anything, the weekend projects show that you enjoy the creative process of programming.

Things you enjoy, you do a lot and things you do a lot, you tend to get good at.

What open source projects have you contributed to?

Being involved with open source projects is another positive sign of a good developer. Not only does it show they enjoy coding enough to give their own time to it, but open source developers also have the benefit of continual feedback from other smart developers. There is not a single piece of code I’ve open-sourced that hasn’t been improved from having other developers use it. The more you open source, the more you learn. For example, when I contributed my PHP library for PubSubHubbub, it was Brad Fitzpatrick (the guy who invented memcache) who did the code review and gave me some great feedback on how to improve it. It’s tough to get that level of feedback and not become a better programmer as a result.

While asking a developer how to write a linked list may show off their memorization skills, I’d rather see the evidence of their abilities for myself. Why quiz Picasso about the principles of painting, when you just ask to see his gallery of paintings instead?

 8 comments