Just logged in to Google Analytics today to find that Weebly is used in exactly 200 countries! Pretty exciting. Our top countries are:

1. United States (55.65%)
2. United Kingdom (8.06%)
3. Canada (4.55%)
4. India (3.22%)
5. Australia (2.44%)
6. Brazil (1.81%)
7. Philippines (1.74%)
8. France (1.21%)
9. Netherlands (1.12%)
10. Sweden (0.99%)

One interesting observation: English speaking countries make up 70.7% of Weebly's user base. (Time to internationalize?)

Also interesting to compare against Alexa's estimates of our traffic origin:

United States (40.6%)
India (8.7%)
United Kingdom (5.9%)
Canada (4.7%)
Australia (2.4%)
Germany (2.3%)
Singapore (2.0%)
Italy (1.7%)
Brazil (1.6%)
Indonesia (1.4%)

Looking at the errors in these estimates, it looks like Alexa is heavily biased to non-US visitors, and biased towards Indian visitors.

What does your global usage look like?

 
Being fun 05/04/2008
 

There's one thing you'll almost certainly need when starting a company: other people's help. The right introduction at the right time can make a world of difference.

How do you get people to help you? If people's interests are aligned to yours, they'll help you out. Those people are called investors. There's another way to get people to help you: make them like you and want to help you.

This ties in with a more general problem that a lot of very technical people face: How can I be a fun person, someone that people want to hang out with?

I was born in France, lived there for seven years, then moved to Casablanca (Morocco) and lived there until I came back to the US for college. Having never spent significant time in the US, I wasn't entirely used to the socializing process when I got here, but I picked up a few simple tips by observing how some of my more popular friends acted. Since I actively did that, I made a mental note of each one. These could generally be summed up as:

"How do I make a good first impression and get people to like me?"

1- Always introduce yourself (with a smile). For some reason, this is really important and labels you as assertive, friendly and outgoing. Make sure you introduce yourself to every member of the group and look them in the eye when shaking their hand. Don't be impolite by interrupting someone, but having said that, there's something very weird about someone who stands around and doesn't introduce themselves.

2- Ask a question. There are a ton of really easy questions you can ask, depending on your social situation. These include general questions, like "Where are you from?" and "What do you do?" as well as more situation-specific ones, like "What company are you with?".

3- Listen to the answer. Keep an open mind and don't assume anything negative. That seems simple, but too many people end up hogging the conversation off the bat by talking about themselves, or judging the other person. However, everybody likes a pleasant person who asks about them, listens, and responds intelligently. They'll usually return the favor by asking about you.

4- Figure out another question to ask based on the previous response. If you can find a way to add some kind of rapport, this is best, like "Oh, you're an engineering major? So am I!" or "You work at Trulia? I have a good friend that works there!". At worst, you should be able to ask for more information: "You go to UCSB? What major are you?"

5- Ask another question. Rinse and repeat.

That's really all there is to it. Besides being generally beneficial to your social life, being a genuinely fun and interesting person has one important benefit to your startup: It makes people want to help you, even if they won't personally benefit from doing so.

In other words, if you get feedback that you're not very "sociable", it is a huge benefit for you to learn to be so. It's not something that everybody is born with, but it is most definitely learnable.

 
thisismyjam.com 03/27/2008
 

It's always interesting to see new technology for sound. There's a huge opportunity for someone to create software that's better able to understand music the way a DJ might (BPM, key, etc) and automatically create a mix by beatmatching and cycling through the circle of fifths, for example.

thisismyjam.com tries to do that. It's a demo product built on The Echo Nest APIs. It's cool to see something like this on the web, but from my testing, it's about as good as existing software out there that's desktop-based or built into hardware like the Pioneer CMX-3000.

There's no reason why a computer can't eventually do the same thing a human DJ can. In the meantime, here's a quick mix I created with thisismyjam.

 
 

Do you take into account the hidden cost when making decisions? It's one of those areas where I used to fail miserably. I've learned to take it into account over the last couple years, but only recently was able to formulate the concept properly.

The idea goes something like this: Behind most obvious decisions is a non-obvious hidden cost, which can often outweigh the benefit of the "obvious" decision.

