What is Larry Thinking? #2 => Creating a Successful Web Site, Part 2

July 10, 2007

In this edition…

About this Newsletter

First, my apologies for the search and replace snafu in the first newsletter. Quite embarrassing. As a couple of you had surmised, I did a massive search and replace but failed to proof the result before sending it out (d’oh!). I was trying to figure out how the mailing list software turns the HTML version I provide into the plain text version some people choose to receive. So I started by using the STRONG tags, then replaced those with EM, and then replaced those with B. The B tags worked for the mailing list but turned “email” into “bail” and “system” into “systb”. Did I mention “d’oh”? Of course, what would have worked (besides proofreading again) would have been to search for EM>, which would have caught the opening and closing tags but nothing else.

Second, thanks to those that responded to the first newsletter. I like hearing any feedback, good or bad. Please keep your comments, questions, and suggestions coming. The policy is that your replies are encouraged although I may not reply back so if you absolutely need an answer, please use the corresponding forum instead. In this newsletter, I am including my reply to a question I received already.

Third, I’ve posted the first newsletter on the Web site. This, and all future newsletters, will be posted in there as well.

Fourth, in proofing this edition of the newsletter, I think I’m going to have to work harder about making them shorter!

Q & A => Why not do a blog instead?

One of the questions I received in response to the first newsletter was: Why don’t I do a blog instead of a newsletter? It’s a good question. A blog, of course, would be just an online version of the same thing. In fact, I did think about using the most excellent WordPress to simultaneously post the newsletter content online (mostly because WordPress would make browsing and searching the newsletter archives easy). The benefit of doing a blog would be that people could post comments right there, encouraging a more active discussion, which is something I’d like to see. However, the reason I chose a newsletter over a blog is that a blog still requires people to visit the Web site regularly to check for updates. With an active blog–multiple posts per week–and a poster that really has something to say, I could see how you’d have a strong, recurring audience. With how I envision this newsletter, it just wouldn’t be active enough to merit frequent visits and I expect people would eventually forget and stop coming. Whereas I hope, with the newsletter, people will read a book, like it (hopefully), and want to be kept informed of new developments, even if that’s months or years later when the specific topics aren’t necessarily at the front of their minds. That was my thinking, anyway. The downside to the newsletter is that it makes it harder to have an open discussion (referring people to the forum is the best compromise I can make), which is unfortunate.

On a more trivial note, I’m just not a blog person. Like many people, I get annoyed by things that are hyped. As with most hyped things, there are many good uses of blogs out there but there are also a lot of people that don’t really have that much to say, and many blogs end up being just links to good posts at other blogs. So when I think about doing a blog, my mind goes “Great, yet another blog.”

On the Web => Improving MySQL Performance

I’m not sure why I hadn’t seen this site before, but in a MySQL presentation I downloaded I found out about the MySQL Performance Blog. Some of it may be a little advanced, but there’s lots of good things in there. Unfortunately, to really understand how to improve MySQL’s performance, you have to understand the very inner-workings of the database application, which is something that even I’m hesitant to spend too much time on. But for the average user, resources like the MySQL Performance Blog can teach you general trends, even if you don’t pick up on all the underlying justifications.

From the MySQL Performance Blog (I think), I found this article on doing ORDER BY RAND() in MySQL. As you probably know, the ORDER BY RAND() is a simple way to grab results in a random order. What it isn’t is efficient. For most Web sites, where maximizing performance isn’t critical, that’s not a problem. But on very active, demanding sites, it can be too constraining. The article, which is a bit advanced, goes through some alternatives and analyzes the performance implications of each. To retrieve a single row from a table, the most efficient technique would be to retrieve the maximum ID number, then find a random ID less than that using PHP (or whatever), then do a query to select that ID. This requires two, very simple, queries. Alternatives include creating a randomized table (one table copied to another in random order) that is re-randomized behind-the-scenes.

What is Larry Thinking => Creating a Successful Web Site, part 2

In Part 1 of this article, I talk about the first step in creating a successful Web site: identifying the intent. Here is the rest of the article…

Part 2: Content

Once you have your intent, you can start building your content. The content is the Web site itself, consisting of data, appearance, and functionality. Data is at the heart of the site: the items you sell, the information you’re providing, etc. Appearance is a matter of style: layout, design, whatever. Functionality is the glue: the code, the databases, the behind-the-scenes stuff.

Without a doubt, the content has a big impact on the success of a site. There’s a saying in Hollywood that you can make a bad movie from a bad screenplay or a bad movie from a good screenplay or a good movie from a good screenplay but you can’t make a good movie from a bad screenplay. I think there’s a similar relationship between content and success. You can be unsuccessful with good content or bad and you can be successful with good content but you can’t be successful with bad content. I’ll briefly discuss how to be promote success with each content component.

Having good data is very important, but not something that any one resource could tell you how to get. If you’re selling something, it has to be worthwhile, properly priced, whatever. If you’re providing information, it has to be accurate, useful, well-written, and so on. Hopefully you, as the expert on your site’s subject, can tell what’s good data and what’s not.

