Category Archives: Latest Happenings

So you wanna be a web dev?

The Web Standards Curriculum published by Opera is a great place to start. It will give you the basics of Front-end Engineering from the ground up. The second wave of articles was recently published including a background image and sprites how-to by yours truly.

Time to board a plane, so I can’t tell you more just now, but check it out. It is a great place to get started or brush up on your understanding of web standards.

Vote for me at SXSW! – performance panel

Vote for me at SXSW!

Website performance is still very much in it’s infancy. Most performance experts come from a traditional engineering background and yet, as Steve Souders showed in his book, the front end is responsible for more than 80% of end user response time.

I was excited when Ed Eliot asked me to be a part of a SXSW web performance experts panel, not only because he and I always have really excellent conversations, but also because of the quality of the people who are on board for the panel. The panelists are uniquely positioned to speak to the concerns of web developers. In addition to being performance experts, we are front-end engineers — as yet a rare combination. In our day to day work, we have experienced the pain points we’ll discuss on the panel.

Who will be on the panel?

Ed Eliot, Stoyan Stefanov, Stuart Colville, and I will join forces to talk about website performance including practical solutions to common problems. These guys are brilliant, and the panel should be really fun.

VOTE FOR US! :)

iPhone, the morning after

My Treo stopped syncing in January and I immediately started missing all my meetings. I need the device to ring every few seconds to remind me to blink and breathe, so life without a properly synced agenda was awful — just ask my colleagues. Guppy brain.

A Palm user for the past eight years, I made the switch to an iPhone 3G a few weeks ago. I’ve had one palm or another since I was gifted an S300 and became (shockingly) a productive member of society. I vaguely want to give the iPhone a fair shot, aware that my bias toward familiarity is inevitable, however there are a few things about the iPhone that totally and completely suck.

