April, 2007

Web 2.0 Expo Roundup

Christy Canida giving her five-minute presentaiton at the Web 2.0 Expo. Photo by Duncan Davidson, Some Rights Reserved. http://flickr.com/photos/x180/466554899/ In a series of prior blog posts, I fleshed out three of the talks that were most relevant to my work at Instructables. There were many other good presentations that I saw and conversations that I had, but time is running out for me to post them. So, after the jump, you’ll find the remainder of my notes, unedited. These are all from Wednesday, April 18th. They may be useful to someone, at some point, so I post them here as an offering to the global indexing gods.


  • Squid labs represent! Both Christy Canida (Instructables) and Colin Bulthaup (Potenco) were chosen to present five-minute talks at the Expo keynote. Christy did a great presentation about the “K’nex kids,” an emergent community on Instructables. Colin presented Potenco’s ideas on small-scale human power, the “wireless” power source that the developing world needs to match its wireless communications.
  • Alex Chaffee and Leslie Chicoine had a great presentation about Agile software development, and how designers can be brought into the mix.
  • Fred Von Lohmann surveyed the legal landscape around how Web 2.0 companies fit into the four traditional DMCA “Safe Harbors.” (And to mix the metaphors further, Fred preferred calling these sections of the DMCA “Islands” rather than “Safe Harbors.”)

The full set of (rough) notes, including notes for these and other talks, are after the jump.

Read the rest of this entry »


Javascript Ninjahackery

If you’re into hacking Javascript, check out Dustin Diaz’ “Seven JavaScript Techniques You Should Be Using Today”.

There is some serious ninjitsu in this article. Here’s are some of the tricks and pointers that I found most interesting:

  1. Branch Functions: You can define a function that conditionally returns a slimmed-down function. This keeps the conditional logic in the initial call, while still giving you code reuse wherever you decide to use a closure.
  2. Bridges: When you’re developing an API that others need to use (or that you need to write tests against), adding bridge functions can keep the interface clean. The example given was a click handler, where the handler function is handed its parameters directly instead of assuming a certain scope. The bridge function then handles that dependency.
  3. Event Delegation: The classic example is an unordered list where you want every item to have a click handler. Instead of assigning one to each item, catch the event as it bubbles up and have just one handler on the whole list that uses event.target to decide what to do.
  4. Include Methods with your getElementsByWhatever: Write your own get function so that you can pass a callback in. That way, you can perform an action on each without looping twice.
  5. Encapsulate your Code: Use closures to keep cruft out of variable scope. See Crawford’s talks (below) for neat ways to simulate private, protected, public, etc. “methods” and properties using closures.

Using Prototype at Instructables has made me a bit lazy, since the framework does so much for me. It’s good to get back deep into the language, every so often. A little fiber for the mental digestive tract.

If the Diaz article is about tactics, then Douglas Crawford’s Yahoo! Lectures on Advanced Javascript are your basic training. It clearly lays out the design decisions that went into the design of the Javascript language. Crawford exposes the many flaws of Javascript that emerged during the tit-for-tat browser wars of the last decade, but what emerged was an incredibly flexible language that can mimic the idioms of wide variety of other languages.

Comments Off on Javascript Ninjahackery

Empirical Design Using Analytics

Avinash KaushikWorkshop: Click the Big Red Button : Tips & Techniques for Optimizing Conversion and A/B Testing”
Date: Monday, 4/16/2007
Presenter: Avinash Kaushik, Analytics Evangelist

Avinash’s talk was funny and enlightening. I got a good sense of how important it is to drive design decisions using empirical data rather than relying on intuitions or even well-established heuristics. I also have a new term in my lexicon: “HiPPO” (the Highest-Paid Person’s Opinion). Essentially, everyone has an opinion on design and assumes that they understand the user. In many organizations, the higher up on the pay scale one goes, the stronger that opinion gets. And if the opinion happens to be wrong, it gets more and more more difficult it is to correct.

