A Better Finder Rename 10 beta auto-update broken on 10.11 El Capitan

We are sorry to report that the auto-update feature on beta releases of A Better Finder Rename 10 is broken on Mac OS X 10.11 El Capitan and you will need to download the update to version 10 (out yesterday) directly from our website.

We  noticed this early at 6AM yesterday while checking the A Better Finder Rename 10.00 release and shipped a fixed version at 9AM (after struggling through work traffic) both GMT+1.

We have over time evolved a build process that guarantees that we only ship high-quality product builds, but we were caught out his time by the rapid pace of change imposed by Apple’s frequent Mac OS X and Xcode updates.

In the past, Apple was quite good about letting developers upgrade their development environments at their own pace, which is important because Mac users do not expect to always have to upgrade their Macs as soon as a new Mac OS X release is dropped. More recently, Apple has transferred a lot of its iOS practises to Mac OS X and have started really pushing developers to adopt features quickly and to get rid of backwards compatibility quickly.

At first this took the form of a gentle prodding, but over time it has become much more aggressive. Essentially they are deliberatley making it hard for developers not to drop support for older OS X versions.

We were caught out in this and still are. We had to install 10.11 on our development machines in order to test on El Capitan properly (the remote debugger has been discontinued for a while now), which lead to an auto-update of Xcode 7.

We had for the past decade built our products using the latest Xcode but using the oldest compatible SDK (in this case 10.7), because this ensures that the builds do not break backwards compatibility for customers on older OS X releases.

We were caught by the fact that Xcode 7 quietly drops the ability to work with older SDKs. Unfortunately building to the 10.11 SDK opts the program into a new rule that the program can only read HTTPS streams for security reasons. This was mentioned at WWDC for iOS applications but OS X hardly gets a mention in those talks. In any event, we did not think that this would affect A Better Finder Rename as we have no server backend, but as it happens, it breaks Sparkle auto-updates, which power our product’s (and 99% of non-Mac App Store applications’) auto-update feature. Note that our auto-updates are securely signed even thought they do not use https.
As a result the auto-update feature works fine as long as you are not on 10.11, but no longer works on 10.11. We only found this out when we shipped the first update since users have started installing 10.11, resulting in a minor but real mess where A Better Finder Rename beta cannot auto-update.
Sorry for the inconvenience.

Tools of the trade: Monitor Arms

Ergotron LXSitting in front of a computer display all day long does not do wonders for your health.

Things are made considerably worse if that computer display is of the notebook kind. Laptops in general are ergonomic nightmares putting your body into all the wrong positions. First, you need to look down all day long, then to make matters worse, the keyboard is attached directly to the screen forcing you to find the least bad compromise between positioning your arms and hands correctly and getting the screen into a semi-comfortable viewing position. Unfortunately no good compromise exists and you will over time do both your upper extremities and your neck/ back/ shoulders in. If it feels a little uncomfortable now, trust me, it’ll hurt a few years down the line.

Desktop computers are much better in that regard, allowing you to independently adjust keyboard, mouse and display. Unless you are using an iMac of course. Its aesthetics-over-function design has led everybody’s favourite industrial designer, Johnny Ive, to give it a stand that is far too low to allow you to view it comfortably. Such a shame because his Luxor Junior-inspired second generation iMac featured what must surely have been the best built-in monitor arm ever.. Oh Johnny..

When it comes to ergonomic Macs then, it’s a choice between the Mac Pro (my choice), the Mac mini (also my choice) or the newish VESA-mounted (stand-less) iMac.

On this type of setup you can not only choose your own (non-glossy if you want it to be easy on your eyes) display(s), but also adjust its height, distance from your eyes and inclination to your heart’s content.

The “ideal” viewing position is usually said to be at least 30cm (circa 12 inches) from your eyes, with the top-most row of pixels level with your eyes. A very slight forward tilt to the monitor is also said to be beneficial.

I find that advice to be fairly close to what I find comfortable myself, even though it’s better still to slightly raise and lower the display every now and then.

Monitor arms allow you to reach this position very easily and make adjusting it much less painful, though even the best monitor arms are not quite as good as the one on that second generation iMac. Monitor arms also free up space under the monitor and make for a much tidier setup over all.

I personally own several Ergotron LX Desk Mount Tall Pole mounts and they are great. They can be fixed directly through a screw onto your desk and once installed are much steadier than their admittedly much cheaper counterparts. They are sturdy and easily set up correctly and can be adjusted within a very large range of distances and heights. Moreover they work great in multi-display setups.

I’m fairly tall (6 feet 4) and I find that having the display slightly higher than is usually recommended is most comfortable for me. Most monitor arms do not stretch high enough for me and the Ergotron LX’s tall pole to which the arm itself is attached allows for raising the displays as high, and indeed higher than is comfortable. Anyway it’s better to have more range of adjustment than you need than to have just that little bit too little.

I also use a sit/ stand desk in my home office and unfortunately even the tall pole version of the LX, does not go high enough to cope with the standing position.

In theory, you shouldn’t have to adjust the height of the screen at all when your desk goes into the standing position. When you are sitting at your desk, you are holding your upper body completely straight just as if you were standing! Or at least that’s what the theory says.

