April 2008 Archives

Yet another study on how factory farming is horrible for the environment.

[Factory farms] often pose unacceptable risks to public health, the environment and the animals themselves while shifting rural America's economic power from farmers to livestock processors.
This—coupled with the UN report from a year ago—makes a very compelling case on why you must be a vegan if you care at all about the environment. I'm sorry to say that recycling your bottles and driving a hybrid just doesn't cut it anymore.

I recently purchased a Motorola T505 Bluetooth speaker phone for my car. It works well enough, but there are these little annoyances that get in the way of truly seamless use. Sometimes my phone will get "stuck" in a mode where it thinks it is still connected to the speakerphone long after I have walked away. The speakerphone refuses to play audio when the phone is in "silent" mode. Sometimes the call pickup or disconnect functions don't work quite right, and so on.

Interestingly, I've noticed these sort of annoyances since the beginning with Bluetooth based products. There are very, very few Bluetooth connections that "just work" and continue to do so. On top of that, the model is fairly complex: many people probably don't understand all of the subtleties of "discover," "pair," "passcode," and "authorize." I don't think any of these concepts are super difficult, but it seems that almost no implementation gets everything right, and I think that is a clue to an underlying problem.

Bluetooth as a specification seems to be very complex for real humans to implement well. It has been around for about a decade, so by this point the basics should be very mature, and I'm sure they are. But all of these annoyances indicate to me that maybe important parts of the specification are too complex or poorly defined. It's easy to point fingers are the implementations and just say that the chip vendors or driver writers or operating system engineers made mistakes. It's also easy to say the the user interface designers did a poor job of integrating the technology into the user experience.

All of those engineers are undoubtedly guilty of making mistakes -- they (we) always do. Unfortunately with some technologies it just seems easier than otherwise to stumble.

As I am deep in the innards of the HTML and CSS of the web site I'm working on, I've found that <div style="clear:both"></div> is a really useful tool. It basically sets an invisible horizontal rule for starting a new section of content. Funny thing is that you have to have the explicit closing tag for it to work; <div style="clear:both" /> won't do it.
Depending on who you ask, there's a new blog created about every second or so. There seem to be far fewer unique and interesting things to say.

millipede.jpg
My RSS reader recently pointed me to this blog entry about a French parachutist who is attempting to break the highest altitude jump record. That blog entry was quoting from a Popular Science online article which was based on a PhysOrg.com article that came from an AFP article (that I found published on Yahoo). I'm sure there are many other link-to-link-to-link chains from that same original content. It certainly seems reasonable to guess at something like 1000 re-mixes and blog entries from that one article. None added any real new content, but I suppose that bringing the information to the attention of a new group of readers is a good reason for all the republishing. Each tiny bit of information carried forward by a thousand legs -- call it "millipaedia."

Sometimes the feet seem to be marching in circles, as when a prankster updates a Wikipedia entry, only to have the new information used as content in a "traditional" press article, which is then used as a reference to "prove" the veracity of the Wikipedia edit. All of the sordid details are in this Tech Debug article, which of course got picked up by Slashdot, and a couple of thousand other blogs.

And of course, by writing (and reading) this entry, we all are just more "millipaedian" feet.
I've been doing cross-browser CSS styling for work, and what a PITA that has been. My most recent discovery is that Firefox conveniently adds the padding to elements after sizing them to 100% of the parent. So let's say you want a form text field that is as wide as the parent div. You set style="width:100%". But now the text abuts the left edge of the text entry box. So you add a left pad: style="width:100%;padding-left:4px". Now the text looks great, but WTF?! the right edge is no longer aligned with the parent DIV. In fact is extends by 4px. It'd be nice if this worked: style="width:100% - 4px;padding-left:4px", but of course it doesn't.

So you have the brilliant idea of using text-indent instead. After all, that's what this property was intended to handle. style="width:100%;text-indent:4px". Perfect. Looks great. Except on IE where for some logic-defying reason, the browser actually indents the entire text field rather than just the text inside the field. WTF?! Who are these people who implement the CSS standards and where do I sign up to beat them with an improvised bolo made from an old 56k modem & phone cord.

