Archive for June, 2007

The 4 coolest people I’ve met in the last 24 hours

Friday, June 15th, 2007

One of the things that is really cool about TechStars is the number of amazing people we’re continually surrounded by. Here are a few people I’ve met within the past day that have really impressed me:

Todd and Eric from myBlogLog (now a part of Yahoo)

Todd and Eric win my “most-encouraging people of the week” award. From the moment we started talking about EventVue, they were excited about what we are doing. They dove right in - drawing on the white board, sharing ideas and asking deep questions that forced us to think about what we are doing. These guys are natural marketing masterminds. I look forward to learning more from them.

Casey Schorr from Printfection

I liked Casey from the minute I met him. Casey is only 23, but already he’s the president of his own profitable company in Denver. Printfection provides on-demand printing over the internet for a fraction of the cost of traditional screen printing. Their industry is changing rapidly, and Casey’s company is in the best position to take advantage of these new opportunities. Check them out for yourself. Get a custom designed t-shirt for only $2!

Noah Kagan from Facebook and now Mint

Noah is a genius with a hyperactive mind. He spent the morning talking to us about what he learned from his time at Facebook and how we can build better products. He gave us some great insight on how to get people on board with what we are doing. Apparantly, this comes under the new buzz word called “onboarding”. Yep, I learned something new today! Noah’s passion is contagious and I’m looking forward to getting to know him better.

Todd, Eric, Casey and Noah, you guys blow me away. Thanks for taking the time to hang out with us. I want to be as cool as you when I grow up.

Introducing my 1st Facebook app, Platypus

Wednesday, June 13th, 2007

For those of you who were wondering about the Facebook application that I wrote about yesterday, you can now see it live on Facebook. If you don’t want to install it, you can click here to see a screenshot from my facebook profile.

As I mentioned in my last post, Platypus isn’t what I’m working on this summer. If it takes off, great! If not, it’s not going to hurt my feelings. Platypus was just something I threw together in a few hours to explore the capabilities of the new API.

I must say that I’m already intrigued by the viral nature of these new Facebook applications. I just released the application this morning, but every time I log on to Facebook I find 3 or 4 more strangers who have added Platypus to their profiles. I have no idea how so many people are finding it! It’s going to be interesting to see what happens once the application gets approved for the public directory.

Don’t worry. I’ll be posting lots of insider statistics along the way as more people keep adding my Platypus to their profiles.

The side project

Tuesday, June 12th, 2007

Perhaps it’s inevitable anytime you get a bunch of smart people working together in one place. We live in a world where new opportunities abound and intelligent minds are overflowing with dreams of how to seize them. As an entrepreneur, you see the world, not as it is now, but how it could be. Everywhere you look, you see things that could be done better. There’s something in your nature that wants to jump at every opportunity you have.

So you have a new idea, but unfortunately it doesn’t fit into your company vision. It’s just a good idea that you know you can execute. Perhaps it’s enticing you with the promise of quick results and easy money, or maybe it’s just more fun than what you’re working on now. Either way, you get caught up in the excitement and before long a new entity is born: aka, the side project.

Over the weekend I had an idea for my own side project. It’s something that I have wanted to build for a long time and the release of the new Facebook API suddenly made it possible. I spent my day yesterday pursuing the idea, before coming to the conclusion that this isn’t the right time to be working on it. A big influence in this decision was the book Good to Great by Jim Collins. I went back and reread chapter 5 this morning. This time, the illustration about the fox and the hedgehog really hit home.

I can’t afford to let anything (not even a great idea) take focus away from what we are really doing this summer.

I know of several other teams at TechStars that working on side projects right now. That’s okay – your idea is probably more on target than mine was. My only challenge for you is to look at your goals and make sure your project is taking you closer to them instead of further away. You see, that’s the problem with side projects – they tend to distract us from what we first set out to do. They make us lose focus and we become scattered, diffused, and inconsistent in our vision.

