The Shrinking Scrollbar

Technology, Life 1 Comment »

I’ve just recently come back home after a month on the road. Consequently, I’m running behind on a few things, such as my email. Ah yes. My email. I hate email.

I find my emotional state is governed too often by my email. Or more specifically, the vertical scrollbar in the email application. What I long to see is:


A nice fat scrollbar

Sadly, what I see lately is:


My reality

Whenever I am that far behind, my general mood becomes quite anxious. My apologies to those who feel slighted or ignored. I have some good friends languishing somewhere in the scrollbar gutter. I’ll get to you, soon, I hope.

At some point in the email-whacking exercise, I always get distracted by how much every email application sucks. They all do. With Gmail, I get great searching in exchange for an awful user interface. With OS X Mail, I get a pretty interface with amazing UI latency and a search that seems to actually be more an exercise in generating some form of grinding noise from the hard drive than actually finding what I’m looking for on a timely basis. And the spam! Oh, that horrible spam.

There was a time in my life I thought I’d make time to write a really cool email client. But I never got the time. Can someone please get around to it?

In any event, if you’ve tried to reach me and haven’t heard back, shoot me another email. FIFO is out, the squeaky wheels are in. Sorry.

(Three tracks into the new Björk album and I’m very disappointed; hope it gets better.)

OS X Keyboard Shortcut Mystery Solved

Technology 1 Comment »

Some months ago, one of my oft-used keyboard shortcuts in an OS X application broke: Command-/ in IntelliJ IDEA, which is used to comment out lines of code. I am constantly installing new applications on OS X and had recently upgraded IDEA, so tracking down the offender was no small task.

I started out by reviewing the OS X Keyboard Preferences Pane, but there was no keyboard shortcut registered for Command-/. IDEA didn’t show any conflicting mappings either. So I lived without Command-/. It was a bit painful but I couldn’t justify taking any more time tracking it down.

But today, I finally got around to it. I starting pressing Command-/ all over the place, trying to see what would happen. Hitting it in IDEA just causes a beep. Hitting it in Firefox also causes a beep. But finally, I hit it in Finder, and it launched… DEVONthink. I installed DEVONthink when I bought some OS X application bundle a few months ago. I’ve never used it. So I Googled DEVONthink and keyboard shortcuts, but didn’t find anything on Command-/.

And then I discovered Service Scrubber. And sure enough, that naughty little DEVONthink had installed a presumptuous keyboard shortcut for Command-/ associated with one of their OS X Services. I disabled it with Service Scrubber, restarted OS X, and finally, I can use Command-/ in IDEA again.

iGoogle?

Technology No Comments »

I’ve had my head down consulting on-site for two weeks now, so I haven’t had a chance to keep up with the news. I heard about a press conference Google held to discuss this big “iGoogle” announcement. And, sure enough, I went to Google, and saw a new “iGoogle” link in the upper right-hand corner. Sweet! “What new from the Googles?”, I wondered, a bit excitedly. I clicked on it, and… got the standard personalized homepage.

I tried Google’s personalized homepage for a few weeks and eventually dumped it because it took too long to render and stole focus once it finished rendering (nice, thanks). It looks the same. No new features are obviously visible. No “This-is-why-its-now-called-iGoogle” message anywhere, no “About-iGoogle” link, etc.

So I Googled around a bit to find out what I’m missing about iGoogle, why its introduction required a press conference, etc. And, after reading a few random articles, yep, it looks like its all about renaming whatever they called the personalized homepage before to… iGoogle. Am I missing something? Back to work.

Apple Ate My Email

Technology No Comments »

I spent a few minutes organizing my email by moving some messages in Apple Mail to an IMAP server running on my local system. I dragged the email (3000 pieces) to the IMAP server, it seemed to work just fine, and then I noticed about 10 emails from today just gone. No undo. No evidence as to why they vanished. Spotlight finds no evidence of them anywhere. They’re gone.

I rely on my email for sooooo much. Fortunately, I have a backup of nearly everything on Gmail. Ugh.

The Joy of Writing Swing Frameworks

Technology 6 Comments »

One of the best parts of writing frameworks around Java’s Swing GUI toolkit is how often components don’t actually follow the component contract.

For example, JComponent defines a FocusListener which predictably enough fires an event when a component receives and loses focus. Yet, many components in Swing and its ecosystem (e.g., JComboBox) simply fail to fire a focus event. Why? Because they are composite components (i.e., they are comprised of several components mashed up together) and they expect you to get some of the internal components and register the FocusListener on one of them. Mind, this is rarely documented, adding to the fun.

