One of the key reasons in x86's rise in laptop, desktop and server market can be summed up in one sentence: climbing up the performance ladder. Intel and AMD were able to improve the performance and the performance/$ of x86, to catch up with the competitors and they eventually exceeded most of their competitors. No matter how you look at it, x86 chips are extremely competitive, boasting either the best performance or the best performance/$, or both.
Now, I wonder if the history will repeat itself at the opposite end of the performance spectrum. The news of Intel's Moorsetown might just be the beginning of another repetition. Various ARM implementations have been the choice for mobile phones, but if I were to believe Intel's announcement (there's no reason not to believe it - in actuality, ARM is not exactly the best ISA if you care about performance), Intel's new Moorestown might just start the x86's expansion into mobile phones, this time by providing the best performance/watt. In fact, in my opinion, there's just no doubt that Intel with its best process technology and design prowess will either match or exceed most of its competitors. Clearly they are capable of producing the best, and x86 isn't much more complicated compared to the ARM which is a hodge-podge collection of oddities.
That said, just as the 90's ISA (instruction set architecture) survival game, the software will play an important role in deciding which ISA will survive, but this time software might actually slow down the expansion of x86 into mobile phone. Why? Apple and iPhone. Having lost the microprocessor war in the desktop era (remember PowerPC?), Apple looks determined to win the processor for mobile device - its acquisition of two processor startups and producing their own SoC testifies its resolve to control their own processor. And iPhone and, more importantly, Apps on iPhone are, just like DOS/Windows of the day, completely tied to ARM. All iPhone apps are native apps, meaning they are compiled to the machine code that is ARM. While it's not impossible for Apple to pull off an ISA switch for iPhone, similar to what they did with Mac, there are considerable costs with that approach and it looks like Apple will try its best to push for their own processor. This means ARM will have a non-trivial software platform that will stick around.
On the other hand, iPhone's primary competitor, Android, practically doesn't have this native code problem. That's because almost all android apps are written in Java the language, and compiled to bytecode for Dalvik VM. The bytecode is inherently ISA-neutral, so it is nearly trivial to switch the processor ISA of an android phone - all apps will just work, assuming Android OS itself is ported to the ISA, which already happened since android already runs on x86. Give this, I fully expect handset manufacturers to start selling Moorsetown-based handset running Android. They will start claiming huge performance advantage. Of course, Apple will respond just the same way it did when PowerPC lagged behind x86.
In the next few years, we'll see if the history will repeat itself, and what kind of twists there will be if any. Fun and exciting time indeed.
Tuesday, May 04, 2010
Tuesday, October 06, 2009
Leica X1 and Panasonic GF1 - somebody swapped their LCDs ?
DPReview's Leica X1 preview says:
What's up with that ? Did Leica and Panasonic exchange their designers in the middle of development ? It's even more perculiar, that X1 body is wider than GF1, so wider 3:2 screen would fit better with X1.
Curiously, the X1 uses a 4:3 LCD to view images from its 3:2 sensor, while the GF1 employs a 3:2 LCD and a 4:3 sensor. The GF1's control layout is again much more 'electronic'; the X1 will appeal to those looking for a more straightforward, traditional design.
What's up with that ? Did Leica and Panasonic exchange their designers in the middle of development ? It's even more perculiar, that X1 body is wider than GF1, so wider 3:2 screen would fit better with X1.
Saturday, September 12, 2009
Turning pogoplug into a TimeMachine
Disclaimer first: this is not really fully tested - I haven't tried restoring from TimeMachine backup yet. So there's a chance that this won't really work in the end.
Described below is the (somewhat convoluted) steps I did to get this working. It would be really nice if someone can clean this up, submit the patch to netatalk, create an Optware netatalk package with proper configuration, and another Optware package for pogoplug/timemachine configuration example files... In theory, it should be possible to make "ipkg install pogoplug-timemachine" just "Do The Right Thing". Anyway, here goes the steps:
1) Install gcc, autoconf, automake, dbus, openssl, avahi, libgcrypt from Optware ipkg (it's possible I might have missed a few packages though).
2) Download berkeleydb source from here, unzip/untar, and then build/install by:
$ cd db-4.7.25/build_unix$ ./dist/configure --prefix=/opt --with-gnu-ld$ make$ make install
3) Download netatalk source package somehow. I used CVS following this instruction but it looks like you can download the tarball from sourceforge as well. Once you download/untar it, you can build/install it by:
$ cd netatalk$ CFLAGS="-O -DSHADOWPW" CPPFLAGS="-I/opt/include" LDFLAGS="-L/opt/lib -Wl,-rpath,/opt/lib" ./configure --prefix=/opt --with-ssl-dir=/opt/ --with-bdb=/opt/ --with-shadow --with-cnid-cdb-backend --enable-afp3$ make$ make install
3-1) If your pogoplug mounted disk is formatted in FAT or NTFS, those disks are mounted as root by pogoplug's daemon (hbplug). So you need afpd to be able to run as root. By default, afpd does not allow this to happen. The patch below fixes that - by adding a new option "-[no]allowroot". If you want that, apply the following patch before doing "make" above (if you don't know what patch is, or what to do with the following file, you probably don't want to do this anyway), but understand that this increases the security exposure:
Index: afp_options.c
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/afp_options.c,v
retrieving revision 1.45
diff -r1.45 afp_options.c
212a213,216
> if (strstr(buf, " -noallowroot"))
> options->flags &= ~OPTION_ALLOW_ROOT;
> if (strstr(buf, " -allowroot"))
> options->flags |= OPTION_ALLOW_ROOT;
Index: auth.c
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/auth.c,v
retrieving revision 1.63
diff -r1.63 auth.c
255c255,256
< if ( pwd->pw_uid == 0 ) { /* don't allow root login */
---
> if (!(obj->options.flags & OPTION_ALLOW_ROOT)
> && pwd->pw_uid == 0 ) { /* don't allow root login */
Index: globals.h
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/globals.h,v
retrieving revision 1.26
diff -r1.26 globals.h
39a40
> #define OPTION_ALLOW_ROOT (1 << 8)
cvs diff: Diffing nls
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/afp_options.c,v
retrieving revision 1.45
diff -r1.45 afp_options.c
212a213,216
> if (strstr(buf, " -noallowroot"))
> options->flags &= ~OPTION_ALLOW_ROOT;
> if (strstr(buf, " -allowroot"))
> options->flags |= OPTION_ALLOW_ROOT;
Index: auth.c
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/auth.c,v
retrieving revision 1.63
diff -r1.63 auth.c
255c255,256
< if ( pwd->pw_uid == 0 ) { /* don't allow root login */
---
> if (!(obj->options.flags & OPTION_ALLOW_ROOT)
> && pwd->pw_uid == 0 ) { /* don't allow root login */
Index: globals.h
===================================================================
RCS file: /cvsroot/netatalk/netatalk/etc/afpd/globals.h,v
retrieving revision 1.26
diff -r1.26 globals.h
39a40
> #define OPTION_ALLOW_ROOT (1 << 8)
cvs diff: Diffing nls
4) Set up dbus to use avahi, by creating a file /opt/etc/dbus-1/system.d/avahi-dbus.conf with the following content:
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Only root or user avahi can own the Avahi service -->
<policy user="avahi">
<allow own="org.freedesktop.Avahi"/>
</policy>
<policy user="root">
<allow own="org.freedesktop.Avahi"/>
</policy>
<!-- Allow anyone to invoke methods on Avahi server, except SetHostName -->
<policy context="default">
<allow send_destination="org.freedesktop.Avahi"/>
<allow receive_sender="org.freedesktop.Avahi"/>
<deny send_interface="org.freedesktop.Avahi.Server" send_member="SetHostName"/>
</policy>
<!-- Allow everything, including access to SetHostName to users of the group "netdev"
<policy group="netdev">
<allow send_destination="org.freedesktop.Avahi"/>
<allow receive_sender="org.freedesktop.Avahi"/>
</policy>
-->
</busconfig>
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Only root or user avahi can own the Avahi service -->
<policy user="avahi">
<allow own="org.freedesktop.Avahi"/>
</policy>
<policy user="root">
<allow own="org.freedesktop.Avahi"/>
</policy>
<!-- Allow anyone to invoke methods on Avahi server, except SetHostName -->
<policy context="default">
<allow send_destination="org.freedesktop.Avahi"/>
<allow receive_sender="org.freedesktop.Avahi"/>
<deny send_interface="org.freedesktop.Avahi.Server" send_member="SetHostName"/>
</policy>
<!-- Allow everything, including access to SetHostName to users of the group "netdev"
<policy group="netdev">
<allow send_destination="org.freedesktop.Avahi"/>
<allow receive_sender="org.freedesktop.Avahi"/>
</policy>
-->
</busconfig>
5) Setup avahi to find aftpd by creating a file /opt/etc/avahi/services/aftpd.service with:
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>
And edit /opt/etc/avahi/avahi-daemon.conf and set "host-name" to what you want (you probably want to use a different name than the hostname of pogoplug itself, as using the same would make it a bit more cubersome to use samba and afp simultanenously).
6) Now it's time to configure afpd. Edit /opt/etc/netatalk/afpd.conf and add the following line:
- -transall -uamlist uams_dhx2.so -nosavepassword -allowroot
The key part is "uams_dhx2.so" - as far as I tried, this and uams_guest.so were the only UAMS modules that worked with OSX 10.5.8. "-allowroot" would only work if you applied my patch above.
7) You need to set up with "directory" to be exported. Edit /opt/etc/netatalk/AppleVolumes.default, and add a line like (it's supposed to be in a single line):
/tmp/.cemnt/mnt_sda1/TimeMachine TimeMachine allow:root rwlist:root dbpath:/tmp/cdb.db cnidscheme:cdb options:usedots
This would export /tmp/.cemnt/mnt_sda1/TimeMachine directory as a volume named TimeMachine.
8) Create an empty file named ".com.apple.timemachine.supported" in the top directory of the exported volume you want to use as timemachine. e.g.:
$ touch /tmp/.cemnt/mnt_sda1/TimeMachine/.com.apple.timemachine.supported
9) Start all daemons if they haven't started yet.
$ /opt/etc/init.d/S20dbus start
$ /opt/etc/init.d/afpd start
10) Now you should see a Xserve icon in Finder's network view (Shared -> All). Click it, and it will ask for a login and a password - give it the login and the password for pogoplug. You can use root (if you used the patch above), or you can create your own user but in that case you need that user be able to write to the volume. Once you have mounted the TimeMachine volume (that has .com.apple.timemachine.supported file at the root), the system preference -> TimeMachine -> Change disk should display the pogoplug as a TimeMachine disk:
Now the TimeMachine backup should work, though no guarantee it will restore - my backup is still in progress :)
PS. I used the information from following pages:
and possibly some others which I forget.
PS2. I should also mention http://netatalk.sourceforge.net/2.0/htmldocs/index.html.
There was one website that explained setting up avahi/netatalk very well (where I took some of the config files), but I can't remember or find that site now. So I might be missing a few things related to avahi above :(
Saturday, September 05, 2009
Pogoplug performance through AFP
Apparently, netatalk/afpd can push files much more efficiently than samba - I get roughly 20MB/s over gigabit ethernet, compared to roughly 10MB/s with samba. Pogoplug keeps getting better :)
Pogoplug and AFPD, some progress, some roadblock
It turns out it's relatively straightforward to get afpd (in netatalk package from ipkg) running and have OSX talk to pogoplug through AFP as Guest user (this How-To turns out to be quite useful) - you need to set uam_guest.so as uam module, and use usedots option (I'll post my config later). However, I can't seem to get the authentication working yet. Since I can control the guest user id on pogoplug side, this wouldn't be such a big problem, except I have my disk formatted as NTFS and hbplug mounts the disk as root with default umask 755 AND afpd doesn't allow me to set uid 0 as the guest user. :( Hence, currently I can only read from pogoplug, but not write and thus I can't get this working as timemachine yet.
For proper authentication, I'm guessing I'd need to recompile netatalk package with ssl support as the How-To says (though I couldn't verify whether ipkg netatalk has that support included, I'm guessing it doesn't based on syslog output). Well, I tried to download the source from here, but somehow cvs anon login fails for me. Oh well. Till my next spare time...
Thursday, September 03, 2009
Pogoplug/samba/OSX/time machine

Sunday, August 23, 2009
MBP, why I still use it
Despite the fact that I've been suffering quite a bit from OSX, I'll probably continue to use it at this point, because:
- Fantastic keys in the keyboard. I really liked Thinkpad keyboards (my first laptop was Thinkpad 560, and I've been a user of T-series, including T43p). However, I really get to like MBP's keyboard keys. It has just the right amount of key travel distance, and spaced just right, and can be pressed small amount of force, unlike some other keyboards, yet it's not overly soft. In other words, it's the goldilocks of the laptop keyboard for me.
- Battery life. T43p lasted barely 2 hours, and I used to carry extra battery. MBP lasts easily 4 hours, and more like 5 hours. Practically I can carry around all workday without charging.
- Performance. Whatever I can say, MBP is fast enough for what I used it for. It's almost never a bottleneck for my use.
I'd guess #3 will be similar in other laptops with similar hardware. So it's not really MBP's advantage. That said, things I wish the most:
- Page up/down, home/end keys. Out of all keys, I miss those four keys the most.
- Fast way to cycle through the windows, instead of applications, without touching the mouse.
- Less awkward keyboard shortcut for copy and paste (I guess I'll have to practice two-handed copy-and-paste - pressing c/v with left hand and right-command with right hand). If only left command key was slightly moved toward right, by reducing the space key a bit - as is, either I have to move my whole left hand/palm to press left command key with my left thumb, or my left thumb has to bend a lot to press it. Awkward either way.
- Consistent keyboard shortcuts between applications. I'm still quite confused of shortcuts in many applications. Not the app specific ones, but more basic ones like beginning-of-the-line and end-of-the-line, page-down and page-up, beginning-of-the-page and end-of-the-page. And also how certain shortcut combos are treated differently depending on whether a textbox has a focus or not. It's all confusing and annoying. e.g. I mapped ^-T to be "New Tab" in Safari, but if the focus is in the text area, it doesn't open a new tab. Instead, I think it does "transpose" of the last two characters. :(
OSX pain continues...
Skype crashes on the startup. I tried deleting plist files (system default and personal), no success. Disabled firewall, no success. System is up-to-date and yet, Skype continues to crash upon login to Skype.
Then, Open Office didn't start up upon the first use. Had to force-kill it, then open up an existing file. Now it can start up without opening an existing file. But nonetheless very weird.
I tried mapping ^-C and ^-V as copy and paste for all applications, but it didn't work on Terminal. Then I removed the mapping for all applications, but the terminal application continued to show ^-C and ^-V as the shortcut and it didn't work. So, in that state, all applications except Terminal used %-C and %-V, but Terminal had no functional shortcut for cut and paste. Eventually restarting the terminal removed this annoyance, but it again shows the keyboard shortcuts (and its customization) are a very sore thumb in OSX.
Tuesday, August 18, 2009
Not all keyboard shortcuts are equal, part 2
I tried mapping ^-L to "open location..." menu item in Safari. And guess what? It doesn't work, despite the fact that the menu shows ^-L next to "open location..." item. I don't know what Safari does with my ^-L stroke. Of course, clicking a menu item "open location..." works. So it must be that something eats my ^-L in Safari. Arg :(
Chrome works fine, but Chrome-on-OSX isn't quite ready for prime time (it's already much faster than Safari, but there are enough things that don't work yet on Chrome, and it's also not quite as stable). So until Chrome becomes stable enough, I guess I'll have to suffer...
In OSX land, not all keyboard shortcuts are equal...
I think I'm giving up on using command key as the shortcut - it's just too awkward to use everyday. So I've ended up overriding a lot of shortcuts using control- combo. ^-C ^-V ^-X ^-T ^-N all know works as everywhere else, and with caps lock mapped to control, my thumb doesn't have to bend to press command and something else.
However, one inconsistency in Safari and Chrome still bugs me. I've remapped tab movements to be control-up/down both for Chrome and Safari. The problem is, in Safari, if the focus is in a text box inside a page, the new shortcuts don't work. What's funny is that the original shortcuts (control-tab and shift-control-tab) work fine even when the focus is in a text area.
*sigh*
So, on Mac, not all keyboard shortcuts are equal :(
Monday, August 10, 2009
Mac OS X: "Not enough disk space can cause directory corruption"
...at least according to one Apple employee named Carolyn Samit:
I was just looking for a solution to my MBP hanging problem, and encountered this particular post. I'm just hoping that this is just a clueless tech support type person perpetuating unsubstantiated personal opinion (which flies in the face of the basic principles of the operating system/file system design, and I'd almost interpret it as a slander/libel against OS X), but since I can't know if this "Carolyn" is a lowly tech support or Apple's filesystem engineer, I'll have to assume that this is Apple's position.
I tried to post a reply asking for clarification, and Apple rejected it. Below is the email Apple sent me about the removal.
Dear Seongbae (S. Park),
Apple removed your post on Apple Discussions titled "Re: Random freeze/not-responding in 10.5.7" because it contained the following:
Rude or inappropriate language
Non-constructive rants or complaints
We are including a copy of your post at the end of this email for your reference.
Our terms of use, which include helpful information about using Apple Discussions, is located here: http://discussions.apple.com/help.jspa We encourage you to continue using the Apple Discussions while abiding by our terms of use.
If you would like to send feedback to Apple about a product, please use the appropriate selection here:http://www.apple.com/feedback
As part of submitting feedback, please read the Unsolicited Idea Submission Policy linked to the feedback page.
Kind regards,
Apple Discussions staff
++++++++++
This message is sent from a send-only email account. Any replies sent to this address are deleted automatically by the system.
----------
A copy of your message for reference:
I'm suffering from this same problem, and this makes my new MBP 15" one of the worst systems I've ever owned in my past 10 years (the last time I remember having this kind of random instability issue is Windows 98).
I hope you're either joking or hopefully just half-informed when you said "Make sure there is always 15% free disk space. Not enough disk space can cause directory corruption".
What you're saying is essentially Mac OS filesystem can not function correctly with less than 15% free disk space. Can you substantiate this claim ? Since you're an Apple employee, can I take your word as an official Apple advice and publish this ?
Tuesday, August 04, 2009
Mac convert, another focus oddity
Try this with your Mac:
Fire up any application and have a window that has a scroll bar.
Then using Expose, switch to any other window that's smaller than the first window, so that at least part of the first window can be seen. Then move your mouse cursor on top of the first window (i.e the one that doesn't have focus), and try scrolling. The scrolling would work - even though the application itself is not in focus. It's as if scroll event uses "focus-follows-mouse" principle. Confusing? Hell, yeah. However, I'd still call this useful. If only I can type as well...
Saturday, August 01, 2009
Mac convert, sync between Address book and Google Contacts
This article shows a complicated workaround - if you want to try this, make sure you read all the comments as well - to enable Address book and Google contacts sync. Why on earth Apple hides the Google sync option from Address Book's preference is anyone's guess. I find it incredulous that I have to edit plist to fake, and go through manually invoking a command on the terminal to get this working... Clearly this isn't something Apple wants to make users happy about.
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 :)
Subscribe to:
Posts (Atom)
