on | 1 COMMENT

Let The Big Guys Serve It Up For You

In a January post, I hinted at the fact that I have been using Yahoo's open source User Interface Library for parts of the FamZoo front end. Using the library can pull some pretty hefty JavaScript files into your Web pages resulting in significant degradations in page load times. As a result, I have had it on my ToDo list for a while to start using the more compact and faster-loading "minified" versions of these files (stripped of all extraneous whitespace) instead of the "standard" versions (commented and formatted for readability) as I am now.

While pursuing this endeavor, I stumbled upon a YUI article indicating that Yahoo is now providing free hosting of the minified files. Instead of downloading the files, copying them to your own Web server, and hosting them from your own site, you can now just reference the files directly from the Yahoo network. This means you get to take advantage of the enormous investment that Yahoo makes in optimizing download times (geeky stuff like edge computing, gzip compression, expires headers, etc.) - all for free. Nice.

I've gone a similar route with all of the images that I use in the FamZoo pages. I upload them to Photobucket and let those guys worry about serving them up quickly. As of today, they claim to serve up 2.7 billion images - I figure they have much more of a vested interest in making sure those images are served up quickly and reliably than I do! Again, all for free. Nice.

I love this growing trend of large Internet providers allowing others to freely leverage their massive infrastructures. This makes it all the easier for us small fry sites to provide state-of-the-art capability and service levels at very low cost.

Note for other developers using YUI and considering this move: Yahoo keeps separate directories for each version (the version number is baked into the filepath), and they indicate on their Blog that thier "current policy is to support permanent availability of legacy YUI files". So, looks like you needn't worry about your external dependencies changing or being yanked out from under you. I also suspect Yahoo will be around for a while...

on | 1 COMMENT

Tough to Match Nature's Coding Prowess

My last post touched on how I have been tracking my development "progress" on FamZoo. On a somewhat related note, I was reminded today of how humbling the pace and scope of development can be in nature. No matter how many times I witness it (some would argue too many ;-), I always marvel at the process of cognitive development in young human beings. At the end of February, I posted a few drawings from the youngest member of the FamZoo fan club. Here's a representative sample:

Very cute, yet still very simple and crude.

He's been cranking out drawings of increasing detail and complexity since then, and here are a couple from within the last week:

It is fascinating to compare and contrast the illustrations (you can click on each to get a closer view). In just under two months, the level of sophistication has progressed by orders of magnitude. If only I could match that kind of progress in my FamZoo development efforts!

The human body is truly an amazing, humbling, and inspiring system.


Burning Down or Burning Up?

Several weeks back, I posted an entry about how I track my tasks and how I am dividing my time. As some savvy (aka annoying) readers noticed, one of the questions that the post conveniently sidestepped was: when will you be done? Um, well, perhaps never...

One of the more simple and effective project management tools for tracking progress towards a goal is the daily Burn Down Chart. In its most elemental form, it tracks the trend in the number of tasks that remain open each day. As you complete (or "burn down") the open tasks, your trend line should head towards zero - ideally somewhere in the neighborhood of your projected due date! However, if you are adding new tasks faster than you are completing existing ones, then your burn down line starts careening upward. Until you stop doing that, your project is "burning up" and will not converge.

Whether you are burning down or burning up, it is critical to know where you stand on a daily basis. Constant visibility is key to dissipating delusional thinking and motivating tough decisions. This week, I finally augmented my homegrown task management system to automatically produce daily burn down charts. You can see today's chart above. The red line depicts the number of open tasks - what I am trying to burn down. To make myself feel better, I also like to throw in a line for the number of tasks completed so far - that's the green line.

Uh oh! As you can see, I'm aggressively burning up rather than down (the red line continues its steady climb), and there are more tasks outstanding than there are completed (the red line still lies above the green line). You can also see when our local schools let out for winter and spring vacations - just look for the flat spots.

Note that the burning up phenomenon is not always bad. In fact, it is quite natural and expected in the early phases of the project. After all, generating lists of new tasks is the expected outcome of planning and design sessions. Also, no matter how great you think you are, development is inevitably a process of discovery. Realistically, you can't help but discover unanticipated nuances in the problem space or better, more elegant approaches as you work through the design, implementation, and refactoring of a product.

That said, at some point, assuming you actually want to deliver something, you simply must transition from burning up to burning down. Working harder and adding resources aside, this is usually accomplished by some combination of staunching the flow of new incoming tasks, completing existing tasks, and deferring tasks that are not absolutely essential to the current iteration of the goal.

Time for me to transition.