No no no no! I wish Swing’s team published some kind of “requirements to be a component” document or “best practices” document that did away with this foolishness. Writing a framework that treats components generically is next to impossible (i.e., requires a special adapter layer that makes all components obey some kind of contract) thanks to all of this–to say nothing of the poor newbie.

3 GB is the MacBook Pro Sweet Spot

Technology 10 Comments »

Since the price on a 2 GB MacBook Pro-compatible SO-DIMM recently entered the atmosphere on NewEgg.com, I went for it. I’m very, very pleased. My MacBook Pro generally performed well with 2 GB, but when I launched Parallels, I’d have to trim down my working set to make sure my system didn’t crawl.

After the upgrade, I can leave my full OS X working set up while Parallels does its thing and it all works fine (allocating 700 MB to a WinXP VM). Once thrashing starts during an OS X / Parallels session, man, game over.

No More Wildcard Imports

Technology 3 Comments »

I’ve long been fascinated by the impact that a culture’s language has on its thought processes and social interactions. Is the ease by which adjectives become nouns in Spanish a major factor in their culture of commonly calling people “fat one” (gorda), “old one” (vieja), and so forth?

In a related area, I’m interested in the changes that better tools have brought to the code that I write. For example, despite the advantages of Java 5’s enhanced For loop construct, I’ve only used it a couple of times because IntelliJ IDEA makes it so easy to write loops by typing “itli[tab]” and so forth.

And because of tools, today I finally stopped using wildcard imports. When I first starting writing Java code, I would frequently import “java.util.*” and so forth. In recent years, the IDE will automatically write the import for me, but it would often switch to wildcard imports once a certain number of classes from a package were used, or when certain packages were used (java.swing and java.awt, for example).

I decided that it just doesn’t make any sense to do wildcard imports, largely because file sizes are completely irrelevant to me and its worth sparing myself from the occasional conflict (java.awt.List, anyone?) to splurge on the extra bytes writing out import lines.

More on the Amazing IntelliJ IDEA

Technology 5 Comments »

When I code Java Swing UIs, I often use Karsten Lentzsch’s excellent JGoodies Forms library to scale my pixel measurements in accordance with the font DPI setting of the underlying operating system (e.g., to properly support Windows’ “Large Fonts” setting). This is done by employing a symbolic measurement unit called a “DLU” (dialog unit) in place of pixels at design-time and then converting the DLU value to a pixel value at run-time.

An unfortunate aspect of the library’s design is that I have to invoke separate methods for converting the units along the X-axis and Y-axis (i.e., I invoke Sizes.dialogUnitXAsPixel and Sizes.dialogUnitYAsPixel). This lends itself to many a subtle bug.

To my amazement, my trusty IDEA was once again one step ahead of me:

Invoking the wrong dialog unit conversion method

Notice in the overly-small screen-shot above that I’m passing a constant containing the word “HEIGHT” into a method that’s expecting a unit value along the X axis. I’m not sure what algorithm IDEA employs to figure this out, but I say again, wow.

Once again, money well spent.

You Know You’re a Geek When…

Technology 2 Comments »

I took a day-trip to San Francisco yesterday to participate in a panel at O’Reilly’s Web 2.0 Expo. I’ve been through SFO a kabillion times. For as long as I can remember, they’ve had this mini-museum in the United terminal going towards Gates 76+. In all that time, I’ve never, ever stopped to look at any of the displays.

Until yesterday:

Atari 2600

I’m embarrassed to say I got a little emotional looking at the games, each of which I played endlessly as a little boy, and recalled many memories of fighting with my brothers, beating high scores, leaving the 2600 on for hours so I could do chores and come back and pick up where I left off (all about the score), and so forth.

You can find an emulator and play Yars Revenge, but you can’t go back to the good ol’ days. Sniff.

GroupWise Exporter 1.0

Technology 16 Comments »

I’ve received a few emails and at least one comment on my earlier blog entry about my GroupWise to iCalendar converter, so as promised, I hereby release GroupWise Exporter 1.0. Its a Java application, but I only support it on the Mac. Sorry. If anyone has a desire to use it on non-OS X machines, let me know. Wouldn’t be that hard to get it working cross-platform. Enjoy, and let me know if you have any problems running it.

Oh, and be warned, it stores your GroupWise password in the clear in a preferences file in your home directory. Sorry about that. Would be easy to encrypt it. Maybe a 1.1 feature…

UPDATE: Source code available.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login