Archive for December, 2008

My great-grandmother made Warren Buffet rich

Wednesday, December 31st, 2008

It’s a little known fact, but Warren Buffet is rich because of my great-grandmother, Nanny. She had a simple, two-step process for making him rich:

1.) She told my grandparents, and my dad, “Don’t ever invest in the stock market. Only crazy people invest in the stock market.”

2.) She, and everyone else in her generation, eventually passed away.

She herself got rich in Florida, during the land boom of 1925-1927, and then she lost most of it when the crash came in 1929. If you told her that real estate always appreciates in value she would have laughed in your face.

Warren Buffet is a transitional figure, and he has been well rewarded for correctly sensing the transition of sentiment that he lived through. For 50 years after the crash, the public was well aware of the dangers of investing. My great-grandmother died in 1974. By the time the stock market boom started in the 1980s, there were few people around who’d actually lost money during the crash of 1929-1932.

The stock market has had an incredible run since 1982. Though (according to Kevin Phillips)  it lost 75% of its value from 1966 to 1982 (adjusting the nominal value for inflation – remember the 70s saw the Great Inflation) it has since risen with few interruptions. 26 years is a very long boom. This chart suggests that the market returned to the long-term trend line and then rose unsustainably above it.

There were millions of citizens, like my great-grandmother, who avoided the stock market after 1929. They helped create the low valuations that made the stocks on the stock market a good value, using traditional metrics like P/E ratios. Once upon a time, in a land now far, far away, a P/E ratio of 15 was considered frighteningly high. This month, the Dow Jones is suddenly back under 15, having spent most of the last decade above it. Will this level again come to be seen as normal, or will this eventually be seen as an aberration?

I recall sitting at a coffeeshop with a friend of mine in 1994. She had just gotten her masters degree and, with her first real job, she had received a long sales pitch from the investment advisor who played some role with the retirement plans that her new company offered. She’d been given two options, a low risk fund that would return 12% a year, and a high risk fund that would return 16% a year. Inflation, she was told, averaged 4% a year, so real returns would be 8% or 12% a year. That kind of nonsense was common back then. At 16% a year, then a $1,000 invested in 1994 would now be worth $9,265, yet no one has made that kind of money on the stock market. (Note that the chart I just linked to says that the real rate of growth for the Dow since 1915 has been 2%. And recall that most investors and fund managers do worse than the market averages.) Impossibly attractive rates of return were made to sound normal. And yet while my friend and I were both wary of the numbers, that kind of rhetoric seemed to have some kind of legitimacy, just because it was coming from so many sources: the TV, business magazines, advisors, friends, co-workers. My great grandmother was no longer around, and could no longer laugh in people’s faces.

The best way to add Flash to a page: SWFObject

Monday, December 29th, 2008

Saw this on the Google Ajax API blog, all about adding Flash to a page using Javascript:

If you’re a Flash nut then you probably know about the SWFObject Javascript library. I’m not, so I didn’t. However, since I promised myself I would play with Flex soon I am very happy that a “Flasher” suggested that we add it to our AJAX Libraries API. I took a look at it and found out that it’s a great little must-have library!

See, embedding a Flash video on a page is actually more complicated than it should be. You can’t just throw a tag on the page with some attributes and expect it to work. In fact, to embed a Flash file there are different methods for different browsers such as using an <embed> vs. <object> as well as setting the parameters for the file.

The SWFObject library simplifies the process so that all you need to worry about is including their Javascript library and using a single method to embed your Flash on the page in a safe, cross-browser manner. It also has a few extra utility functions, such as setting a load event for the Flash object and detecting the user’s Flash version.

Newspapers are doomed

Saturday, December 27th, 2008

Sam Zell made a terrible mistake when he bought the Tribune Company:

When the Tribune Company announced that it was filing for bankruptcy, last Monday, Sam Zell, the man who bought the company a year ago, for $8.2 billion, said that its problems were the result of a “perfect storm.” You take readers and advertisers who were already migrating away from print, and add a steep recession, and you’ve got serious trouble. What Zell failed to mention was that his acquisition of the company had buried it beneath such a heavy pile of debt that any storm at all would likely have sunk it. But although Zell was making excuses for his own mismanagement, the perfect storm is real enough, and it is threatening to destroy newspapers as we know them. Layoffs and buyouts have become routine. The Miami Herald and the San Diego Union-Tribune are reportedly on the selling block, while lawmakers in Connecticut are trying to keep two newspapers there afloat. Even the New York Times Company has slashed its dividend and announced that it would borrow against its headquarters to avoid cash-flow problems.There’s no mystery as to the source of all the trouble: advertising revenue has dried up. In the third quarter alone, it dropped eighteen per cent, or almost two billion dollars, from last year.

Newspapers are simply a method of delivering ads:

It turns out that subscribers are more expensive, not less expensive, than online readers. Yes, they pay more — but they’re not paying for intensive reporting, experienced editors, and the like. They’re paying for printing presses, mobbed-up newspaper delivery operations, and the whole enormous physical infrastructure involved in getting thousands of tonnes of newsprint delivered to millions of front doors every morning. It’s a hugely expensive operation, and its costs are nowhere near covered by subscription revenues.

There’s an old saying that you’ll never understand newspaper economics until you understand why newspaper vending machines are designed so that you can take as many papers as you like for your quarter. Newspapers are, first and last, devices for delivering ads to readers. It’s the ads which account for all the profits, not the cash coming from subscribers or people who buy their paper at the newsstand. Yes, news itself is free, nowadays. But it always has been. What we’ve been paying for all these years was never news, it was papers.

Lately there have been a lot of articles about the newspaper industry. We are told that this recession is killing off newspapers, everything is moving to the web. There is some mourning, people wonder how journalism will survive once the newspapers are gone. But consider the other side – where will the ad dollars go? When the next boom hits, America will have a lot less newspapers than it has had in the past. And much more of the public will think it natural to get their news online. Doesn’t it seem that at some point quite a bit of ad revenue must become available to online ventures?

The just in time economy

Friday, December 26th, 2008

The usually smart James Fallow agrees with a dumb argument:

Yesterday I mentioned a summary of the latest John Boyd conference, which included the argument that today’s lean, hyper-efficient, “just in time” economy was magnifying the effects of today’s economic collapse. Problems in one sector instantly become problems in another, since so many businesses were fine-tuned to await the next order, the next payment, the next shipment from someone else.

How can Just In Time be bad in a collapsing economy? Is there a single retailer in America, right now, who doesn’t wish they were holding less inventory? And then, if retailers are having trouble selling, aren’t the suppliers even more desperate to lower their inventories? JIT means that when an economy begins to collapse, suppliers know it sooner and can adjust their production schedules that much faster. It means the ultimate solution is closer than otherwise: suppliers matching production to consumption so as to avoid over-production.

Imagine it the other way around: what if the suppliers had more padding in their supply chains, and the retailers too, so that economic signals took an extra 3 months to work their way up the chain. That would mean suppliers would have spent September, October and November of 2008 producing as if the economy was still moving at the speed it was in August of 2008. In a sense, this would have simply added to the bubble – imagine how long it would take for the economy to work off the over-production of those 3 extra months. As bad as 2009 will surely be, it would be even worse had 2008 seen an extra 3 months of over-production.

