/var/log/orava

Petri Wessman's weblog

OS X on Macbook: first impressions

Ok, I’ve now had my new Macbook Pro for about a week, and have spent some time tinkering with it and trying to make it do what I want. Generally, it’s been a positive experience, and I find myself liking the thing more and more. However, I’ve run into some frustrations and annoyances, some of which are due to just thing being very different to what I’m used to, while others are due to bugs and deficiencies in OS X. So far, I’ve more or less managed to solve the issues which have come up (with the help of Google and some Mac-user friends).

Hardware-wise, the machine is beautiful and extremely well-made, it has a “quality” feel to it. No surprise there, Apple is known for this sort of stuff. My 13” machine has 16GB of memory, which may be overkill… but on the other hand, together with the SSD is makes the thing feel ridiculously fast and responsive even though it’s no monster in the raw cpu power department. If I could tweak things I’d like a third USB port and a built-in HDMI output, but I can live with two USBs and the HDMI I can get via a dongle if I need it. The screen is the star of the show here, and yes, it’s beautiful and crystal-clear. The glossy surface would probably be a problem in more lighted environments, but right now, in the middle of Finnish winter, it hasn’t been an issue. The trackpad is the best I’ve tried in a notebook, but I still have an external mouse since I just prefer a mouse generally. The keyboard is very good for a laptop; not the best I’ve tried, but good.

So, no real serious complaints on the hardware department, and lots to like.

Update: boy do I feel stupid. I thought the machine did not have an HDMI port, must have skipped over if while initially looking over the ports and later gotten confused with Macbook Air technical specs. Of course, as I was reminded on Facebook, the Pro model does have an HDMI port. Duh.

Software has also been generally positive, but there I’ve run into some random problems. More on those below.

On startup, the system initialized itself with little fuss, and was quickly ready to use. I spent some time going over the system settings (preferences), and tuned some things, then did a quick look-through of the bundled system software. Most seemed decent, if simple in some cases. I ended up actually using the built-in Mail app – while it lacks some features, it managed to talk to all 4 of my current IMAP providers with no fuss; no mean feat since I usually have to do some tinkering to get the (different) settings right on other systems. Here, the Mail app auto-configured things correctly once I provided the server host and login info. Points for that. The “office” software (iWork) looked decent-ish, I’ll have to try it out the next time I need to do a document or spreadsheet. Not sure if it’s better than OpenOffice for my use, but we’ll see.

After that (over several days), I got to work installing a bunch of 3rd party software. Some are my standard tools from other environments, some Mac-specific stuff recommended to me:

  • Chrome: while Safari looked non-horrible as a browser, I’m used to Chrome and I have automatic bookmark sync over multiple platforms on it.
  • Dropbox, Younited, Evernote: my “cloud storage” tools.
  • Steam. Games. Duh.
  • Adium: an IRC/messaging client. Lacks some features on the IRC side, but decent enough.
  • Caffeine: wonderful little app that lets you stop the Mac from going to sleep for a specified time. Great for long downloads etc.
  • uTorrent: bittorrent, for oh-so-very-legal downloads
  • Little Snitch: nice “reverse firewall” and network monitor.
  • Alfred: a “productivity” and app launcher app. Haven’t played with this much yet, but many swear by it.
  • Dash, and awesome offline API/document browser for programmers
  • Sublime Text: a very nice programmer’s text editor
  • Keyremap4MacBook: keyboard remapping (see below)
  • Homebrew: a great package manager for (Unix) software Apple either doesn’t provide or has obsolete versions of (see below). Used it to install a pile of Unixy stuff.
  • Growl: a notification tool
  • Eve Online: runs non-horribly, though the fan can get quite loud; I’d need to drop graphical settings down to bare minimums to get rid of that. Quite usable for cargo runs and stuff like that, but I wouldn’t like to try combat on this – that’s what my proper gaming rig is for. :)
  • Baldur’s Gate EE: runs well, though cycling out of game via Cmd-Tab doesn’t work for some reason if game is full-screen.