This is not so much an issue at Instructables, where we have a tight-knit (and fairly horizontal) team of five, but it has been a huge issue at various companies I’ve worked for over the last ten years. Hard data rescues you from the perilous seas of subjectivity.

Avinesh also gave a good overview of the methods that one has at one’s disposal (A/B testing, Multivariate Testing, and Experience Testing.) These range from the simple and easy-to-implement to comprehensive strategies that allow companies to fully understand the impact of each design decision on the bottom line.

As usual, full notes are after the jump.

Read the rest of this entry »

1 Comment »

Analytics 2.0

Brett Crosby, old photo from http://lvb.net/item/2023Workshop: Marketing Analytics for Web 2.0
Date: Monday, 4/16/2007
Presenter: Brett Crosby, Senior Manager, Google

This is my second set of notes from O’Reilly’s Web 2.0 Expo. These are from a talk by Brett Crosby, Senior Manager with Google Analytics and a former exec at Urchin (Which Google acquired to develop its analytics product.)

This was an introductory talk on how Google Analytics (GA) is used in the Web 2.0 world. It was primarily an overview, explaining how and why GA was developed for Web1.0. It then shows how GA has had to adapt to the non-page-centric Web 2.0 world and how it can be used to track offline marketing efforts.

I also attended a more detailed talk about multivariate analysis, which will be online soon. Full notes on this talk are after the jump:

Read the rest of this entry »

Comments Off on Analytics 2.0

Web 2.0 is…

The conference has this gimmicky T-shirt where you fill in your own definition. Wisdom of crowds, folksonomies, etc… Here’s my contribution to the cloud:

Web 2.0 is... made of Meat!

If you don’t get it, you should be ashamed of yourself.

[Note: this is a Photoshopped image, text added to a blank posted to Flickr by whiteafrican.]

Comments Off on Web 2.0 is…

Optimizing the Frontend

YUI Blog logoWorkshop: High Performance Webpages
Date: Sunday, 4/15/2007
Presenters: Steve Souders and Tenni Theurer, Yahoo!

This is my first set of notes from O’Reilly’s Web 2.0 Expo. The workshop was “High Performance Webpages,” a dense, three-hour session with two leads on Yahoo!’s front-end optimization team (Steve Souders and Tenni Theurer.) This team has done some solid work breaking down the best practices for making a website speedy and responsive.

The presentation also advocated for optimization from the point of view of the user. Distinguishing between “response-time” optimization (request to page load) and “efficiency” optimization (minimization of resource use), the team made a very strong case that the latter optimization is premature. Having access to Yahoo!’s server logs, they have collected a large body of data that suggests that for rich sites like ours, 80%-90% of the user’s response time is eaten up by the client.

On a side note, I think Yahoo! has done the developer community a huge service by making all of this information public. This effort is part and parcel with their open-source release of the YUI toolkit. I’ve just added the YUI blog to my RSS reader.

The full set of rough notes are after the jump. These include empirical data on a number of experiments that the team conducted around frontend performance, as well as a distilled set of 14 best practices for speeding up a web application.

Read the rest of this entry »


It lives!

There haven’t been any posts in months, but I’m going to be resurrecting mindtangle.

Mindtangle\'s old tag cloud However, the content of my posts is going to shift. For months, I’ve been planning on starting a new blog to keep public notes on work-related frontend development. At the same time, all of my old interests (snapshot of the current tag cloud, at right) endure, and maybe those topics will start appearing here, again.

Logan and gknot are still authors on this blog. We’ll see if new activity will inspire them to start writing again. Otherwise, we’re going get a little low on pop culture and doomsaying.

Another change: I’m no longer going to blog “anonymously,” though it probably wouldn’t have been difficult to figure out who I was, before. I’ve recently started a new job at Instructables, and it will be useful for me to write as the UI developer for that specific context, rather than as Joe Random Blogger.

the new Instructables logo

Next up: notes from a few sessions of O’Reilly’s Web 2.0 Expo, here in San Francisco. Instructables got a handful of passes, since O’Reilly’s Alpha Tech Ventures provided us with our seed capital.

Comments Off on It lives!