Thankfully someone intelligent on the IE team realized that their rendering engine was so broken, that web developers might need to write IE-specific code to handle it without making the display look like a bad interpretation of Picasso's home page. So now I've added the following to my web page:

  <!--[if IE]>
    <style type="text/css">
      INPUT .textfield {
        padding-left:4px;
        text-indent:0; }
    </style>
  <![endif]-->
And that's when I took up heavy drinking to dull the pain...
I got my invitation to the Peter Gabriel-backed music discovery service, The Filter, today. I am underwhelmed. There are some annoying display bugs on the Taste Profiler page, as you can see below. They don't have some artists in the database like Ben Folds Five (WTF?!). But worst of all, the music it plays are 30 second clips, and it's mono.

Also, after putting in my favorite artists (Ben Folds, Vertical Horizon, Toad the Wet Sprocket, Guster, Counting Crows, Jason Falkner, Fountains of Wayne), it came back with... the Rolling Stones? and Van Morrison? Are you serious? I get better recommendations from Amazon than this. Even imeem or YouTube's related media is better than this.

And honestly if you want the best, you still can't beat Pandora. I really don't see myself using this service. Sorry Peter. You put your name on a piece of crap.

thefilter.png
51Z84DDQXML._SL500_AA280_.gifI just ran across two sites today that are useful for bumping your Amazon total up to the $25 minimum for free shipping. Cheap fillers lists the cheapest items on the site, whereas Filler Item lets you search based on the price you need.

At some point, Amazon should just have a "round me up to $25" check box. I'd be inclined to check the box for a few dollars, especially if they donated that money to charity, or did something equally compelling with it.

I like the soup-in-a-bread-bowl and salad-in-a-tostada-bowl concept. While eating a bento box lunch a while ago at a local Japanese restaurant, it occurred to me that the bento box should be edible.

Not that any classy restaurant would stoop so low, but perhaps a seaweed sheet could be formed into a bento shape. Enjoy the contents of the meal, then eat the yummy, healthy dish underneath.

Or more accurately, my employer got my an iPhone. We're thinking about doing a mobile app, and this seems like the most interesting platform out there right now. The cool thing is you don't need to do a install; you can just use an iPhone-optimized web page and that will be good enough for a proof-of-concept. We'll see how it goes. It's certainly a major upgrade for me from my old Sony-Erickson phone with flashback-to-the-80s performance on it's 300 baud equivalent internet connection, and communicating-with-the-Mars-colony latency. 
Since it's Earth Day, I need get out the message that should be the #1 item on any list of things you can do to help the earth, and that is eat less meat. It's funny that people aren't quite ready to accept this as truth; not even Al Gore has acknowledged his own hypocrisy by continuing to eat meat while preaching how we all must make significant changes to stop global warming.

