Bebo.com - a doomed startup
An article in the New York Times discussing the waning popularity of Myspace mentions yet another social networking service (YASNS): Bebo. Bebo is doomed.
Being a geek, the technical details are the first thing to jump out at me. The site runs on Java server pages and proudly displays a "Powered by Oracle" button. I suspect most hacker-types will consider my assertion proven at this point, but everyone else probably needs an explanation of why this is a problem. Paul Graham has already written a better explanation than I could, but to summarize: Java and Oracle are not the tools that smart technical people select for their projects.
One of the most telling non-technical signs is that they don't eat their own dog food. The about page has profiles for all of their staff, but these pages obviously aren't Bebo profiles. Why should users use this service to tell the world about themselves if the people who made it don't?
There is, of course a more fundamental issue: the Myspace model is broken, and the world does not need YASNS that just provides a slightly better implementation of it. Myspace and services like it fill two niches. One is the niche that used to be filled by free web hosting services like Geocities and Angelfire: a place for people to show off how "cool" they are using bad web design and animated GIFs. This is probably a bad market to go after because the target market has a short attention span, leading them to jump from service to service. The other niche is actual social networking. These sites are horrible for that purpose because they encourage users to behave in an autistic manner. Normal people don't try to accumulate huge lists of friends, yet that's exactly what these services encourage. The biggest problem with going after this niche is the network effects encouraging people to stick with established service; it's hard to collect a huge list of friends on a service with only a few users.
Perhaps YASNS built on the Myspace model could succeed, but they'd have to have a revolutionary feature set. Bebo does not, and I don't see them building one on top of Java/Oracle. These guys are doomed.
Update: see a new version of this on doomedstartup.com.
last updated 2 years ago #
Two common misconceptions
I'd like to address two common misconceptions I keep seeing in discussions of programming languages.
Ruby doesn't have first-class functions
I see this one a lot. The source of the misconception is that Ruby has separate namespaces for function names and ordinary variables. Most languages that are usually thought of as functional, such as Scheme, ML and Haskell do not. When a function is assigned to an ordinary variable in such a language, calling it looks just like any other function call. Here's an example in Python:
>>>foo = lambda x: 2 * x
>>>foo(6)
12
But in Ruby, it looks like this:
foo = lambda {|x| 2 * x}
foo.call(6)
=> 12
foo.call seems to be the source of confusion. In Ruby, the .call method is implicit for functions defined with the def keyword, but not for functions assigned to variables using the = operator. Having a special namespace and extra syntax doesn't mean Ruby lacks first class functions. Common Lisp is the same way.
Scheme is not Lisp
This one seems to be dying, fortunately, but I still see it on occasion. The original argument appears to be that Scheme has lexical scoping, while older Lisps have dynamic scoping. With lexical (static) scope, a variable always refers to the binding given to it in the nearest enclosing context. With dynamic scope, the variable refers to the most recent binding.
Common Lisp also uses lexical scope by default, though it allows the use of dynamic scope as well. I haven't seen anybody claim that Common Lisp isn't Lisp. Perhaps somebody would like to make that claim, and explain what CL and Scheme are if they're not Lisp.
last updated 2 years ago #
Why is blatant age discrimination still tolerated in the US?
I've been accepted to Startup School and I'm pretty excited about it. I haven't yet worked out the details of my trip, but I plan to stay for a few days. I've only been to the San Francisco area once and I didn't really get to do much exploring, so I'm hoping to remedy that this time around. I'll probably need a rental car, which I know from past experience will be both difficult and expensive.
I'm 24 years old. I've been driving cars for 10 years - the first two under adult supervision. My licence actually has "safe driver" printed on it even though some of the people I took for rides in my Datsun 280Z when I was a teenager might disagree. Most car rental agencies won't rent to me because I'm too big a risk. Those that will charge more than double simply due to my age.
I'm perfectly willing to accept that statistically, I represent a greater risk than someone 10 or 20 years older. I don't know the exact percentages, but I'm guessing a 24 year old male driver is up to a third more likely to crash a car than a 44 year old male driver. I don't object to paying a third more for the insurance on the rental car, but the fact that I have to pay several times as much[0] is highly offensive to me. To make matters worse, many rental agencies provide senior citizen's discounts and I'm aware of none with a maximum age restriction. Again, I'm not going to look up the numbers, but I'm pretty sure an 84 year old is a bigger risk than a 24 year old, but the 84 year old can get a nicer car for $20 a day than I can for $50.
It's baffling to me that our society puts up with blatant discrimination against the young, but pitches a fit about anything that might discriminate against the old. I'm interested to hear what people think the causes are, and what can be done about it.
[0] I don't really know what percentage of the cost of renting a car pays for insurance, but I'm guessing it's never more than half.
last updated 2 years ago #
Is a new word processor a viable product?
Paul Graham suggested in a footnote to an article about patents that YCombinator would be interested in funding a company to develop a desktop word processing program. Common wisdom in the software industry is that to do so would be competing directly with Microsoft and you just don't do that unless you want to get crushed like Netscape.
Netscape may have been fighting a losing battle, but I think it's pretty obvious they did themselves in. In the late '90s, Microsoft delivered a better user experience, while Netscape kept delaying the next release of its product. When Netscape 6 did come out, nobody[0] cared. Ironicly, today, Microsoft has gone years without revising IE and they're losing users to Netscape-descended Firefox. Competing with a large and well-funded company like Microsoft is a scary prospect for any startup, but I don't think it's suicidal; Netscape would have still lost had its primary competition been Opera instead of Microsoft.
So, if it's not suicidal to take on Microsoft, office software is a huge market and Microsoft Office has a lot of problems, is building a new product in this market a good idea? I'm skeptical. The market is crowded, and the barriers to entry are significant. It wouldn't be too difficult to create Foobar Write, a usable word processor that can mostly handle MS Word files, but why should I buy Foobar Write when I can download Openoffice or Abiword? Business models that don't involve charging for the product all seem like gimmicks that would annoy users, and it's back to Openoffice or Abiword. For anyone to succeed in this space, they'll need a well-defined target market and an amazing product. Todays word processors have no shortage of flaws, so I don't think the amazing product part is as hard as it sounds. What I wonder is, who will buy it?
[0] To borrow from Joel Spolsky: 'nobody' in this context means fewer than ten million people.
last updated 2 years ago #
New look
I've been playing with the templates and CSS. I'm pleased with the results, though all you graphic designers out there will probably have a long list of objections. I've eliminated the tables so I can actually put stuff where I want it. I suspect some of this stuff will be abused sooner or later, but it seems to encourage fairly intelligent design.
last updated 2 years ago #
Wow. People actually read this crap
Chris just added a stats feature so users can see if people actually read this crap. Though it's nowhere near a high-traffic site, it looks like people do actually read this crap. As a result, I'll be posting more of it.
I have lots of stuff I could blog about, but don't know what people want to read. Should I discuss the latest programming language I'm learning? Should I lampoon a doomed startup? I could discuss the project I'm working on with some of the details omitted. Leave a comment if you have an opinion.
last updated 2 years ago #
Javascript DOM rant
I'm making a site that needs to be totally accessable to blind users, but have a few flashy DHTML effects for browsers that know what to do with them. One thing I want to do is have a javascript modify all the links after the page loads to remove their href attributes and add an onClick handler. If the browser doesn't support DHTML, this won't occur, leaving the static links in place. I don't use Javascript heavily, so I usually have to RTFM any time I want to do something fancy.
From what I can tell, there's no way to unset the href attribute (or anything else). I can set it to "#", but that makes some browsers jump to the top of the screen, which isn't what I want. I could use an onFocus handler, but I want it to respond to a click, not a rollover. I really want to eliminate the href. Lacking a way to do that, I decided to just replace the link by creating a new Anchor object and setting the element to that object. There's just one problem: no browser that anybody actually uses supports making anchor objects at runtime.
There's a delete function for removing values from arrays, and I've seen several places that you should be able to unset something with foo=undefined. Both of these fail to have the desired effect on anchor objects.
I've heard Javascript described as Scheme with C syntax, but right now I feel like I'm using Intercal. I'm probably missing something obvious, but I don't know where to look.
last updated 2 years ago #
A feature request for everyone making audio player software
Some players may already have this feature, but I haven't seen it yet (I use amarok). I want to be able to set an arbitrary song to play after the current one when operating in random/shuffle mode.
last updated 2 years ago #
Infogami and reddit
This could be a solution to the problem of reddit not having a business model, since Infogami is launching with ads. It also answers the question of why reddit was rewritten in Python when it was. Aaron posted on the development blog that the merger took place just after his birthday. A Google search reveals that his birthday is November 8, which is just a couple weeks before the Reddit blog says the rewrite began.
Please ignore the fact that this is a mostly worthless blog post; it's mostly just so I can experiment with Infogami.
last updated 2 years ago #