In practice, my merely-human body isn’t candle straight at all times but likes to move around, lean forward, then back, etc. When I stand up I find that the screen is too low for comfort and it needs adjusting upwards. The Ergotron LX Sit/Stand Monitor Arm gives you jumbo-sized adjustability and takes even heavy weight monitors. I originally got those for my twin 30″ Apple cinema displays that showed their age through their ludicrous weight. One of them now has my Dell UP3214Q 4K display monitor on it, while the other supports a Dell UP2713HM; both awesome displays in different price ranges and weight categories.

Designed to be used to easily lift a monitor from a sitting to a comfortable standing position without the desk itself moving, the sit/stand version of the Ergotron easily deals with the comparatively small task of lifting the monitors that extra bit higher. The sit/stand version is clearly overkill but in a good way. It’s much more stable and paradoxically moves much more easily with even heavy loads. Not cheap but highly recommended, even in combination with a sit/stand desk.

Monitor arms seem like an indulgence to most people, but the cost of an ergonomic setup is dwarfed by the cost of wasted productivity and the inevitable medical bills that accumulate after a decade or two of full time screen-based work. For a home-based full-time IT professional like myself there really should be no hesitation in splurging out on a proper setup.



iPad Pro: A professional tablet with a phone operating system and an everything for $1 store?

Steve Jobs never understood “business“. Don’t get me wrong: he did understood how to make money. He did understand how to run a company (kind of). Most of all he very much understood consumers.. but he never understood organisations; least of all how to sell to them. I’m not sure I cared then or now.

The iPad Pro brings us a decent stylus, something that was anathema to Jobs, but in many other ways Tim Cook’s Apple seems little different from Jobs’ Apple when it comes to understanding the “Pro” crowd.

The stylus (sorry “Apple Pencil”) is a great step in the right direction for both Apple and for the iPad.  It shows that Apple is capable of listening to reason and putting out-dated home-brew memes behind itself. It is a long due improvement for iPad users in the creative fields, as well as for people who like taking hand-written notes or just like doodling; I’ve gone through a host of really crappy slightly-better-than-meat-pencils accessories and I’ve been lusting after a Wacom Cintiq Companion for ages. I even own a Microsoft Surface Pro 3 and a Live Scribe Sky Wifi Pen, so I’m clearly desperate.

It’s a few years late because Steve carefully crafted the meme that styluses are bad at everything just to rubbish Microsoft’s earlier attempts at creating tablets. I doubt he even really believed it himself, but it did make a great one-liner and for years Apple devotees could finish every conversation about styluses with a superior “you have no taste”.. unless they themselves owned a bunch of rubbish styluses just like me..

The new iPad Pro keyboard is a pure Microsoft Surface rip-off even though they changed the hinge to make it much less practical. Quite probably this was done to make it a little different from the Surface’s and quite definitely because Johnny Ive had a stroke when somebody suggested putting a stand at the back of his iPad.

What’s a real shame is that they didn’t put 3D Touch on the iPad Pro. A standardized right-click tap would have made the iPad much more productive than the tap-and-hold right-click. Once again Apple deliberately makes a product worse than it has to be, just so that they can upgrade all the iPads to 3D Touch in its next iteration. It’s not a winning strategy unless you can afford it.

Another omission is that of a trackpad on the keyboard. You’ll probably say “just tap the screen dummy!“, but once you’ve used a Microsoft Surface you realise that having a trackpad on the keyboard is essential. It makes “mousing” around the screen much more efficient (because of the up-scaling of the motion), avoids awkward reaching motions and plain “puts you in command”.

None of this really matters though. The iPad Pro won’t take business users by storm anyway. It’s not going to be a complete dud, but it’s not going to make the iPad into a serious productivity tool either.

The reasons for this are (almost) too many to mention. The two that are going to kill it are the App Store ecosystem and the operating system, but there are plenty more besides.

iOS is a smartphone operating system designed for quick, simple, casual interactions on a small touch screen. It’s been conceived for the iPhone form factor. It has been scaled up to the iPad, but the iPad was and remains a big phone without the phone features. iOS never really embraced the larger screen. In recent years Apple has almost completely ignored the iPad in its iOS revisions. iOS 7 pretty much forgot about it altogether. On the rare occasions that Apple does bother to demo iPads at all, it’s always to showcase some game or other.

iOS is rubbish at supporting keyboards. Yet the keyboard is a crucial part of what makes people productive on a Mac or a PC for that matter. Any experienced computer user knows how to zip around the screen using a combination of the arrow, tab and escape keys and keyboard shortcuts. Command-C and Command-V sound familiar? In many respects, Windows is still much superior to even Mac OS X when it comes to keyboard navigation. You can get quickly into any menu and select any option, whereas on the Mac you can do this but it’s really just for masochists (Command-F2 is it?).

All this keyboard navigation magic requires an infrastructure in the operating system. In Windows much of it is automatic, on the Mac it’s a lot of hard work in most cases. On iOS.. well even if there was a decent infrastructure, no developer would ever paid any attention to it. Even in Apple’s own apps a simple thing like the arrow and tab keys working is by no means a sure thing. More often than not when you connect a third party keyboard to an iPad, you are enter a world of frustration. Nothing works. Half the time you need to tap around the screen at arms length to perform even the most basic editing tasks. In fact, writing on the iPad is not half as frustrating as editing on the iPad.. in that way it is very similar to dictation features.

