April 27, 2010

Minor Update to Free Scanning Service

Cartoon picture of a software bug

We rolled out a minor update to our performance scanner software today to address a few bugs and add a feature. We are considering a more regular release cycle, perhaps weekly, of bug fixes, new checks, and new feature. We will keep you posted.

Style Attribute Parsing Bug

We had a bug when parsing CSS information stored in the style attribute for a tag that prevented Zoompf from detecting some references to background images. This has been fixed.

HTTP Compression Reporting Bug

There was an off-by-one bug in how we reported compressible responses that were not using HTTP compression. Our report would say show X number of affected URLs in the Savings Table but report would say that X+1 number of URLs were affected. This has been fixed.

Support for background Tag Attribute

Zoompf would only detect background images that were defined in CSS using the background or background-image properties. Older websites can use the background attribute on the <BODY>, <TABLE>, <TR>, <TH>, or <TD> tags to reference at background image. Zoompf will now detect these images and assess them for performance issues.

April 15, 2010

Getting Hard Numbers for Performance Savings

It’s human nature: People want to know what they are going to get in return before they do something. This is especially important for web developers and front-end designers concerned about web performance. Knowing the savings benefit from an optimization (along with the effort it takes to implement) is critical information required to properly prioritize your web performance optimization tasks. Its often required information to persuade project managers to devote resources to optimizing a website. Developers and designers need hard data about how much savings they will get when they implement a certain optimization. They don’t want rough estimates, or statements like “typical savings is 15% to 20%.” No, developers and designers want “This file is currently size X. If you make Y optimization, it will be reduced to size Z.”

To address this very issue for we have added a new feature to our free web performance scanning service: Savings Tables. With certain performance issues, the Zoompf report will have a Savings Table. It tells you what URLs were affected by the issue, what optimization tool you should you, and exactly how much savings there will be when you optimize the resource.

Savings Tables cleanly illustrate the benefits of common optimizations like minification and compression. Savings Tables for lesser known optimizations, such as PNG8 candidate images, Oversized Gradients, and reducing JPEG quality, can educate web developers and designers about the significant effects these techniques and how to optimize their websites even further.

Let’s use this Zoompf Performance Report for O’Reilly as an example. The Savings Table shows that HTTP compression can save O’reilly 73%. We see a similar breakdown for CSS minification and JavaScript minification.

Unexpected Savings

Then we come to something interesting: Oversized Gradients. This is where a very thin image is repeated using CSS along the X or Y axis to create a gradient background for some page element. Often web developers believe that converting a 10 pixel by 80 pixel gradient image into a 1 pixel by 80 pixel gradient won’t reduce image size by any reasonable amount. However, the Savings Table shows that O’Reilly could reduce the size of its CSS gradients by 22%! Multiple that out of over a day of traffic and we are taking serious savings. The Savings Tables demonstrate the value of other optimizations as well. Converting the candidate images identified by Zoompf to PNG8 will save 61%. Reducing JPEG quality to 70 would save 30%. And so on.

To justify the cost of implementing performance optimization, web developers and designers need hard numbers. The Savings Table feature of Zoompf’s free web performance scanning service can help you the information you need to fully understand the benefits of optimization. We also hope this new feature helps you discover a new technique to speed up your website that you didn’t even know existed. Remember, our free web performance scanning service is available for anyone to use as much as they want, as often as they want, on any site that they want. Scan your site today and see how you can save.

This just in: Zoompf is real.

As anyone from a college fraternity or sorority will tell you: It’s not real until you have t-shirts.

Photograph of a black polo shirt with the Zoompf logo

April 14, 2010

No. More. Downtime. Damn it.

Things have been a little shakier with our new online performance scanning service the last 2 days then we would have liked. And while we have an amazing team none come from an operations background. This makes managing and maintaining an always-on, always-in-use system a painful learning experience. Case in point: yesterday was Microsoft’s Patch Tuesday. Like the smart, security-minded folks that we are (who want to avoid the painful Exploit Wednesday), we have Windows automatic updates turned on for our scanning server. Oh wait, doesn’t automatic update mean a system reboot? Oh crap, when it reboots at 3:00am, will our scanning software come back up? Hmmm. Looks like no. Hence some unplanned downtime.

We apologize for the availability issues over the last few days, first with our hosting provider and then with our systems. In some ways having availability issues is a good thing: it means enough people know about you and are using you that they notice when you aren’t there. Of course, the much more painful downside is that you aren’t available and the first impression someone might have of you is a broken tool managed by people who doesn’t know what they are doing.

These are silly, stupid, amateur mistakes. We will do better. Specifically we are working to improve the quality of the connection between the website which accept scan requests and displays reports and the scanning server. We plan to introduce better error handling, as well as status updates to tell you what’s happening while your report is being generated. We plan to introduce an email fallback system, where if something does go wrong we notify you are allow you to enter an email address to email when the problem has been resolved and your report is ready.

