Experiences On Running A Website For Profit, Part 1: The Beginning
I didn't intend to run a website to make money. Back in late 2000, the dot boom had already turned to dot bust, people were already being layed off left and right, and it was clear that websites, B2B, B2C, ... were no longer the "in thing". If you hadn't raised money for a web venture, then you weren't going to, at least not for a few years when the VC [venture capital] doors might start opening a hair's breadth. I knew all about every aspect of these things, because I was an independent consultant who was also loosely attached to a couple of startups. I say "was attached", but "had been attached" would be more accurate. My skills hadn't changed any, but the climate had and every startup I knew was busy closing their doors. If you weren't in, then you weren't going to be in, no matter how "attached" you were. If you were in, there was a good chance that you wouldn't be very shortly. In fact every startup I knew of went rapidly back to the "twinkle in the eye" stage, with their principals looking for work.
So, all in all, not an auspicious time to start a web venture. But then, I didn't think I was starting a web venture. You see, my first book was just about to be published (Java Performance Tuning, O'Reilly). And like every author, I was sure that my book was brilliant, that every Java developer in the world would go rushing out to buy a copy, that they'd all be clamouring for my attention. And naturally, I needed a place where people could contact me. So I started a website, using the name of my book as the domain name, "JavaPerformanceTuning.com". A few people pointed out to me that this was a pretty long-winded name. But then I wasn't thinking in terms of people typing in the domain, this wasn't ebay. It was just a point of contact. I figured most people would get my name from the book, do a search for "Jack Shirazi" and click through from the search; or go to the publisher's website, and find a hyperlink that just clicked through to the site.
Up front, I knew there had to be something on the site more than just "this is me and this is what I do". I mean it's all very well to get the odd click-through to your site, but how many people are interested in your bio? And after they've read the bio, what more is there? No, I realized up front that this site was going to be a support site for my book, so I started putting together resource pages and stuff. I also realized that this would be a good place to list anything that interested me about Java performance, since if it interested me, it might well interest other people (ah, ego). So I pulled out any tips from interesting pages online, and by the time I opened the site I already had a thousand Java performance tips. I guess I had more time on my hands back then.
My favorite opening tip was one from an Intel document on optimizing software running on Intel chips, which included a section on Java. My tip said
- "I've only included this here because it's so (unintentionally) funny. Their only tip seems to be "use the JNI to write it in native code", which is not even a good tip."
Not long after I put that tip up, the referred to Intel document was deleted from Intel's website, which made me feel quite good. Of course it could have been a coincidence, but I like to think that some of the half a dozen people or so visiting the site in the first month were influenced enough to make Intel make the change. I like to think that, but even the vainest part of me recognizes that coincidence is a far more likely reason. More recently, Intel has published interesting and informative articles on Java, so like everyone else they've come to take it much more seriously. So kudos to them, always good to see a company reform its ways and get away from the dark side.
So the site was opened (October 23 2000), and I registered on a dozen or so search engines. My first hits came in almost immediately! Whoah, I was excited. Suddenly I could see fame and fortune rearing ahead of me. On the first day alone I had 25 hits. I calculated that if only one in 10 was interested in my services, I'd be rolling in it. Yes!
Boy oh boy, how naive can you be! Well I'm not sure about you, but clearly I can be pretty naive. One in ten. I crack up now just thinking about the idea that one in ten clicks might get me anything. Bear in mind I was not even thinking unique site visits, or even page views, at the time. I was actually calculating ahead my affluent future based on hits to the site, and a ten percent response rate! If all this is another world to you, and you can't see the reality dislocation, it's like expecting one in ten viewers of a TV advert for double glazed windows to call in to the advertised telephone number. And that includes the viewers who taped the advert and wind through at fast forward, and the viewers who popped out to get a drink, etc. If that happened, you could think in terms of a world where the biggest one hundred companies are all TV stations. Not going to happen. If a million people watch an annoying TV program (not advert, a program), you might get ten of them calling in to complain. If it is a nice program, you might get one calling in to praise it. The web is much more interactive, but one in ten responding? Not going to happen.
And what about those first 25 hits? Number one was the Altavista spider. Number two the Lycos spider. In fact all 25 were either one of these two spiders, or me looking at the site, or someone from O'Reilly who was checking it because I had asked them to put a link from their page of my book to my site. Day 2 saw a friend hit the site, day 3 saw the Googlebot. If I had bothered to analyze my meager ration of httpd log entries, I would have quickly realized that it was going to be a long slog before I had even ten people hitting the site.
Next time, in part 2 "Keep 'Em Coming", I'll talk about the two important aspects in getting people to come to your site. Meanwhile, you might want to check our latest newsletter (March 2004)
- We list all the latest Java performance related news and articles
- "performance news continues to show just how hot Java performance tools are this year"
- The Commando Pattern
- "The Commando Pattern provides specialized access to methods and variables to enable optimal performance in critical and non-critical sections of code."
- Kirk's roundup of performance discussions over the last month covers memory tuning, caching, session state, obscure flags, 1.5 enhanced loop and more
- "good news on the enhanced loop syntax found in the JDK 1.5. There is no performance penalty for using the new syntax."
- Javva The Hutt rambles through performance past, present and future. Javva continues his diary and writes a memory monitor with some interesting side effects
- "I've written a little memory monitoring class ... It also has some extra features which ... well, lets just say they are proprietary."
- Question of the Month: Why is a long primary key bad for performance?
- "Good primary keys are essential to good database design."
- All the latest Java performance tips extracted in concise form
- "The practical difference between a 95 percent cache hit rate and a 96 percent cache hit rate is 20 percent!"
- A new cartoon by "profiler". This month: reducing unnecessary communication overheads
And for those of you might have missed the previous February newsletter, here are those links
- We list all the latest Java performance related news and articles
- "any system that doesn't have low overhead monitoring capabilities on it's basic statistics is really not a mature system."
- Learning From Code: Fast Random Access.
- "How many interfaces are there in the JDK that have no fields and no methods? What are these interfaces used for? Read on ..."
- The roundup of performance discussions over the last month. Kirk covers object relational mapping tools, the performance difference in iterators and enumerations, different GC algorithms, and more
- "Certainly the NIO package has received some attention [in 1.5] as preliminary results have caused at least one jaw to drop. "
- Javva The Hutt rambles through performance past, present and future. Javva finds he's become a news star
- "more than one internal website now featured a picture of me in one of those "Wanted, Dead or Alive" posters."
- This month's interview with Lax Sakalkale, Senior Product Manager of the Optimizeit performance solutions
- "we have Lax giving us almost a manual of how to proceed to ensure you achieve good performance in your project, especially noting which pitfalls to avoid"
- Question of the Month asks how to choose which feature to use
- "Write beautiful code; then profile that beautiful code and make little bits of it uglier but faster"
- All the lastest Java performance tips extracted in concise form
- "Trust hard numbers from a performance tool more than a document claiming that only one SQL statement will be issued per user transaction"
- A new cartoon by "profiler". This month: reading in parallel