The video with the iPad Pro sitting flat on the desk with its full-size on-screen keyboard was hilarious. Who could type like that for more than a few minutes at most? How many hours of chiropractor’s work is involved in undoing the neck strain that you’d get after a mere hour of sitting like that?

So in practice, if you’re going to be typing long articles on the iPad Pro and you don’t have the keyboard cover, you’ll have it propped up on something. It might as well be the keyboard cover. In fact is there even a non-keyboard cover for the iPad Pro?

Again the much maligned Microsoft Surface is much more practical in that respect. It has a great built-in kickstand that means you can angle it even if you don’t have the keyboard cover on it. Great idea me thinks!

So you’re there, doing your “Pro” work on your iPad Pro in landscape mode, with the device propped up on its keyboard cover, seething at the fact that keyboard don’t work properly. Now, you’re faced with the biggest question of all: where’s the productivity software?

Well, Microsoft to the rescue: they have Office on the iPad. It’s probably not anything near as good as Office on the Mac or on a PC, but it looks like they’ve put a lot of effort in. The keyboard seems to be functional for navigation as well as for plain old typing. You still don’t have a file system, so you’ll have to use some kind of cloud service (surely not iCloud), but you can get some work done that way.

Beyond Office, however, you’ll soon fall into the abyss and then on your way down you’ll find it’s a bottom-less pit.. at least you won’t die since it’s not the falling that kills you. There is very little serious business-minded productivity software on the iPad and there quite possibly will never be. The reason for this is that nobody writes productivity business software for fun. Serious people write serious (aka boring) software for profit and there is none to be made on the iPad.

Apple’s App Store has long been a particular gripe of mine. Its business model encourages throw-away getting-rich-quickly software (games) and free (aka get-big-quick venture capital funded) software but nothing in between. Professional grade productivity is sold on a pay-up-front basis and relies on a constant upgrade revenue stream.

The solution so far has been for companies like Adobe or Microsoft to make the software free on the iPad and require an out-of-App Store subscription to a “service” like Office 360 or Creative Cloud. This gets around the 30% Apple share of anything sold on the App Store and its lack of upgrade options. This option is, however, neither available to most App Store developers, nor practical for most software.

The current state of the App Store is not tenable for Pro-level productivity software. About the only people making any serious money with productivity apps on the App Store is the OmniGroup. They prove that it is at least possible, but they benefit from intense promotion though Apple. Without that constant promotion of their products on the App Store one doubts  that they would be able to sustain their business.

This also shows the fragility of making software for the App Store: Make fun of Eddie Cue’s shirt while he’s standing next to you at the bar and your company is finished. More seriously, you are putting the fate of your company into Apple’s hands and Apple is not known for taking good care of its partners (developers included) and very well known for brusque unapologetic changes of direction that put people out of business.

The worst thing about the App Store is, however, the pricing. It takes a lot of time to make professional level software. Porting Adobe Photoshop to iOS would consume more than a man-lifetime; probably very much more. God only knows how much the Office port has cost Microsoft and they are still a long way from having parity with their PC versions.

You can’t expect anybody to put in that much time and money for a small and shrinking market where everything is $0.99 (or I guess $1.99 if you have an iPad, iPad Pro, iPhone, Apple Watch & Apple TV universal app).

The once vibrant Mac productivity software market shows that a marketplace where the majority of users are prepared to pay a fair price for high-quality software is possible, but even the Mac market is suffering through a combination of unsustainable race-to-the-bottom pricing and the other ill-effects of the Mac App Store with its stifling rules and arbitrarily enforced “guidelines”.

There are products on the Mac App Store that are doing very well, but it’s only the ones that get promoted by Apple. Apple tends to promote software that looks nice and/or is cheap and/or is written by people with a strong voice in the Mac community. You can’t rely on that.

Where in my opinion does this leave the iPad Pro? Between a rock and a hard place.

Apple is used to having people queue up to write software for their devices no matter what. The early days mobile gold rush is, however, slowly coming to a halt. There are today many more developers who have tried and failed to make money from the App Store than those who have had positive experience (the stats suggest something like 10,000 to 1). As a result, most developers have grown more cautious on how they spend their time. iPad sales are faltering. Many developers already regard the iPad market as “dead” with no money to be made; they are probably right.

It is hard to see who is going to be willing to invest much more time and effort to make much more complex and feature rich applications for a new niche within a shrinking market. Worse yet, because Apple is hiding the true cost of the iPad Pro by making keyboard and pencil optional extras, developers won’t even be able to rely on these accessories being present. How many iPhone developers are going to be spending $1,000+ to test their software on a huge iPad? Not many. This makes me believe that main-stream support for adequate keyboard navigation and pen input is going to be very slow in coming, if it is coming at all.

For the foreseeable future then, the iPad Pro is destined to be no more than a curiosity and its users will be just as frustrated as Microsoft Surface users are today. The hardware is there, but the software isn’t and probably won’t ever be.

Changing this will require a change of heart from Apple and Apple, regrettably, has become too big to be nimble, too successful to be humble, too set in its ways to welcome change.. and I suspect too afraid to change a winning formula.

After all that moaning: Will I get one? Hell, YES!