Thank you to the thousand plus people who have used Zoompf’s service over he last 4 days. We hope you continue to do so. We are committed to making free, high quality tools to help developers make faster websites. Any feedback, questions, comments, or hate mail should be sent to info@zoompf.com or on twitter @zoompf.

Smashing Roaches

Since releasing our 100% online web performance scanning service 3 days ago we have checked over 1600 websites for performance defects. This is awesome beyond words! In the course of scanning those 1600 websites, we found some bugs in our own technology was well. That is not so awesome, but it is kinda funny. In this post I’ll share with you some of the issues that came up over the last few days.

Cartoon picture of a software bug

Hosting Provider Failure

When you submit a website for scanning to Zoompf, our Zoompf.com website contacts our scanning server and adds the job to the queue. When the scanning server is done with a job it uploads the results to Zoompf.com. While you wait, looking at a spinning progress bar, behind the scenes the web page is using Ajax to see if the report has been uploaded to the website. Unfortunately, our scanning server was uploading so much report data so quickly, it exceeded some settings our hosting provider for Zoompf.com had set. And so our hosting provider had the brilliant idea to just black list the IP address of our scanning box. When the scanning server tried to upload the results, our hosting provide kept terminating the connection so we had no way of uploading the reports onto the website. Worse, this was only a one way block! Job requests could get sent from Zoompf.com to the scanning server, but reports coming back could not be uploaded! This was the main cause of the outage we had yesterday afternoon. Needless to say we have a very stern conversation with our hosting provider so this shouldn’t happen again.

Far Future means FAR!

Sometimes people take performance advice a little to far. Take for example esb-alumni.de. When we assessed the site our performance scanner would crash. Turns out this website is setting a far future date using the max-age directive in the Cache-Control header. The only problem the website tells browser to cache resources for 316,224,000,000 seconds or around 10,000 years! (Here is an example). This threw an exception while trying to calculate the date the resource would expire on! While the HTTP spec doesn’t provide a maximum value for max-age, 10,000 years is a little excessive. Also, as Eric Lawrence blogged, IE and Opera can’t handle values larger than 2^31. Luckily Zoompf already had a “malformed max-age” performance check, so we made sure it would flag on max-age values larger than 2^31 seconds. We fixed this bug as of 11:00pm on Tuesday April 11.

XML Nodes of a 3rd kind

Another controlled crash was when processing this atom feed. Zoompf follows feeds and analyzes them for several performance issues. In this case, our code which minifies RSS and Atom feeds did not understand how to process XML Entity nodes. We fixed this bug as of 11:00pm on Tuesday April 11.

Run Away Crawl

At its core Zoompf uses a web crawler to find and fetch web resources to analyze for performance problems. Most people don’t know this because we artificially limit how much gets crawled for our free service. However, like any web crawler, there is a danger of the crawler getting stuck in loops and endlessly requesting pages. While we have built several safe guards into the crawler, a few scans on Sunday and Monday showed a new problem. The problem occurs on websites that are missing a resource. Zoompf tries to fetch a CSS file, say http://example.com/foo/style.css, and we get a 404 error page. However, on this error page is a relative URL to another CSS file. The relative URL is foo/style.css, which corresponds to the full URL http://example.com/foo/foo/style.css. Of course, this CSS file doesn’t exist, and returns a 404 when we request it, and that 404 response contains anoter relative URL to a CSS file that resolves to http://example.com/foo/foo/foo/style.css. You see where this is going (Here is an example of that behavior). Our scanner was crashing when the URL for a request would grow to such a ridiculous length it exceeded the column size in our scan database. We fixed this bug as of 11:00pm on Tuesday April 11.

Closing

The Internet can be a fairly dirty place that’s full of surprises, both in terms of its structure and its content. The Zoompf team will continue to fix these issues as they come up and keep you informed. Thanks for all the feedback and support and enjoy our free performance scanning service.

April 12, 2010

6 Crazy Weeks and New Online Web Performance Service

The last 6 weeks have been a very exciting time for us at Zoompf. 5 weeks ago we passed the 300 check mark for issues we test your website for using our performance scanning technology. Next we went live with a brand new web design and content management system to manage all our online content and make it easier for you to find the latest front-end performance techniques on our site and on our blog.

Less than 1 month ago, we rolled out our free 100% fully automated web performance scanner. This free service would scan whatever website you want, whenever you want, and as often as you want, and email you a web performance optimization report offering clear guidance to make you website blazingly fast. Since then over 400 submitted their email and received a free scan. Then we introduced of our web performance scanning bookmarklet which allowed anyone to check whatever site they were browsing for web performance problems regardless of what web browser or operating system they were using. This milestone made it even easier to use Zoompf’s performance scanning technology and discover how Zoompf can help web developers, designers and IT professionals build faster sites!

