A better RAW workflow for $35

Processed and cropped in RAWPower
Processed and cropped in RAWPower

As my frequent reader knows, I have been grappling with my RAW workflow for as long as I have had a RAW workflow. I’m hardly a pro or even much of an enthusiast, and I find dealing with all these files exhausting (it also consumes a stupid amount of disk space, etc.)

A user of Photoshop since it was called Barneyscan, and Illustrator since it was 88, I’ve been ambivalent about Adobe’s products ever since they started renting them; this was actually before they switched to monthly fees — the Creative Suites essentially forced you to upgrade on a constant basis simply to not have your software mysteriously stop launching when Adobe’s authentication servers were down.

Today, despite paying Adobe’s tax (albeit the lesser “Photographer’s” tax of $100/year) I remain unhappy with their products. Lightroom is slow, constantly wants patching, requires me to sign in (often more than once) to Adobe’s stupid services just to launch, and on and on. But, until recently, I had no credible alternative that was fast and produced even vaguely decent results.

But now there are two inexpensive, lightweight products that together may mean I don’t need Adobe’s crap any more (I’ll get back to you!):

A quick press of the P key and I can see that I nailed focus on the grass
A quick press of the P key and I can see that I nailed focus on the grass

FastRawViewer — endorsed by no less than Thom Hogan and Nasim Mansurov — is a terrific program that does exactly what it says on the can. It’s simple and lets you browse and rate photos really, really fast. You can customize its keyboard shortcuts to your pleasure (e.g. I have ratings mapped to the 0-5 keys, and P toggles high pass filtering so you can see exactly what, if anything, is in focus without pixel-peeping. Rather than having its own proprietary catalog system, it leverages your file system and XMP metadata (“sidecar” files that are compatible with Lightroom if that still floats your boat). It costs $20, you can get it here.

RAWPower lets me make RAW adjustments, straighten, and crop faster than I can launch Photoshop
RAWPower lets me make RAW adjustments, straighten, and crop faster than I can launch Photoshop

RAWPower — developed by former Aperture engineers (or a former Aperture engineer; I’m not sure) — gives you most of Aperture’s non-destructive RAW processing in a fast, lightweight app that also provides the same functionality via Apple’s Photos app. I like the Photos app except for the whole slower-than-treacle-in-a-walled-garden thing, so there’s that too. It costs $15 in the App Store. My only issue with RAWPower is that its crop-and-rotate tool is clumsy if you want to both crop AND rotate, which I usually do (and I’ve been told that addressing this issue is a priority).

(If you’re a Windows user, FastRawViewer is still great, but RAWPower is Mac only.)

FastRawViewer lets me view a folder with thousands of RAW files with no waiting (just dragging the folder info Lightroom, Photos, or Aperture would be agony), and RAWPower lets me adjust exposure, shadow recovery, straightening, and so forth faster and just as competently as Lightroom. (Photoshop still wins for any major surgery, obviously — RAWPower has no dodge, burn, layers, healing brush, perspective correction, stitching, etc.)

Getting an Nvidia 1070 (or similar) GPU working on a Mac Pro 5, 1

Victory!

I’ve been using a chipped Radeon 7950 in my 2012 Mac Pro for several years (it was a serious upgrade to my original 5770 or whatever it was that came with it) but eventually my Dell 2715Q (a 4K display) stopped working reliably with it at full resolution and I had to drop down to 1080p. Then it stopped working in 1080p.

I was pretty sure the problem was with the display (which also wasn’t working properly with my Macbook Pros), but the GPU had always been twitchy (sometimes not working on boot, and not driving all its display ports) so when Nvidia announced drivers for its latest GPUs, I figured what the heck?

Anyway, here’s the correct process along with gotchas from not doing it this way, since I found zero reliable guides online to help me.

Warning: if anything goes wrong you’ll need to screenshare into your Mac Pro from another Mac to see what’s going on, so make sure your Mac’s network connection is robust and you can screenshare into it before you do anything you’re going to regret. Luckily for me (since I fucked all this stuff up multiple times) our Macs can all “see” each other (mainly so I can get at parental controls on other Macs easily).

  1. Update your Mac to 10.12.4 (or whatever is current).
  2. Go to Nvidia’s website and download their out-of-date Mac OS X drivers, install them, and then update them in the control panel. I don’t know when you’re reading this but you want your drivers as up-to-date as possible.
  3. You may also want to install CUDA drivers, but that’s not critical.
  4. Shut down, unplug, power off, remove the Mac’s cover.
  5. I got a 1070 bundled with Mass Effect Andromeda. (Don’t care about the bundle, since I’ve got it for PS4 and hate Windows, but it was $50 cheaper than the same card without Mass Effect Andromeda. I don’t think much of Mass Effect Andromeda, but it’s definitely worth more than -$50.)
  6. The 1070 is physically a total pain to get into the Mac Pro (the 7950 seems to have been just as bad, but I have cheerfully lost all memory of it). Be careful to remove all the rubbery covers so that they don’t fall off on top of the PCI slot and cause you enormous consternation.
  7. The Mac Pro comes with two 6-pin power cables for graphics cards. The Nvidia 1070 takes one 8-pin cable, but there should be a 2x 6-pin to 8-pin adapter cable in the box. You’ll need that. Sadly it creates a lot of slack in your cables that will be snaked inside your otherwise tidy (if horribly dusty) Mac Pro.
  8. Make sure everything is securely hooked up. Close the box, plug it in, plug in displays, and boot. (If you’re using a wired network, make sure that’s plugged in.)
  9. Power on, wait for the chime, and hopefully you will be golden.

Troubleshooting

Here are the ways I fucked this up.

First, I didn’t realize the current version of Mac OS was 10.12.4, so I had 10.12.3 and installed the (January) version of the Nvidia drivers which then claimed to be up-to-date.

After I installed the card my Mac wouldn’t display jack shit from any port at any resolution. After trying two different displays and four different ports, I screen-shared into it and verified (a) it was working properly, (b) it could see the video card and recognize the vendor but couldn’t do anything with it, and (c) that the Nvidia panel could see the video card but not do anything with it.

I then found a post showing someone had successfully installed a 1080 on their Hackintosh with 10.12.4. Whoops! I installed 10.12.4 and rebooted. No dice. I went into the Nvidia panel and found it no longer claimed to be up-to-date, so I installed a new version, rebooted, and my Dell monitor came to life at a resolution I’d never seen it in before. (Easily fixed. I am now looking at my Mac Pro’s desktop in glorious 1440p, as God Steve intended.)

Tempted to switch to Windows

I love this laptop. I love the trackpad on the right. Where do I sign?
I love this laptop. I love the trackpad on the right. Where do I sign?

Before you decide my blog is suddenly interesting because I’m a hemi-demi-semi-prominent pro-Apple guy who is switching to Windows, hold your horses. It’s not. I’m not.

The correct, non-linkbaity headline should be:

“WTF Apple?! Macs suck compared to Windows PCs that are more expensive and which you can’t actually buy.”

All users of high-end Macs suffer from PC envy because there’s always a PC out there that scratches a particular hardware itch. E.g. nVidia has just released some insanely nice GPUs and on the Mac if you’re lucky you have a fairly recent mobile version of a mid-range nVidia GPU from last generation. Not even close to the same league. Similarly, the current generation Apple notebooks use Intel’s chipset from last year and are thus limited to 16GB of RAM. 16GB of RAM is so 2012 for fuck’s sake. (Heck, my 2012 Mac Pro has 36GB of RAM, it’s really just a 2010 Mac Pro, and it’s not even trying.)

So this morning I read another “fuck you and your lame-ass hardware and USB-C ports, I’m switching to Windows” post on Hacker News. I don’t remember if it was on the comments thread of the post or HN itself (since I can’t find either anymore) but there was a discussion of what Windows laptop (“other than a Dell XPS”) to get if you want to switch and don’t want a piece of shit (i.e. pretty much any Windows laptop). The replies were illuminating (including quite a few saying pretty much, ‘what do you mean “other than a Dell XPS”, that’s a piece of shit’ — a sentiment with which I can agree based on first person experience), and pointed at the Razer Blade and Razer Blade Pro.

So I took a look.

These are sold as high end laptops — CNC milled chassis, backlit keys with programmable colors, 1080P or 4K displays, (for which they provide an API, so you can have keys light up indicative of, say, the health of your team-mates in a multi-player game) and fantastic specs (e.g. nVidia 1080 in the Pro). In fact the specs were so good I simply wanted to know two things:

  • What is the battery life like?
  • How much?

The answers were:

  • We aren’t going to tell you.
  • More than a Macbook Pro (and, really, fair enough!), and by the way:
  • We don’t have any to sell and can’t tell you when we will.

Aha! Checkmate Apple. I guess there’s a reason why the laptops out there you can actually buy are either worse than Apple’s or cost about the same.

HyperCard, Visual Basic, Real Basic, and Me

When the Mac first appeared it was a revelation. A computer with a powerful, consistent user-interface (with undo!) that allowed users to figure out most programs without ever reading a manual.

I can remember back in 1984 sitting outside the Hayden-Allen Tank (a cylindrical lecture theater on the ANU campus that tended to house the largest humanities classes and many featured speakers) playing with a Mac on display while Apple reps inside introduced the Mac to a packed house. (My friends and I figured we’d rather spend time with the computer than watch a pitch.)

How did undo work? It wasn’t immediately obvious.

When we quit an application or closed a document, how did the program know we had unsaved changes? We checked, if the document had no changes, or the changes were saved, the computer knew.

We were hardcore math and CS geeks but computers had never, in our experience, done these kinds of things before so it took us a while to reverse-engineer what was going on. It was very, fucking, impressive.

But it was also really hard to do with the tools of the time. Initially, you couldn’t write real Mac software on a Mac. At best, there was MacPascal, which couldn’t use the toolbox and couldn’t build standalone applications, and QuickBasic, which provided no GUI for creating a GUI, and produced really clunky results.

To write Mac programs you needed a Lisa, later a Mac XL (same hardware, different software). It took over a year for the Mac SDK to appear (via pirate copies), and it was an assembler that spanned multiple disks. Eventually we got Consulair-C and Inside Macintosh but, to give you an idea, the equivalent of “hello world” was a couple of pages of C or Pascal most of which was incomprehensible boilerplate. The entire toolbox relied heavily on function pointers, really an assembly-language concept, and in some cases programmers had to manually save register state.

No-one’s to blame for this — Xerox provided much cleaner APIs for its much more mature (but less capable) GUI and far better tooling — the cost was a computer that ran dog slow, no-one could afford, and which actually was functionally far inferior to the Mac.

The first really good tool for creating GUI programs was HyperCard. I can remember being dragged away from a computer lab at ADFA (where a friend was teaching a course on C) which had been stocked with new Mac SEs running HyperCard.

For all its many flaws and limitations, HyperCard was easy to use, fast, stable, and forgiving (it was almost impossible to lose your work or data, and it rarely crashed in an era when everything crashed all the time). Its programming language introduced a yet-to-be-equalled combination of being easy to read, easy to write, and easy to debug (AppleScript, which followed it, was horribly inferior). When HyperCard 2 brought a really good debugger (but sadly no color) and a plugin architecture, things looked pretty good. But then, as Apple was wont to do in those days, Apple’s attention wandered and HyperCard languished. (Paul Allen’s clone of HyperCard, Toolbook for Windows, was superb but it was a Windows product so I didn’t care.)

Eventually I found myself being forced to learn Visual Basic 3, which, despite its many flaws, was also revolutionary in that it took HyperCard’s ease of use and added the ability to create native look and feel (and native APIs if you knew what you were doing, which I did not). With Visual Basic 3 you could essentially do anything any Windows application could do, only slower. (HyperCard was notably faster than VB, despite both being interpreted languages, owing to early work on JIT compilers.)

After using VB for a year or two, I told my good friend (and a great programmer) Andrew Barry that what the Mac really needed was its own VB. The result was Realbasic (now Xojo) of which I was the first user (and for a long time I ran a website, realgurus.com, that provided the best source of support for Realbasic programmers). Realbasic was far more than a VB for the Mac since it was truly and deeply Object-Oriented and also cross-platform. I could turn an idea into a desktop application with native look and feel (on the Mac at least) in an evening.

When MP3 players started proliferating on Windows, I wrote an MP3 player called QuickMP3 in a couple of hours after a dinner conversation about the lousy state of MP3 players on the Mac. By the next morning I had a product with a website on the market (I distributed it as shareware; registration was $5 through Kagi — RIP — which was the lowest price that made sense at the time, I think Kagi took about $1.50 of each sale, and I had to deal with occasional cash and checks in random currencies).

Over the years, I wrote dozens of useful programs using Realbasic, and a few commercially successful ones (e.g. Media Mover 3,  and RiddleMeThis) and an in-house tool that made hundreds of thousands of dollars (over the course of several years) with a few days’ effort.

Today, I find Xojo (which Realbasic rebranded itself to) to have become bloated, unstable, and expensive, and Xojo has never captured native look and feel in the post-Carbon world on the Mac, and anything that looks OK on Windows looks like crap on the Mac and vice versa, which undercuts its benefits as a cross-platform application. Also, my career has made me an expert on Javascript and web development.

So my weapon of choice these days for desktop development became nwjs and Electron. While web-apps don’t have desktop look and feel (even if you go to extremes with frameworks like Sproutcore or Cappuccino), neither do many desktop apps (including most of Microsoft’s built-in apps in Windows 10). Many successful commercial apps either are web apps (e.g. Slack) or might as well be (e.g. Lightroom).

I mention all of this right now because it closes the loop with my work on bindinator — anything that makes web application development faster and better thus helps desktop application development. I think it also clarifies my design goals with bindinator: I feel that in many ways ease of development peaked with Realbasic, and bindinator is an attempt to recreate that ease of development while adding wrinkles such as automatic binding and literate programming that make life easier and better.

The New Macbook Pros

As someone who was forced to pick a new laptop about two weeks ago, i.e. just before the new Macbook Pros were announced, I have to confess that I’m a little pleased that the new machines don’t blow my current machine away. But, for all the pissing and moaning on the interwebs about Apple’s underwhelming new laptops, people seem to forget that PC performance has pretty much stagnated for the last eight years.

My 2012 Mac Pro (which was, effectively, a 2009 Mac Pro) still seems perfectly decent compared to the latest and greatest, and if I gave a damn it could be upgraded to give the 2013 Mac Pros a run for the money (in CPU benchmarks at any rate, the 2013 Mac Pros have stunning throughput).

The problem here is that CPU speed has hit a wall, pixel counts have gotten ludicrous (so that people are complaining about game performance on 4K displays), the benefits of GPUs for everyday computing haven’t really materialized, and 8GB of RAM is probably still plenty for most people’s daily use, and 16GB is ample.

Still, what happened last time Apple was forced to release an underwhelming upgrade after a long pause? The Intel transition. So, I’m willing to bet that the “let’s switch Mac OS  — oops macOS — over to our ARM architecture” faction within Apple is now winning a lot of arguments it was losing two years ago. (I suspect that the Macbook is the form factor of the first ARM-based macOS device.)

We’ll see — my predictions are often correct but wildly premature.