I’ve been waiting for an iPad with a decent stylus since it first came out. I’ve been wanting a bigger iPad to read my Magazines (I’m 43 and my eyes could be better) and Comics (I’m still young damn it) on for just as long. So count me in.

Will I be writing long blog posts on it? No. That might be a good thing 🙂

A Better Finder Rename 10 on the horizon


Since the beginning of the year, I have been working flat out on version 10 of A Better Finder Rename and we are nearing the first beta release.

There are a few things that I want to get out there before the first beta ships and those are mostly to do with the Mac App Store and upgrades.

As many of you will be aware of, the Mac App Store is not much loved by Mac OS X software developers, because it is very different from the “traditional” Mac Indie software distribution that many of us feel is superior in very many ways.

Nonetheless most of us “old timers” have made our software available on the Mac App Store due largely to popular demand. Clearly the Mac App Store is better for some customers.

A few years ago, the Mac App Store started to demand that all applications be sandboxed and that was the beginning of the end for many professional productivity applications on the Mac App Store.

Sandboxing itself is a good idea. In a nutshell, it just means that applications cannot access your entire computer, but are restricted to a “safe” container with their own memory and disk space. Access to anything outside that “container” needs to be specifically allowed either by the user or by Apple during their review process.

Many categories of software (i.e. games) work very well in their sandbox, but most professional applications require fairly unfettered file system access, inter-application communication and/or internet access.

Tools such as BBEdit (an awesome text editor), TextExpander (an awesome snippet expander), Panic’s Coda (an awesome web development tool) and many others (many of them awesome) are leaving the Mac App Store because of these limitations.

A Better Finder Rename 9 is in the app store as “Better Rename 9” and we have managed to keep it non-sandboxed by only shipping “fixes” and no major upgrades for years.

By its very nature, a file renaming tool needs unfettered access to the file system. There’s no chance of Apple granting us an “entitlement” to do that during the review process. The reason is that this pretty much defeats the objective of being sandboxed in the first place.

In the idealized sandbox world, it is the user who implicitly grants permission to manipulate files by selecting them in a Open File… dialog or by just drag & dropping them onto the application or its icon. This works fine for our other file utilities such as File Multi ToolA Better Finder Attributes, but not for A Better Finder Rename.

The reason for this is simple: on a Unix system such as Mac OS X, the name of a file is not stored in the file itself but in the folder that contains it. Dragging & dropping files only gives access to the file and not to its “parent folder”, so you can change everything except its name.

We would thus either need to ask the you to give Better Rename 9 permission for the parent folder every time you want to rename something, or store that permission somewhere after the first time. Alternatively, we could also ask you to give us permission for the entire disk.

This is not an elegant solution and Apple may or may not accept it. Having played around a bit with other programs that have similar problems, it seems that Apple would most likely allow this kind of “hack” where the program brings up an Open File… dialog and says “Sorry I want to access this file but I can’t, please select it for me!”. Yuck.

We have most of the code necessary to do this and are ready to ship it, but it will undermine the usability of the tool, so we are not certain whether we will continue to support a Mac App Store version beyond version 9.

The next huge problem is how to implement paid upgrades. Nobody wants to pay for upgrades, but upgrade revenue is important for developers and customers alike. The economics of software development are currently bifurcated: you have the traditional developers such as Panic, OmniGroup, BareBones, Red Sweater to name but a few, who diligently plug away at making their products ever more awesome.. then you have the newer App-Store generation authors who create an app, launch it, get a good pay day (or more likely not) then see revenues collapse and move on to the next app product.

Abandonware is okay for some categories of software. Who cares whether Flappy Birds gets updated for iOS 9? Professional software, however, is used for more than mere entertainment. Customers buy into professional software, learn how to use it and expect to be using it for many years to come. They expect the software to supported, for bugs to fixed, for it to work with the latest operating system version and to continously evolve with their own growing needs.

A Better Finder Rename was first published in 1996 on System 7 running on PowerPC-compatible Macs and has constantly evolved since. Version 10 is the most awesome version yet and contains many improvements that would have been just as relevant in 1996 as they are today, as well as many that nobody could have predicted back then. At this point, it has probably broken through 100,000 hours of development and support time. A substantial amount of this time was paid for by upgrade fees.

Paid upgrades have another crucial advantage for long term customers: while fire-and-forget developers optimize for immediate appeal, paid upgrades are almost always targeted squarely at the needs of long term users. It’s a different mind set: The success of a new app depends on how many people buy it now, the success of a paid upgrade depends on how many people are willing to pay for the improvements and the new features.

Paid upgrades are great for professional level software because they allow software developers to spend time addressing the needs of existing customers. That’s why it’s particularly troubling that Apple does not allow for any upgrade pricing on the Mac App Store.. and that’s why developers like me are not very happy about it.

Apple makes the Lion’s part of its revenue on hardware. Software for them is something that makes people buy their hardware, so they can afford to give their software away for free to make you buy more hardware.

Indie software developers are only selling software and don’t get a cut from the hardware sales. In fact if we sell through the Mac App Store, Apple gets a 30% cut of our revenue and that’s after sales tax in most countries (though not most parts of the US). For a 19.99 EUR sale in Germany for instance, a developer only gets 11.76 EUR paid out; the missing 41% goes to Apple and the German VAT office. After the tax office and social security payments here in Luxembourg, there is less than 6 EUR left for me of any one sale of Better Rename 9.