Shortcomings Abound

Of course to get a free performance assessment you still had to type in an email address. This was a barrier for some people. Creating the report and delivering it also wasn’t pretty. It could take up to several minutes before you would receive you report. And when you did receive the performance report is was a ZIP file containing some HTML and supporting images. Very cumbersome indeed! All of these factors made it difficult for web developers, designers, and front-end engineers to seamlessly integrate Zoompf’s performance analysis into their everyday workflow or tool chain.

Well our goal is to provide free tools, software, and services to help make the web a faster place. And that won’t happen unless it is completely painless to use Zoompf during your daily grind. So we all emptied our wallets, rolled some loose coins, and sold our bodies on the 14th hole of Augusta National’s golf course to purchase a crazy fast computer to replace our aging scanning box. Now Zoompf performance scans take seconds instead of minutes. Next, we slaved through the nights, hacking code to remove the entire email dependency from our scanning system and wrote an online reporting system.

Like Awesome in a can!

That’s right, today we are happy to announce our free performance scanning service is now entirely online! No email address, nothing to install, just sweet web-based performance checking honey. Punch in any URL you want scanned into the system, mash on “go” and in seconds you will be seeing a Zoompf performance report right inside your browser! Doc even made it work on iPhones or IE6 ;-) It looks something like this:

Screen shot of online Zoompf scanning service reports

(O’Reilly’s woodcut animal‘s eyes are so wide because he’s surprised by the wide range of web performance problems on oreilly.com!)

Now for the cool news. Not sure if you noticed but we actually flipped the switch turned activated the online service very late Friday night/very early Saturday morning (approximately 1:45am EST on April 10th). We are very pleased to say that in the last 55 hours or so, people from around the global have used Zoompf to test the performance of over 800 websites!

Want to try it out? Simply go to zoompf.com/free, type in a URL, and bask in awesomeness of free, comprehensive web performance optimization reports! Help us try and get over 1000 scans in the first 72 hours!

Recap

  • We just launch 100% free, 100% online web performance scanning service
  • We check your app for over 300 different performance and website issues
  • o strings! No email required. Unlimited use. No silly technical prejudices. Any browser. Any OS. Period.

On behalf of the entire Zoompf team, myself, Doc, JR, Tracy, and Brian, we thank you for the bottom of our hearts for your interest, feedback and support. It’s going to be an amazing year as we continue to make Zoompf the source to help your find and fix web performance optimization problems.

Enjoy,

Billy Hoffamn. Zoompf Founder

April 5, 2010

Automated Scanning Service Glitch

Unfortunately we had a glitch in our automated backend systems during the last 18-24 hours,. It affected both out free automated scanning service and our system that processes incoming inquiries about PageBurner, our professional performance consulting service. We solved the issue (an HTTP connection that was timing out before a network drive failover timeout) and we believe we have contacted everyone who was affected. If you used our free automated scanning service or submitted a request for more information about our professional between April 4th at 12:00pm EST and April 5th at 12:00pm EST, please re-submit the information or send an email to info@zoompf.com.

We are sorry for any inconvenience.

April 2, 2010

DevNation Conference Tomorrow. Oh, and Zombies

Logo for DevNation Conference

I’ll be presenting tomorrow Saturday April 3rd at the DevNation conference in Atlanta. DevNation is a travel conference that puts on intimate, one day conferences about web and software development in cities around the US . My presentation is entitled “Making the Web Fast!” and serves as an introduction to frontend performance with a twist. Instead of just explaining optimizations such as caching, domain sharding, or image crunching we are going to do some live performance autopsies of real sites. We’ll see what they are doing right and what they are doing wrong and how much they could save by implementing some front-end optimization techniques.

I’m excited about this talk. I’ve given presentations all over the world: from the steel and glass skyscrapers of Hong Kong and Tokyo, to the rain drizzled streets of London and Munich, to the faux glitz of Las Vegas, to the sunny California campuses of Silicon Valley, and even to the blandly painted government walls of an FBI field office. However there is something fun and special about presenting in my home town of Atlanta. Perhaps it is because I know where all the great restaurants and bars are to go socialize with all the attendees! Actually it is because there is a vibrant technology and entrepreneurial culture in Atlanta and I enjoy contributing to that whenever possible.

DevNation is only $50 for a whole day of technology, talks, food, and drinks. If you are in the area you should definitely attend. As an added bonus, anyone who comes up to me at DevNation and says the magical phrase Zombie Apocalypse will get free PageBurner performance assessment. Unlike a free performance assessment through our website, our PageBurner performance assessment will analyze you entire website and contains full details and remediation advice for all the issues we find.

Hope to see you there.