I'm the first to admit this isn't a binary issue. I didn't say "stop eating meat". I just want people to acknowledge that there is a significant environmental impact (water, air, land...) from raising livestock for food. Just like no one is going to stop driving altogether because car emissions cause air pollution, similarly I don't expect people to stop eating meat altogether. But awareness and admission is step one, and I don't even think we're there yet as a society. Maybe when Gen Y takes over; they are coming.
After the baseline Maslow-ian needs, I think the best use of money is to convert it into memories. Whether this is a great vacation, a thought-provoking film, a moving performance, or even just an interesting anecdote about the thing you bought. Even the objects you buy should be just a means to the end of obtaining memories. The bike you buy will give you memories of the rides you take, and that early-adopter consumer gadget will give you amazing stories to tell (or blog!) about how you tried and tried but just couldn't get it to work the way you wanted.
For a variety of unimportant reasons, I took a look at a product called Gypsii this evening. I got stuck looking at their web site because it was just to painful to drive. The product as something to do with geo location information. (That's great but I think geo location for the web isn't a company it's a feature, but that is another story). I clicked on their web site and took a look at one of the places features on their "Places" page. At this point I still don't know what the product does mind you, but I figured I would click around and explore and see if I could figure things out.

hourglass.jpg
More than twenty seconds and three annoying flashes later the web page loaded. It immediately popped a distracting "lightbox" of an image that I had to dismiss -- adding another 5 seconds to the time it took to get to the content on that page. Subsequent pages were not quite as bad -- "only" ten or so seconds to get a page loaded. This lead me to suspect some poorly implemented HTML. Sure enough -- a look at the source and I find that each web page is loading twenty-three JavaScript files and six css files per request, and that's not counting the resources included by the embedded Google map. Some of the JavaScript files are only three lines long. Is it too much to ask to combine these into five or six fewer files? Your web server would be happier too. Making fewer web requests is generally the number one way to speed up your web page. Since most of these static components also don't have a decent expires or etags header, our browsers won't effectively cache them (and nor will the upstream caches the ISPs may have). 

In addition, the source of the page claims to be strict XHTML, but it has more than 600 validation errors. As these errors pile up, the browser has to take time to deal with them, and that slows things down too.

Good web designers and developers (some of whom frequent this blog) will understand these concepts. As the customers of these web sites, we should complain about how slow and resource hungry they are (perhaps by just declining to visit the site!). Here's my tip to the (probably outsourced) web developers at Gypsii: figure out how to use YSlow.
Here's another entry in the "steal this idea" series. The Consumerist, for those who don't know it, is a web reinterpretation of the venerable newspaper "consumer action" column and its local news "Seven On Your Side" variant. Except for it runs on a national scale. People have problems with AT&T, and the Consumerist uses its "bully pulpit" to shame the corporation into fixing a problem.

The Consumerist is a fun and sometimes useful read, and can often be more than just a national-scale gripe column. There are tips on credit cards, saving money, short-term deals, and so on. But I do find it curious that they haven't (yet) gone local. Why isn't there a "sfbay.consumerist.com" or an "atlanta.consumerist.com" with local contributors, maybe even volunteers, performing the same service for local consumers? It's fun for all of us to read about Comcast having to finally refund $2.65 to some old lady, but do people in New Jersey really care about lame service at a San Francisco only restaurant?

Go ahead consumerist -- take my free idea and run with it.

In case anyone else is searching for this, here are some of my observations on getting a good alignment from a Celestron NexStar  telescope. It's really not hard at all if you know the tricks. There's a lot of good information about these telescopes on Michael Swanson's NexStar Site, and the guides there are worth a read. But here's the 60 second cheat sheet.

align.gif
1. Get a decent, cheap bullseye level -- the telescope comes with one but it's tiny, and stupidly has a thick, uneven sticker on the bottom. Put the level on the top of the battery door and quickly level tripod.

2. Make sure the OTA (the telescope part) is mounted on the arm almost, but not quite all the way towards the back end of the mounting bracket. About 2 cm of the bracket is visible towards the back of the mounting arm.

3. Turn on, and enter the location and time. Get pretty close with the location (i.e. just "Palo Alto, CA" is fine). Be exact with the time -- one minute off seems to cause problems.

4. Align on the first star -- I alway use Polaris because I can. Make sure the last (fine) adjustment is always UP and to the RIGHT when viewed from within the viewfinder. This matches how my scope slews to a target. If you overshoot, go back to the lower left quadrant and try again.

5. Repeat for a second star, which should be widely spaced from the first.

6. Repeat for third star.

7. Profit!
From hearing it, it's a wonder Todd Rundgren's music got produced and released. But according to his bio, it was Todd's own success as a producer in the early 70s that gave him the in to produce and release his own album. Because it was such a success, he generated a loyal fanbase that supported him over his increasingly fringe experimentation.

A Capella was one of these, and it was a cult favorite of college a capella groups in the late 80s and 90s. All sounds on the album were generated by Todd and his body, much like Bobby McFerrin. But whereas McFerrin has a jazz/gospel feel to his work, the songs on A Capella defy categorization.

The two featured here are Johnee Jingo and Pretending to Care.
The first is an unabashedly minor song that borders on dirge, but with an underlying beat ceaselessly driving it forward. The lyrics tell the story of a teenager who lies about his age to join the military and "defend the border". But the true genius of this song is the bridge from 1:56-2:12, which is simply a masterpiece chord progression in just 4 bars:

       F                E7sus4                 E7
To the man who owns the land - We're all the same
Am F/A C/G F
But when his grip begins to slip, Then he'll be calling out your name

The next song is an ethereal journey through another novel chord progression, only this time he keeps it up for the entire song. The dissonance of the chords match the subject of the lyrics--unrequited love. There's also a really nice version of Todd performing this song 20 years later with a string quartet as a background.
Hilarious.
One of the most annoying usability bugs on the web is the simple lack of .focus() calls. If the page has a search bar, or sign-in form, or really any other form field on it where the primary task is for the user to type text into it, then it just makes common sense to place focus in that field when the page loads.

It's very simple too. Here's the call to use:
<body onLoad="document.GetElementByID('text_field_ID').focus();">

Yes, I'm talking to you, BankDirect.
The last couple of nights have been a bit cold and absolutely clear here in Northern California, and despite the bright moon that has made for a few nice nights of looking through the telescope.

I'm lucky enough to have a telescope that's much smarter than I am -- a so called "goto scope." Though I am slowly learning my way around the constellations, there is no way that I could approach this machine's ability to find faint objects through light-polluted suburban skies. Besides, this blog originates from the "heart of Silicon Valley," so no post would be complete without a bit of worshipping at the altar of technology.

telescope.gif
And a bit of praise is indeed appropriate -- the Celestron NexStar 8SE is a wonder of a toy! In five minutes, I have it out in the backyard, leveled, powered up, and aligned to the sky. If I've done my job right (which is getting easier with practice), I can call up any of 40,000 objects with the press of a few buttons. Less if we discount those stars blocked by my neighbors' trees. The telescope's mount then makes some noise for a few seconds, the tube rotates, and then Mars is right there in the eyepiece.

With such a great tool at hand, it's easy to look at open clusters like M44 and M67, and find faint smudges through the haze that focus to be amazing views of distant galaxies like M51. But what really grabs my time and attention is Saturn. It is real. Not just a "yes it exists, it comes after Jupiter and before Uranus, has rings and moons" kind of real, but a right there and complex and in my eyepiece sort of real. It is both other-worldly and clearly of my universe -- a vibrant far-away place that I experience in a simple personal way. Thirty minutes of looking at a "live" image of Saturn through a good telescope has impressed me more than years of studying physics.


mud wrestling. I wonder why no one's done that yet.
A couple of months ago I bought two licenses of BusySync from BusyMac. This product works BusySync.pngperfectly and invisibly -- which is just how it should. It makes me happy. Let me explain a bit -- My wife and I each have a Mac at home, and each have our own busy schedules. There are many appointments that we need to share (especially related to the kids). We each use Mac OS X iSync to synchronize our calendars to our phones (both Nokia S60). At work, I use Linux.

For $40 (two licenses), BusySync lets me share parts of my calendar with my wife and vice-versa. She can see parts of my calendar and I can see hers. Some parts are shared read-only, some read-write. In addition, my calendar is automatically synchronized to and from my Google Calendar. Every few days I use iSync at home to make sure my phone calendar is up to date.

All this multi-directional read/write synchronization may sounds complex, but setting it up was actually easier and took less time than writing this description -- it just works. The end result is that I now have complete read/write access to my calendar on my phone, home mac, and at work (via Google Calendar). In addition my wife and I can keep tabs on each other (heh) and add appointments that are instantly shared.

(Note: I have not yet tried the Evolution plugin for Google Calendar. If this works, then I might be able to have synchronized on/offline access to my calendar via a nice application on my Linux EeePC).


One of them most unbelievably insensitive social situations — aside from the obvious road rage scenarios — takes place at the airport baggage carousel. I can understand that people feel the need to get a good view; we all want to get our bags as fast as possible. And sure, I can't blame you for camping out in a spot waiting patiently for your bag to come down the conveyor. If you don't, others will simply take your place. I personally don't want to sacrifice my personal space when I can simply stand back and wait. But then I have a low tolerance for such things, and my 6'3" of height gives me an edge in seeing over the throng of my fellow travelers.

What I do take issue with is your complete lack of empathy and seeming inability to move out of the damn way when I need to get my bag. Your bag is nowhere in sight. Mine is right in front of you. Please do me the courtesy of a modicum of locomotion so that I may get in and out with my bag as quickly as possible. Then you can resume your stony, statuesque stance, preparing for that moment when your bag comes around; anticipating it like the approach of Christmas morning to a child.

But please don't look at me with a look of condescension and disgust just because you didn't move out of the way when I said "excuse me". I gave you sufficient warning, and it's not my fault you chose to take a stand and defend your precious little plot of real estate as if you were Winston Churchill defending the beaches, landing grounds, fields, streets, and yes even a 3.5 square foot section of floor in Terminal C from the invaders. If that's what you choose, please be rational and mature about it; accept the collateral effect of getting jostled by my XL Eagle Creek duffel while remaining rooted.

Really, I have nothing against you personally. I'm sure you are a fine human being. But look — we're in this together. My bag is there; yours isn't. It's a simple, straightforward fact. Can you at least admit that — for maximal efficiency — I should be allowed in to claim my bag and get the hell out, thereby reduce clutter on the carousel and in the airport? Otherwise, you're likely to think my bag is yours on the next cycle around, and try to claim it. Again. Just like you did this time.

I'd go on vacation a lot more if it weren't for all the travel stress like this. Or should I say, stress from travelers.
Cirque du Soleil music tends to be atmospheric, with heavy use of synthesizers mixed with more traditional instruments, very much like Broadway musicals from the 80s such as Les Misérables and Cats. I picked up a best-of compilation CD used and it's turned out to be a great buy. All of the music is good, and there are a few standouts.

Alegría has great instrumentation, with a beautiful fretless bass part. It's got a nice, non-standard chord progression too, switching between minor and major effortlessly. And the gravelly edge to the singer's voice gives it a more impassioned feel.

   Dm
Alegría
F C
I see a spark of life shining
Dm
Alegría
F C
I hear a young minstrel sing
Dm
Alegría
F C Dm
Beautiful roaring scream of joy and sorrow
Bb Gm
so extreme
F C
there's a love in your raging
Dm
Alegría
F C Dm
a joyous magical feeling
This video hits a bit too close to home, I think.




"Two professional engineers illustrate the proper care and practical benefits of cats. None of the cats, humans, or engineers were mistreated in the making of this film. They were however, slightly annoyed."
Music discovery is always a tricky thing. There's a lot of crap out there. Hence, I plan on sharing some of my all-time favorite songs occasionally on this blog. And since most of them tend to be a bit off the standard pop music, hopefully I'll introduce a few of you to some new favorite songs or artists.

First up is Duncan Sheik, who had a minor hit with Barely Breathing back in 1996 on his debut album. It's a great song in its own right, but the one I'm featuring here is On a High from Daylight (2002). It's an upbeat number that always puts me in a good mood; a great tune to crank up when driving down the road on a warm sunny day.
There are now 10 episodes in the You Suck at Photoshop series. More of the same, but still worth a laugh.

"Oh no. You were reaching for the magic wand tool, weren't you? Yeah we need to have a little talk about that.... if you want to use your magic wand, that is awesome. And you can go grab a juice box and a fruit roll up and we'll check you out in six hours." Hilarious condescending tone toward the audience. I love it.

It's up for a Webby too, so if you like it, vote for it.

Pun Thursdays

| | Comments (0) | TrackBacks (0)
What do you ask someone who tried but failed to make a traditional Australian musical instrument?

Didgeridoo it?

Well... the kids liked it.

A very funny web comic that I highly recommend you add to your RSS reader, or just visit this site if you're olde skool. Here's one of my favorites:

100spouse.gif


OK, I've been hearing about Web 2.0 and AJAX and Ruby on Rails and Amazon web services etc for too long now. And every one of these new sites I view all still use Arial and Verdana and Times and Georgia to display their text. Boring. These are the same fonts that were around at the start of the web (or very soon after). Microsoft released their suite of core web fonts and that was it. No more progress on the typography front.

I'm not saying Microsoft has to step up again. In fact it's unlikely they will. They've got some beautiful new fonts that shipped with Vista (and to the consternation of the Vista product managers, the latest version of Office as well). But while one can get these fonts freely on the web, they will never be widely licensed for distribution.

But what I don't understand is why others haven't picked up the slack here. There are some really nice free fonts out there (many of which have been featured on Smashing Magazine) that could easily be included in the Firefox distribution—like these for example.

Or how about Adobe? They have amazing reach with both Flash and Acrobat Reader, and they also have an amazing library of typefaces. How about it Adobe? How about picking up the slack here and giving a bit back to the Internet community that made you the powerhouse you are today?

Or Google? They licensed the Droid fonts for their Android phone platform. How about extending use of these fonts to computers as well? They've got plenty of client installs (Google Desktop, Toolbar, Talk, Pack...) they could bundle fonts with.

Ah well, I'm not holding my breath. I'm still going to use SIFR for my designs. And for the love of everything that is beautifully designed, I encourage you all too as well.
If you're a part of a large company, you've no doubt taken place in the "conference call". An often one-sided affair, the conference call is often plagued by poor acoustics, whether it be the laptop fan placed too close to the microphone, or the soft-spoken participant who is nowhere near the microphone. Often these meetings devolve into one side simply working away on their laptops until they are asked a question by the other side, at which point the question must be repeated and sometimes even the context of what the hell is going on. Good times.

There is one type of call that can be vastly improved with a simple application of free technology. The presentation call has a formal presentation happening on one side (likely with slides), and the satellite offices calling into a conference call bridge and following along with the slides (either manually or over something like WebEx). The presenter is often already miked through a PA system, which makes the traditional speakerphone a bit dicey. But it's easy to fix.

Get an old Windows laptop. Nearly any one will do, as long as it can run Yahoo! Messenger v8.1 or higher. Hook an audio out from the PA system to the mic input on the laptop. Also either turn down the volume, or plug in headphones. Now dial into the conference call bridge using Yahoo! Messenger. Yes, anyone can do it. You don't need a premium account. Anyone can call a toll-free number using Messenger from anywhere in the world.

You probably want to dial in from a phone and test the system out to make sure the levels are ok. But once that's all set up, you've now got a system that has a direct feed of the presentation's audio for optimal quality, plus any noise from the listeners won't interrupt the presentation. If you want to be able to take questions from the phone, use headphones and have someone monitor it.

Let me know in the comments if you did this and found it useful. I always love to hear feedback.
I long time ago I came up with a concept called "NPREM". That's the odd combination of NPR and REM-sleep that happens when my alarm goes off in the morning, and I begin to dream about the news. NPREM is a bad place to be. I get neither a decent NPR morning newscast -- as my dreaming brain is twisting the stories around, nor do I actually get up on time.

Two things came into my life and changed all that. First is the Chumby, about which I have written much already. When I got the Chumby, I gave my nice alarm clock radio to my wife. The second "thing" is my wife (should I have started with her?), and especially her unnatural love of country music. My father once explained that he listened to country music while jogging because "it was good music to try to run away from." It certainly is. Every weekday I now hear my awesome Boston Acoustics Receptor Radio erasing the morning's peaceful silence with the latest "fresh country hits" from "95.7 The Wolf" with "Ken and Corey" and the "Y'all-Turnative Morning" show (no -- really, search for it); and the OFF button is on the wrong side of the bed.

The Wolf most definitely gets me up and out of bed in the morning -- there is no incorporating the "y'all-turnative" music into my dreams. I think I'm glad about all of this.

I just switched back to the Mac from Windows, which necessitated that I switch from Outlook to Entourage for my Exchange client. I used to lead up the Entourage project for 3 versions when I worked at Microsoft. Good times. The 2008 version is pretty nice; a definite upgrade from 2004 although I'm still pissed they haven't yet integrated with WebKit for message display and composition. and the conversation view takes up way too much space with the massive thread headers that add no value whatsoever.

But the one thing I still love is the auto-complete when addressing messages. There are a lot of designs I look back on from my early days working and can't believe how ignorant I was. But auto-complete was a huge success. There are two keys to this design that make it work:

  1. Keeping track of messages sent and received to each contact, using that data to calculate a relevance (weight) for each contact, and automatically selecting the most relevant contact by default.
  2. Matching entries on any of several fields, including first name, last name, company, nickname, and email address.
Point #1 is really the critical one. The concept is simple. For any user action, make the most likely/relevant option the easiest one to select. This concept is what made Google great, with their brilliant PageRank algorithm (so good that one can often use the “I'm Feeling Lucky” button to go straight to the page you want).

Too often technology takes the easy way out. Even if they offer a way to type-ahead to results within a constrained set, the selected entry is almost always the first one alphabetically. And alphabetical does not equal relevance. Think about every country selector you've filled in. Type U and you're taken to... United Arab Emirates. Useful to well less than .1% of the people filling out the form.

So for any designers, developers, product managers and the like out there, my one request is that you consider relevance when presenting options to the user, and give them the most relevant option as the pre-selected result.
I went to the opera today in jeans and a sweatshirt. It was the Met's live broadcast to movie theaters .Today was La Boheme, Puccini's most popular opera. It was a cool experience. I'd recommend it. It's a great way to get introduced to the opera in a relatively inexpensive, casual environment.

The sets were fantastic. And the second act was simply amazing. There are probably 200 people on stage at once.

There's one more performance this season on 4/25, and then apparently they're doing 10 next season.
So I've made the switch back to Mac OS from Windows. When I started my new job six months ago, I had this day already in mind, which is why I got a MacBook Pro as my laptop and have been running Windows under Boot Camp until now. The thing that drove me to switch now was the inevitable decay of performance and stability of the Windows OS finally reached a breaking point.

All new computers start off with great performance. Just the core stuff installed. No wear and tear from use yet. But then you start to use it. You install software. You upgrade. The OS auto-updates itself, and so do some of your applications. You try out some things, uninstall them. Or maybe you don't; you just don't use them anymore. Then weird stuff starts to happen. Some apps don't work right. You have to reinstall them. Sometimes they lock up or crash. Eventually the machine itself won't shut down properly, or locks up or crashes. And there's nothing you can do but wipe the hard drive and start over with a fresh install of the OS.

Windows had gotten there for me. Booting up literally took 10 minutes before the system was responsive enough for me to use. Outlook refused to start up or shut down properly. I got errors on launch, and had to force quit every time. Yahoo! Desktop Search would freeze the machine on shut down every time; I had to force quit. About half the time I'd just end up forcing the machine to power off by holding down the power switch for 5 seconds. I spent far too long having Windows diagnostics check my disk for damage on boot.

Some days I would get home from the office, pull my laptop out of the case and the fan would be spinning like a centrifuge and the case was as hot as molten lava. Yes, the laptop had failed to go to sleep. Again. Despite the top being closed and the heat sink in the keyboard reflected back to the circuitry by the screen. And every now and then, the power manager would take over the computer, using 100% of the CPU. the only way out was to remove the battery and operate on AC power only. To reset things, I'd have to boot into Mac OS, and then back to Windows. There's another 15 minutes of my life I'll never get back.

I suspect I'll have issues with Mac OS too. Things are great so far. But of course they are; it's a fresh OS install. I've just started to put my favorite software on it. QuickSilver. OmniGraffle. Firefox 3 beta. Parallels Desktop (to run that piece of crap Windows in the background). I give it a few months before the first problems surface. Then maybe another few before they get really annoying.  Six months seems to be the half-life of a Windows install. Mac OS might take a bit longer, but I've no doubt it will succumb too. And that's when I'll become a luddite. Or maybe I'll just upgrade to a new laptop.

Until then, I'm enjoying it. I shut the lid, and the computer's asleep. I open the lid, and it's ready to go and even already connected to the wireless network after I sign in! It auto-detects my second display, and even rotates it to portrait mode without a separate driver. And it recognizes all my USB devices, even after several dockings and un-dockings. It's the little things. :-)
Welcome back to "Tales from the Diploma Mills," and today's episode is a hot one! You'll recall how we spoke before of CEO's of major corporations, government officials, and best selling authors who all decided that school -- but not the diploma, was for clueless morons.

