Thursday, September 27, 2007

Advertising bubble to burst or a new tax: take your pick

The dot-com bubble burst

I fully expected the dot-com bubble to burst.  The entire premise driving all the enormous bank loans, the promise of huge returns from the newly discovered worldwide market, was mistaken.  Obviously.  It's old news now, so it won't impress you for me to recite it as I understood it before it happened, but indulge me while I recite the reasoning, because I predict it will happen again.

The premise behind the dot-com boom was that a small upstart company could reach the ends of the earth with their marketing and sell an unprecedented amount of their products and services.  What they failed to account for was the finite quantity of expendable income in each household and business.  Just because everyone can suddenly sell their wares to virtually everyone on the earth, that does not mean that everyone on the earth can suddenly afford to buy everyone's wares that are suddenly available to them.  Consider: these web sites were built to make money by collecting that money from people.  For that to be successful, these new customers would have to reallocate their money to this web site from something else they would have spent their money on. 

It's so basic, but somehow people missed the repercussion of this: overall, the web couldn't generate the enormous amount of money it was supposedly destined to.  Take Frank, who used to buy their diapers at the grocery store.  Now Diapers.com wants Frank to buy diapers from them instead.  Frank decides to go with the online diapers, and spends less at the grocery store.  The grocery store now makes less money.  Money wasn't created out of thin air here, it was just spent in a new place.  Now consider that many web sites were selling diapers.  There is a fixed number of people in the world even interested in diapers, and grocery stores were happy to supply them.  Add a few dozen web sites that want to sell them, and a few people might switch, especially with online discounts, but in the end no new money was generated.  And each web site would only collect a small number of people. 

Now instead of diapers (hey, I just had a baby a few months ago), just substitute in each product or service that was available.  With a finite number of people with a finite budget, you don't get the orders of magnitude growth people were predicting.  When this realization spread around, we had the enormous implosion we know as the dot-com bubble burst.

This didn't come out as clearly as I had hoped, and as clearly as I think I have it in my head.  I hope it makes sense to you.

An advertising bubble that's getting thin

Now consider the overall feeling people have for the web: if it's not free, it's worthless.  Ironic, but very true.  No one wants to pay for online email, storage, search or backup.  There are plenty of free services on the Internet right now offering these, sponsored by advertising.  Why pay when you can get it free, right?

Well, why do those advertisers sponsor your free storage and email?  Because they hope you'll click on their ads and spend your money on their wares.  But wait... we just agreed that people don't like paying for stuff on the Internet.  If it's digital products or services (highly profitable because it can be produced for virtually nothing) people will expect it to be free.  How do you make a business out of that?  We just covered that as well: advertising.  You can make anything free by sponsoring it with advertising. 

So what we have is a self-supporting circle.  A perpetual motion machine.  An outlet that provides power from a plug that plugs into... itself.  If nearly everyone gets onto the advertising bandwagon in order to provide free services, no one can make money and the system will collapse.

Except for one market: tangible, retail goods.  People will expect to pay for their diapers for a long time yet.  If a diaper manufacturer chooses to advertise on a web site and a person clicks their ad, that person is likely to be willing to pay money for the product.  This is where the new Internet tax will come into play.

Those products that actually can make money in and of themselves (like diapers) will effectively be sponsoring the entire free Internet.  Since we've seen how advertising cannot pay for itself in an endless circle, those who actually make money by selling material goods will end up supporting the whole infrastructure.  Where will they get the money to pay for all these free services on the Internet?  Why from all of us, of course, through the diapers they sell.  With every product you buy, whether on the street or on the Internet, a huge chunk of what you'll be paying will go toward advertising expenses.  And thus everyone who buys real goods (which is everyone) will be paying for the "free" services on the Internet. 

When everyone is paying for everything that is supposedly free, doesn't that sound a bit like communism?  Capitalism suggests that if people pay for the services they use (as opposed to all services regardless of use through taxes), that competition will bring the best innovation and products to market and the invisible hand gets to work.

The middle ground

But people won't pay that much for diapers.  Competition will come in and those who don't advertise as much will offer significantly lower prices on diapers than those who do and people will figure that out and buy the cheaper ones.  The advertising revolution that makes everything free will not have the funding it requires.  Advertisers won't make the money they thought they would, and will cut back on their advertising budgets.  Web sites that were once free will have to charge something either for all their services or for some premium offering.  And the whole advertising industry that supposed to boom on the Internet in the coming years will be much smaller than the experts seem to anticipate.

