Tuesday, July 28, 2009

Mac convert, week 2 - necessary customizations

I've ended up doing a few "jumping-over-the-hoop" type of customization to make this box more useable for me, and the following is the list so far:

Caps Lock as Control.
It's indispensable. However, this isn't as good as on Windows or Linux, because of Command-vs-Control split on Mac - on Windows or Linux, control key is the most frequently used modifier for keyboard shortcuts, hence having caps lock mapped to control naturally makes the most frequently access modifier key more accessible. That benefit is only half on Mac, because a lot of shortcuts use Command key instead of Control. While some of the key mappings can be changed to use control, not everything can (i.e. if there's no corresponding menu item). So I still have to press the awkwardly located Command key.

Auto-hide the menu bar.
When I run Chrome or Terminal, I rarely need the menu bar because 99% of things I want daily can be done through the keyboard shortcut or mouse gesture or anything already in the window that I don't want that precious vertical screen real estate wasted (especially given the vertically-short screen of MBP, the top is much more useful than the bottom - after all, at least the bottom third of the screen is outside the ergonomically comfortable viewing area, even when the MBP is sitting on a desk). I don't want the menu bar always hanging there. Thankfully, at least there's a way to change this through editing info.plist for each application. So now I have Terminal, Chrome, Safari and Picasa with menu bar hiding. This gives me back the nice, clean look of each application with more vertical real estate (if you haven't guessed yet, I have Doc also set to auto-hide). This isn't all happy news BTW. If you use Spaces to move windows to a different space, auto-hide menu bar sometimes breaks. I haven't figured out exactly when this happens, but when this happens, the menu bar will not hide even though you have set the property. So a workaround brings another annoyance by itself. Guh.

Terminal with FFM.
This only works between terminals. So it's not that big of a difference, but at least it's better than nothing. If only Terminals can get focus under mouse without getting raised...

Sunday, July 26, 2009

Mac convert, what's broken in Mac OS X.

Now I've used MBP over a weekend. And I've decided there are a few things that are plain broken - that seriously prevents me from doing something or there's no good workaround - in OS X:

The brokenness #1: there's no support for "focus-follows-mouse" or FFM. Steve Yegge has a comprehensive post and I totally agree with him. Apple must be aware of this issue, since they provide a way to have FFM between Terminal windows (only between Terminal.app, not anything else). However, even ignoring the lack of FFM, I think the window focus system is broken because of the #2:

The brokenness #2: the false "application vs window" dichotomy. When I run a terminal, and launch an app (let's say a graphical diff tool), and then quit the app, the focus does not return to the terminal. Instead, X11 application (with no window at all, hence essentially useless) remains to have the focus, and I have to click the terminal to get back to my terminal. Same is true for any other app - if I launch a Finder window to do something quick in the middle of other app, and then close the Finder window, the focus doesn't return to whatever app that launched the Finder. Instead, the focus remains on the Finder app with no widow left. When is an app useful *immediately* after its last window is closed ? At least in my typical usage, 99% of the time I have the last window of an app closed, I don't need that app for a while. Otherwise, I wouldn't have closed it. If I closed all windows of Terminal.app, that means I don't need the terminal now. Ditto for web browser, and Finder. Or even for applications like Picasa,
if I closed its main window, it usually means I don't want that app for now. Rarely, I'd like to close the window, and open another one of the same app (Photoshop might be about the only exception to this rule). So why the heck Mac OS X keeps the focus on the application with no windows ?
#2 issue is also what makes the command-tab less useful than Expose. Expose treats all windows equally (regardless of which one belongs to which application) whereas command-tab is a list of applications, instead of list of windows - the chance of me wanting to switch to an app that doesn't have any window open through a keyboard shortcut is nearly zero.

The brokenness #3: the modal green + button. The button is actually a toggle button, that switches back and forth between pseudo-maximum mode vs normal mode. It's "pseudo-maximum" because the maximum is what the app decides is the maximum. Combine this with multiple tabs in a window (e.g. web browser), it becomes a trainwreck. It would be much more useful and straightforward if it were simply "maximize the window to fill the screen" or "maximize the window to fill the vertical screen" button. I *know* a lot of Mac users who don't grok this, cause I've seen many people using Mac laptop to do a presentation press the green button and get puzzled (I was equally puzzled every time I watched this, and now I at least understand what's happening but understanding doesn't make it less messy).

I have no doubt I can live with all these warts (after all, I have lived with Windows/Linux/Solaris warts for years), but I'm sure my annoyance won't stop. This isn't to say the other platforms are perfect, but it just shows that Mac isn't panacea and isn't THAT much better, if it's better at all.