I stumbled upon a great real-world example in the drive-through to Taco Bell a few days ago. I realized that there was a flaw in the system: I could order, then drive up to the payment window, and not be able to pay. Taco Bell would likely throw away the food, and have to eat the cost. The system had a flaw. Engineers like fundamentally perfect systems, and that's a good thing.

But if an engineer had designed the drive-through, you would probably have to pay before they started making your food. Impossible to game, flaw destroyed. The problem is, what's the cost of the extra time involved in waiting until you receive payment before you start making the food? And what's the cost per meal wasted times the number of times that the customer is not able to pay? There's a reason they start making your food right away: It saves a ton of time, and people are able to pay most of the time.

Seems obvious, right? Then why do we still insist on requiring two password fields, one for verification? Or two email fields? Sure, a banking application might require this... but your average web app? You could look at it this way: What's the chance that someone will mistype both their email AND password, weighed against the drop-off in signups because of the extra form fields. You will drop a significant number of sign-ups with the added fields, but there will be a very small percentage of people who get both their email and password wrong.

Another pet peeve that PG originally pointed out to us: requiring email confirmation as part of the sign-up process. Email is notoriously unreliable, and often gets flagged as spam or not delivered. Why would you require an email confirmation as part of your sign-up process when there is a high probability that the email will never be received, and the user won't be able to sign-up? Maybe I'm in a computer lab and I get email on my laptop. Tough luck, I can't use the website now, when I want to -- I have to wait until I can check my email. Does that high of a percentage of people not supply their correct email address, that you need to require confirmation? And does having a confirmed email address outweigh the big drop-off in signups?

We've learned to take the hidden cost into account with Weebly. It can apply to across the board: Adding features weighed against the added complexity to your application, bootstrapping weighed against the loss in growth momentum, increased security weighed against the increased difficulty in using the application.

In a nutshell: each decision you make will have a negative counterpart. Even (and especially) the most obvious decisions. Figure out what that hidden cost is, and make sure it doesn't outweigh the original benefit.

 
Skiing in Tahoe 03/13/2008
 
 
mod_auth_cookie 02/20/2008
 

The pages hosting this Apache module seem to have gone dark, but I managed to grab a copy through archive.org. It's a very easy way to get rid of the ugly Basic Authentication prompt and replace it with a web page login form.

I created a new home for the module at http://modauthcookie.weebly.com/.

Hopefully, other people will find it useful too.

 
Fleet Week 10/06/2007
 

The blue angels are in town for Fleet Week here in San Francisco. They've been practicing all week over Alcatraz and around the bay, and with our view, it's been awesome watching them perform some of their maneuvers. They've also been flying right over the building -- close enough to see in the cockpit. It's tons of fun, and the noise they make when flying that close shakes the windows and sets off car alarms.

We'll be BBQing on Sunday, and watching the planes from the roof. I'll upload some pictures then.


 
 

That's the state of affairs, at least, according to Alexa. The graph shows Google (yellow), Cnn.com (red) and Weebly (blue).

Of course, it is Alexa. Go to a graph one week, and come back the next: all of the historical data will have completely changed. I can see the most recent day's data changing as it gets updated -- but a week's worth?


 
 

I keep noticing startups (and larger companies, too) making some really basic mistakes that end up leading to a lot of downtime. Here's my list of 6 really easy things you can do to avoid major downtime.