Apple has changed software pricing on mobile devices but also on the Mac quite dramatically. They started by offering iLife (iPhoto, iMovie, etc.) for $19.95, then added iWork (Pages, Numbers,…) again at bargain basement prices. At those price points, just charging you another $19.95 every year is perfectly fine. In the end, all those products are now completely free and Apple makes all its money off the hardware.

Most importantly, Apple has never had to finance the development of those software titles by their actual purchase price. They produced these titles to sell $2,000 MacBooks and iMacs, not for the sake of the $19.95 upgrade pricing. Not surprisingly, none of those applications has seen real effort put into maintaining either backwards compatibility or expanding their feature sets. They are entry level applications because Apple has no real interest in driving their development forwards.

Unfortunately, neither charging the full price for each upgrade or making upgrades free, works for applications such as BBEdit, OmniFocus, Coda or indeed A Better Finder Rename. I don’t want to ask customers to pay another $19.95 for A Better Finder Rename 10, but I can’t afford to make it free either.

Many developers have tried to overcome this problem in a variety of creative but imperfect ways. The ball has been in Apple’s court for years, but it’s very clear that they don’t mean to ever pick it up.

I’m not excluding bringing A Better Finder Rename 10 to the Mac App Store eventually, but in a first phase, A Better Finder Rename 10 will only be available from the publicspace.net website.

Our upgrade terms have always been quite generous: paid upgrades cost 50% of the initial purchase price, are fairly infrequent (every 2-5 years), you can get forever upgrades which cost 100% of the initial purchasing price and if you have only recently bought the product, you get a free upgrade.

For A Better Finder Rename 10 the upgrade terms are as follows:

  •  if you have purchased A Better Finder Rename or Better Rename 9 after the  1st of January 2015, you get a free upgrade
  • if you own a forever upgrade, you get a free upgrade
  • otherwise, you have to purchase a discounted paid upgrade

As you may or may not be aware of, anybody who has purchased Better Rename 9 from the Mac App Store can also run A Better Finder Rename 9 from our website for free. In 99% of all cases, A Better Finder Rename will automatically detect that you have previously bought Better Rename 9 and unlock automatically.

If it does not unlock automatically, all you need to do is to download Better Rename 9 to your machine and run it once. After that you can delete it and A Better Finder Rename will still remember that it was there once.

Once released, A Better Finder Rename 10 should automatically unlock if you have purchased Better Rename 9 from the Mac App Store after the 1st of January 2015. So if you buy Better Rename 9 from the Mac App Store now, or even after A Better Finder Rename 10 is out, you are covered.  If you run into any problems, contact us at support@publicspace.net and we will sort everything out with you.

Likewise, if you own A Better Finder Rename 9 or Better Rename 9 but have bought it before the 1st of January 2015, you can buy the discounted upgrade to version 10 from the upgrade page. You can do so even before A Better Finder Rename 10 comes out.

After version 10 has been out for a while, we will reconsider whether we’ll submit Better Rename 10 to the Mac App Store complete with the crippling “please let me rename this” dialog or leave things as they are.

For us, the important thing is that no matter whether you buy on the Mac App Store or from us directly you will have access to the same versions and will not be penalized in any way.

Unfortunately, Apple does not tell us the identities of anybody who purchases our products on the Mac App Store, so we cannot contact existing customers to let them know of these arrangements.. so if anybody wants to post a comment (developers can’t leave or reply to comments) saying “you can get a free upgrade from publicspace.net!”, you’re more than welcome.

The Changing Face of Apple

Yesterday’s Apple Event featured a golden MacBook and a $10,000+ watch. Time to reflect on how on how we got there.

Jony Ive has designed some beautiful things. People kid about his “white world” in which his disembodied voice chirps on about facets of the design that most people will never even have thought about before. The revelation that he is chauffeured to work in a Bentley every day sits well with a man who designs $10,000+ watches.

Jony Ive also has a penchant for form over function and aesthetics over functionality. His Luxor Jr. iMac was his only true excursion into the realms of ergonomically correct design and it was soon replaced with the now iconic “it’s-just-a-screen! where-is-the-computer” iMac design that has changed little since.

Jony subsequently discovered “aluminum” (yes, he even knows how to pronounce it) and glass; then few years later he re-invented “gold” and “space gray”; yesterday he invented Fluoroelastomer and all-new-never-seen-before versions of stainless steel and gold.

All the while, Apple’s product owners have continued to live with ergonomic, practicality, and performance problems.

Clearly, Jony’s focus on desirability has paid off handsomely for Apple and is not about to change. As a professional Mac user, however, I find it hard to put up with iteration upon iteration of beautiful but impractical designs.

Take the iMac. The Retina iMac has a great screen, but even thought it’s the n-th iteration of the glassy front pane, the glare and reflection are still bothersome and keep me from ever wanting to use one as my main work machine. The new laminated screen technology and the new coating are a big improvement over the initial iteration, but still much worse than simply not putting glass in front of the display at all.