Here's a fun experiment -- next time you're in New York, drop by the library at NYU, and ask to see a copy of former Federal Reserve Board of Governors chairman Alan Greenspan's Ph.D. dissertation. Since he was awarded a Ph.D. from that institution in 1977 (not an "honorary doctorate" -- the real deal) you'd think they would have a copy. Nope. Anyone else? Nope. Greenspan himself? He's not talking about it. How long did he attend NYU? According to this article -- which is the primary source for this blog entry -- about three months.

I'm sure there's a perfectly honest, reasonably explanation for all this, and that Greenspan is not a lying fraud. Perhaps the article is a bit -- to use "Dr." Greenspan's own words -- "frothy" in it's conclusions. I hope so. Make up your own mind by reading the source article. Too bad I can't link to a certain 1977 Ph.D. thesis to provide some balance.

I remember the concept of just noticeable difference from college psychology.It's the minimum change in some stimulus that can be detected by a person. Thinking about agile development processes and where to spend precious resources led me to the other end of the spectrum: the signifiant noticeable difference (SND).

You should only take on a new task if it will make a significant difference from the current state of things. Of course the word "significant" itself is sufficiently vague, but it conveys the appropriate scale at which you should approach your thinking. When I look back on a lot of the work I ended up doing over my career, too much of it was on the JND side of the spectrum. I'm doing my best at my new job to work in the SND space.