JIT does mean that suppliers feel the pain almost the same instant that their customers do. But that is a good thing. It means they can react sooner. More information, sooner, is a good thing for the economy.

There are a lot of recent business trends that have made this depression as bad as it is. Chief among them is the incautious use of debt. But JIT? It is innocent. It should not get lumped in with other recent (misguided) business trends.

Fallows also agrees with this summary from a recent Boyd conference:

The search for efficiency and the urge to consume has set us all up like a row of dominoes – there is no buffer, no resiliency. As one problem rises it causes another. As one solution is tried it drives another problem. We all pull back and the consumer economy stalls. The auto industry and credit firms feeds the media (40% of conventional advertising). Papers and TV and Radio networks, many subject to LBO’s will have to fail as per the Tribune. Every sector will be laying people off. Sales of all things fall off a cliff – driving more business failures and layoffs. Cities and states that depend on sales tax and property tax and the credit markets can rely on none of these. So they too will have to lay off millions – thus making all the problems worse.

Where are the owners, in this scenario? The nominal goal of the efficiency movement, among America’s corporations, is to squeeze resources out of business processess. The resulting savings are suppose to be passed to the people who own the corporation (in another era, the money would have gone to the company’s workers). What do they do with the surplus? The saved resources don’t simply vanish from the face of the Earth. “Becoming more efficient” is not a method of destroying wealth. Those saved resources are a buffer, and can be used to offset an economic setback.

One could argue that in real life the new surplus is not being spent well. One could argue that the efficiency movement works better in theory than in practice. But it seems to me, in the paragraph above, it is the theory that is being attacked, not the practice.

PHP now more popular than Visual Basic, but Java still most popular of all

Wednesday, December 24th, 2008

I sent this email to some programming friends of mine:

Some real surprises (for me at least) in this year’s December usage stats for languages:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

PHP is now the 4th most popular language in the world. It has edged out Visual Basic. I think this means that a lot of data entry forms and corporate intranets (the mainstays of Visual Basic) are now being done over the web, so PHP and HTML are being used for more and more of those projects. Visual Basic still has a huge advantage in terms of form widgets, and the level of interaction that can be achieved with forms. Maybe HTML 5 will narrow the gap somewhat? The use case for Visual Basic would fade a great deal, at that point.

It is a little odd, maybe, that PHP is the top ranking script language. It is universally regarded as less professional than Ruby or Python, but it is way more popular. Facebook is built almost wholly in PHP. Yahoo has used PHP for several recent projects, such as Yahoo Bookmarks (a competitor to del.icio.us, I think).

Very surprising (to me) to see Ruby moving down. It has been synonymous with “Web 2.0″ phenomena.

Java remains the most popular language. Have to admit, when I studied it, Java itself bored me to death, but I have become fascinated with JavaFX, since its release a few weeks ago. It is very light weight and simple (compared to Java). None of the freaking double declared typing and “narrow casting” and “wide casting” that I hated about Java. In my spare time, I’ve been working on a spaceship shooter game, mostly as a way to learn JavaFX.

One of my friends wrote back:

Somehow I’ve managed to never write a single line of Java code in my career. I count myself lucky. :)

I responded:

Yeah, I agree. It is kind of amazing to me how many smart people have worked on Java, and how awful it is. Stuff like “If you want your object to be serializable, then it must implement the Serial interface, even though the Serial interface does not have an implementation.” Hate that!

And the double declaration of a variable’s type, usually declared with a widening cast:

Integer automobiles = new LotInventory(94);

Who really wants to waste neurons in their brain keeping track of stuff like that?

Most of Java seems overly complicated and overly abstract – theoretically correct in an academic computer science kind of way, but not actually useful.

Even the die-hard defenders of Java are less willing to defend the language. I think this is the influence of Ruby. Since the emergence of Ruby, there has been an explosion of script languages that run on the JVM: Jython, JRuby, Groovy, Scala, and now JavaFX. And, of course, some of the best known writers who built their careers around Java (Bruce Tate, Bruce Eckel, etc) have become big fans of Ruby.

I read Bruce Eckel’s book back in 2003. That was when I started trying to learn Java. My only serious attempt at a Java project was in 2005, when I was trying to build a client side file uploader, a modified version of the software they discuss in Matthew Robinson and Pavel Vorobiev’s book about Swing. I decided I hated the language and gave up trying to learn it. Little did I know that the Java platform was about to get interesting. The big change in the Java community happened a little before Bruce Eckel wrote his essay “The departure of the hyper-enthusiasts“:

The Java hyper-enthusiasts have left the building, leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism.

But the majority of programmers, who have been relatively quiet all this time, always knew that Java is a combination of strengths and weaknesses. These folks are not left with any feelings of surprise, but instead they welcome the silence, because it’s easier to think and work.