1. Buy backup DNS service
This is so cheap it's a no-brainer. For about $15/year you can get a service that will constantly grab your DNS data and act as a backup if they happen to go down. Otherwise, when your DNS servers go haywire (it's happened to me and I've seen it happen to many others), you'll be stuck helpless for a few hours as people are unable to get to your site. [I've used No-IP Squared Backup, and Chris has used Nettica].

2. Buy a monitoring service
For $5/month, you can purchase a service that pings your servers every few minutes and sends you a text message if they go down. This is absolutely crucial, especially if things go to hell in the middle of the night, or any other time you might not normally be checking. Make sure to buy a service that monitors from at least 3 locations -- there's nothing worse than a few false alarms in the middle of the night, after which you won't get up for the real thing. [I've been happy with WebSitePulse -- their prices are a bit more expensive now, but you should be able to get them down to $5/month on the phone.]

3. Always make database backups before touching the database
It's one of those things you always consider and dismiss right before you bring the whole thing crashing down. Especially if you aren't making very regular backups (note: you should be), make sure to do so before you get your hands dirty. (Ever forget the WHERE clause? Not fun...)

4. Be VERY careful around power cords at Colos
Knocking out a power cord seems to happen consistently if you don't make a very concerted effort not to. It's extremely easy for a cord to jiggle a tiny bit, or for one moving server to pull on another cord in just the right way. Always plan out your server trajectories before you move them, or have someone to hold the power cords in. [Note: Why aren't snap-in power cords standard for rack mountable servers??]

5. Make your site functional in pieces
Even if your database is down, there's no reason your home page shouldn't still show, or any of your other static pages. There's a big difference from a user's point of view in between an otherwise seemingly functional site that shows a nice looking error message, and a site that spits out errors, is not accessible, or won't load at all. If Weebly's database goes down, users will see a polite "Sorry, something is wrong and we're fixing it right now" error message. Our site, blog, and all hosted user sites stay up, so a database crash just means that people can't edit their sites at the moment.

6. Use source management to roll out updates
We use darcs to manage our different source repositories, and it's a flexible and distributed system that works very well for us. Whatever you use, make sure you use some automated process to roll out updates (which doesn't include moving a directory and moving another in it's place, and, God forbid, manually diff'ing files -- there's always more to that than you anticipate). It's quite shameful to see pretty basic sites go down for hours (or days, or weeks) rolling out an update. If you're using Weebly while we push out an update, your session will automatically be refreshed without any loss of data, and you'll be up and running on the new version within seconds (with no downtime). [Darcs can be found at http://darcs.net/]

Those 6 items combined have probably caused over 80% of downtime I've been responsible for. What's your list?

 
Work vs. Value 08/21/2007
 

One of my biggest frustrations with academia was the tendency to place emphasis on work. I've heard that this can be different at other institutions, but most people I've talked to generally agree that emphasis in college was placed on work.

Here's a recurring example: I'd often get a lower grade than other peers who "worked harder", even though my final grades or output were very clearly of a much higher quality. I generally didn't have much use for going to class, as I could learn what was presented much more efficiently on my own.

Not that I really cared about getting a B+ instead of an A -- if I did, I would have gone to every class. But it seems like the emphasis on work gives students the wrong priorities.

There seems to be two inputs to value: work and ability. If you have less ability, you can compensate by working harder than average. And if you have above average ability, you may tend to work less.

Note that ability doesn't necessarily directly translate to intelligence, and that I'm not downplaying hard work: those who both work hard and have ability will produce the most value.

But by putting emphasis squarely on work, academia is punishing those with above-average ability. My experience in college was that both the top 5% and bottom 5% of any given class did the least work, but doing less work was uniformly regarded as bad.

In the real world, though, value is most important. As an example, let's take two people who make pottery. One is a natural artist, and makes beautiful pottery. The other tries really, really hard, but the pottery isn't great. It may not be "fair" to the person who tried hard, but the beautiful pottery will be sold for much more money, as it's of higher value. What really matters to people is how much value you are providing them, not how much work you put into it.

I'm also not saying that ability can't be learned: in the above example, ability may represent both natural artistic abilities and learned skills.

It seems like a much better system would be to judge on value, and compare the final output. Those with less ability would be required to work harder to produce the same value -- they won't be taught that hard work without value is OK. And those with above average ability wouldn't be weighted down performing bullshit work; they'd have more time instead to focus on projects more interesting and useful to them.

 

    Author

    David Rusenko is a founder at Weebly, a company that makes a web creation tool that doesn't suck. He's also a part-time DJ and traveling enthusiast.

    RSS Feed


    Archives

    May 2008
    April 2008
    March 2008
    February 2008
    January 2008
    November 2007
    October 2007
    September 2007
    August 2007
    July 2007

    Categories

    All
    Raising Money
    Startups
    Day To Day
    San Francisco
    Misc
    Music
    Rant
    Product Reviews
    Open Source
    Scaling

    Blogroll

    Jessica Livingston
    Robby Walker
    Adam Smith

    Justin.tv
    Venture Hacks
    Uncrate

    My Flickr Photos