As Jim Collins said, it is better to know only one big thing than to know many things. Go find that one thing that you can be great at, and focus all of you attention on that.

Auto detect a time zone with JavaScript

Friday, June 8th, 2007

This blog post will attempt to explain how to automatically detect your user’s time zone using JavaScript. If you’re in a hurry, you can skip directly to the demo or just grab the files

Previous attempts to solve this problem:

Server side:

Time is not included in an HTTP request. This means that there is no way to get your user’s time zone using a server side scripting language like PHP.

IP address geocoding:

Another method that people have used to address this problem is to geocode your visitors IP address. IP geocoding is what is used when you go to a website and are shown an ad to “meet other singles in Boulder”. Unfortunately, for simply detecting a timezone, IP geo-coding is an expensive way to go. Just check out the prices for Maxmind and ip2location. There’s no way I’m paying for that. I did find a free provider called hostip, but it is worthless as it couldn’t decide whether I live in CA or NC.

With JavaScript:

The common JavaScript that is used to detect a visitor’s timezone is:

var myDate = new Date();
document.write(myDate.getTimezoneOffset());

As I started reading up on the getTimezoneOffset code I realized it was too buggy to be used in any critical application. The function returned inconsistent results in different browsers and it never seemed to account for daylight savings time correctly. It quickly became clear that I was going to have to write my own script if I wanted this to work.

How I ended up doing it:

There are basically two things needed to figure out a visitors time zone. First, we need to determine the time offset from Greenwich Mean Time (GMT). This can easily be done by creating two dates (one local, and one in GMT) and comparing the time difference between them:

var rightNow = new Date();
var jan1 = new Date(rightNow.getFullYear(),
    0, 1, 0, 0, 0, 0);
var temp = jan1.toGMTString();
var jan2 = new Date(temp.substring(0,
    temp.lastIndexOf(" ")-1));
var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);

The second thing that you need to know is whether the location observes daylight savings time (DST) or not. Since DST is always observed during the summer, we can compare the time offset between two dates in January, to the time offset between two dates in June. If the offsets are different, then we know that the location observes DST. If the offsets are the same, then we know that the location DOES NOT observe DST.

var june1 = new Date(rightNow.getFullYear(),
    6, 1, 0, 0, 0, 0);
temp = june1.toGMTString();
var june2 = new Date(temp.substring(0,
    temp.lastIndexOf(" ")-1));
var daylight_time_offset = (june1 - june2)
    / (1000 * 60 * 60);
var dst;
if (std_time_offset == daylight_time_offset) {
    dst = "0"; // daylight savings time is NOT observed
} else {
    dst = "1"; // daylight savings time is observed
}

Once, I had this code written, the next step was to compile a list of the various time zones around the world along with their opinions on DST. I actually ended up using the list of time zones from Microsoft Windows. It was rather time consuming to compile this list, so I hope you can make use of my work to save yourself some time.

Please let me know if you have any comments, questions or problems with this code. As with anything that I post on this blog, feel free to use this code however you want. Just don’t blame me if it breaks.

Update (06/27/07):

My code wasn’t correctly detecting timezones in the lower hemisphere.  I  have added hemisphere detection for all our Aussie friends out there.  I also fixed a bug in the convert() function that was leaving off the + sign at certain offsets.  Thanks Val for pointing this out and helping me with the fix.

Update (10/24/08):

Fixed the bug that Rama and Will pointed out in the comments.

Beautiful new design from OrangeCoat

Thursday, June 7th, 2007

Evan Tishuk from OrangeCoat just sent me a link to the new site they designed for Wilderness Systems. Evan, I believe you outdid yourself this time. That design is beautiful!

Evan is one of those people that I hope to hire someday. I’m saving up, ’cause he’s worth a lot. Not only is he an amazing designer, but he’s also a great entrepreneur. Evan, I’m looking forward to building something cool together one of these days. Just let me know when you’re ready to start. :)