Where did the hyper-enthusiasts go? To Ruby, apparently. This is chronicled in Bruce Tate’s book “Beyond Java,” which should probably be titled “Why Ruby is Better than Java.” The book is roughly edited; you’ll find yourself thinking “haven’t I read this paragraph before?” in any number of places, but that’s a disappointing experience I’ve had with several O’Reilly books of late. In many places he plays fast and loose, and almost at the end of the book he declares that he doesn’t have time to learn these other languages in any depth — although he has no trouble condemning the same languages in his rush to Ruby. Such a statement should be in the first paragraph of the book: “I’ve decided that I love Ruby, so I will condemn other languages without fully understanding them” (in one sentence repeated in a number of places in the book, for example, he declares that C# is no more than a clone of Java). I’ve been on the rollercoaster of language-love myself in the past and have made similar mistakes; one error in particular was dismissing Python’s scoping-by-indentation when I first saw it (months later realizing that we always indicate scoping by indentation anyway, even when we have curly braces available). Now I try to investigate and support my ideas about these things more thoroughly. It takes a lot more time and effort to do so, but it also leaves a more lasting impression.

Eckel correctly points out that the wonders of scripting languages are purchased with loss of efficiency, and some of the ugliness of Java or C or C++ are due to the compromises they make to gain efficiency:

Martin’s argument is that Java’s List interface requires you to say aList.get(aList.size -1) to get the last element, and this seemed silly to him. Which it is, if you have unified all sequence containers (that is, list containers) into a single type, as Ruby and Python do. Java, however, follows the C++ STL approach of providing different types based on the efficiency of various operations. The Java libraries do not unify to a single list type because of efficiency issues, so you have to decide if you are going to be fetching the last element from a list a lot, and if you are you use a LinkedList, which does have a getLast() method — a fact which was completely left out of Martin’s original discussion, and the ensuing firefight (other than some ignored comments).

Elliotte Rusty Harold (who took over the management of the Java track at the SD conference from me; I actually lived in the building next to his in Brooklyn for two months once) observed that Ruby’s library design didn’t seem so simple and clear to him, and he went into detail about many of the methods in the list class, pointing out that they often seemed to make no sense and wondering whether anyone was actually using some of them. Elliotte has spent a lot of time on library design recently, producing the XOM XML library which, I think, represents some very clear thinking. Look at what he writes; I think he makes a good case.

…Understanding the constraints under which Josh Bloch designed the Java libraries might make you understand that design a little better. Personally, I prefer the simplicity of Python’s single list class to Java or C++’s multiple implementations, but a single list implementation must make efficiency compromises. Library design involves compromise, and if such a compromise disagrees with you you’re likely to feel it was a bad choice.

Eckel is writing in 2005, but already it is clear what a revolution Rails represents:

And of course, who can ignore Rails? The backlash from heavyweight web frameworks has been significant. We now know that EJB 1 & 2 were based on an entirely flawed set of use cases. Because of the damage this (still slowly dawning) realization has wrought to Sun’s reputation, it’s hard to know whether EJB3, which probably should have been called something else to disassociate it with the failures of its predecessors, will succeed, despite the fact that EJB3 is like a breath of fresh air. You look at the code and it makes sense; no bizzarre and obscure interfaces and concepts to puzzle over while thinking, “I wonder why I have to do this? Well, these guys are clearly smarter than I am.” (I tried to understand EJB1, but when I first heard that entity beans didn’t actually work, my brain refused to let me invest any more time, which turned out to be the right choice). As a result of all this, someone said “hey, all I want to do is create a database and use it from the web. Why should I do all that work?” As it turns out, such activities seem to be about 90% of all we ever do in “Enterprise” programming, and EJB 1/2 were solving an entirely different problem, and making the 90% incredibly difficult in the process. Thus, the Rails approach of “just connect the database to the web.”

In retrospect, he makes only mistake in his whole essay:

However, I can’t see Ruby, or anything other than C#, impacting the direction of the Java language, because of the way things have always happened in the Java world. And I think the direction that C# 3.0 may be too forward-thinking for Java to catch up to.

But, as I said before, there has been an explosion of light-weight scripting languages that run on the JVM, and I think part of that is the influence of Ruby. And part of that, too, is simply that programmers want programming to be joyful and joyfulness of programming is something that only the scripting languages can deliver.

(Weiqi Gao offers a counter argument: “I classify myself as one of those developers who don’t get Ruby, just like I don’t get Perl. Both are too hard for me. And there seems to be something in my brain that prevents me from learning both. It’s strange I never had the problem with C or C++ or Python or Lisp or awk.“.)

Java code tends to be more verbose (and also more academically correct) then anything I want to work with. Consider this simple example:

Socket socket = new Socket(”time.nist.gov”, 13);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
Buffered reader = new BufferedReader(isr);
reader.readLine(); // skip blank line
String message = reader.readLine();

So, socket returns an InputStream object. I’ve no problem with that. But inside of the InputStream object is a string of information that I want, and I can not get at it directly. Instead I have to give the InputStream to an InputStreamReader. And then I have to give that reader to another reader? Are you kidding? In PHP this would be:

$handle = @fopen(”http://time.nist.gov:13″, “r”);
$emptyLine = fgets($handle, 4096); // skip blank line
$buffer = fgets($handle, 4096);
fclose($handle);

Personally, my feeling is that life is short, so I don’t want to waste time with low level programming languages. I want to move fast, and the scripting languages allow me to move fast. Back in the 90s I got my first taste of programming with HyperCard and then later Applescript and then PHP. I studied how to use C to program System 7 projects on a Mac, but C was slow going. I’ve realized, over the years, for the things that I want to do with my life, I prefer the speed with which I can program in script languages. And that is why I am excited that script languages like JavaFX have arrived on the JVM. Amy Fowler sums up the aspects of the language that make life easier for the programmer:

But longer term, how many applications won’t be rich internet applications? Increasing graphics hardware acceleration is enabling the trend towards more beautiful and fluid interfaces. Ben Galbraith highlighted this point in his excellent User Experience JavaOne talk when he pointed out that user expectations have now been raised beyond just usability — they now expect to be wowed (recall Maslow’s Hierarchy of Needs from Psych 101). It may be that consumer applications are leading this charge, but in the end we’re all human beings and there is no reason why we shouldn’t feel as pleased with the applications we use at work as with those we use at home. And note that “beauty” encompasses both aesthetics and purpose.

So how do you get a beautiful application? You have it designed by people who understand visual design and usability. Period. Karsten Lentzsch once made a great point that “finding the design” is really the hardest part of building a GUI. And up to this point, the Java platform has been aimed at developers, most of whom couldn’t “find” a design if it landed on their MacBook Pro. So we have to provide a paradigm in Java which enables designers and developers to work more seamlessly in constructing beautiful applications. We believe that JavaFX script, in conjunction with existing designer tools (Photoshop, Illustrator, etc) and development tools tailored for building GUIs, is how we’ll get there.

It’s really different from Java and THIS IS A GOOD THING. For defining visually rich user interfaces, it has some major advantages over Java:

  • declarative syntax (without XML; no offense to the XML community, as XML has its place, but its verbosity is simply noise in a hierarchical GUI description)
  • first-class functions for callbacks (no more writing of anonymous inner classes — the JFX compiler handles those gory details)
  • expression-based binding (this is the power drill for GUI development; once you use it, going back to the hand drill is painful)

I’ll confess that I didn’t want to like it at first (felt a little like I was cheating on Java), but after I got over the hump of learning to declare what I wanted, rather than coding procedurally, it became quite addictive, especially binding. But don’t take my word for it; try it out yourself before you render an opinion.

The argument against the scripting languages is that they are slow (meaning, their run time on the computer is slow), but I think Matz (I mean Yukihiro Matsumoto) summed up my feelings on that subject when he said:

In my point of view, efficiency and productivity are the same thing, because we focus on programming efficiency, not runtime efficiency. I don’t care about runtime efficiency. The computer goes faster and faster every year, so I don’t really care about performance. Actually, I care about performance when I’m implementing the Ruby interpreter, but not when I’m designing Ruby. The implementer should care about performance, but the designer shouldn’t. If you care about performance, you will focus on machines in design instead of on humans. So you shouldn’t focus on performance in design.

The web is now a disruptive technology

Wednesday, December 24th, 2008

I recall somewhere around 1995 there was a lot of talk about the Internet being a disruptive technology that would lead to the bankruptcy of a large number of older, obsolete firms. The bankruptcies did not materialize with the speed that people had expected, so somewhere around 2000 there were a number of articles explaining how the web wasn’t really a disruptive technology, instead, it was an enabling technology.

But in truth, it was a disruptive technology. And the bankruptices are finally beginning to arrive.

Earlier in the month, I was thinking out loud about the future of publishing online, especially where the news was concerned. Others are having a similar conversation:

Internet news is a classic disruptive technology. At its outset, it was simple, dirt cheap, and in many ways inferior to established journalism. But it improved over time, and once it began to rival traditional journalistic outfits in quality around the middle of this decade, the “dirt cheap” part of the equation began to dominate. When your competition can produce a roughly comparable product for a small fraction of the cost, your days are numbered.

But here’s the really important point that Christensen made that is often missed in these kinds of discussions: it’s often close to impossible for an organization built around an older technology to retool for a new, disruptive one because their cost structures just don’t allow it. The New York Times is an expensive place to run. It’s got writers, editors, typesetters, delivery trucks, an ad sales force, a big building, travel budgets, and so forth. In order to recoup those costs, they have to make a certain amount of revenue per unit of output. The institutional structure of the New York Times makes it almost impossible for it to produce news the way TPM Muckraker or Ars Technica do. The need to make payroll and cover their rent makes it almost mandatory for them to focus on their traditional core competencies because even as those markets shrink they still offer better margins than the emerging businesses.

Separating a web site from its application

Tuesday, December 23rd, 2008

Nikolay Barkhatov feels that a web site should just be an interface to an application:

More I think about web development more I believe there is a clean separation between actual application and web application. Moreover, I believe there is no such thing as web application. Web interface is just an adapter to real application. It’s hard to convince managers to architect application the way where web adapter decoupled from actual application. Managers simply do not see benefits of doing that and do not allocate time for it. Product development ends up with one giant mess called web application where tier separation is a formal thing everybody talks about but nobody can clearly draw the line between them. And finally there is a requirement to quickly come up with remote API for third party developers… Very sad…

It is curious to me that such an idea seems natural, even akin to common sense, to a Java programmer, and yet it has little appeal to non Java-programmers. Why is that? This is a cultural thing. The people drawn to Java are the type of people who want to do everything the theoretically (or academically) correct way.

On some level, Nikolay Barkhatov’s idea sounds very smart. And yet, a lot of other smart people have decided to take another path. David Heinemeier Hansson is a smart person, but he didn’t feel the need to separate the website from the application he was trying to build. Instead, he create the web framework Ruby on Rails, to make it easier to marry code together with a web interface, while keeping things organized. The framework implements an Model View Controller pattern, so that the code and the web interface can work together in an intelligent way. Ruby on Rails was such an obviously good idea that other people began imitating it. Every computer language now has an imitation of Ruby on Rails. For instance, for those using the PHP computer language, there is the Symfony framework.

But having said all that, I admit that I’m fascinated by the idea of separating the application from the web interface. If I wrere to try it, I would write the application in one language, and the web interface in another language. I don’t trust myself to write both in the same language, the temptation would be to cheat, and mix the two together.

If I were to try to separate the application from the website, I might write the application in Java and the web site in PHP. I would use XML to get the data from the Java appliation to the PHP. For instance, suppose I build a site for value investors who want to see whenever a stock falls below a P/E ratio of 10. The application would sit on the server, intake stock information from various sources, look for low P/E ratios, and output the results as XML files. The PHP could read the XML files and construct the website from that.

One advantage of this approach is that the caching is automatic. The PHP only needs to read from static XML files.

How to handle input from users? I suppose that is where the separation of concerns breaks down, and perhaps this is the issue that has made frameworks more popular than tiered approaches to sites. True separation could be maintained if you use normal HTML/PHP forms that are submitted to PHP code that then transforms them into XML files that the Java could then read. But this gets clumsy. I wonder if there are any types of sites where this would be the optimal setup?

What should Yahoo do?

Friday, December 19th, 2008

Susan Mernit quotes Mark Cuban:

Yahoo has a very simple business. Generate traffic and monetize it. It generates traffic through services and content. It sells advertising around them both. Their strategy should be to acquire every and any company that makes their traffic, services, content or monetization stronger.”

And then offers some very good advice herself:

This is a very good strategy and a good suggestion. Problem is Yahoo! needs executives–and engineering leadership–who can a) make decisions on what to acquire and b) actually use the acquisition. Unfortunately, Yahoo!, like many big companies, has a history of acquiring companies and then not taking good advantage of the audience, product or IP they bring. Once Yahoo! has some new leadership in place–and resigns itself that putting 800 engineers on one project may not always be the saving grace some people thought it was–this strategy is a perfectly valid way to go, especially if they are prepared to bring in additional people to manage to this approach.