Take the Mac Pro. I bought a new late-2013 trash-can Mac Pro for a couple of a thousand euros to replace my previous “cheese grater” Mac Pro. It is amazingly quiet, but.. it’s not much faster than my 2010 Mac Pro because it lacks a second CPU. Instead it has a second high performance GPU.. which can’t drive 5K displays. I can purchase a 5K-compatible GPU for my old Mac Pro, but not for my new improved Mac Pro. The new Mac Pro is so small, it can (and in reality must) sit on my desk rather than under it. So now I have a mass of cables running all over my desk..

In summary, all current Macs make often inappropriate compromises in the search for aesthetics.

Enters the “MacBook”. It is gorgeous and I want to have one (in gold.. please kill me!) because it’s so desirable. It is also an incredibly hobbled piece of technology. It has a Retina screen, but at a resolution of 2304-by-1440 corresponding to a non-retina resolution of 1,152-by-720, it has the tiniest resolution on a Mac for a long time. As an application developer this means that I’ll have to seriously look into how well my UIs work on such a tiny screen.

It also has only one USB-C port, which doubles as a charger. Fewer ugly holes in the unibody enclosure yes, but what a nightmare of adapters and cables it will be to attach an external keyboard, mouse and display while charging..

Then there’s the great new keyboard with almost no travel and metal keycaps. The jury is still out, but even Wired’s two minute hands-on confirms what seems obvious: it’s likely to be awful.. even though the keys are now individually lit by their own LED.

Laptops and notebooks are ergonomic nightmares in any event, because of the crammed keyboards and fixed displays and Apple’s offerings with their mini-cursor keys and mirror-effect displays start out with a severe handicap that needs superior engineering to compensate for.

The elephant in the room is of course performance. A gaming notebook this certainly won’t be. Graphics performance is likely to be appalling given the fan-less design and the choice of CPU will prevent anything but “light” work to be performed on this gem.

Still..l I want one and I’m already trying to talk myself into getting one.. surely I could use it as a replacement for the iPad when I travel (I don’t travel) or I could use it in a coffee shop for writing code (I don’t go to coffee shops). I could get one for the kids (but it couldn’t run Minecraft).. darn I’ll just have to go and look at it in the shop and lust after it there until they shoo me away.

This was the theme from yesterday’s event: They showed a lot of gorgeous stuff but I don’t need any of it.. and it’s too expensive to buy on a whim.

The Apple Watch is the answer to a question I never asked and Apple has not done much to crystalize what that question should have been. They haven’t been able to come up with a rationale for why you would want to have a smart watch.. what it’s going to be good for.

In that way it is quite similar to the iPad. Steve Jobs clearly had no idea what you’d want to use it for beyond “surfing the internet on the couch” when he presented it.. but it has found its place.

I’m sure that the MacBook and the Apple Watch will also find their place in our lives.. and for much the same reason. We want these devices because they are desirable not because we necessarily need them, so we are actively looking for reasons to want them.

I’m not yet convinced that I will enjoy wearing an Apple Watch. In all honesty, I wouldn’t get one at all if it weren’t for the fact that my customers will expect some sort integration between my Mac and iPhone apps and their new Apple Watch.

All this is a far cry from the Apple that I fell in love with all the way back in the 1980s. The Apple IIe was my first computer (my father briefly thought of it as of his first computer). Shortly thereafter I saw the first Macintosh and it took many years of going through Atari XLs and STs and some pretty awful PCs before I could finally afford my first Mac in the early 90s.

Back then Macs were both beautiful and offered much greater practicality than PCs and Windows. Apple’s huge success since those days goes down to a large extend to the failure of Microsoft and the rest of the industry to take usability seriously until it was much too late. Even today the likes of Microsoft and the Linux “community” manage to screw up even elementary usability concepts and even though Macs have made no major advances in usability over the past decades, they remain the benchmark against which all other contenders are measured.

I’m not arguing against Apple’s search for desirability over functionality. It is clearly working for them. I’m more bemoaning the fact that today’s Apple has little in common with the multi-coloured Apple that I grew up admiring.

Some of this goes down to the absence of Steve Jobs. Steve ruled Apple with an iron fist and often successfully played the user advocate. He reigned in Jony Ive’s minimalist tendencies and despite never really living up to his own grand and egalitarian ideals, those ideals nonetheless shaped many of his sensibilities and decisions.

A $10,000+ product that is functionally the same as the $350 model but provides infinitely higher bragging rights would probably not have sat comfortably with Steve’s ideals. It does not sit comfortably with many people who were inspired by the iconic “Think Different” campaign to give the company another chance at greatness rather than turning their backs on them like the rest of the world did.

Is this the same company that could conjure the spirits of Gandhi, Martin Luther King and Einstein without raising any eyebrows? No.

Today’s Apple gets its inspiration more from following the good deeds of marathon running ex-models than from the humble civil disobedience of a Mahatma Gandhi. It is more likely to feature full-page ads of David Beckham wearing an “Edition” watch than celebrating the quiet genius of Albert Einstein.

For Old-Timers like me, it’s more than a little sad.

MacBreakZ 5 web site redux

MacBreakZ is one of my earliest software projects and started in 1996, when I developed tendonitis in my forearms.

I heeded this as a wake up call and learned everything I could about RSI recovery and prevention and I have been RSI free for close on twenty years now.

As a software developer, of course, I needed to write a program that would embody all of that know how.

