Monthly Archives: October 2009

Could there be a home for Episodes in our product…How about Jiffy

A little over a year ago, Steve Souders put together a presentation about a web page timing framework called Episodes. I guess very early in Souders career at Google either he asked to write about the idea or someone got the bug in his ear. Either way, Souders appears to be one of the only people out there talking about Episodes. My personal belief is that when Souders speaks, we should all listen.

According to Souders…

Episodes is a web performance measurement framework that solves these issues. It has the following key features:

  • Supports measuring Web 2.0 applications by having the timing instrumentation integrated with the application’s client code.
  • Separates the instrumentation from the data collection. This reduces the work for the application developer, allows multiple services to consume and report the information, and results in a lighter weight implementation.
  • Is Open Source, gathering the best practices from across the industry without bias to any company or organization.
  • Provides a single framework that can be used by web developers, tool developers, browser developers, and web metrics service providers.

The goal is to make Episodes the industrywide solution for measuring web page load times. his is possible because Episodes has benefits for all the stakeholders. Web developers only need to learn and deploy a single framework. Tool developers and web metrics service providers get more accurate timing information by relying on instrumentation inserted by the developer of the web page. Browser developers gain insight into what’s happening in the web page by relying on the context relayed by Episodes.

Most importantly, users benefit by the adoption of Episodes. They get a browser that can better inform them of the web page’s status for Web 2.0 apps. Since Episodes is a lighter weight design than other instrumentation frameworks, users get faster pages. As Episodes makes it easier for web developers to shine a light on performance issues, the end result is an Internet experience that is faster for everyone.What I find interesting about the idea is the programmatic nature of embedding a timing framework into a web request. This is not new, in fact Jiffy was one of the first to do such a thing. Either framework in my opinion is worth investigating.

I haven’t seen much web traffic on either Jiffy or Episodes in a while, so I ended up sending a quick note to Steve Souders to get his perspective on what’s happening next with either framework. Hopefully he will respond…

Either way I would love for us to investigate…

Impending Evaluation of Doloto

For the past year I’ve talked about a tool coming from Microsoft called DolotoDoloto is an optimization tool for AJAX applications. Doloto makes AJAX applications run faster by stubbing out unnecessary code so that the application can start fast, and then downloading the necessary code on-demand if it is actually needed. This way application execution and code download is interleaved. It also means that with Doloto, rarely used code is rarely downloaded. I’m not sure if this could really apply to our code base, but it’s worth taking a look and evaluating.

It’s hard to say what Doloto is. If you take a look at this recent briefing, you get the sense that it could be a browser performance solution, but really it’s a server side optimization framework. It looks like Doloto takes large JavaScript functions and decomposes them into smaller pseudo code blocks which can be downloaded on demand. As you dig deeper, it looks like Doloto is simply some form of optimization proxy between the browser and the application server.

According to this blog Doloto does the following:

  1. Doloto profiles your application. Doloto performs profiling by running a local proxy on your machine that intercepts JavaScript files and instruments them to capture timestamps at runtime for every JavaScript function in a browser-independent manner.
  2. Profiling information is used to calculate code coverage and a clustering strategy. This determines which functions are stubbed out and which are not and groups functions into batches which are downloaded together, called clusters.
  3. Doloto rewrites JavaScript code. It then saves it to disk so that you can upload it to the server. The entire process happens on your machine, without needing access to the server. This way, you can profile and optimize the JavaScript of a any third-party site without special access to their servers. When you are satisfied with Doloto’s results, you can deploy the rewritten files to the server.

What am I Looking to Do?

First, I want someone to get a better understanding about what exactly Doloto is. Second, I would love for someone to play around with it, set it up and design a few experiments that make use of it. It could be that we find out very quickly that our application will struggle to work inside of a Doloto proxy and subsequently fail to leverage the advice coming from the profile.

The Kitchet Sink is Overflowing

So I would like to apologize to my few, but much appreciated readers for my nearly 2 month absence from blogging. I can promise that a new blog will be showing up regularly. I will try my best to get something posted shortly. I figured I would use this blog as a chance to clear the mind.

To say I’ve been busy is an understatement. On the personal front, my 8-month old still is not sleeping through the night. She wakes up either midnight and 5am or 2am and 6am. Either way, it’s a total downer. As much as “Little McGoo” is cute as a button, sadly I had to admit to my wife that the best part about getting to travel is the opportunity to get a full night’s sleep. The lack of sleep is wearing thin on my patience. Sadly, it’s taking a toll on my wife and my oldest daughter.

The work front is what’s truly wearing on me. I normally don’t write about my work situation. I love my job, my team and my company. I’m just a little tired from work. I’ll use the analogy “the kitchen sink is overflowing” to describe what’s going on. My company is very ambitious…I’m very ambitious as well. Sometimes juggling the volume of work, plus the personal/family side of life simply wears you down. I’ve simply got too many things going on.

What I lack these days is some me time. I’m sure my wife feels the same…she’s right in that she’s lacking the same thing. Maybe it’s the rain as of late (feels like the past 3 weeks has rained every waking moment). Or maybe it’s the fact that I’ve been slacking at working out. I’m not really sure what it is besides being a little overwhelmed.

I did have one parting story…so yesterday I went to Barnes and Noble to see if there’s any new books out there and in some ways to get some quiet time. I went to Barnes and Noble probably 8 times throughout the summer. Each time I did my normal route:

  1. Went to New Non-Fiction
  2. Strolled over to B&N Recommends
  3. Wandered over to the Computer/Software Second
  4. Next to the Economics, Management and Business Profile Racks
  5. Took the escalator up to the Books on CD
  6. Jumped around the corner to the Science/Psychology Section

For the 9th consecutive time I went home empty handed. It just feels like no good, new books are coming out. Maybe it’s me…or maybe I’ve just read them all. Regardless, the fact that I don’t have a good book to read and haven’t since last Spring is probably one of the factors affecting me. I always feel as though I have balance in my life when I make time to read.