I’ve probably forgotten something from that list, but it’s close enough.

In addition, I set virtual desktops (Spaces) and set up my standard set of rotating screen wallpapers (from Dropbox folder), and was pleasantly surprised to find out that OS X actually gives each virtual desktop its own wallpapers. Nice, I haven’t seen that anywhere else before. The virtual desktops mostly work as I want, though there is some weirdness there: I might have browser on desktop 2, mail on desktop 3, and other stuff on other desktops… and then after some work elsewhere, I may find that there’s now an empty desktop as desktop 2 and browser+mail have shifted one space to the right. Annoying. Not sure what triggers this. Not a dealbreaker, though.

Added later: I got a tip that this is a “feature” of OS X, which can fortunately be turned off. Nice. Another annoyance gone. I’m slowly running out of them. :)

Setting up backup was a breeze, since I had previously prepared a Time Machine segment on my NAS box. On the OS X side, it was just a matter of pointing the OS in the right direction (which it actually autodetected and suggested), and adding some folder exclusions. Very nice, this is how backups should be: minimum fuss to set up and unobtrusive.

Of course, it’s not all wine and roses. Here are some problems and annoyances that I ran into. Some of these are very subjective and may not bother other people; these are things that bothered me.

Annoyance: keyboard layout

While the keyboard is mechanically quite good, the Finnish layout is not, from the view of a programmer. My first run into this was when I needed a tilde (~) sign – and it wasn’t even labeled on the keyboard. I ended up needing to Google how to generate it, which was very annoying since ~ is a very commonly-needed sign in Unix environments. Same goes for braces ({, }), those are also not labeled and needed very often in programming. In addition, while the tilde is in a somewhat standard slot once you find it (though it is “sticky” which is also annoying), the braces are very cumbersome to produce, needing three keys pressed simultaneously. Crap for something you need very often.

I can sort of see Apple’s point on the no-labels issue: non-programmers do not need those keys, and extra labels do add to clutter. In addition, you only need to figure out how to generate them once, you don’t really need a label after that. Still a bit annoying. As to the Finnish layout: it just sucks, for programmers (yes, the U.S. one is much much better, but that doesn’t help me).

Fortunately, there is a fix available that doesn’t involve switching to U.S. keyboard layout: the Keyremap4MacBook app allowed me to remap the (for me) useless “§” key to produce {, } and \ (with shift and alt), which makes things much better. Wasn’t a totally trivial process, I needed to write a small bit of custom XML, but it worked in the end. Problem largely solved. I may do some more remapping in the future, I’d prefer shift-4 to give me “$” instead of the euro sign, for instance. We’ll see.

Update: I’ve now tweaked the keymapping some more. My current XML mapping is at the end of this article, in case anyone is interested.

Also mapped Caps Lock to be a Control, via the OS X built-in options.

Problem: (remote) rsync doesn’t work properly with UTF-8 filenames

This one took a while to figure out. I have a fairly large music library on a home server, to the order of 130+ GB, and I want a local copy on the Mac (for various reasons). I want to use rsync to synchronize the thing, since any other means would be just way too slow – trying to use higher-level Mac file copy tools over a wifi net to copy over 130 gigabytes of data would take days. I know, since I tried that first and quickly aborted the thing. Rsync is much, much more efficient. It also doesn’t work out of the box in this case.

The first copy went fine, and was quite fast (took a few hours, of course, still). Then I tried a second sync, just to make sure, and to my surprise it copied a big bunch of stuff again. And again, the third time I tried it. And it seemed to be the same bunch of stuff. I quickly figured out that all of these “problem cases” were songs or albums with UTF-8 (non-ascii) characters in their filenames. For some reason, the OS X rsync was unable to figure out that these files already existed, and kept deleting them and re-copying. Obviously, this was a major problem for my use case and needed a fix. Onward to Google!