So, that's not to say that details aren't important sometimes. But I would argue the details that are important, are in fact significant. If design polish is an important part of you vision (and as I designer, I argue it should be), then those misalignments and other formatting bugs are significant. They will detract from the overall perception of quality if they aren't fixed.
One thing I dislike about most web page designs is that they have a fixed width chosen for the lowest common denominator computer out there. Some sites are still designed for the old 800×600 screens, and even the "newer" ones target only 1024×768. So if you're on one of the widescreen displays typical of newer computers (like 1440 on my laptop, or even 1600 or more on the bigger displays), you've got a lot of white space showing.

As a user, there's not much I can do about this. I do run a second monitor in portrait mode which helps somewhat. But as a web designer, we can fix this.

First, design you site using a grid and content blocks that will fit together nicely in a flowing layout. The easiest way to do this is what Yahoo! OMG did. Every piece of content on the page is a block that is the size of a standard mediumn rectangle ad unit (300×250). Use float:left or display:inline CSS to get your blocks flowing.

But things don't necessarily look that great. As it stands, your site will have a large margin at the right, typically half the width of your blocks. The best way to fix this is to center your content in the window. You can do it with a single line of javascript that resizes the width of a centered div to be just wide enough to hold the content that will fill the width of the user's window without clipping or wrapping.

<center>
  <div id="x">
    <script type="text/javascript">
      document.getElementById('x').style.width=Math.floor((window.innerWidth-24)/310)*310+'px';
    </script>
  </div>
</center>
In this example, blocks are 310px wide (300px of content + 10px of margin) and I also allow 24px for a vertical scroll bar. You can also use the same code onresiz