I believe we're at least halfway to the end result now.  I don't actually expect for us to reach the extremes I described here in the process of reaching the end.  Both the factors that went into my dramatic extremes will work to keep us somewhat in balance along the way to realizing that just like the dot-com burst, the advertising arena isn't a magical bullet to an enormously huge economy.

Monday, September 10, 2007

Back to Blogger

I left Blogger back in October 2005 to switch to Community Server as my blogging platform.  I had the fortune of working at an institution that was happy to lend me some server space where I could host it myself.  Now I need to move off of their server, which left me wondering which blog platform to choose.

The search for a blog system

I considered GoDaddy, which offers a red-carpet of a Community Server setup for just a few dollars a month, but they limit database size to 200MB and mine was over 400MB.  Also, there was no convenient story (that I could figure out anyway) for transporting all of my existing posts and comments to that server, since they do not let you restore databases that were backed up from a non-GoDaddy server, and their interface for executing database commands directly against their server is a joke (exactly one operation at a time -- no 1MB SQL file that will regenerate all my data at once).

I was about to switch to BlogEngine.NET and stick with GoDaddy as my hosting provider.  BlogEngine.NET had the advantage of no dependency at all on a database but rather uses XML files on the web server (actually that being an advantage is arguable).  It might have worked, but their themes don't look as nice, and I found many features lacking.  I actually spent an afternoon adding OpenID support to it, but OpenID on .NET 2.0 (which is what GoDaddy is limited to) requires unsafe C# code which GoDaddy of course will not allow.  So I realized I was spending a lot of extra time building up an open-source blogging engine in order to use features that wouldn't work with my hosting provider.

After considering one other hosting provider and finding them unreliable, I looked back to my roots: Blogger.  I left it a couple years back because I found it limiting in what I could do to the template.  Looking at it closely lately, I see that I can do almost everything to it that I could with any other blogging engine.  I can't make it support OpenID or InfoCard (as I would have liked on my blog) but I couldn't do it with any of those other blog platforms either so I haven't really lost anything.

Moving my posts to the new blog

But I still had the problem of moving all my posts from Community Server to Blogger.  Microsoft's Windows Live Writer offered a smart client app that could download posts from my Community Server blog and then post them to Blogger, but the process was one post at a time and tedious.  To make matters worse, the publishing date for every post would show up as the same day (today).  I really didn't want that.  Blogger also doesn't let you pre-date posts using their web UI.  So I couldn't manually fix each one either.

Well, Blogger offers a .NET API for manipulating your posts programmatically.  In about an hour I whipped up a C# app that would read the atom feed from Community Server and upload every post up to Blogger, preserving the content and publishing date of each post (anyone want the program?).  I did run into the problem that Blogger only allows 50 posts per day.  Of course I didn't know about this policy, so I banged my head against the wall for a couple hours trying to figure out why posts were supposedly successfully uploaded (their API returned no errors) and yet they didn't show up in Blogger.  I'll finish uploading my posts in 24 hours when my counter is reset.

I was not able to transfer the comments.  They weren't included in the atom feed from Community Server that I was reading, and Blogger's API doesn't appear to provide an interface to add comments programmatically.

Forwarding users to the new location

It's simple enough to forward visitors who used my home page and newsfeed URLs to the new locations.  But each of my 64 posts will need redirectors as well.  That's a lot of tedious redirecting pages to write.  Not sure how to best handle that -- yet.  But I think I'll write a script to automate it. 

And about those inter-post links that are now bad

I have lots of intra-blog post links in my blog.  All those links now have invalid URLs.  Grrr.... another C# app to whip up.  After uploading the posts to the new location, I'll download atom feeds from the old and the new blog system, find the correlating posts and build up a URL substitution dictionary, and then programmatically go through each post on Blogger and do a search-and-replace for each link. 

In fact that same app should be able to create the redirect pages I need as well.

Tuesday, September 04, 2007

An update on the cloned Gmail interface using WPF

I've spent a couple dozen hours now working into the details of the Gmail clone I began about a month ago. I've been learning more of the ins-and-outs of WPF's RoutedCommand model and how to process keystroke input. While WPF has a very powerful routed event model, it's so very different from WinForms that it's taken me several hours to get the hang of it -- I'm still working on it too.

Anyway, although I am not yet free to post the source code or to publish a working binary of the app for you to try out, here are a couple of recent screenshots from the current version: