Wednesday, June 23, 2010

Web SIte Performance: Optimal Page Structure Vs. Reality

Recently, I had the opportunity to talk about Steve Souders' web site performance work with some old friends. While attempting to hammer home the importance of the Souders' performance techniques, I failed to mention one VERY IMPORTANT thing...

It's NOT an all or nothing proposition.

Along with the ideal, there are two VERY important points that need to be conveyed:

1. Not ALL of the techniques need to be deployed at the same time in order to have an impact. Implementing just a few can have a dramatic effect. The more the merrier BUT, all or nothing is DEFINITELY NOT the goal.

2. The techniques are not biblical in stature. There are times when the ideal is simply incongruent with the required solution. For instance, the recipe for optimum performance and IDEAL page structure is:

  • 1 static HTML file

  • 1 css resource

  • 1 image resource

  • 1 js resource

Ideal Page Structure:

        <!-- 1 css resource -->
        <link rel="stylesheet" href="[EXTERNAL_PATH]">
        <div id="container">
            <!-- begin content -->

            <!-- 1 image resource (to be used as sprite) -->
            <img src="[EXTERNAL_PATH]">

            <!-- end content -->

        <!-- 1 js resource -->
        <script src="[EXTERNAL_PATH]"></script>

        <!-- embedded js if required -->
        <script language="javascript">
            your.thing = new your.constructor({
                name1: value1,
                name1: value2

HOWEVER, while this may be the ideal, sometimes, you simply can't get down to a single resource request because of solution requirements. Case in point - if you need to add Google Analytics to your page, you're NOT going to hit the ideal - you're going to have more than 1 js resource.

So, in closing, the idea should always be to strive for the ideal and get as close as possible. Very simply put, taking 10 js requests down to 8 is a GREAT start. Don't skip it because you can't get 10 down to 1.

Monday, June 14, 2010

Apple likes my wife.

To date, I've built 3 iPhone Web Apps. None of them would be considered functionally unique or powerful by any stretch, HOWEVER... and it's a big HOWEVER... so far... ready for this?

Two out of the three have earned "Staff Pick" awards from Apple!

As much as I would like to take credit for being an absolute genius, it would appear that Apple has a thing... for my wife.

The two awarded iPhone Apps are "Mila's Tools", a simple Unit Conversion Calculator and "VeganMunch Kombucha Calculator" a simple Kombucha recipe calculator. Both are basically products of my wife, Mila.

The other App - Scott's Pinger, a simple web site monitor, of which I am very proud - got nothin'. Nada. Zilch. Zippo.

I guess I'll be asking Mila for more App ideas.

In the meantime, while waiting for Mila to tell me what App to build next, I decided to put a Mini-App of sorts together as a portal to all of my apps. The idea being, as I deploy new iPhone apps, they'll be listed in the portal app.

Check it out from your iPhone here: Scott's iPhone Web Apps. Don't forget to add it to your Home screen.

Back to the grind. Uhm... eh ehm... Mila? What am I building next?

Cannot Process Command: Internal Error.

*Knock, knock. knock.*

Apple? Hello? Apple?


Is there anyone even home over at the Apple iPhone Web Apps site?

For the love of Pete already. After all of the hubub from Jobs about HTML 5, Safari 5, Web Apps, iPhone 4 and all of the other greatness spewing from the pores of Apple, you'd think maybe they'd have someone over there keeping an eye on the Web Apps site.

Intermittently, THE VAST MAJORITY of the web app links point to this lovely page:

Cannot Process Command: Internal Error.Cannot Process Command: Internal Error. I'm now having nightmares about this page! How many e-mails do I have to send!? How many forums need to be screaming!?

PLEASE... someone at APPLE... FIX THE DAMN LEAK. Oh... wait... wrong rant... Nevertheless!!! FIX IT ALREADY!

K. I feel better. Love you Apple. :)

If you're experiencing the same issue at, please leave a comment below. A few more voices couldn't hurt.