Wednesday, October 27, 2004
The Boston Red Sox are World Series champions. I'm still stunned. After the greatest comeback in the history of baseball, the Red Sox didn't drop a single game to the St. Louis Cardinals on the way to their first World Series Championship since 1918, a period of 86 years. How sweet it is. When I think of all the generations that have passed without being able to see a single championship in Boston, and who have witnessed so many catastrophic game 7 (and game 6) collapses, it makes me, as a lifetime baseball fan appreciate this win that much more. I've considered myself one of a nation of long suffering Red Sox fans. What are we to do now, now that the Red Sox have finally given us what we've wanted all these years? CELEBRATE! I think tonight, Bill Buckner sleeps a little more soundly...
Sunday, October 24, 2004
On Software Design: Consistently Inconsistent
A couple of recent posts to other blogs have hit on something that has bugged me about Mac OS X since the "birth" of the "Metal" theme. In the OS 9 days, there used to be this thing called the Apple User Interface Guidelines. In it Apple specified exactly how things were supposed to look and feel. I even remember rumors of a "User Interface Police" that would take you to task if you strayed. (This may or may not be true.) Back then, there was pretty much one theme to worry about, and the guidelines were pretty much set in stone. Fast forward to today. With the advent of both Aqua and Metal, developers now have two themes to contend with. Not only that, there seem to be two differing window "styles" that exist as well. One style has user interface elements that run to the window edges. Think Mail, and XCode (if you're a developer). The other style has user interface elements that don't run to the edges. Think iTunes, iChat, etc. At first blush, you'd look at these two sets of applications and determine that "Aqua apps run to the window edges, and Metal apps have borders." But herein lies one of the many inconsistencies. While this is true in general, Apple's Safari (Metal) throws this paradigm out the window and runs its elements to the window edges. DiskUtility however uses the default Aqua theme and has borders.
The latest Human Interface Guidelines has no specifics on what's right and what's wrong. Personally, I don't like the "run to the edges" look, and don't use it in MacGourmet, or SQLGrinder 2. Others clearly feel the same way, as seen in Panic's Transmit and Candybar, and in Ranchero's NetNewsWire. Brent Simmons even wrote about this in a recent post to his weblog:
What's right? What's wrong? Who knows. It's essentially up to us as developers to decide. The end result is not based on a set of guidelines published by the source of the user interface (Apple) but on personal preference. Hardly a recipe for consistency, eh?
Additionally, Apple isn't clear as to what theme should even be used. Their guidelines state:
Not exactly specific are they? Look at Apple's own suite of apps: They seem to follow the above, but what about Safari? How does this fit their own guidelines? I'd argue they don't. And notice they say "You can" instead of "you must" or even "you should." Following the above, MacGourmet could be metal. So could NewNewsWire, but clearly both Brent and I decided that Metal didn't work well for these apps. Safari really screws with developer's heads in that it's Metal, and doesn't fit ANY of the described uses above. Even worse, it's a Metal app with no metal borders. Confused? You should be. Apple says "Don't use the brushed metal look indiscriminately" and then it seems they do exactly that by making Safari Metal.
And now as if this all wasn't confusing enough, Apple may be adding yet ANOTHER theme to the mix, if rumor sites and John Gruber of Daring Fireball are to be believed:
Yow, that's all we need. How is it that the bastion of consistency for so many years, has suddenly become so inconsistent? Is someone asleep a the wheel? I won't even go into the additional "themes" and look and feels of GarageBand (a darker grey metal and wood), and the almost "XP-ish" look of some of the elements in Tiger as seen in Automator and Spotlight. Seems like anything goes these days.
Please Apple, I IMPLORE you, be clear on these things for us. All Mac apps should look and feel the same way. What themes should be used for one kind of app or another should not be left up to the personal preference of developers. Have you used Linux lately, or Windows? That's what Mac OS X could become. If you don't even seem to adhere to your own Human Interface Guidelines, what are we as developers supposed to do? Please make these things clear. Put them in stone with some "Thou Shalts" and "Thou Shalt Nots." It's only by doing this that you will prevent the problems we are already seeing, even from your own applications.
The latest Human Interface Guidelines has no specifics on what's right and what's wrong. Personally, I don't like the "run to the edges" look, and don't use it in MacGourmet, or SQLGrinder 2. Others clearly feel the same way, as seen in Panic's Transmit and Candybar, and in Ranchero's NetNewsWire. Brent Simmons even wrote about this in a recent post to his weblog:
"For a long time during earlier NetNewsWire beta testing, the margins were indeed collapsed as shown. Some people thought that the layout was cramped this way. So we tried it for a while and then went back to having margins.
And yet... some people preferred the no-margins look. It’s cleaner, you might argue, and it means you have more available horizontal space. Look at Mail, for instance—no margins. (And look at MarsEdit: same layout as Mail.)
And yet, again... if you look at iTunes, iCal and other Apple apps, they have margins. Sure, they’re metal, and that’s a difference, but still it shows that there isn’t a hard rule about margins that applies everywhere."
What's right? What's wrong? Who knows. It's essentially up to us as developers to decide. The end result is not based on a set of guidelines published by the source of the user interface (Apple) but on personal preference. Hardly a recipe for consistency, eh?
Additionally, Apple isn't clear as to what theme should even be used. Their guidelines state:
You can use a brushed metal window if your application:
- Provides an interface for a digital peripheral, such as a camera, or an interface for managing data shared with digital peripherals—iPhoto or iSync, for example
- Strives to re-create a familiar physical device—Calculator or DVD Player, for example
- Provides a source list to navigate information—for example, iTunes or the Finder
Don’t use the brushed metal look indiscriminately. Although it works well for some types of applications, some applications appear too heavy when using this look."
Not exactly specific are they? Look at Apple's own suite of apps: They seem to follow the above, but what about Safari? How does this fit their own guidelines? I'd argue they don't. And notice they say "You can" instead of "you must" or even "you should." Following the above, MacGourmet could be metal. So could NewNewsWire, but clearly both Brent and I decided that Metal didn't work well for these apps. Safari really screws with developer's heads in that it's Metal, and doesn't fit ANY of the described uses above. Even worse, it's a Metal app with no metal borders. Confused? You should be. Apple says "Don't use the brushed metal look indiscriminately" and then it seems they do exactly that by making Safari Metal.
And now as if this all wasn't confusing enough, Apple may be adding yet ANOTHER theme to the mix, if rumor sites and John Gruber of Daring Fireball are to be believed:
"Apple’s fourth theme is something slated to arrive with 10.4. It’s not a secret: you can see it in the screenshots Apple has posted for Spotlight and the updated version of System Prefs. Unlike brushed metal or the Pro theme, however, this new look is so subtle you may not even notice it.
It’s mostly like Aqua, but with certain touches borrowed from brushed metal; particularly the way that window title bars and the toolbar area underneath are combined as a single expanse. And, mercifully, it’s free of pinstripes. In the same way that brushed metal matches the look of PowerBook and PowerMac hardware, this new theme is perhaps intended to evoke the look of iBook and iMac hardware."
Yow, that's all we need. How is it that the bastion of consistency for so many years, has suddenly become so inconsistent? Is someone asleep a the wheel? I won't even go into the additional "themes" and look and feels of GarageBand (a darker grey metal and wood), and the almost "XP-ish" look of some of the elements in Tiger as seen in Automator and Spotlight. Seems like anything goes these days.
Please Apple, I IMPLORE you, be clear on these things for us. All Mac apps should look and feel the same way. What themes should be used for one kind of app or another should not be left up to the personal preference of developers. Have you used Linux lately, or Windows? That's what Mac OS X could become. If you don't even seem to adhere to your own Human Interface Guidelines, what are we as developers supposed to do? Please make these things clear. Put them in stone with some "Thou Shalts" and "Thou Shalt Nots." It's only by doing this that you will prevent the problems we are already seeing, even from your own applications.
Thursday, October 21, 2004
Amazing!
I've kept this blog more of a company blog than a personal one, but I can't help but comment on one of the most amazing comebacks in sports history. Wednesday night the Red Sox finished roaring back from a 0-3 defecit against the New York Yankees to take the ALCS and enter the World Series for the first time since 1986. I'm old enough to remember 1986, and I've lived in New England all of my life. I wish I could forget 1986. I'm sick if hearing about the "The Curse" and about all of Boston's failures. This team has shown an incredible amount of heart and tenacity, coming back all season, even being down 10 1/2 games to the Yankees in August. Now they're in the World Series again, and I hope that this is "The Year." I was at Game 3 of the ALDS, when the Sox completed a sweep of the Anaheim Angels. I was at game 3 of the ALCS, where I witnessed one of the worst beatings ever, seeing NY take what appeared to be an insurmountable 3-0 lead in the series. I'll be at game 6 of the World Series, if there is a game 6. If Boston wins the World Series, this city will literally explode. I can't imagine what it might be like to be at ground zero. (My hope is that we won't see a repeat of the deaths in past celebrations, the most recent on Wednesday night.)
I think this quote in the New York Times best sums up Wednesday night's victory over the Yankees:
"It was actually happening. The nerd was kissing the homecoming queen. Paper was beating scissors; scissors were beating rock. Charlie Brown was kicking the football. The Red Sox were beating the Yankees for the American League pennant."
Amazing. Bring on the Cards. GO SOX!
I think this quote in the New York Times best sums up Wednesday night's victory over the Yankees:
"It was actually happening. The nerd was kissing the homecoming queen. Paper was beating scissors; scissors were beating rock. Charlie Brown was kicking the football. The Red Sox were beating the Yankees for the American League pennant."
Amazing. Bring on the Cards. GO SOX!
Monday, October 18, 2004
SQLGrinder 1.2.7: New icons, JDK 1.4 compatibility
The wait for SQLGrinder 2 has been long, I know. So long that I decided to do an interim SQLGrinder 1 release to tide people over. What's in this new release? Well new icons for a start. These icons were originally supposed to be used for SQLGrinder 2, but because version 2 will be using a different, better icon set, I decided to replace the horrible current version 1 set with this now extra icon set. Believe me, I had no intentions of these pre-OS X 10.0 icons sticking around as long as they did, but now, they're gone. There are also some other user interface tweaks to some things that have been bothering me for a while.
In addition, SQLGrinder 1.2.7 switches from JDK 1.3 to JDK 1.4. This will allow you to use newer 1.4 JDBC drivers which didn't work before. Previous to 1.2.7, SQLGrinder was still using the 1.3 JDK that Apple maintains alongside the newer 1.4 version.
There are no code changes in this release. That work is reserved for the new version. Hopefully, however, this interim update will help hold people over until version 2 is done.
In addition, SQLGrinder 1.2.7 switches from JDK 1.3 to JDK 1.4. This will allow you to use newer 1.4 JDBC drivers which didn't work before. Previous to 1.2.7, SQLGrinder was still using the 1.3 JDK that Apple maintains alongside the newer 1.4 version.
There are no code changes in this release. That work is reserved for the new version. Hopefully, however, this interim update will help hold people over until version 2 is done.