After quite a bit of online research I found the problem: the OS X filesystem is somewhat dumb, and has an… interesting way of storing UTF-8 filenames, which results in rsync not being able to match them. Fortunately, there’s a fix, you can give rsync an –iconv option with some character set conversion options, and things will work. Unfortunately, the version of rsync which ships with OS X is ancient (from 2006), and it doesn’t have this option. Aaargh.

Well, Homebrew to the rescue. I used it to install a modern version of rsync, gave that the correct extra options, and things started working properly (in both directions).

…which leads us to:

Annoyance: OS X ships with ancient versions of most Unix tools

Due to Apple’s hate of the GPL3 license (which forbids the sort of lockdown tricks Apple loves to do), most of the Unix tools which ship with OS X are from the pre-GPL2 era – which means “old and partly obsolete”. Sometimes that doesn’t matter all that much, sometimes it’s a major problem (see above). In any case, there’s an easy fix for most cases: use Homebrew to install the modern version(s) and ignore the system built-in ones.

Annoyance: remotely mounted shares over Microsoft networking

This one also took a while to figure out. I have some remote shares on our NAS box, which (among other things) speaks AFP, so the Mac happily mounts shares from it without problems. I also have a few on my Linux server, over Samba (SMB/CIFS), and the Mac also happily mounts those – with some caveats. While the files themselves are visible, the permissions are wrong, the actual server permissions are ignored and replaced by a hardwired (700) set locally. Not a dealbreaker, since this is just for personal stuff, but still annoying. A friend suggested trying out the “Go -> Connect to server” option in the Finder and manually specifying a “cifs:” prefix for the volume – and that worked . The CIFS version of the protocol is newer and does transmit permission stuff properly. However, the default remote mount is OS X still defaults to “smb:”, so as I want this volume to be automounted on login, I always get the SMB version instead of the CIFS version. So I’d need to either deal with permissions being wrong, or manually mount the volume as CIFS every time.

Fortunately, a solution was (finally) found. A long-time Mac-user friend pointed me in the direction of a web article which suggested using Applescript to mount a remote volume, since that allows you to specify the full protocol specifier. And lo and behold, after cut+pasting (and modifying) some Applescript fragments, I now have a system which properly automounts the Samba volume as CIFS. As an added bonus, using Applescript prevents some annoying Finder popups at login, which is nice.

So that’s it. Some small problems here and there, but all have been (more or less) solved. So far.

What I like about OS X is that, despite Apple adding on some “dumbed down” and non-programmer-friendly stuff, the system still feels like a power user environment. There are tons of shortcuts for everything, and lots of options for automating your workflow via various apps. I get the feel that learning shortcuts for everything is the key here, and that will take time. In the end, it’s a somewhat unusual Unix system with a somewhat unusual GUI on top of it, with much more good than bad (in my view). It’s not totally ideal, but it’s still probably the best and most polished commercial desktop Unix out there (server systems are another matter).

Your mileage may vary.


Since it was requested, my current KeyRemap4MacBook private.xml does the following (on a Finnish keyboard):

  • changes the “§” key to produce “{“, “}” (with shift) and “|” (with alt)
  • swaps the “€” and “$” keys
  • moves backslash to Alt-7
  • swaps the “~” and “¨” (diaeresis) keys

… and looks like this:

<?xml version="1.0"?>
<root>
  <item>
    <name>Replace § with useful stuff</name>
    <appendix>Finnish kb: change § to produce {, }, and | (plain, shift, alt)</appendix>
    <identifier>private.replace_danish_with_useful</identifier>
    <autogen>__KeyToKey__ KeyCode::DANISH_DOLLAR, ModifierFlag::OPTION_L, KeyCode::KEY_7, ModifierFlag::OPTION_R</autogen>
    <autogen>__KeyToKey__ KeyCode::DANISH_DOLLAR, ModifierFlag::OPTION_R, KeyCode::KEY_7, ModifierFlag::OPTION_R</autogen>
    <autogen>__KeyToKey__ KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R</autogen>
    <autogen>__KeyToKey__ KeyCode::DANISH_DOLLAR, ModifierFlag::SHIFT_R, KeyCode::KEY_9, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R</autogen>
    <autogen>__KeyToKey__ KeyCode::DANISH_DOLLAR, KeyCode::KEY_8, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R</autogen>
  </item>
  <item>
    <name>Swap € and $</name>
    <appendix>Finnish kb: swap € and $ (produce $ with shift-4)</appendix>
    <identifier>private.swap_euro_and_dollar</identifier>
    <autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::SHIFT_L, KeyCode::KEY_4, ModifierFlag::OPTION_R</autogen>
    <autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::OPTION_L, KeyCode::KEY_4, ModifierFlag::SHIFT_R</autogen>
    <autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::SHIFT_R, KeyCode::KEY_4, ModifierFlag::OPTION_L</autogen>
    <autogen>__KeyToKey__ KeyCode::KEY_4, ModifierFlag::OPTION_R, KeyCode::KEY_4, ModifierFlag::SHIFT_L</autogen>    
  </item>
  <item>
    <name>Move \ to alt-7</name>
    <appendix>Finnish kb: copy \ to alt-7, replacing |</appendix>
    <identifier>private.move_backslash</identifier>
    <autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::OPTION_L, KeyCode::KEY_7, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R</autogen>
    <autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::OPTION_R, KeyCode::KEY_7, ModifierFlag::OPTION_R | ModifierFlag::SHIFT_R</autogen>
  </item>
  <item>
    <name>Swap ¨ and ~</name>
    <appendix>Finnish kb: swap ¨ and ~ (produce ~ directly, ¨ with alt)</appendix>
    <identifier>private.swap_tilde_and_diaeresis@</identifier>
    <autogen>__KeyToKey__ KeyCode::BRACKET_RIGHT, ModifierFlag::OPTION_L, KeyCode::BRACKET_RIGHT</autogen>
    <autogen>__KeyToKey__ KeyCode::BRACKET_RIGHT, ModifierFlag::OPTION_R, KeyCode::BRACKET_RIGHT</autogen>
    <autogen>__KeyToKey__ KeyCode::BRACKET_RIGHT, KeyCode::BRACKET_RIGHT, ModifierFlag::OPTION_L</autogen>
  </item>
</root>

Published on by Orava, tags , , ,

Considering Apple

I’m thinking of buying a 13” Macbook Pro.

For some, that might be an easy decision, but for me it’s something I’ve needed to ponder on for quite a while. First off, I’m definitely not an Apple fanboy; while I admire their hardware, and hear that their software is at least decent, I have little love for the company. Steve Jobs was an asshole who gets way more credit than he deserves (and Woz much less), and the company’s long-time efforts in restricting what customers can do with their machines pisses me off. Now, to some, their “computer as home appliance” line works, and that’s fine. But let’s just say that I’m not quite in their target market segment.

A “proper” laptop has been on my radar for years now. I’ve happily used Windows netbooks, and have been surprised at how useful they are despite their limitations. Currently our netbook is de facto Janka’s default home machine, and I’m using Janka’s old “leftover” Dell on which I’ve installed Gentoo Linux. It works decently enough, but it’s huge and heavy, no way I want to take it along with me anywhere or even move it around the house. With the kids in our life, I’ve discovered that a laptop is excellent because it allows me to do computer stuff and still be in the living room keeping my eye on the kids. Nowadays, I use my real desktop machine only for games and photo editing, tasks which require a large screen and lots of horsepower. A laptop on which I could also do real work (i.e. light photo editing, programming and such) would be useful, but so far I haven’t gotten one. Part of the reason is pure finances: I don’t want to buy a luxury item like that on credit, and up to now finances have been a bit stretched. Things are somewhat better now.