Incredible, if true, but probably not true

Friday, December 19th, 2008

This is extremely hard to believe:

No automakers have been spared in the brutal global sales slump, and Japan’s Toyota Motor Corp could report its first annual parent-only operating loss since the company was founded more than 70 years ago, Japanese media reported on Friday.

Toyota shares fell 2 percent in Tokyo ahead of a year-end news conference on Monday, where the world’s biggest carmaker is expected to revise down its profit forecasts. Toyota last posted an operating loss in its first year of operation in 1937/38.

Toyota reported a profit in 1944? And in 1945? What do you call it when another nation bombs all of your factories flat? Accelerated amortization?

Advertising dollars concentrate on the sites with the most traffic

Friday, December 19th, 2008

Traffic to websites follow a power law curve, a type of distribution that entails a few sites getting most of the traffic, followed by a long tail:

The shape of Figure #1, several hundred blogs ranked by number of inbound links, is roughly a power law distribution. Of the 433 listed blogs, the top two sites accounted for fully 5% of the inbound links between them. (They were InstaPundit and Andrew Sullivan, unsurprisingly.) The top dozen (less than 3% of the total) accounted for 20% of the inbound links, and the top 50 blogs (not quite 12%) accounted for 50% of such links.

The inbound link data is just an example: power law distributions are ubiquitous. Yahoo Groups mailing lists ranked by subscribers is a power law distribution. (Figure #2) LiveJournal users ranked by friends is a power law. (Figure #3) Jason Kottke has graphed the power law distribution of Technorati link data. The traffic to this article will be a power law, with a tiny percentage of the sites sending most of the traffic. If you run a website with more than a couple dozen pages, pick any time period where the traffic amounted to at least 1000 page views, and you will find that both the page views themselves and the traffic from the referring sites will follow power laws.

Advertising dollars on the web also follow a power law. The biggest sites get a huge percentage of the total amount of dollars spent online. This also means that medium sized sites struggle to get any advertising dollars at all. For this reason, local newspapers are probably doomed, because there offline sales are falling, and they are too small to get much of the online ad dollars:

 Those ambitious numbers, she continues, show how hard it is for local news sites to be really profitable, and underscore “why local papers will have trouble offsetting traditional media declines” with revenue from their websites.

But the report also says that those sites that either get very big, like the New York Times online, or  dominate a niche that is of interest to advertisers, will do well:

“Small website operations can be self-sustaining,” writes the report’s author, ContentNext Research Director Lauren Rich Fine, “but life is easier at the mega traffic sites.”

The challenge for all sites is garnering enough traffic and creating a discernable enough brand to make advertisers seek them out.

“Based on our research, the conversation [with advertisers] gets interesting at 200 million page views plus a month, but much more so around 800 million,” Ms. Fine writes.

…The report also looks at whether the Times could ever succeed as a web-only product, and concludes that it could — once NYT.com starts generating 1.3 billion page views a month.

By Ms. Fine’s back-of-the-envelope calculations, that kind of traffic would bring in $300 million in quarterly advertising revenues, about what the flagship paper is expected to generate in the fourth quarter.

The Times’ site had 173 million page views in October, according to ComScore Media Metrix.

Ms. Fine said sites such as Yahoo News and AOL News already get in the neighborhood of a billion page views a month, and it’s not out of the question that NYT.com could too.

“The fact that there are sites out there that are already achieving that suggests that this could work,” she said in an interview.

Analysts don’t dismiss the possibility of a major newspaper’s website eventually either replacing the print edition or making up for the continuing decline in print-ad revenues. But that kind of success is a long way off.

Test driven development with Symfony

Thursday, December 18th, 2008

Nicolas Martin has some useful advice:

Tests must be written before any code. That forces you to “program to an interface, not an implementation.”

Here’s a useful hint to quickly step into test writing :  Uses the lime::todo() method to write the test-suite roadmap in plain english, and write tests step by step afterward :

$t = new lime_test(3, new lime_output_color());

$t->todo("Test if the class::method() with invalid data throws an exception");
$t->todo("Test the class::method2() with missing parameter uses default values");
$t->todo("Test the class::method3() returns an valid array with valid parameter");

I agree with what he is saying, but I also think one has to get comfortable with Symfony before one can engage in TDD. It takes a certain confidence to write tests that fail. It makes no sense to write failing tests when you are new to the framework and nothing seems to work correctly. This last summer, when I was learning Symfony, my questions were very basic: “How do I get this text into the template?” No point writing a test when you are struggling with such basic stuff.

But yes, no doubt, once you know the framework, one should lead with tests.

I also think writing any tests helps make a system more stable, and more sustainable – more ready for the next programmer to come in and understand what is going on. We took over one project (not a Symfony project) and instituted a “tests for all bugs” rule. That is the absolute minimum of testing, only writing tests for bugs, but it has the advantage of making sure that the bugs, once fixed, stay fixed. That, by itself, is a huge step forward for most fast evolving websites.

A very brave, very honest admission of failure

Friday, December 12th, 2008

This fellow tried a newspaper venture in Denmark and it collapsed. He is very honest, and brave, in taking most of the blame onto himself, and his own poor decisions:

First of all I’m really really sorry to say that my Newspaper project did not survive – not sorry for me (I take all responsibilities) – I just hate myself for bringing other people (employees and partners) and service providers into trouble – it feels unfair and coward-like… The recession and my stupid communications over summer (we delivered the yearly report 2 months too late) killed us. The simple explanation is that sales did not meet budgets and therefore since Thursday I have been talking to the people backing me and to myself (I have personally put DKK 105 million into this project – money that I have been borrowing – VERY BAD CHOICE) – and over that weekend I had to make a hard decision.

DKK 75 million was suddenly not enough – since the price to break- even suddenly doubled – and after working 9 months 24/7 (having learned more then the previous 10 years) with an increasingly dried up (dead) financial market – I simply could not see a way to continue…..

- I’m too soft, too optimistic and romantic – I did not have enough pessimistic fantasy to imagine that budgets could break so fast – and that the recession is reality – it is all very strange. My management skills are beaten by any kindergarden manager (I respect them a lot by the way)..

…Call me stupid – not trustworthy – whatever -  it’s OK – I fucked up. I take all responsibility. It was MY MONEY (and all I had and had access too) – and it will be 18-24 months in hell from here – but I will start and invest with my knowledge and build companies for life – and I’m scared but not stopping – Im just back to ventures without money. Sorry.

He also points to certain external factors that helped doom his venture, such as the world wide financial crisis. His statements regarding the crisis read as simple statements of fact, rather than attempts to shift the blame away from himself. His self-criticism helps establish a trustworthiness regarding the other things he says.

Iterative design processes help lower risk

Friday, December 12th, 2008

The most concrete way to lower risk, in regards to the creation of websites, is to start small and grow organically. During the design phase, this means you need to adopt an iterative process that demands, with each cycle, the creation of something real.

Boxes and Arrows:

An Iterative Process

While prototyping with XHTML isn’t tied to a specific design process, iterative development seems to effectively leverage its strengths. There are many reasons for this, but perhaps the most significant is that in both cases the prototype, and later the application itself, doubles as a specification. We’ll explore what that means in a bit, but first let’s walk through a suggested process for prototyping with XHTML.Let us start with an overview of the larger design process:In this (iterative) methodology, rather than design the entire application before starting to build it, one designs and builds a unit of the application and then uses what has been built to inform and serve as a starting point for other application units. As with other design methods, the design work begins with sketching, which plays a particularly important role relative to prototyping.

Sketching: A Freeform Question

The term ‘sketching’ refers here to any freeform exploration unconstrained by a specific technology. This includes production of wireframes, which in this model are reframed, as it were, from specification artifact to refined sketch. When thought of, and presented to stakeholders, as sketches, its more natural to discard your wireframes once the design has evolved beyond them. This is usually after a prototype equivalent has been produced. With the design team I work with, we’ve found that when prototyping with XHTML, wireframes often became superfluous, and it’s more effective to go directly from sketch to prototype.

Prototyping: A Concrete Response

Prototyping has a counterpoint relationship to sketching. To paraphrase Bill Buxton, while sketches ask a question—”Is this a good design idea?”— prototypes provide a response. By making the idea manifest, prototypes force upon it the concrete realities and user experience idiosyncrasies of the actual production technology and offer a crisp verdict on the quality of what you dreamed up in drawings.

The Prototype/Build Relationship

When prototyping with XHTML, especially in an iterative model, the build and prototype become very intertwined. If you’re prototyping a new application or product, the XHTML prototype is essentially a rough draft of the actual application. However, when updating the design of an existing application, the production version can serve as the starting point for the prototype of the new solution.

Which demographic niches will move online next?

Friday, December 12th, 2008

Darren Hoyt got me thinking about who is online, with his remarks about RSS feeds:

Google Reader’s popularity is surging and the number of people consuming web content via RSS readers has grown overall, but no one’s claiming RSS is a mainstream concept just yet. It’s mostly the geeks and early-adopters who know what it is and what to do with it, thus they don’t need to be sold on whether a blog offers an RSS feed—their feedreader can auto-detect it based on URI anyway… Yet so many theme designers use valuable screen space to display a prominent (and mysterious, to most) orange RSS icon. Non-techy users will either avoid the icon or click it and be taken to a page of XML gobbledygook.

I started to wonder about non-techies and when and if they will ever think it is natural to subscribe to RSS feeds. I wrote this as a comment on Darren’s site:

My mom is in her 70s and over the last 3 years she has become a regular reader of Google News. I set it as the homepage on FireFox and IE on her computer. After I’d set it up, she surprised me by exploring it enough to learn how to customize it. Since she is fluent in French, she told Google News that she wanted news in both English and French. She now gets titles in both languages.

More recently, she’s become a regular reader of DailyKos. For years my brother has sent her links to occasional posts on DailyKos, but only recently has my mom become a regular reader. Assuming she eventually gets interested in other political blogs, I imagine there is an RSS feed reader in her future.

There are young people whose reading habits were shaped during the era of the Web. They’ve grown up getting their news online. And every year they are another year older (eventually they become that demographic that advertisers value most). On the other hand, there are certain paper magazines that have what I’d guess are slightly older audiences. Think of magazines about fishing or boats. The audience for these magazines will, I suspect, be slowly eroded by the generational shift. To me, the conclusion seems to be that eventually whole categories of print-based magazines will be endangered by their online rivals. If this decade saw the maturation of the tools needed to build complex, dynamic websites, the next decade is likely to see large scale shifts in how the public gets its news. RSS feeds seem like an obvious part of that shift.

At the end of the 80s, tech oriented college kids went onling (the internet was available on all campuses, though it wasn’t yet available to the general public). During the 90s, tech-oriented youth went online. Tech-oriented gay teens, in particular, began to find an escape from harrassment online. I’m using the phrase “tech oriented” rather than “affluent” or “college educated” or any other such phrase. danah boyd has written of the difficulties of defining social classes in America. People involved with the tech industry were among the first online, for obvious reasons. During the current decade, the web became an important resource and support for new moms. People with non-majority political viewpoints found the Internet an important place to converse and organize. Professors began to build reputations online (though the majority of professors still don’t have weblogs and the web has not replaced the peer-reviewed process). Law professors started posting essays on their weblogs, a few of which were cited in court cases. A new generation of journalists found they could launch quite successful careers through their weblogs. The news industry was transformed. The gambling industry was also transformed, and to the extent that we can consider the sports industry separately from the news industry, it too was transformed.

Except for the professors and the tech crowd, most of the other groups that went online had in common a sense of isolation. New moms, gay teens, and folks with minority political viewpoints greeted the web as a place where they could finally connect with others. Gamblers too, for different reasons.

Each year that passes sees the web become more central to people’s lives. This decade saw an explosion of online social networks, such as MySpace and Facebook and, for professional contacts, LinkedIn. People nowadays often meet their romantic partners online.

When the economy recovers from the current recession, society’s acceptance of the web will enter a new phase. The early adopters have all adopted the web, and the middle part of society has mostly embraced it too. The late adopters will be increasingly online over the next few years.

Much of the content now online is subsidized by existing offline publications. For instance, the New York Times online is subsidized by the offline version of the paper. My mom is a very great fan of the New York Times. She subscribes to the paper version of it and she loves to read it. Myself and my brothers only read the New York Times online. So, to some extent, older folks like my mom are subsidizing the reading habits of younger people. As the demand for the older, offline product shrinks, the ability of the offline product to subsidize the online product will also shrink. Personally, I think the New York Times will survive for a very long time to come but other publications will disappear. Some very small niche subjects will likely only be able to support online publications. For online publications, the exciting possibility is how much additional revenue will become available to them.

There are many groups that are slow to adopt technology. There are a few groups who feel that technology, by itself, is contrary to their mission or ideology. My experience with iHanuman.com reminded me that there is a great resistance to technology among some who are students of yoga (some yoga instructors insist that sitting in front of a computer is bad for your body and therefore contrary to yoga). My experience with The Second Road has taught me that the recovery community is only slowly moving online. In fact, in many ways the online recovery community resembles where political blogs were about 6 years ago – they all have small audiences, the overall audience is probably growing quickly, especially for younger folks.

I recall a Second Road meeting where someone asked why anyone would go online to seek support. We were discussing young people (under age 25) with a counselor who worked with youth. We wondered, if a 20 year old is at a party and someone pulls out meth, and that 20 year old is trying to stay clean, won’t they simply call someone else in recovery? Don’t all young people have cell phones, and don’t they use them all the time? The counselor corrected us. Most young people have limited cell phone plans. They are constantly having to save their minutes, or they are out of minutes. Also, at a party, it is much more socially acceptable to say “I’ve got to check my email, can I borrow your computer?” than it is to say “I’ve got to call my sponsor, can I borrow a phone?”

Middle class Baby Bomers are now entirely online, and they now organize their social lives around the web almost to the same extent as the younger cohorts do. Most of the big web companies that have so far thrived have been built or lead by Baby Boomers (early adopters, to be sure). Even those Baby Boomers who missed the first wave of the web eventually joined up. I’ve known Baby Boomers who made a lot of money selling things on Ebay or Amazon. I’ve known Baby Boomers who’ve met their current romantic partners on the web.

The groups that haven’t yet moved online are the ones that have so far had some reason to resist computers, or some obstacle keeping them from the Internet. Rural areas, which are only now getting broad band, poor people and older people are major demographics who’ll be moving online during the next few years.

If a technology is truly disruptive, then it will cause the bankruptcy of many large, established firms. Over the last 15 years, since the web did not cause large-scale bankruptcies for large, established firsm, some people began to doubt whether it was truly disruptive. But consider the way that Clayton M. Christensen first defined a disruptive technology:

New performance introduced by a disruptive technology, which typically begins at a lower level of performance, but rapidly improves until it meets the majority of customers’ needs.

It’s possible that the web is only now reaching the point that it becomes truly disruptive. Many people have rejected it up till this point. The way of accessing it has been through a personal computer, which has been expensive and cumbersome. And broadband connections were slow to spread, especially in the US. Perhaps we are only now arriving at the critical moment of ubiquity.

All the remaining groups, all the factions of the population that have so far resisted the Web, or been unable to reach it, are now (over the next 5 years) likely to be brought online by the collapse of offline alternatives. The massive bankruptcy of the old ways of doing things will leave these groups with less and less options. For those groups who wanted to be online but were kept from doing so, more and more options will probably ease their path.

Conclusions: over the next 5 years, one of the biggest opportunities for content sites will be those that aim to directly replace existing paper-based content. Such sites were much hyped and much predicted in the mid 90s, but it turns out those predictions were premature. 13 years later, I believe we’ve arrived at the moment for such predictions to come true. No one person can be aware of all of the possible demographic niches that are now ready for content via the Web. I am aware of a few possibilities, which I’ve mentioned above. I believe now is the right time for a new wave of investment in content sites.

Learning new skills initially lowers your productivity

Friday, December 12th, 2008

For the last 5 months I’ve been working on a project that has necessitated my learning a lot of new technologies (Symfony, NFS, working with MySql from the command line, etc). As such, I’ve often felt like I was running through thick mud. The fast pace of the projects I’ve worked on during the last few years has been replaced by the slow pace of constant learning. This is great, in some ways. All of us need to acquire new skills, if we are to move forward with the perfection of our skills. However, the experience has left me sympathetic to list of warnings:

Frequently Forgotten Fundamental Facts about Software Engineering

Tools and techniques

T1. Most software tool and technique improvements account for about a 5- to 30-percent increase in productivity and quality. But at one time or another, most of these improvements have been claimed by someone to have “order of magnitude” (factor of 10) benefits. Hype is the plague on the house of software.

T2. Learning a new tool or technique actually lowers programmer productivity and product quality initially. You achieve the eventual benefit only after overcoming this learning curve.

T3. Therefore, adopting new tools and techniques is worthwhile, but only if you (a) realistically view their value and (b) use patience in measuring their benefits.

Smart, rational managers tend to manage their companies to bankruptcy

Friday, December 12th, 2008

Almost every complaint that Frank Sommers has with JavaFX is something that I am pleased about. Apparently he wants Sun to focus on its current customers, rather than on its future customers. To me, that attitude is what often leads to bankruptcy. Smart, well manage companies often manage themselves rationally to bankruptcy. To my mind, JavaFX is Sun’s attempt to break out of that death spiral, to do something new. I am hoping this will prove as much of a new and positive direction for Sun as the iPod proved for Apple.

Frank Sommers writes:

In spite of a thriving Swing community, and despite Swing’s large user base, Sun has re-focused its efforts around JavaFX over the past year-and-a-half, at the expense of Swing development. The most visible aspects of that change in focus is that many of the most experienced Swing developers left the company, such as Chet Haase (see Artima’s interview with Chet Haase), Hans Muller, or Scott Violet. The important Swing-related JSRs have also been stale for a long time now: the latest JSR 295 and 296 updates occurred in June, 2006, according to the JCP’s Web site.

Most recently, SwingX contributor Jeanette Winzenburg wrote on the project’s online forum that Sun all but abandoned its support for SwingX, because its engineers are busy working on JavaFX:

… the official terminus is “frozen” – but as that happened already in July and everybody in the core team is well over their ears into FX it looks rather permanent to me…

I think it quite funny that [Sun engineer Richard Bair argues] in favour of that support/evolution mainly by stating that nobody (definitely not the experienced engineers/architects) at Sun has any time for it – because you all are wasting it it on FX (biased me again ) Fancy demos – especially in a language unrelated to the project at the center of this forum’s topic – are just that: fancy demos. They don’t solve any real world problems. Chet’s termed the effort to produce them so cutely as CDD – Conference Driven Design.

Winzenburg’s note seems to echo the sentiment of many experienced Swing developers. JGoodies’ Karsten Lentzsch noted, for example, that:

I’m worried that Scott Violet, Chet Haase, and now Hans Muller left Sun. AFAIK Jeff Dinkins isn’t working on Swing anymore, and Amy Fowler has changed her focus too.

None of my Java customers is interested in JavaFX. They want to get their Swing UIs running. They are looking for Java desktop blueprints, for a cook book that explains how to address the everyday Swing task. My customers were excited about the JSR 296 (Swing app framework) and 295 (beans binding). But now it’s unclear what’ll happen to these projects. I don’t see Sun’s Swing strategy.

If you look at the JavaOne 2006, 2007 and now 2008 what have we got for Swing, or in other words for the Java deskop *now*? A cool demo (Aerith) in 2006, more cool demos in 2007, and JavaFX in 2008. All my customers do the “boring” stuff: editors, forms, navigation, buffering, data binding, layout. That’s how they make money. Who cares about them? They need a framework, better components, not animated 3D flipping images.

And Kirill Grouchnikov recently wrote that:

I don’t know what the future holds for JavaFX. Sun is heavily betting on it… All I know is that JavaFX has effectively halted all core Swing development. Over the last 18 months, we have seen significant architectural initiatives (JSR 295 and JSR 296) changing leads and frozen. All client-facing improvements in Java2D, AWT and Swing in Java 6 Update 10 are completely driven by the requirements of JavaFX.

…Do you agree that Sun’s recent focus on JavaFX has hurt the cause of client-side Java?

Wishful thinking will do you no good

Thursday, December 11th, 2008

I’ve never, ever known a start-up that stuck to its business plan. Therefore, I think business plans are worthless. It’s possible that they are worse than worthless: they create a false sense of certainty and thus secretly increase risk.

From 37Signals:

It begs the question: What’s the point of a business plan if it’s obviously a fantasy that has nothing to do with reality? If these projections are just numbers pulled out of thin air, why pay any attention to them? Wishful thinking doesn’t really benefit you in any way.

It seems like most people write business plans just because they think they’re supposed to. They’ve been told a business plan is what a “real” business needs so they go ahead and start making shit up. Then reality happens and the whole thing goes out the window.

Sure, thinking about the future can help. But writing it down and thinking it’s any sort of plan is foolish. The truth is you’re not going to know what to do until you’re actually doing it.

Seems to me the only point of a business plan is to try to get money from venture capitalists. In that scenario, you lie to them and pretend to be confident about your plan, and they lie to you and pretend that they trust you. Seems to me a bad way to go, all around.  I’d like to think there is a way to build up long term relationships between innovators and funders, but, I admit, there will always be the unique, breakthrough technology that must be funded even when the VCs deeply distrust the entrepreneur.

JavaFX will save us from the uncontrolled budget overruns that Flash inflicts

Tuesday, December 9th, 2008

Last year I had to oversee a Flash project. The goal was to develop one of the most sophisticated video players ever. This thing could read XML files from other sites, and become an embeddable store. We were developing it for iHanuman.com, though it was never put into use there. The goal was to allow yoga enthusiasts to use their own blogs to promote the videos of their favorite yoga teachers. We were initially thinking the project would cost $10,000, but the owner of the company kept asking for additional features, so we thought maybe the cost might rise to $20,000. But in the end, the final cost was close to $50,000. Flash is not a serious programming environment, and as soon as you try to do something ambitious with it, you learn a painful lesson about its limits. For this reason, I am very excited about JavaFX. CJT sums up a number of my thoughts on the subject:

The maturity of the underling technology (the Java Runtime Environment) cannot be overlooked. One of the biggest gripes we have with, for example, the Flex framework, is it is bug ridden. Start doing any kind of serious project with it and you cannot get away from this. The mx components have been completely re-written no less than three times now! And they are still buggy. This slows development, there is no getting around it. Ask any developer who has done any serious stuff with the Flex framework and they will be able to testify to this. Hopefully with Flex, this will improve now that the framework is open-source.

Java is very mature and so we shouldn’t see soo many issues in this department.

The JRE is also leaps and bounds ahead of the Flash Player in terms of functionality, along-side the fact there are tons more Java developers (and more experienced) out there than actionscript developers, which as an employer, is also a key point. Finding decent actionscript developers is tough compared to experienced Java developers and this isn’t because of demand, its because actionscript 3 (I pinpoint 3 because 2 was half-baked and the Flash Player AVM1 was pants compared to AVM2 – hence incomparable to Java and the JRE) is a relatively new language and most actionscript “developers” have come from a creative/design background as opposed to programming. We like designers to do design and hard-core coders to code and for the two teams to collaboratively work together to create great results.

I don’t know much about Flash. Last year, for the video project, we brought in a Flash programmer as an independent  contractor. I was assigned to manage her, since I was the senior programmer with the firm I was working with. She started the project using ActionScript2, but when she realized how ambitious the goals of the project were, she switched to ActionScript3. We were asking her to do a lot of parsing of XML files, which of course AS3 makes easier than AS2.

As the project fell further and further behind schedule, I began to wonder if she was any good. So I contacted my old friend Nick Piazza, who was the Flash programmer for Category4.com (where I once worked).  I asked him to review her work and tell me if she was any good. So he reviewed her work, and he was very impressed.  She was, after all, doing cutting edge work in AS3. She was using many of its new features. He admitted to me that he himself, along with most other Flash programmers, were still perfectly content to do their work in AS2. In his opinion, she was doing the most advanced Flash work of anyone in central Virginia.

Great, I thought. So she is excellent. So why is the project falling so far behind schedule? She explained she was up against some intractable bugs. I asked if I could sit down with her and go over  the code. Some programming problems are, after all, logic problems, they are not specific to a language.

So we sat together and went over her code, trying to figure out the solutions to certain bugs. And what I learned was this: Flash has terrible tools for debugging. Adobe has only recently started to take ActionScript seriously as a language for advanced programming, and they are only slowly providing the tools needed for advanced programming. And of course, chief among the needed tools are debugging tools.

I walked away from those meetings with the sense that Flash was uniquely weak in debugging tools, and that this was a major source of budget risk when contemplating doing anything ambitious with it.

JavaFX starts off in a better situation than Flash. JavaFX is going to be a hit product. I’ll admit, for small animations Flash is too entrenched to ever be dislogded, but Flash just lost its bright future. For big, ambitious multimedia projects, JavaFX offers less  budget risk  than Flash.

This computer programmer can work for free

Friday, December 5th, 2008

I’m interested in working with someone whose aim is to set up a profitable, high-traffic online magazine. I’m willing to work without a fixed payment, for a specific kind of client and project, which I’ll describe below. To be clear, for a particular kind of project, I’d be willing to work simply for a percentage of the money you make. If you are willing to listen to my advice, then I am happy to share the risk. If you don’t make any money, then I am working for free.

I’ve spent the last 6 years working with various startups, most of which, at some point, went in the direction of magazine style content sites. I had a few clients who dabbled with the magazine format, while focusing on software development, and I had a few other clients who were mostly focused on content rich magazine style sites. iHanuman.com is an example of a site that has used magazine style writing to develop an audience for its yoga store. I was the lead programmer on that site. The Second Road has also lately seen dramatic growth of traffic on its blog.

I now understand how to launch and grow a content site. I’d like to work with a client who is attempting to set up a blockbuster.

I envision myself putting in 20 to 40 hours a month. I can imagine putting in 6 months like this, which would be plenty of time to get your site up and running. I will offer advice about technologies to use, writers to hire, and how to  pace the writing and payments of writers. I can do whatever programming fits into my limited time, though custom programming can easily demand more than 20 to 40 hours a month.

The subject of your site is not crucial to me. Whether your focus is fashion, sports, television, fishing, yoga, politics, sex, travel, health or more, I’m equally interested.

For the kind of site I’m thinking of, the initial budget should be between $50,000 to $100,000. Here I wrote some about what factors effect the price of websites:

How much do websites cost?

The types of clients I’d like to work with I’ve described here:

Who we would like to work with

I’d be willing to work for free as a consultant and programmer for your project, if you and I felt we were right for each other. Please contact me here, if you are interested:

lkrubner @ geocities.com

434-825-7694

danah boyd reflects on the Lori Drew case

Monday, December 1st, 2008

danah boyd makes some good points about the legal proceedings against Lori Drew, in the case that grew out of Megan Meier’s suicide:

Bullying is a horrific practice, but it’s also a common response when people struggle to attain status. Backstabbing, rumor-mongering, and enticement aren’t unique to teenagers. Look in any corporate office or political campaign and you’ll see some pretty nasty bullying going on. The difference is that adults have upped the ante, learned how to manipulate and hide their tracks. In other words, adults are much better equipped to do dreadful damage in their bullying that children and teens. They have practice. And it’s not a good thing.

Lori Drew abused her power as a knowledgeable adult by leveraging her adult knowledge of psychology to humiliate and torment a teen girl. Put another way, Lori Drew engaged in psychological and emotional child abuse. Child abuse includes the psychological or emotional mistreatment of a child. Unfortunately, most legal statutes focus on sexual and physical abuse and neglect because emotional abuse is very hard to substantiate and prosecute. But realistically, she should’ve been tried with child abuse, not a computer crime.

The fact that technology was involved is of little matter. Sure, she couldn’t have said those things to Megan’s face, but she could’ve hired a boy to do so. (How many movies have been made of boys being roped into teen girls’ humiliation schemes?) The crime she should be convicted of should have nothing to do with technology. She should be tried (and convicted) of psychologically abusing a child.

Why do we focus on the technology? Is it because it is the thing that we don’t understand? Or is it because if we were actually forced to contend with the fact that Drew was abusing a minor to protect her own that we’d have to face our own bad habits in this regard? How many of you have done something problematic to protect your child? I suspect that, at the end of the day, many parents could step in Lori Drew’s shoes and imagine themselves getting carried away in an effort to protect their daughter from perceived injustices. Is that why we’re so centered on the technology?

Michael Arrington still doesn’t know what he is talking about

Monday, December 1st, 2008

Michael Arrington has some advice for the auto industry. All of his advice is stupid and poorly reasoned:

But there’s a reason why the car companies can’t build the iPod of cars. It’s because they’re so weighed down with all the logistical nightmares of actually building the stuff that goes into those cars.

Translation: “I like idea companies like Apple so why do car companies do boring stuff like manufacture stuff? Wouldn’t it be cool if cars were made by young 20-somethings who sit around in garages and dream up visionary new softwa… uh, I  mean, cars? The car industry, as it actually exists, puts me to sleep, but if they gave up making stuff and focused in on ideas, I might almost find that industry interesting.”

Who’s the Intel of engine manufacturers? Why isn’t there one?

Translation: “Each industry should have companies that are just like the companies in the industry that I cover. I deplore the way the auto industry has a history, culture, cost structure, product and customer base that is different from the computer industry, and I want them to stop immediately. I will not tolerate variations among different industries, but, instead, I demand that all industries be exactly the same.”

The best way forward for the automotive industry is to rip itself apart and start doing things sensibly, like the PC industry does. It won’t make any one company more stable, of course. In fact, it means competition will regularly drive companies at every point in the process out of business. But none of those companies will be in a position to drive our economy south if they do go out of business. Someone better will just take their place.

Translation: “I don’t know anything about the auto industry. I do know a lot about the computer industry. I don’t want to think about problems that are unique to the auto industry because that would make my brain hurt. Even worse, I might have to think new thoughts. I’d prefer it if every industry was exactly like the computer industry, because that is the industry that I’m comfortable with.”

It won’t make any one company more stable, of course. In fact, it means competition will regularly drive companies at every point in the process out of business.

Translation: “I sort of realize that my bad advice will make car companies even less profitable and, yes, I am directing this advice to General Motors, which is almost bankrupt and which actually needs more profits, not less. But I don’t want to confront the contradictions in my reasoning because then I would have nothing to write about and, anyway, I love the sound of my own voice so I need a good reason to keep talking.”

 There’s a counter argument, that Toyota is the most vertically integrated car company in the world, and also the largest and healthiest. I argue that they’re the only ones that can do it profitably over the medium run in such an inefficient market because they have scale. If the market changes, which it is, that vertical integration model will fail.

Translation: “It’s important that people stop paying attention to the world’s most successful manufacturing company and start paying attention to me, even though I don’t know anything about manufacturing. The companies that I cover are cool and sexy and fashionable and manufacturing companies are retarded and I hate them so, clearly, my opinion needs to be listened to by decision makers.  I realize that Toyota has been gaining market share steadily for 40 years, and some morons will be distracted by that fact and thus fail to listen to me, so I now, boldly and in a visionary way, predict that next year Toyota will finally stop being successful and anyone who doesn’t do what I say will be really, really sorry.”