Archive for July, 2010
In the past couple years I’ve been working for/on startups I’ve found that the world of internet development had changed fairly substantially since the time I seriously coded for work.
When I graduated from college in 1999 I went to work for an ecommerce company called SelfCare.com (we were going to be the Amazon of wellness products), and I was working in Microsoft’s Active Service Pages (ASP). No, not ASP.NET, but ASP, with it’s (horrendous) VBScript language. I left SelfCare a year later (it subsequently went out of business and was purchased for it’s assets almost immediately after I left) and worked for Ask Jeeves, where I worked in ASP and then got to lead the charge to ASP.NET (I got to spend some great time up at Microsoft getting the inside scoop on their new platform, which really was a huge step forward). A huge chunk of my coding time was spent trying to make my markup compatible for Netscape Communicator 4.7, so you know about when this was. A few years later I moved to management, and I really didn’t do a whole lot of coding for number of years.
Flash forward to 2009: I’m working at a startup, and I decide to roll up my sleeves and get my hands dirty again. Well, I’ve found there are a ton of tools, frameworks, and software that make my job as a developer much easier, so I decided to put together as list of them. I’ll start with Frameworks, Languages, and Hosting:
Frameworks and Languages
I used to write a lot of code by hand to get cross-browser compatibility, but the rise of AJAX frameworks has eliminated those incredibly tedious and laborious tasks. My code used to be very difficult to read as well, with HTML mixed in with scripting:
<div><% = request.POST["hello_world"] %></div>
Yuck! Thankfully, the MVC Framework has changed all of that, and I rarely have to embed real code in markup. These frameworks help me do this:
- Python and Django/Pylons/Web.py/etc.. The former is a great dynamically typed language with a ton of web support, and the latter are MVC frameworks for it. Starting with these make your life a hell of a lot easier.
- Ruby on Rails. The former (Ruby) is the language, the latter (Rails) is a MVC framework with some AJAX (Prototype) mixed in. Ruby is very similar to python IMHO, and Rails makes it really easy to develop web apps, but I get nervous about the ORM in Rail, as I always wonder what it’s doing beneath my high level code.
- PHP and CakePHP. PHP is the P in LAMP, and is a really popular scripting language. It’s pretty limited (doesn’t do threads, for example) for some tasks, but it’s widely supported and a ton of great open source applications (like Joomla and Magento) are written in it. CakePHP is a well supported MVC for PHP.
- Blueprint CSS Framework. Implementing layouts can be very time consuming, and in 2010 you definitely do not want to resort to html tables, so it’s best to do layouts using CSS positioning. For those of us who aren’t CSS experts thankfully there is help – the Blueprint CSS Framework makes your layout life a thousand times better. You can get table like layouts without a ton of work using Blueprint, which is a huge time saver.
Hosting and Servers
Cloud computing has taken off the past few years, and you no longer need to buy your own servers to get off the ground and going.
- Amazon EC2. I probably don’t need to explain this one, the best known cloud computing platform allows you to add server capacity at-will (and at-wallet). However, you pretty much need to run your own infrastructure as Amazon only provides base OS images – you’ll still need to do system administration on your EC2 instances.
- Media Temple. I use Media Temple for any PHP hosting needs, and with the $50/mo dedicated virtual instance I get root ssh access, which is great.
- Google App Engine. I’ve been using Google’s cloud computing service lot more recently, as it lets you get an application up quickly and for free (you pay as you consume more resources). Differing from Amazon’s EC2 in that Google doesn’t let you install your own OS and languages (you have to use what they provide), it’s great in that it’s free (well, it starts that way) and you don’t have to do much of your own system administration. App Engine currently supports java and python, and you can run any of the python MVC frameworks on it. I love that I can get a site up in less than a half hour by copying an existing app engine project, editing it, and moving my DNS there.
That’s the initial plumbing. I’ll talk more in my next post about editors, software tools, and other useful open source software.
There were a flood of Windows Phone 7 “Pre-reviews” published today in the major gadget blogs, as Microsoft distributed an initial build to developers. The consensus seems to be that the OS has a lot of promise, but it’s several years (and 100,000 apps) behind iOS and Android. I thought this was interesting, but started thinking more about the mobile phone space – it really is true that all the hype and excitement is around the mobile OS’ these days in a way it’s not for desktop OS’ – I can’t remember what the newest version of OSX had (and Windows 7 was really just playing catchup for the sins of Vista).
I can think of a couple reasons for that:
- Mobile phones are changing rapidly – it’s hard to believe for those of us in the valley, but the smartphone that changed the market, the iPhone, is only 3 years old!
- Mobile phones are personal – they are a status symbol in a way that computers (Apple excepted, perhaps) largely aren’t
- The price points – at least, the perceived price point – of mobile phones are lower than computers
It’s that last point that fascinates me. I’m currently writing this blog entry on my 4 year old laptop – an older generation MacBook Pro. For the most part it doesn’t feel old – I occasionally wish it were a little faster, mostly when watching online video, and wish the battery lasted a little longer, but there is nothing about it that screams I need a need computer. On the other hand, my several year old Windows Mobile handset seems like a relic when held up to modern handsets like the iPhone or any of the myriad Android devices.
Just a of my gripes about the phone:
- I don’t have a good map app on my app – could be really helpful when walking around the city
- No touch screen. This is a huge difference in a mobile device, it really makes a enormous difference when browsing the web, for example.
- Cloud integration. While the basic applications, like contacts and calendar, update from the cloud on my phone, there is no easy way to upload photos to my favorite photo sharing sites, or to capture and share audio, etc. This is really a feature which makes a mobile phone really useful, as it takes things that you could always have done (with a lot of work), and makes it something you just do!
Okay, so mobile phones are where it’s at, and computers are relatively stagnant.
But I don’t know if it’s always been that way; I remember in high school my brother and I bought a new PC every year, moving from a 386SLC to several 386DXs, and finally being able to afford a 486. The RAM, of course, jumped with the increase in processor speed, and there really was a big difference in what you could do with the PC at the time – you could run windows well, not have to wait 5 minutes for wordperfect to load, play better games, and eventually load up a browser in acceptable time.
Could it be that the same might happen to mobile phones? Will we get to the point where we won’t upgrade every 2 years when the contract expires, because the new phone doesn’t do much more than the previous one?
If so, it probably won’t happen soon. According to a recent FCC Report, most (58% as of December 2009) Americans still don’t have a smart phone:
So we’ve got a ways to go before Americans reach the point when they don’t feel like they need to upgrade, strictly on the features. Beyond features, battery life is another area where SmartPhones can compete for new customers (HTC Evo not keeping more than a 3 hour charge after 2 years? Buy this new one!) Design might be another area where handset manufacturers can compete – a few years ago everyone I knew wanted a Motorola RAZR because it was the fashion accessory!
Still, I think when we look back in 10 years I have a feeling that I might feel about my phone the way I do about my laptop: last year’s model is good enough.
Photo by kaysteiger
I spotted an interesting post yesterday on Gizmodo that analyzed the wealth of data of the members of dating site OKCupid. The online dating space is a fascinating one to me, as the interactions are virtual to physical, and all of the up-front judgments (deciding whether to contact a person, sending contact, sweet talking to the point where you meet) are done virtually as well, and then you finally meet up in person. It’s like trying to get a job, but the gig might actually last for life!
The OKCupid has some fantastic data, including statistics indicating that people on the site who indicate they are bisexual don’t actually express their preferences that way (that is they only contact the members of a single gender). Incomes and heights are also misrepresented (especially for me), which makes sense when you see that the higher those values the more likely you are to be contacted and get dates.
The topic of dating had me considering what the cultural acceptance of online dating is now. I have used online dating in the past, and I remember when I did that the general sense I had from friends was that it was a bit taboo to be on an online dating site. When I used Match and Yahoo! Personals I was a little nervous about putting my picture up, especially initially, and I tried not to reveal too much personal information about myself lest my identity as an online dater be revealed to my friends, resulting in much ridicule (or so I thought). I remember finding a friend or two on Match, and also found that they viewed me (what a nice little spying feature they provide), but we never connected or discussed our online dating.
As the internet ages, however, I find that online dating seems a lot less taboo. When I ask acquaintances now about how they met their significant others it seems like a much higher number than before name online dating. It seems like the industry is going through changes as well, as ad-supported sites gain momentum agains their paid competition. As ad-supported sites gain critical mass you’d expect that more people would join, as one of the main barriers (cost) to joining online dating gets knocked down.
I had a positive experience using Match in 2005 – I met an ex-girlfriend on the site. To get to that point, however, I had to jump through a few hoops:
- Sending emails or Match’s winks (analogous to Facebook’s pokes) can be a frustrating experience. You send a large number out, get a much smaller number of responses, and then you have to come up with something compelling to say in an email and hope you’ll get a response back so you didn’t waste your time
- I went on 3 in-person dates. The first girl was much more… more than her pictures indicated. And after we went out she wouldn’t stop calling me. That experience almost soured me on the whole thing. The second went fairly well, and we ended up hanging out a few times, but I found she was a just a bit immature for my tastes. The third was my ex-girlfriend, so that one worked out fairly well.
- After trying a few different dates I realized the first date needs to be something low key. Coffee or a drink is perfect so you can get the hell out of there if it’s not going well. With dinner you’re likely stuck there for an hour at least.
Overall I had a pretty good experience with online dating, and coupled with my anecdotal experience that more people are meeting from online dating it seems like it’s becoming a big part of mainstream dating. I think it’s time for us to no longer be embarrassed to have met online.
I, however, met my girlfriend at a bar
About 4 months ago I decided to leave Verizon Wireless and switch to pre-paid wireless carrier Page Plus Cellular. When I tell my friends I moved to a pre-paid carrier they laugh, and inevitably make a joke about it being “ghetto”. But I think that pre-paid wireless is a great deal for people who don’t need a full data plan and want to save money (who doesn’t?).
Prior to leaving Verizon Wireless I had a base plan without data. The plan included:
- 450 daytime minutes
- Unlimited nights and weekend minutes, but night minutes don’t start until 9PM
- No included text messages, but an extra $10 bought me 500 text messages
- No data plan
All of this cost me $44.95 plus an additional $10 for the text plan. With taxes I was up to almost $60 per month (I believe it was $58).
When I looked at Page Plus I examined how I used the phone and what was important to me. The network is first and foremost more important, as I live in a house which gets really poor coverage on at&t. This attribute alone prevents me from getting an iPhone. Beyond the network I wanted a decent number of texts, as I use this more these days than voice minutes. I would like to move to a data plan, but twice I’ve switched to an Android phone (first with an HTC Hero on Sprint and then with a Motorola Droid on Verizon) and both times I switched back to my feature phone due to poor battery life. At this point good battery life so I can talk and text are more important to me than email and other functionality, but perhaps that will change in the future.
In any event, needing a reliable network with a good number of texts and a minimal amount of voice minutes I took a look at Page Plus Cellular after my buddy Maynard suggested I take a look at their plans. I liked what I saw, as:
- Page Plus uses Verizon’s Pre-paid Network, which is almost as good as their whole network (and certainly so in urban areas)
- They have a 1200 anytime minute and 1200 text plan including 50MB of data for $29.95
- They have an unlimited voice and text plan with 20MB of data for $39.95
- You pre-pay in advance and there is no contract
Wow, so I can get more anytime minutes with a similar network and more texts for half the price of what I was paying with no contract? That sounds pretty good to me. As an added bonus I would also get 50MB of data!!
I thought when I switched I should get a new phone, as my LG Dare really sucks. I decided to go for a fairly cheap phone that had a keyboard and wifi, so I found a used HTC Ozone, an older windows mobile phone that looks a bit like a blackberry. Overall I’m not a huge fan of the Ozone, but for now I’ve got a phone with wifi and a keyboard, with more minutes and texts than I had before for $29.95. The coverage is just as good as I had with Verizon before (as far as I can tell – I’ve used it extensively in my home San Francisco, in Oahu, and in Little Rock), and as an added bonus I found that Page Plus doesn’t charge tax – so all I pay is $29.95 a month!
Page Plus is not all roses, however. Their customer service leaves a lot to be desired (it’s tough to get on the phone), but fortunately there are dealers who specialize in dealing with their phones. I used Kitty Wireless, an online dealer, to activate my phone. For $2 the company helped activate my phone in a few minutes, including porting my number from Verizon.
However, if you can stomach a bit of work yourself you can save a bundle by going with pre-paid wireless!
Yesterday I wrote about Google TV and Apple TV, and the different approaches taken by these two tech giants in the battle for the computer/internet in the living room. Another thought occurred to me about the Apple TV, and it has to do with what the app store did for the iPhone. When Apple first launched the iPhone jobs emphasized that what Apple was launching that day was three devices:
- A wide screen iPod with touch controls
- A revolutionary new mobile phone
- A breakthrough Internet communications device
Of course all three devices turned out to be the same device: the iPhone. The one thing Jobs didn’t predict is that the iPhone would become the de facto phone for writing software for, and that games would be one of the most popular categories (17.6% of apps are games) of applications for the iPhone. In fact, it seems even Jobs believes that games are the biggest use of the iPod Touch. And why not? If you are a casual gamer you can buy a Nintendo DS for $129 and games for $29.99, or you can buy an iPod touch for $200 and download hundreds of games for a few dollars and get a great music player as well as an internet device.
And that leads me to where I am as a gamer, as I am one of those who bought an iPod Touch (I refuse to get on at&t’s network, hence no iPhone). Initially I bought it because I wanted a better iPod (my old mini was running out of power very quickly), but I found the device got more useful the more I used it: wifi came in handy when browsing the web, it works great to show off my photo library, downloading podcasts without having to synch to the computer is awesome, and having the app store allows me to download useful apps to use wherever I have a web connection. Of my 57 apps currently installed, I have 6 games installed. For me, that’s perfect: I’m not a hard core gamer, but once in a while on a train or a plane I like to play a game or two.
This is sort of how I feel about my PS3 in the living room. I bought the device initially as more of a blu-ray player, but then I convinced myself to buy a game or two, and I received one or two as a gift. For the most part I might play each game a couple of hours, but that’s pretty much as far as it goes. I bought Grand Theft Auto IV, for example, because the reviews said the game was amazing, but I never really got into it. I played for an hour or two and since then it’s been collecting dust on my shelf. The most fun I have with my PS3 is when I play with others. I think there are a lot of casual gamers like me out there, although most of them bought the Wii. Looking at the tie rate (average number of games sold per console) we see that XBox 360 owners buy more games per console than the Wii and PS3.
And this is where I think the Apple TV might come in. Imagine if Apple makes it easy to develop games for on the Apple TV, and deploy them through the app store. Casual gamers might think twice about buying that PS3 or Wii and pick up an Apple TV instead. After all, like the iPod Touch, if games are just one of the things you do with your set top box, maybe it makes more sense to invest in the thing that does the rest better? Users might buy these instead of other consoles, and just have fewer devices connected. Apple might sell it as a device to get existing content to your TV, but perhaps the ecosystem will make gaming the killer app.
If I were at Nintendo (especially, since they are the casual gaming console) I would be up worrying right about now.
With the recent announcement of Google TV and the rumors that Apple is seriously working on a new version of Apple TV, I did a little thinking about where Google and Apple are thinking strategically here.
Apple’s current Apple TV offering has been fairly underwhelming, and has sold that way: CEO Steve Jobs was quoted in early 2009 noting that the industry and Apple TV are essentially “a hobby”. The product is a small PC-like box, running a modified version of Apple’s OSX Front-Row product, allows users to purchase downloadable TV shows at $2.99 in HD ($1.99 for non) and rent movies for $3.99 in HD, and it will play back your movies stored on your hard drive (both from it’s small internal as well as streaming from your PC or Mac). Additionally, it also streams your music and photo collections to your TV. There is very little internet integration, and no DVR integration.
My take on AppleTV is it’s fairly incremental: it doesn’t replace my DVR, it doesn’t bring any “must-have” content to the table, and it doesn’t provide any great internet integration. Apple’s approach was to work with Hollywood and secure deals to bring the content they control to the device as downloads – I think of this as a lot like Apple being a cable company: providing the content, but doing it one piece of content at a time. Someone who only watched shows (and no sports) that Apple offered could conceivably get rid of cable and consume content from Apple TV, but they’d be missing a ton.
Google’s vision for it’s foray into TV is more grandiose: a software platform that OEM electronic manufacturers can use to build set-top boxes that integrate with your existing system (DVR and cable box via IR blaster), and will integrate web and existing content together. It will allow you to use Google TV to search content across your DVR and the web, and choose to display any of that content on the TV. The software is Android (yes, the same on the mobile phone), and it comes with a full featured browser that will allow you to access the web on the phone. In that respect, this could be a pretty sweet system: you have your existing content on your DVR and cable system, and now you can bring the web’s content on (presumably from places like Hulu with a subscription) easily.
Google’s vision appears to be to enter the living room by doing something similar to what it did with web search: bring together existing content from various places (cable TV, web, etc.) and display this, with one device, on your TV. With this approach Google is not trying to be a cable company (like I have accused Apple of), but I believe is attempting to become more of “Google for TV” – searching and finding content wherever is exists and displaying it easily on your TV. In some sense this is a lot like Clicker, who are trying to be the “TV Guide of the Internet”. Of course, the vision is larger as Google TV integrates your existing content as well, and is aiming to hit you where you want to watch TV – your living room.
A lot of people complain about big chain stores, like Starbucks or Walmart, because they feel like the companies lack soul and prevent small local businesses from flourishing. I recognize this might well be true, but it’s not clear to me that small local businesses are necessarily great either – if I think about the reasons I choose a store or product, brand really stands out as a differentiator, because a brand stands for certain attributes. For example, I know that at Starbucks I’m going to get a pretty decent cup of coffee, a terrible bagel, and a clean, comfortable place to hang out. Whether I’m in my home town of San Francisco or around the world in Thailand, I know that experience will be there.
I wonder why more small services don’t have big chain-brands. Why is there no Starbucks for dry cleaners, so I know that the quality of my wash will be good no matter where I go? Why is there no Starbucks of tailors so I can get sized and a great pair of pants hemmed wherever I go?
There must be dozens of businesses that are just waiting to have a unifying brand – what else am I missing?
A few months ago I read a blog entry that suggested that all entrepreneurs should read Positioning: the Battle for Your Mind, a book which the author described as the “bible of marketing”. I bought the book at the time, but didn’t end up getting around to read it until today. The book, written advertising experts Jack Trout and Al Reis, was written in the 1980’s, and describes the idea of “positioning”, where a product or concept is advertised in such a way as to guide the consumer of the message around the product in a certain direction. The book was written in the 1980’s, so they cite a key example of Avis positioning themselves as “Avis is #2, and we try harder” as the canonical example of how positioning can be used to effectively advertise a product.
As the book was written in the 1980’s some of the examples cited seem out of date and perhaps incorrect (example: IBM is by far the leader in computing – really?), but the book reinforces some excellent points about how to market and position products and brands in consumer’s minds.
I got to thinking about how this applies to the startup and internet space, and I think a lot of the lessons still hold. One of the examples the authors consistently come back to is the problems Xerox had branching out beyond copiers. They wanted their brand to stand for more than copying, and entered markets like computing and communications, finding only failure. I think the same is true for a lot of today’s internet landscape: brands get positioned and then think that it’s easy to change and broaden, but in reality it’s very difficult to change in user’s minds.
I think myspace is a great example of this: it was positioned very well as a place where younger people (teens) and bands (music) go, and subsequently the feature set was tailored for this space. The mainstream and more grown-up crowd reacted to this “ghetto-ization” by fleeing the service to the up-and-coming Facebook, which currently owns the social networking space. Facebook, while riding high now (the NYT just reported they’ve been valued by Elevation Partners at $23B), may have it’s own positioning issues itself if they try to branch out beyond search.
Another instance is eBay. The internet auction site remains a giant, largely built on the huge lead they developed and the network effect that came with it. However, a number of attempts have tried to take eBay into a more premium space (newer, flashier goods), but have made little progress. It will be very difficult for eBay to try to become more upscale when the position the consumer already has for eBay is that of a large online flea market.
Google is an interesting case for a number of reasons:
- They never advertised their brand, but it has become synonymous for search strictly through word-of-mouth
- They are derided as a “one-trick-pony”, despite having a number well-trafficked services: search (of course), email, chat, maps, and chrome.
- While some of these services do have traffic, nearly all their revenue is derived from sponsored search. Google argues that all of these peripheral products drive traffic to search, which is hard to argue with the success of the toolbar business.
That said, Google continues to launch products against market leaders, such as Checkout (launched against paypal), Knol (launched against wikipedia), and a rumored new foray into social networking (to compete against Facebook). I think that it will be exceptionally difficult for Google to pull it off, and Positioning explains why: once you are known for one product, and someone else is well positioned as the market leader in another product, it will be very difficult for a consumer to be persuaded to choose your product.