So, now I can actually get a proper laptop with some decent tech. If I dislike Apple as a company, why am I seriously considering giving them my money? In the end, it comes down to operating system.

Now, with simple tasks like web browsing, reading email and such, OS really doesn’t matter. I’m quite happy with Windows (8) on my desktop, even though Windows is a piece of crap as an OS, since all I need it to do there is help me launch Adobe Lightroom or some game. It does that just fine. Same goes for netbooks, Windows works fine for normal lightweight stuff. But when I start to do “real” work, OS suddenly becomes very important.

I’m an old-school Unix guy, and my preferred environment is still the Unix shell command line. Sure, I use GUIs, but the main workspace is still a terminal window or five. At that point, “under the hood” so to speak, OS starts to matter. A lot. So my choice of laptop is much dictated by which OS I want. The reasonable options are Windows, Linux or OS X.

First off I can write off Windows. As noted, I consider it to be a piece of crap as an OS. Sure, the latest incarnations are very stable, and have decent GUIs.. but it’s still lipstick on a pig. The Windows command line is a joke, and the OS internals are an ugly jungle of old needed-for-compatibility junk. Ugh. No thanks.

So it comes down to Linux or OSX. There things are more difficult. I use Linux at home and at work, and am very comfortable with it. OS X I have only very, very cursory experience with (I set up my mom’s new Macbook Pro some time back), so Linux would be a natural choice… but I think not, in this case. First off, Linux tends to be fiddly, especially on laptops, and while I have no trouble with tweaking stuff on desktops, on a laptop I have less patience for it and want things to Just Work. Also, I’m not happy with the current state of Linux desktops: KDE is an archaic bloated monster, Gnome 3 (which I currently prefer) is being taken in weird and not-very-good directions by Ubuntu, and the other options are still a bit rough, especially for laptop use. As noted, on a laptop I want everything to work flawlessly (especially power-related stuff) and to have the OS make full use of all hardware. While that is possible with Linux, it’s a bit of a crapshoot and I’m not feeling like it right now. Been there, seen that.

To be honest, one big motive is also curiosity. I know as much Windows as I want to know, and know Linux (and many other older Unix variants) quite well. OS X, the third major player in the current OS landscape, is currently mostly unknown to me. I know that it’s originally based on (BSD) Unix, and that lots of people are happy using it for development. Oh, I’m sure it has quirks, some of them possibly nasty, but I think it might be something I can work with. And in any case, I think it would be an useful platform to learn.

So, OS X it is, after quite a bit of pondering. Of course, that narrows down hardware choices drastically, and things come down to a choice between the Air and the Pro. At first I was thinking about the Air, but later switched to Pro, since portability isn’t the primary concern (the thing needs to be portable, but I’m not going to be lugging it around on a daily basis). It also helped that I saw my mom’s Pro, and could verify that yes, the “retina” screen is very nice.

In the end, the 13” form factor seems to make the most sense to me, but the meager base SSD space has been giving me pause; I’d want 256G and a machine with that used to cost around 1750e. Ugh. Now, with yesterday’s Apple announcement, all the Pro prices dropped and the machines got more power along with new-generation hardware, so a 2.4GHz/8G/256G Pro now “only” costs about 1550e. Still a lot of cash, but 200e less than before. So that’s it, as far as I’m concerned, right now I’m still waiting for some real reviews to make sure there aren’t any glitches with the new hardware and OS version, but after that I guess I’m going shopping. Wheee. :)

So that’s how I decided on an Apple laptop, despite not having huge amounts of love for the company. If I actually get the machine, I may post some “Unix guy trying to learn OS X” stuff later. We’ll see.

Published on by Orava, tags , , , , ,

Powered by Publify – Thème Frédéric de Villamil | Photo Glenn