Wednesday, February 09, 2005

Wait, I hate you

Love is so fleeting. These sad fools apparently missed the hint that they're perfect for each other. By Friday some screenwriter in Hollywood will have tacked a happy ending onto this and will be pitching it as the next Sleepless In Seattle.

Tuesday, February 08, 2005

The beatings will continue

...until they stop. Finally, someone tries an approach that works and sheds no blood. This is the kind of thing that gives me hope. If Yemenis can be so sensible, why can't we?

Friday, February 04, 2005

Losing control

A highly speculative article on IBM’s new Cell processor, which will be unveiled soon in a series of workstations and, oh, Sony's Playstation 3. I’m not man enough to comment on the world-shaking potential of the Cell (“Steal processor cycles half a world away!”) but a throwaway line in the article has prodded into life one of my pet peeves about the level of writing on the Internet.
[...] We’re in a funny time at the moment, because that settlement hasn’t been reached yet. But it will be, and once it is, the Cell vendors had better start thinking of a more attractive sales pitch than “stops you doing stuff.”

Let’s you do stuff” will be a start.

That’s right, the Cell “let’s” you do stuff. Did no one edit this piece for apostrophe errors? Does the author not know the difference? This sounds like something a witty spouse might say – “Honey, let’s you do the dishes.”

Speaking as an English major, it makes me crazy.

Another example, which I have seen growing in use for several years now, and which my wife, an English professor, has seen as well.
We are in danger of loosing the war on terror.

Loosing? Loosening? Oh, losing. Does no one realize that “loose” and “lose” are wholly different words, as different as “fat” is from “flat”?

Where did this come from?

I feel better now.

Thursday, February 03, 2005

The smoky pit of ProKit

I discovered some interesting things buried in my Mac the other night.

I was poking around in the Frameworks (/System/Library/Frameworks/) looking for some indication of how the Finder sets the menu policy. Ever since OS X 10.0.0 came out, I’ve been interested in how the Apple (er, NeXT) engineers converted the floating vertical NeXTStep menus to the top-of-the-screen Mac menus in such a short time. Recall that in the early days of OS X, there was a hidden preference for turning back on the NeXT look and feel.

Anyway, I wasn’t successful in gaining any knowledge about that, but I did find some other cool stuff, which brings us, finally, to the meat of the post.

Not long ago Daring Fireball posted about the new look and feel of Apple’s media applications (it’s the last item on the page). Us longtime Mac users are getting a little bewildered by the constant L&F changes that have been coming with OS X, especially coming from a company that was so preoccupied with UI consistency that they originally burned the UI toolkit into ROM. But that’s another story.

Anyway, I found the bits and pieces that make up the “Media UI” on my machine. And it wasn’t at all like I thought it would be.

Look in /System/Library/PrivateFrameworks/ProKit.framework/Resources/ and you’ll find a bunch of files that apparently make up the new UI. Many of the files look like gibberish (“3f229972612431b0e11cc095b7ef4d09”) – hex code for something, but my efforts at de-hexing the string resulted, naturally, in ANSI gibberish.

Curious about what was inside them, I dragged one onto TextWrangler; blessed TW, it obediently rendered an image – turns out the gibberish files are the images that make up the ProKit (Media) UI.

Wishing to see the file’s guts, I cracked one open in emacs and discovered that it is a Photoshop file. So I made a copy, appended “.psd” onto the end and the Finder obediently provided a preview image – of a scrollbar with the down button pressed. I opened it in Photoshop and lo! five neatly organized layers of various states: inactive, normal, pressed, etc.

So the Mac OS is rendering layered Photoshop files as part of the UI? I would have expected TIFFs, given the NeXT history.

Not sure what use this is, but it’s interesting to know it’s there. Perhaps the real scoop is that TextWrangler renders .psd files, I don’t know.

Tuesday, February 01, 2005

Et tu, HIG?

So I’m designing a few dialog boxes for a company I do a little work for. It’s like five hours of work, total. Despite it being written in Java, I thought since everybody who uses this app is on Windows, and probably XP too, I'd get the latest XP HIG document (the Windows XP Design Guidelines) and give the users a break.

Do it right, 'n shit.

Notice something? Yep, the downloadable guidelines are an .exe file. Since I'm on the Mac, doing mockups in Photoshop (pretty common practice, actually), what am I supposed to do with an .exe file? What’s in it? Couldn’t they provide a Word file, or a PDF, or something? HTML, God forbid? Guess not.

Edit: a smarter person than me has pointed out that Stuffit opens .exe files; doing so to the above yielded the XP HIG as a collection of HTML pages. Arrighty then! Learn something new every day. A manifest of the file’s contents would still have been nice (for example, “Download ‘WindowsXPDesignGuidelines.exe’; HTML format; 5.2 MB Zip archive; Updated: March 5, 2002”). Including such information is free, and harms no one.

So with a little Googling I found a PDF that wasn’t that useful. Perhaps it is what is contained in the .exe, but without a manifest, who knows? It didn’t, for example, tell me how many pixels to put between related & unrelated buttons, nor the margin between the OK/Cancel buttons and the window edge, none of that.

Back to MSDN and I find an older Design Guidelines for what looks like Windows 2000. And I discovered why Windows applications are all totally different from one another, totally non-standard, all wonky. I quote:

The system defines the size and location of user interface elements in a window based on dialog units (DLUs), not pixels. A dialog unit is the device-independent measure to use for layout. One horizontal dialog unit is equal to one-fourth of the average character width for the current system font. One vertical dialog unit is equal to one-eighth of an average character height for the current system font. The default height for most single-line controls is 14 DLUs. Be careful if you use a pixel-based drawing program, because it may not provide an accurate representation when you translate your design into dialog units. If you do use a pixel-based drawing tool, you may want to take screen snapshots from a development tool that supports dialog units and use those images.


Did your eyes glaze over? Let me get this straight: I should measure my mockups not in pixels but in DLUs – which are different depending on whether they are vertical DLUs or horizontal DLUs – and I should steer clear of pixel-based drawing programs (ahem, Photoshop) to do mockups.

Could laying out a damn dialog be more of a pain in the ass? For one, isn’t a developer going to look at DLUs and say yeahh right (it’s what I said when I read it) and slap together whatever looks OK? Two, did they explain which design applications measure DLUs correctly? No, but I’m betting it’s a $1000 Microsoft product that runs on Windows, whaddya say?

The usability is hard to use. It’s beautiful, in its own special way.

I mean, comment-spam me if I’m wrong.

Driven to post

More later.