The appearance of a site is one of the most popular topics when it comes to Web development resources. Being successful in this area is mostly a matter of having a keen eye and staying abreast of current conventions. Personally, I’m pretty good about the latter (just read everything you can find and surf the Web!) but I’m not great about the former. I just don’t have a graphic designer’s mentality. If you’ve got a site that you’re trying to make money with, spending a little cash up front to get a top-notch look (assuming you can’t do that yourself), is a good idea. If I’m working on a site that needs to have a professional and custom look, I always pay someone else to make sure that gets done right.

Most of my work focuses on teaching people how to create a site’s functionality. I think it is something that the average person can do and do well enough. The good news is that functionality basically comes down to works/doesn’t work. And it’s pretty easy to see where your site is on this scale. It does take some practice to create a really smart functionality, but, again, this is something you can achieve. It’s like building a house: it’s really not that hard, you just have to be willing to try (and, yes, I’m pretty handy, so I speak from experience with this metaphor).

The thing that I suspect many people don’t realize is that a successful Web site is not just a matter of creating the content–even great content–that addresses the intent. Say you want to create a site that does X for Y people. And then you go out and make a great site. Totally awesome. The best site you could possibly make that does X for Y people. It looks great; it functions perfectly; the data is flawless. Will it succeed? Maybe. The fact of the matter is there’s normally a third piece to a successful Web site…

Part 3: The “X” Factor

What most people seem to overlook is: how are users going to find your site? The success of many sites depends upon people using it. The simple fact is that just putting a site online is not enough to get the necessary traffic. So how do you? With either luck or money, and you can’t count on either.

Luck is a matter of having some celebrity stumble upon your site and like it, then mention it the next time they’re on a talk show. Or knowing someone in an industry with potent word-of-mouth. Things like that. Somehow something beyond your control happens and now many, many, many people know about your site.

Money buys marketing. To be entirely truthful, I’m not a marketing person. I don’t know much about it, I don’t do it myself, I hardly ever think about it. This has never been a problem for me because marketing has never been my role (although I do suspect I could have more success if I did think about, or spend money on, marketing). Marketing is important, especially with Web sites, where marketing can be the difference between a hit and a miss. And, for the most part, marketing takes money. You might be able to get some attention by working the Google rankings but really powerful attention requires a wallet.


My point in this article isn’t that it’s impossible to create a successful Web site (just the opposite, really) or that you need to spend thousands of dollars. One of my most successful projects, gets one or two visits a week for 17 weeks a year from 20 people. That’s it. The site does what it should for the target audience and I’m quite happy with it. I’ve also worked with some people that had a great idea and spent $10,000-$15,000 (US) marketing that idea, only to have it still fail. (Which, as an aside, is a way of pointing out that you can more reliably make money working on someone else’s vision, even if that vision never pans out.) What you need to do is have a clear goal, execute that goal well, and then possibly have a little something else (luck or money). Above all, understand that your expectations go a long way towards determining success or failure.

Book Giveaway Update

You must be subscribed to the newsletter to qualify for the book giveaway.

My Book News

Not too much to report this week. The final edits on the Ajax book are complete. It should go to the printer in the next couple of weeks and come out three weeks or so from there. Maybe I’ll talk a bit more about it when it comes out.1

I’ve completed the rough table of contents on the Adobe AIR book, which is always a good step. I’ve also written the first two chapters. Chapter 1 is on installing the AIR runtime, installing AIR applications, and running them. Chapter 2 is on creating your first AIR application using HTML, any text editor, and the Adobe AIR SDK (Software Development Kit). Thanks to AIR it’s surprisingly easy to create cross-platform desktop applications! Chapter 3 will be on creating AIR applications using Dreamweaver (CS3, with the AIR Extension) and Aptana. If you’re not familiar with it, Aptana is an open-source IDE based upon the popular Eclipse IDE. It’s Java-based, which means it can be slow (although it wasn’t for me) and requires a lot of memory (200MB on my computer!) but it’s very sharp and free! Lots of good JavaScript support built in. I’ll write more about AIR in future newsletters, as I’m really excited about the technology.

I’ve completed a rough table of contents for the third edition of my “PHP and MySQL for Dynamic Web Sites” book, due out by the end of the year. The book will be tentatively titled “PHP 6 and MySQL 5 for Dynamic Web Sites” to reflect the latest editions. Unlike the second edition, which supports PHP versions 4 and 5 plus MySQL versions 4 plus 5, I’m going to drop PHP 4 and MySQL 4.0 support from this edition. I know many people aren’t using even PHP 5 or MySQL 5 on their hosted sites, so the current edition will remain available. But it’ll be necessary to drop support for older versions of both technologies, as trying to be too supportive would result in a book that’s spread too thin.

I’m also doing some online writing for a commercial company in support of one of their products. I just wrote five little articles about Smarty, a template engine. Many readers have asked me to write about this, so maybe I’ll talk more about Smarty and let people know about the articles once they’re public.