MacBreakZ has since gone through 5 major revisions and development is still ongoing.

Last month, I published the first Yosemite-only version and today the new website is ready.

In doing this I also had to review my book list on RSI, only to find that little has changed in the past decade. Either RSI is no longer a problem (definitively not true) or there’s no much money in writing about it 🙂


How not to become an indie developer

The write-an-app-and-get-rich-quick meme has been circulating ever since the iPhone SDK was first announced.

As a long-term Mac developer, I took it all with a pinch of salt. Success certainly hadn’t come that easily for me: I started developing “shareware” for the Mac in 1994 and only went full-time indie in 2006; so after 12 years of part-time indie-doom.

Yet, the get-rich-quick meme was endemic for many years and it sure looked as if every high-school kid who wrote an app became a zillionaire overnight. Nobody (and I mean nobody), ever said “I’ve got a great app, but it’s not making that much money”.

The economics of the iOS app store were always a mystery to me: How can you make a steady income from 70% of $0.99, even forgetting about sales tax in much of the world? Can you really sell thousands of apps every day.. forever? In a marketplace that full? With such a huge bias for novelty and the “next big thing”? all the while competing with all the VC-backed “free” offerings?

It did not seem likely to me that there were a lot of people out there making the kind of money that allows you to pay back your mortgage and bring up your kids.

Intrigued nonetheless, I decided to make a small experiment  in the early days of the App Store: I used some of the existing stretching routines from my MacBreakZ product to create a small iPhone app, just to see what would happen. StretchZ sold a few copies here and there, but it was much as I had thought: you need a really good app to make “decent” money.. and even then the effort-to-revenue ratio is prohibitive.

About half a year ago, Brent Simmons finally dared to ask the question: “Where are all the successful Indie iOS App Store developers”?

This unleashed a flurry of opinion pieces resulting in some of the developers with more or less respectable success to post their sales figures online. Respect! I won’t publish my figures any time soon 🙂

The recent revelation that even indie rock star Marco Arment of, amongst other things, ATP podcasting fame, does not make much more than an average developer in industry, was sobering for many.

The discussion seems to have bifurcated into roughly two camps since:

  1. the Doom-and-Gloom camp
  2. the Forced-Optimism camp

The difference between both camps is largely down to what their expectations were.

The Doom-and-Gloom-ers are coming to realize that it is very though to make a living on the App Store even if you make top-notch apps.

The Forced-Optimism crowd tend to be excited hobbyists, who are delighted when they see that some day, they might actually be able to make a living from doing what they love!

On the one hand, I find some of Forced-Optimism crowd quite irritating because they bend over backwards to keep any blame for what is going on from Apple. On the other, the Doom-and-Gloom crowd often seems to blame only Apple and seem unwilling to take much responsibility for their perceived lack of success themselves.

These are of course sweeping generalizations and there’s not a single individual who fits in only one of those camps and many developers have a more much subtle and nuanced view. I’m overstating their positions to make a point: reality is more subtle.

I think that it is naive to believe that you can just go out there, develop an app that you would like to use yourself, put it on the app store and wait for the millions to come rolling in. Yet, that seems to be a fair description of the general approach taken by many developers and “idea people”.

Engaging in ridiculous oversimplifications such as “apps need to be beautiful”, “apps need to do one thing really well”, etc. is not enough to be successful in a competitive market.

Similarly, keeping any blame for the current situation from Apple is just as ridiculous.

Apple did not blunder into this situation by chance. Apple took a very deliberate choice to create a walled-garden App Store for iOS. You cannot install an app on your Apple devices without Apple’s consent and Apple has enforced its the role as gatekeeper. It is thus more than fair to hold Apple accountable for what happens in its store.

The aforementioned naive belief of many developers that just writing an app will make you rich does not come from nowhere. Apple has been at pains to present the App Store as an Eldorado for app developers. They never cease to announce the billions that they “share with app developers”, so perhaps app developers can be excused for having high expectations.. and Apple can be blamed for creating them.

Apple also creates the shape of the App Store through its own policies. Early on Apple seemed to simply have repurposed the iTunes music store implementation to now sell apps. In fact this is still the case.

Top 10 lists, featured sections, $0.99 price tags, no communication between content providers and content consumers, no trials, difficult returns, etc.. all this is the stuff of the Music industry and not that of the software industry.

Free trials, discounted upgrades, direct contact with customers, FAQs, Wikis. That is the stuff of software development.

You can call this “old fashioned”, but Apple has hardly “reinvented” the software industry. What it has done is turn software into a consumable piece of entertainment.

Is it it any wonder that professional grade software isn’t doing great on the App Store?

Why then is Apple so unwilling to change anything?

The answer is quite simply that it seems to be working very well for them. Change is always dangerous, especially if you don’t understand why you are successful in the first place. It is easy to talk yourself (and others) into believing that you are successful because you are doing things the way that you are. The more successful you are, the easier it is to convince yourself that you are doing everything right.

I’m fairly certain that Tim Cook isn’t losing any sleep worrying about how much money Indie developers are making.

What does all this mean for aspiring Indie developers?

Go in expecting nothing. Don’t give up your day job.

Don’t be naive and expect that you’ll be an overnight success. That, as they say takes 10 years.