10 15 things I hate about you.

  1. Keyboard. A massive indescribable time sink.
  2. Default search makes me want to beg forgiveness and ask my Palm to take me back. I know, the Palm doesn’t sync, we’re not good for each other, but iPhone search bar is that bad.

    Happily, there is a solution. Yahoo! search for iPhone totally rocks. Auto complete, keyword suggestions, and search history are totally fab. Don’t understand the importance of this? See rant #1. The UI is slick without being gratuitous. It allows me to get stuff done faster.

    iphone by kitcowan

    iphone by kitcowan

    My suggestion, save search as an icon on the desktop so you never have to use the nasty default search bar.

    Easy 4 step solution

    1. Navigate to http://search.yahoo.com/i/ in Safari
    2. Click +
    3. Choose Add to Home Screen.
    4. Press and hold the icon that appears until it wiggles, then slide it onto the first screen.

    Voila, even more time saved and you don’t have to deal with the absurdly awful default search.

    Could it be expanded to search appointments, contacts, memos, songs, sms, email, etc.? I can only hope.

  3. No text select, copy, or paste. To understand my pain, see rant #1.
  4. No menus. No common, standard way to find anything including what you can do within an app. Yay! Relearning everything for each new app is super fun…
  5. Safari doesn’t remember passwords or auto-complete any form fields previously used. To understand my pain, see rant #1.
  6. Horizontal scrolling. Text is often too small to see or too wide to fit on the screen. Websites need to find ways to easily toggle to a linear view for iPhone users (let the user choose). If you use YUI grids this is dead simple.
  7. Calls fail as often as not.
  8. Not enough bars and dropped calls.
  9. All this finger swooping UI action makes for great commercials, but between that and the track pad on my MacBook Pro, my finger hurts!
  10. Swooping fingers mean the screen is grubby and greasy always.
  11. Conversations! Google invented the idea, but nobody is getting it right. Fundamentally sms, email, twitter, chat, blog posts, flickr images and comments, meeting invites, tumblr, etc are all variations on conversations with a more or less wide audience. I am super annoyed to need to check all over the place to get the same info, and even more annoyed that each device requires different set of apps and procedures. Recall the guppy brain. I want a kind of Uber-Adium product.
  12. Battery life.
  13. Finding contacts, or really anything (See rant #2) – Sure, scrolling is cool and the fab UI effects like the bouncing back are really cute the first time you see them. But ultimately, I’m trying to find contact details, not play with a jazzy interface. Palm allows you to search for first letter of the first name plus a few letters of the last name. For example, John Smith can quickly be found by searching for “jsmi”. This quickly matches things exclusively and avoids scrolling through massive lists of potential matches. iPhone does not have contact search which makes it nearly impossible to look up a number and safely make a call while driving.
  14. Crashing. Reminiscent of Windows constant reboots. I thought I was done with all that?
  15. The iPhone is not a productivity tool. I want to get in, get the info I need, and get out, so I can live my life. This device was clearly designed by someone who imagined users sitting around staring lovingly, and swooping through screens while crooning “my precious”. Get over yourselves, I bought the thing because my Treo wouldn’t sync anymore.

That said, there are some things I really like about the iPhone, but this is a rant, so I’ll save that for another time.

Website Performance Bootcamps in Korea, Taiwan, Hong Kong, and Singapore

I spoke to audiences in four countries and got a little sick from eating street food along the way.

Presenting in Taiwan
Chris took some photos of me presenting (e.g. talking with my hands). My photos from the trip are on flickr.

I just got back from a whirlwind 13 day performance tour of four countries. With only two days to present in each country I had to maximize impact as much as possible. I ended up shifting my talks around to fit the different audiences, and based on the quality of the questions and discussions, I think it worked out pretty well. I talked about High Performance Websites, which I now think of as a 101 level, intro course into web performance. I also talked about Measurements, Methodologies, and Tools. In particular, how to use tools to analyze and improve the performance and availability of your site. It was the overview that provided the background for the next days workshops.

In the afternoon of the first day, I did a session on Advanced Performance. These are all the new techniques you can employ “After the YSlow A”. This was roughly the same session Stoyan and I gave in California, so if you didn’t get to join us in person, you can still see the video on YDN.

The second day was my favorite. It was workshop style. It started off with Case Studies of sites that have made dramatic improvements in their performance and the innovative techniques (both technical and social) that they used to achieve success. The next portion was a live analysis session. The audience gave me URLs (Nope, I had no idea what they would be in advance!), and we analyzed them from A to Z. I showed them which tools I use, and which I pass up, in order to get a full picture of the state of performance. It is all about finding the magic balance of getting enough data, but not too much. In other words, you can spend all your time analyzing data, but your performance won’t have improved at all. This session was all about the happy medium — enough data to make critical decisions without being snowed under.

We had time to examine three sites together, and then they split off into smaller groups to analyze the sites they actually work on from day to day. These guided analysis workshops were really fun, especially in Taiwan. Seeing developers, who previously had varied experience levels, begin to get excited about understanding their sites performance, and see it as a geeky-fun activity — just the way I see it — was superb. I was impressed by the curiosity, persistence, and skill these developers brought to the sessions.

Taiwan guided performance analysis sessions

Realizing that the planned sessions were not design-focused, I also did smaller sessions with designers, in which we talked about some important aspects of designing high performance web sites.

  1. Image optimization and image formats (look for more of that on YDN and YUI blogs in the coming weeks).
  2. Design independent objects (headings, lists, contours, backgrounds, block headers and footers) that can then be mixed and matched to create graphical diversity while keeping the CSS overhead low.
  3. Semantics and consistent design keep the front-end lean and rapid. This, of course, goes hand in hand with the previous point.
  4. The transparent inside technique
  5. Tools – Photoshop tricks for smaller images, and open source tools that can make them even smaller.
  6. Most importantly, working with engineers to partner on performance.

The High Performance Design sessions were unplanned, so mostly I winged-it with practical examples, demos, and personal experience. They seemed to really appreciate the sessions. As a non-designer I hesitated to speak in a domain that isn’t my own, but I see a gap here, and the curiosity and interest of the designers made me excited to fill it. Designers get blamed for a lot of performance problems, some of which stem from immature CSS code rather than an inherent design flaw. I think I’ll work more in this area to separate the real best practices from the fluff.

Another thing people really wanted to hear more about is Managing a Performance Budget. Currently, I think a lot of project managers use a combination of divination (or dumb luck?) and finger crossing to meet performance goals. There are better methods. Speaking at this conference made me realize that this complicated domain of performance planning and impact needs more love. I’m not sure I’m the right person to do it, as I try to stay more on the technical side of things, but if someone else doesn’t get to it first, perhaps I’ll tackle the problem.

I was supposed to do two sessions the first day, and one the second. Instead it was more like four sessions the first day and three the next. Every two days I began the whole thing again. By the end, I couldn’t stand the sound of my own voice and I felt like I’d been run over by a truck. It was awesome.

No, seriously! I really liked it. It allowed me greater insight into the parts of my talk that work well, and others that are less fabulous. I think it has made me a better speaker, though my audience might disagree! ;)

Video, Yahoo!s latest performance breakthroughs, or — I’m famous!

Well, not quite. ;) But I am pleased with the results. Who would have thought that the shy girl who almost failed a public speaking course at university would turn out to really enjoy presenting. Turns out I only like speaking about geeky things, preferably to geeks. A limitation perhaps, but far less limiting than nearly peeing myself with fear in college. No, not literally.

Anyway, check it out. It is jam packed with brand new performance ideas to make your site fly.