For the last few years I've come to realize that the biggest performance bottleneck on my computers is the hard drive. It's been frustrating to watch the speed of CPUs grow so fast, while hard drives remain as slow as ever. I'm relieved to see Western Digital finally starting to offer some serious performance (10,000 RPM, SATA, 8MB buffer) with the new Raptor drive.
Google does a good job promoting links based on general user click-through, but it doesn't give me the option to promote the sites that I personally favor.
For instance, when I'm looking for hardware reviews, I tend to dig through tomshardware.com, cnet.com, and anandtech.com. It would be great if I could just tell Google I was searching for pc hardware, and it would know to put results from those 3 sites at the top.
I know I can manually use the "site:" directive, but what I really want is a "sites:" directive... or even better, and a "category" dropdown which uses my personal site preferences. This would save me the time of searching sites separately, of having to dig through piles of search result rubbish, and reward me for taking the time to "bookmark" or give "thumbs up" to sites that I've personally found useful.
I just want to express sympathy to all of my friends, family, and colleagues who have been suffering through a miserably cold and treacherous winter on the east coast. If I had it my way, I would trade all of the sunshine and gentle rain showers we've been getting here in northern California for just one miserable day spent shoveling and re-shoveling my driveway. I'd trade my stress-free drive to the coffee shop for just one long slip n' slide commute through snow and ice and slush. I'd trade my short sleeve shirt for a just one day of freezing my ass off despite wearing two sweaters and a giant poofy coat.
But, of course, after that one day of suffering, can I please come back to California? Thanks!
I just completed a bittersweet victory in a battle between myself and my 12 year old Sony video camera. I was watching some old 8mm tapes that I had filmed in 1992 and was preparing to transfer to DVD. After fast forwarding to the end of a tape, the camera went too far and pulled some of the tape out of the cassette. At this point, it began making all sorts of nasty noises, and then refused to eject the cassette.
I then spent the next two hours trying to free this cassette, chock full of precious memories, from the death grip of the camera. To make a long story short, I had to rip the camera apart and completely destroy it in order to get the cassette out. I tried my best to save the camera, but it was too stubborn. By the time I got the cassette out, the tape had snapped, and I now have to pray that I can stick it together again.
Guess I'm in the market for a new 8mm video player.
You hear a lot of people talking about "user-centered design", but still, it seems to be really slow to catch on in most development circles. I think the one of the fundamental problems here is that too many programmers absolutely loathe the people who use their software. It's not uncommon to hear a programmer refer to the user as "stupid". This hatred is probably the biggest obstacle to creating usable software, because in order to do so, we need to construct our user interfaces to match the way the user thinks. Instead, programmers create UI that is structured to match the way the underlying code is structured. For most of us, this is the natural way to do things, because our mental model is congruent to the code model. We find it difficult to change, because we love the code model, and we deride the user's mental model as being idiotic.
The first step to recovery is to understand that user's aren't stupid; they just simply are't programmers. Users are all smart and knowledgeable in their own way. They aren't all "Grandmas" - they are doctors and lawyers and accountants, who are struggling to use the computer because programmers are too "stupid" to understand law and medicine and accounting.
I myself have been "stupid" in this way for many many years, but I am trying to change.
I'm not sure why, but somehow I found myself thinking about the late great MTV sketch comedy show from the 90's, The State. It is sad and strange how The State just disappeared from the earth one day after a short, but brilliantly funny run. I see many of the cast members still have successful careers, starring on shows like Ed and Reno 911, but that only serves as a sad reminder that the troupe is no more.
I did a little searching and was happy to discover that they are planning on releasing an official DVD at some point in the near future. Even better, there is a complete online video archive that has every last sketch they ever made available for download!
Let me be more specific about the one thing I would have liked to see in Longhorn: the death of the stand-alone application. This is not an easy problem to tackle, so I shouldn't criticize Microsoft too much for avoiding it, but I still hope that someday they or Apple start making strides towards this goal.
Let me give an example of what I mean. There are a dozen apps on my computer that will let me view a photo, and they each have their own way of letting me pan, zoom, resize, and draw on the photo. On top of that, there are even more apps to let me browse thumbnail listings of photos, and each has its own way of scrolling, selecting, organizing, and sharing the photos. I own all of these apps because each has some features I want. To accomplish a given task, I often have to fire up several of these apps in sequence and switch between them. Some of the apps attempt to be "all-in-one" photo solutions, but usually they fail at this.
What I'd prefer instead is if I could purchase the features of these apps on a more granular level, and plug them into my workspace for working with photos. I want Photoshop for its drawing tools and filters, Picasa for it's slideshow, AOL for sharing and publishing, and ACDSee for thumbnail browsing. I'm tired of dealing with Picasa's bizarre UI for selecting photos, AOL's weird way of retouching them, Photoshop's image browser which knows nothing about my Picasa collection, and ACDSee's awkward zooming and panning tools.
The solution to this is for Microsoft to provide an extremely extensible baseline for working with photos, and all other first-class visual objects. It must be extensible enough so that powerful apps like Photoshop or Word could be broken up into little parts that I could install separately. It has to be easy enough to use so that it feels natural for users to find the tools and objects they like to work with. This would create a completely different business model for software developers, and so the OS vendor would have to really make it worthwhile to do it.
Most geeks probably think this is a terrible solution, because they think consistency is boring, and enjoy the freedom of having 100 different ways to do the same thing. Ordinary users, on the other hand, don't really care about these subtle differences. They just get angry when something doesn't work because they got used to doing it one way, and some other app makes them do it another way.
I know that it is probably difficult to imagine how this kind of UI would work, but I'll go into more detail in a future post. In the mean time, check out the writing of Jef Raskin, who has been talking about this kind of model for years.
If I have a screen large enough to display more than one web page at a time, shouldn't my browser allow me to do something useful with all those extra pixels?
Instead of "Open in New Tab", I want "Open in New Column", so that I can read the new page without having to switch away from the page I'm currently reading. This would also be useful when you want to drag and drop something between two pages.
Taking that a step further, I'd love it if I could select from a menu of layout options with different vertical and horizontal columns, and display a different browsing context in each. You could choose to make each pane either clipped or scaled down. Might sound crazy, but if you've got the pixels, why put all those pages in hidden tabs and windows? Most web pages look just fine in 640x480 anyway. If people are buying high-res displays, software should help them more bang for their buck.
On a related note, I look forward to all the browser vendors copying the new thumbnail-based tab browsing from OmniWeb 5. Firebird could do it easily if Gecko only knew how to render to an offscreen device context.
It is my opinion that Microsoft needs to start doing a better job of babysitting the hoards of developers that make software for the Windows platform. Seriously, the quality of GUIs that people produce for Windows is absolutely horrible! The model for building a GUI has barely advanced since the dawn of Visual Basic over 10 years ago, and all we're getting with Longhorn is way to make it easier for developers to build the same old widgets with prettier graphics and xml source code.
It's almost as if we haven't learned anything about the way people use computers over the last 20 years. There is a core set of patterns that are repeated over and over in thousands of applications, each of which has their own subtly different behavior and visuals. Back and forward, undo and redo, delete, find, bookmark, etc... And there are a core set of graphical objects like images, text, maps, and calendars, which everybody has to reinvent every time they need one in their application, and they usually do a lousy job of reinventing it. Sure, there are classes for some of these things in GUI libraries, but the user doesn't see that - they see the programmer's personal interpretation of how they think it should look and work. Still, after all these years, the only GUI patterns we get from Microsoft, Apple, and others are things like "window", "button", and "listbox". To add insult to injury, they give us the taskbar and dock (and now Expose), which are just hacks to help us sludge through the mess of windows on our desktops.
Developers on Windows have way too much freedom to throw crap in the user's face. While developers love this freedom, users hate it. Microsoft can afford to pay a bunch of smart interaction designers to design a better model for everybody to use, so why don't they? I guess they figure it's more profitable trying to sell flashy 3D widgets, or maybe they prefer it when third party software is hard to use, so that consumers spend their money on the Microsoft version (which is still hard to use, but at least consistent). Apple at least tries to guide developers towards a higher standard, but even they still have a long way to go in my opinion.
Microsoft is giving us a unified data storage model in Longhorn, but the user experience is still going to be the same old mess. While I look forward to writing code for the Longhorn platform, I am not really looking forward to using it.
Happy happy happy new year. Yay.