Don’t rely on money you may never see. Write your first killer app for fun and a bit of pocket money.

Once you’ve got your app in the App Store, try to learn from what happens. What did you do right? What did you do wrong? How far are you from being able to go part-time? What is  your back-up plan?

Also avoid spending your own money on your killer app in anticipation of a large pay-off that may never come. Paying a designer tens of thousands of dollars makes the designer happy, but it is more likely to make you poorer than richer. Once you’ve established that there’s a market for your app, you can still invest in more professional help.

Indie software development can be an enormously satisfying experience. You can create something yourself and share it with the world.

It is also a very hard thing. It takes a lot of effort and energy. It is full of ups and downs. Having people use your stuff can be very rewarding, but you’ll also have plenty of negative feedback. If you have thin skin, now is the time to grow a thicker skin (still working on it personally).

Keep your expectations in check.. Don’t take crazy risks, and above everything else: Enjoy the experience.



Some thoughts about Optionals in Swift

Like many Mac and iOS developers, I haven’t yet made the jump from Objective-C to Swift, nor will I make it in the near term.

Just like most other developers, I am slowly putting a little bit of Swift code into new projects to get a feel for the language and I’m experimenting with its new features to be ready when it becomes a more practical proposition.

At the moment, I’m trying to come to grips with “optionals“, a construct that I have never seen in any language I’ve used before.

Essentially, “optionals” are shoeboxes that may or may not contain a value. You can find out whether they contain a value and if so, you can get the value out by “unwrapping it” and if it contains a mutable type, you can change it.

This replaces the C-style pointers that may either point to the data belonging to an object (in the largest sense of the word) or have a “nil” or “NULL” value that signifies “no object”.

Optionals are a clear improvement on null pointers or nil types in at least two significant ways:

  1. Optionals eliminate a whole class of common bugs by forcing developers to think about “what happens if this method does not return a valid object/ value”
  2. Optionals help make Swift code faster by making it easier and safer to optimize code; optimizers do not have to worry about edge cases where the value may be empty.

The price for those two advantages seems very steep, however.

First, not dealing with potentially invalid objects being returned prevents the code from being compiled in the first place. You cannot not deal with the problem.

Secondly, optionals require developers to learn a host of new concepts. This may be a good thing in the long term, but it will slow adoption as you can’t just dive into the language without understanding optionals and you have little hope of ever having come across them before (unless you are beta testing Rust that is).

Using optionals is also really, really cumbersome. Unwrapping each and every optional makes even trivial programs balloon to many times their normal size. This is why Apple has thoughtfully added a lot of syntactic sugar to make the medicine go down that much more easily.

This syntactic sugar (chaining, etc.) makes your code smaller and cleaner and you can almost forget that it is there at all when you read it. Unfortunately that isn’t the case when you write the code and it does also add a whole layer of complexity making Swift harder to learn and understand.

Optionals also do not map onto anything in Objective-C and as there are no native libraries yet, “implicitly unwrapped optionals” abound and feel very much like a backwards-compatibility hack and a solution to a problem you wouldn’t have without optionals.

So there is a price to be paid for beauty, performance and safety.

That needn’t be a show stopper. You get nothing for free in life and the result may be worth the effort.

Unfortunately, when I’m actually using Swift, I find that I don’t seem to be getting much value out of optionals.

Firstly, there’s the fact that now instead of trying to express what I want to do, I find myself wondering about whether I need to unwrap my optionals? and what might be the best syntax for expressing the unwrapping? where should it be done? now or later? Why does this code not compile?

Admittedly with a little bit of practice, this will probably largely go away. There will always be a  cognitive overhead associated with it, but it will that overhead is likely to get smaller with time. I certainly won’t miss having to check the location member of the return value of rangeOfString: for NSNotFound.

The real killer for me is, however, that I now find all those places in my code where I need to think about what to do when the optional is empty .. and I find that there’s not much to be done.

What can you do when you are loading an image from your app bundle and it is not there? There only seem to be two options:

  1. raise an exception, crash or display an alert that the user can’t do anything about
  2. do nothing

Crashing is great, because now there’s a crash report being generated and I know that something has gone wrong in the production version and I can work out what the cause is and correct it. Crashing early is best practice. It certainly beats crashing later.

Doing nothing might be okay in many situations, because it might not be so bad. It is in fact what Objective-C does most of the time in this situation. It just ignores the problem, the application keeps running (but not necessarily working) or it simply crashes somewhere down the line.

Herein lies the problem with optionals. They force you to deal with potential problems that you can’t do anything intelligent about. Worse, because of the absence of an exception mechanism you need to deal with exceptions in situ, polluting your beautiful code with non-sensical error handling code.

So, what I’m wondering is: “Is there any value in explicitly dealing with problems that you can’t do anything about?”



Image Capture Workflow Updated for A Better Finder Rename 9

Back in 2009, we published a couple of blog posts describing how to
use OS X’s Image Capture.app with A Better Finder Rename 8:

The second post linked to an Automator workflow to use with this process, but the release of A Better Finder Rename 9 “broke” this workflow; it works only with A Better Finder Rename 8.

We have updated this workflow for A Better Finder Rename 9, so you no longer have to settle for the default import location. Instead, you may choose your import destination at run-time. Grab a copy of the workflow here: