Who’s site is faster – yours or your competitors’?

After I presented ShowSlow at Velocity Online Conference two weeks ago, I got a lot of suggestions regarding the software or a public instance and one of them was from Steve Souders who recommended creating a comparison page where people can see rankings for different sites compared over time.

It immediately resonated with me (G vs. Y! spirit) as I always try to create thought provoking features within ShowSlow that can help business people and developers ask new kinds of questions about their systems. In this case, the question is obvious – “Am I better then my competitors?“.

You can click “Compare rankings” tab on ShowSlow.com to see who is better – Google, Yahoo or Amazon?

Google vs. Yahoo! vs. Amazon YSlow ranking over time

Or you can just enter the URLs you’d like to compare and ShowSlow will display rankings graph for YSlow or PageSpeed (granted that data for these URLs was collected).

Each instance of ShowSlow can have it’s own it’s own set of URLs configured to link from “Compare rankings” tab so you can have your own competition (external or internal) measured.

Send me your fight stories or effect this tool had on your business folks, I’m very interested to see if this thing sparks the interest in performance project you’re running.

Thanks Steve!

Automating YSlow and PageSpeed using Xvfb

I’d like to welcome Aaron Kulick to ShowSlow team!

Aaron was active user and contributed a few patches and then started to actively contribute documentation to the project wiki: showslow.org.

Now Aaron is a full-blown contributor with SVN access and his first contribution is solving the most common problem – how do we automate YSlow and PageSpeed in a headless mode.

He created an automation section in the repository, feel free to check out his code and share your experience: http://code.google.com/p/showslow/source/browse/#svn/trunk/automation.

In two words, all you need to do is:

  • Run a memory framebuffer server (Xvfb)
  • Then configure Firefox profile(s) with different settings disabling some features that require user intervention and enable autorunning the extensions and beacons
  • Then you just create a list of URLs to test and feed it to test_harness.pl script that will launch Firefoxes appropriately

monitor.sh is a simple shell wrapper around the harness script that you can simply run from the cron job.

For more information read the README file and I hope we’ll have more documentation on showslow.org as well!

Please join me in thanking Aaron for this important tool!

Also, just a reminder, if you are not subscribed to a mailing list / google group, you can do that here:
http://groups.google.com/group/showslow

ShowSlow presentation at NY Web Performance Meetup


I gave extended presentation about ShowSlow at New York Web Performance Meetup yesterday and I hope I was able to inspire people to start tracking their web site’s performance over time and thinking about your metrics that they want to collect for their business.

There were a couple questions about automation so here’s the blog post I wrote about automation a couple months ago: Automating Page Speed and YSlow monitoring.

Also, here’s the simple script that can be used with ShowSlow:
http://code.google.com/p/showslow/source/browse/trunk/showslow.sh. By the looks of it you can tell that it’s relatively simple to do.

You might also want to look at about:config preferences for Firefox to see if any of them affect you, e.g. forcing Firebug to open and grade each page, cache storage, automatic updates of extensions and stuff like that. I hope to have it documented better in near future.

Best way to learn more about ShowSlow configuration is to read
documentation on ShowSlow.org

If you’d like to just try the DEMO instance, go ahead and configure your YSlow to post there or just use export menu in PageSpeed or NetExport.

I’d like to also thank our host Logicworks and Stephanie personally for hospitality – it’s great to be welcome!

At our next session, on April 15th, Nicholas Tang is going to demo WebPageTest.org – free, web based performance analysis site that uses AOL Pagetest open source tool developed by Patrick Meenan. This will be first in a series of “Tools” sessions where I hope we’ll cover many useful details of them all.

I hope to see you all next month!

P.S. A few slides I had are on SlideShare, the rest was a demo and is not available, unfortunately.

Limit URLs, DBUpgrade and HAR beacon in ShowSlow

I added a few features to ShowSlow in a past couple weeks, but being also busy with HowDoable, I didn’t have time to write about them so here you go – a short digest:

Limit URLs using PCRE regexes

You can now limit URLs to be accepted by ShowSlow using PCRE regular expressions (thanks for initial patch from Aaron). All you need to do is to use a regex instead of just prefix in $limitURLs array – ShowSlow will automatically detect that it’s not a URL prefix and match against it using preg_match.

DBUpgrade for easy data schema upgrades

DBUpgradeI’ve started to use another open source project of mine called DBUpgrade to help you with database schema upgrades going from version to version. Going forward, if you’ll need to upgrade the schema, all you’ll have to do is run php dbupgrade.php or just make (which is going to run svn update too). tables.sql will still contain latest schema so feel free to update manually.
DBUpgrade requires MySQLi module to be configured with your PHP, it is also recommended if you’re using MySQL 4.1.3 and later (and you should be).

HAR beacon

And finally, I worked with Jan “Honza” Odvarko who is one of the lead developer of Firebug and related extensions to add HTTP Archive (HAR) support to ShowSlow and beacon support to NetExport Firebug extension (use v0.7b12+) that allows to save contents of Net Panel and later view it. HAR is also supported by HTTPWatch, a tool that created original xml-based export format HAR was based upon.

By default, beacons are sent to http://www.showslow.com/beacon/har/ but you can reconfigure it to point to your own instance using extensions.firebug.netexport.beaconServerURL Firefox config variable (at about:config).

NetExport beacon menu screenshot

You can see sample result here. For configuration options, see documentation on showslow.org

That was a lot of stuff – I should be reporting about developments more often.

Go ahead and try it all, let me know how it works and if you have any troubles using these features. If you feel you need more features in ShowSlow, go ahead, submit them to our UserVoice forum and email the mailing list to discuss and gain supporters: http://groups.google.com/group/showslow.

Update: See also post by Honza about this: http://www.softwareishard.com/blog/firebug/share-har-logs-online/

Ability to drop query string from URLs in ShowSlow


Sometimes query strings can differ for a reason un related to performance and you want to have them ignored as all pages that are identical before the ? mark have the same characteristics.

Thanks to rachenj who submitted the bug to Show Slow bug tracker, now we have this feature.

Configuring query string pruning is easy, just set $dropQueryStrings = true if you want to drop all query strings or set it to an array of URL prefixes to match.

You can find full documentation on the wiki:

http://www.showslow.org/Installation#Drop_query_strings_from_URLs

Go ahead and download latest code from trunk:

http://code.google.com/p/showslow/source/checkout

Have fun and post your suggestions to the mailing list and bug reports to the issue tracker.