Friday, July 24, 2009

Mac convert, day 3.5

Forgot one more annoyance. When I login to a remote machine using ssh with X forwarding, and I run some X program (e.g. diff or merge tools) from the shell. Then, the focus moves to the newly popped up X program (which is good). But when I'm done with that program and quit it, the focus doesn't return to my terminal. Instead, X application, without any application window, stays and eats my keys. Is there any way not to have this stupid behavior ?

Mac convert, day 3

Thanks to various people who pointed out how to remap the keyboard shortcut, I thought I was much closer to the keyboard shortcut nirvana than I was, but alas, the road to nirvana seems more elusive. For various reasons, I have to use two browsers, Chrome and Firefox. Anyway, I mapped "New Tab" to ^-T for all application, hoping that it will do the Right Thing, but alas, it does work for Chrome but not for Firefox. Firefox, for whatever reason, doesn't obey the new mapping - if I press ^-T, "File" menu gets highlighted, indicating that the OS X sends the some event to the firefox. However, Firefox doesn't do anything - even though menu bar shows the new mapping for "New Tab" command. Then, if I press command-T, it opens a new tab. Guh. This got to be a bug in Firefox, but it basically prevents me from using this new mapping (different shortcut for two very similar apps would be even worse than having no shortcut).

Now I'm using Safari and Chrome, except when I absolutely have to use Firefox (I need its proxy extension - where's the extension support for Safari or Chrome ?). I've remapped "Search Google..." menu to command-k, so now I can jump to the search box quickly in Safari (though I prefer Chrome's omnibox).

Anyway, I'm getting more used to the keyboard shortcuts, thing like home/end, page up/down, delete-word, and things of that sort. But I still feel like it's more clunky than laptops with dedicated page up/down and home/end buttons - I have to remember and switch between too many different modifiers keys. It's not a deal breaker but I wonder if all my efforts to deal with this conversion is worth the effort...

BTW, I've also realized that the MBP's keyboard doesn't travel as much as Thinkpad's - while the spacing is good, the short travel distance is something I'll have to get used to.
---
The system has been stable so far, so that's an improvement. I hope it stays this way.
---
One good thing about MBP: the screen is awesome. I didn't think much about Apple's claim of better color gamut, until I started copying back my family pictures. The MBP screen is orders of magnitude better than Thinkpad's when it comes to the color reproduction. This makes pictures and videos to be much more enjoyable.

Did I mention the machine is silent? Even when I'm copying gigabytes of my family pictures, I can barely hear seek noise and it's only because my bedroom is completely silent. I didn't hear anything during daytime with normal ambient noise.

Thursday, July 23, 2009

Mac convert, day 2

This morning, I put the laptop into sleep before the commute. At work, I opened the lid, and the mouse pointer was hanging there with nothing - no dialog box to unlock screen, no progress bar, nothing, nada. *sigh*
I brought it to our tech support, and we ended up force shutoff again. This is bad. Very bad.

He updated the system to the latest. I hope it will fix the instability, but I'll have to see. I'm willing to give MBP some chance but it's not looking very good so far.

Another new downer: the edge of the unibody is just too sharp - it hurts my arm/wrist/palm occasionally. I hope this is something I can get used to, but clearly this little box is designed for better look than better tactile comfort (same for the Aluminum surface - it's not as comfortable to the touch as the hard plastic shell of Thinkpad).

I also found why big touchpad gets in the way - if I put my palm down from the normal typing position, the parts of my palms touch the upper corners of the touchpad. And then if I try to tap using right thumb, my left palm is still touching the upper left corner, making it a secondary click. So I have to consciously move my hands slightly apart (or rather, rotate slightly outward).

A few things I found out that helps me a bit: command-left/right are home/end, and option-left/right are move-word-left/right. Also command-up/down are page up/down. So at least I got my basic keyboard navigation back. But I still don't know how to move between tabs in Firefox or Chrome through keyboard shortcut...guess I'll have to search for it :)

Not everything's gloom and doom though. A few good things I can say about MBP:

It's fast. And having 4GB of memory is awesome. There's just no comparison how much more responsive the machine is - especially when I'm working full blast and have multiple browsers open with lots of tabs with lots of graphs, there's no "swapping" that used to make the performance suck on my poor T43p with only 1GB of memory. It also wakes up fast (of course, *if* it wakes up, that is) - from a regular sleep, it's quite fast to wake up. Not "instantaneous" but nearly so.

Also, it is silent - I haven't noticed any fan noise or hard disk seek sounds so far. I can vaguely hear it if I pay attention to it in a silent room, and it just is plain silent with normal ambient noise around me. Moving it around a few times today, I think I can hear small clicking noise, typically when the disk puts its head somewhere "safe" - I suspect the machine detects my lifting it up and moves the disk head somewhere safe, but I could be wrong.

Compared to T43p, the machine is less hot. It's probably because most of my daily tasks (lots of browser windows/tabs, and one terminal, and a few Finder windows, and a chat client) are not taxing its cpu much, but still the bottom becomes a bit warm during usage and that's it. I don't feel uncomfortable at all, and there's no hot air blowing out to the side either.

Wednesday, July 22, 2009

Mac convert, day 1

After 3.5 years with IBM T43p, I upgraded my work laptop to 15inch MacBookPro, largely because that was the model that had 4GB in our inventory. It's been almost 13 years since I've last used NeXTSTEP as my day-to-day OS, and during that 13 years, I've been mostly using Windows, Solaris or Linux as my primary desktop. My carpool buddy, who is an avid Mac user, recommended me to write down the things I ran into during my "conversion", so here's my first entry.

Day 1

Jumping from a single core 1GB ram box to a dual core 4GB box, MBP (MacBookPro) feels fast. But that's largely expected.

The first stumbling block: tap is not a click. The button is just too heavy to press every time I want to click something. Quickly solved by finding the system preference - I just do not understand why this isn't default. Then I kept seeing "secondary click" aka "right mouse button" click when I wasn't trying to do that. Turns out the pad is simply too big and very often part of my right palm (near the thumb) touches the pad when I try to tap the pad with the right thumb. Once I realized that, I get less of it, so it's not a total annoyance.

Then my great puzzling moment came when I pressed the green "+" button on the window, only to see my browser resize into a weird proportion. I couldn't figure out what's going on - I was totally expecting it to be just "maximize" button and it's apparently not as simple as that. My friend explained it to me on the way home, and now it makes sense, though I still think it's a bad design (the button is modal, but there's no sign of which mode it is in).

Fired up a terminal, and realized that I needed to remap the caps lock key. At least this is provided directly by the system preference, unlike Windows, which needs registry editing. Nice. However, my joy didn't last long, as I soon realized that control-L doesn't highlight the location bar in the browser (Chrome, Firefox, Safari) but command-L does. Ditto for control-T vs command-T. Copy and paste is the same. And there's no separate home/end key nor page up/down keys. And there's no proper "delete" key - the delete key does backspace. Arg. I think this is going to be one of the biggest huddles - the finger habits :(

After playing for a while, also realized that I can't do double-tap-and-hold-and-drag. Turns out the system preference has a setting for this. Whew.

Then came another puzzling moment, with command-tab - where is my "other" chrome window in command-tab list ? Turns out command-tab lists "applications", not "windows". OTOH, Expose does display all windows. Why they don't display the same list is beyond me. Then my friend tells me of command-` which is useful, but not quite as useful. This is another keyboard finger habit that I'll have to suffer through :( Setting upper-left corner as Expose trigger makes it a bit more tolerable, but still it sucks that I have to use touchpad for one more thing.

The biggest downer came late in the night - the spinning beach ball of death. I didn't expect to see it on my first day of the use, but I did. The network stack became completely wedged. I've tried ethernet, wifi, and 3G, all of the individually on and off but to no avail. So I decided to use the last tactic - reboot, but alas, the machine decided to go to the beach, and kept showing me the spinning beach ball for like eternity. I couldn't wait for long, so I had to power switch it off. I have no idea what kind of filesystem this box has (OS X 10.5.7) but I hope it's journaling.

I suspect 3G modem driver might not be up to the snuff, so I'll try not to use that thing unless absolutely necessary. Anyway, wifi was a bit finicky as well - though this might be more likely due to my wireless router than anything else.

There are a few other issues with applications. All in all, not a great day 1 experience :(
If this doesn't improve over the next month or so, I might have to return this and get a different box and get Windows or Linux.

A programmer is...

"A programmer is a person who passes as an exacting expert on the basis
of being able to turn out, after innumerable punching, an infinite
series of incomprehensive answers calculated with micrometric
precisions from vague assumptions based on debatable figures taken from
inconclusive documents and carried out on instruments of problematical
accuracy by persons of dubious reliability and questionable mentality
for the avowed purpose of annoying and confounding a hopelessly
defenseless department that was unfortunate enough to ask for the
information in the first place."

-- IEEE Grid news magazine

PS. Thanks to mjw :)