Archive for September 17, 2013

Tuesday, September 17, 2013 [Tweets] [Favorites]

Not Replacing Microsoft Office

getwired:

The users who have likely had the most “success” (using the term loosely) with replacing Office are likely the individual users I mentioned early on who are simply using Office documents as containers, not using any Office specific features to much depth, and can likely survive just using the document export features in Google Docs, iWork, or any other Web/mobile productivity suite not from Microsoft. Admittedly, Microsoft surely sees this scenario, and as such has made the Office Web Apps for consumers freely available and interconnected with SkyDrive.

Even the Mac version of Office is not always a viable substitute. And I’ve seen iWork documents destroyed when moving from Mac to iPad, to say nothing of using it to edit actual Word or Excel documents.

Extra Finder Metadata Columns for Movies, Music, and Pictures

nigelgoodman (via Peter Hosey):

In the “Movies” folder and any folder created inside it the above extra meta data columns can be added, and this applies to any other “Movies” folder created anywhere else - on another drive for example. But if you have another folder elsewhere that is labeled “Films”, for example, the extra columns cannot be added.

However it is easy to add these columns - simply (re)name the folder “Movies”. Open it and add the columns that you want. Then return and rename the folder back to “Films” or whatever. The extra columns remain and are still there after a log-out or restart.

SourceTree 1.7

Atlassian has released a new version of its SourceTree client for Git and Mercurial. I use it in concert with Tower. Tower has a cleaner user interface that’s great for committing changes and viewing the contents of a commit, including multiple files at once. SourceTree, though, has a better per-file history view and can search the contents of a commit rather than just the comments. (This search feature seems to be broken for me in the current version; I’m currently talking with their tech support people about it.)

For reasons that I don’t understand, neither client provides an easy way for me to get the revision history for a file that I have in the Finder, Terminal, or an editor. You’d think that you could drag and drop it onto the Dock icon or use AppleScript or a command-line tool. Instead, you have to drill down or search for it from within the client.

Update (2013-09-20): The “File Changes” search bug is fixed in SourceTree 1.7.1.

Tim O’Reilly’s Business Lessons

Tim O’Reilly:

At O’Reilly Media, we’ve built a successful business and have had a big impact on our industry, but looking back at our history, it’s also clear to me how often we’ve failed, and what some of the things are that kept me, my employees, and our company from achieving our full potential. Some of these were failures of vision, some of them were failures of nerve, but most of them were failures in building and cultivating the company culture.

The iPhone 5s Secure Enclave

Brian Roemmele (via John Gruber):

There are numerous reasons Apple moved to the A7 processor. One reason is the hardware requirements of Touch ID. To economically create the Secure Enclave, Apple needed a processor that is already aware of the concept of encryption and security at a native level and has the dedicated hardware to make a segregated and secure area with in the processor architecture.

Presumably, easy phone unlocking is just the beginning of Apple’s plans for the fingerprint scanner.

Haystack’s 5 Indie Software Business Lessons

Stefan Reitshamer:

I used to worry that once I got a number of customers, supporting them would take up too much time for me to move the ball forward on new releases and new products. The only strategy I had to counteract this was to ship products that are as simple as possible and as bug-free as possible. It seems to have worked so far. As a side benefit, I found out that people much prefer super-simple products that don’t have bugs.

I pretty much agree except for his comments on not tracking enhancement requests. I would say that you don’t have to worry too much about tracking priorities, as it’s usually clear what people want most. However, even for the obvious items, it’s nice to have a place to stash notes on how I plan to implement the feature and what the important trade-offs are. Secondly, I believe that there’s a long tail of second-tier features and details that only a small number of people request but that add up to a substantially better product. As a user, I often find that the important differences between two apps are not ones that would have appeared on the list of major features.

Jeff Bezos Quotes

Morgan Housel (via Hacker News):

He created a culture that’s not only different from, but often totally at odds with, how most business leaders think. He’s also quite quotable. Here are 20 smart things Bezos has said over the years.

The Art of Delivering an RSS Feed

Jens Bissinger:

[We] set up a subdomain dedicated to serving our feed that refers directly to the delivery service. Technically, it’s just a CNAME record for feeds.git-tower.com referencing feeds.feedblitz.com.

This lets them use thirty-party analytics while retaining control of their URL and allowing the feed to link to their stylesheet.

iTunes’ Breaking Bad Swindle

Kirk McElhearn:

Back when season 5 of Breaking Bad started, iTunes sold a season pass that offered “all current and future episodes of Breaking Bad, Season 5.” When the producers decided to lengthen the season, and split it into two parts, Apple reneged on their commitment, no longer providing “all current and future episodes.”

A class action suit has been filed.

The claim also says Breaking Bad’s creators and actors have consistently described the 16 final episodes as “Season 5.”

Update (2013-09-24): Kirk McElhearn received a credit for purchasing the remaining episodes.

PhotoReviewer 2.2

PhotoReviewer is now compatible with Mac OS X 10.6 and later. I used this app a lot in the early days of Mac OS X, as it was great for going through large batches of images to delete the unwanted ones and organize/prioritize the reminder. Then, with Mac OS X 10.5 (I think), it stopped working.

Preview, in those days, would try to open each image in a separate window, which took a long time and would usually exhaust the available RAM, then grind the system to a halt with paging. There was also no easy way to move or delete the images, and Preview wasn’t (and still isn’t) AppleScriptable. Newer versions of Preview can open large batches of images in a single window, and you can press Command-Delete to get rid of the bad ones.

The venerable GraphicConverter now offers Slide Show mode, with additional review features and a more complex interface.

PhotoReviewer, I think, handles the basics the best and is much faster than the alternatives.

iOS 7 Mail Uses Multi-Folder Body Searches by Default

FastMail (via Nick Matsakis):

Our plan at FastMail is to detect iOS clients, and convert all searches into FUZZY searches. This causes matches to be done on “terms” rather than pure sub-strings, but allows us to use our xapian powered index which should make matching and fetching results much, much quicker.

I wonder why MobileMail is using a body substring search to begin with. The Mac version only supports term and prefix searches. (I think a previous version may have supported wildcards.) EagleFiler offers the option to “Match Partial Words” or not.

I use FastMail as a backup SMTP server for sending customer e-mails. Amazon SES is cheaper but more often rejected by mail servers.

FCModel

Marco Arment:

FCModel is a generic model layer on top of FMDB. It’s intended for people who want some of Core Data’s convenience, but with more control over implementation, performance, database schemas, queries, indexes, and migrations, and the ability to use raw SQL queries and SQLite features directly.

FCModel accomplishes a lot of what Brent Simmons wrote about. This is my version of that.

It’s a basic object mapper that supports uniquing/caching but not relationships. Unlike Core Data, the objects can be modified from any thread.

I think Core Data is OK as far as it goes but that it needs an “escape hatch” to do more database-style operations. In other words, instead of having to drop Core Data entirely, you would stay with the framework but forego certain object niceties that don’t work well with those commands.

Update (2013-09-19): Collin Donnell:

The truth is that because Core Data is a general solution which completely abstracts you away from the idea of using a database, I’m not sure there’s anyway that it couldn’t be a bit complex in places and that there wouldn’t be walls to bump up against. In my experience with Core Data everything works great except when it doesn’t, and because you’re so abstracted away from the implementation detail of it using a SQLite store, when you do hit those walls, you hit them hard.

Downloading Old Versions From the App Store

If you have an older version of iOS than is supported by an app, Apple now lets you download the last compatible version of the app (via Ryan Christensen, Paul Haddad, and Aaron Souppouris). This is great news, as I thought iOS 7 was a potential disaster in the making. Buy a song or a movie from Apple, and you “own” it and can download it on any device, any time. But buy an app, and this ability only lasts until a new version drops support for your OS, which is probably sooner rather than later. Apple’s developer tools are forward-looking and discourage support of older OS versions.

There remain some questions, though:

  1. Does the new version of the app have to be available in the App Store in order to download the old version? That is, if version 2.0 is a new SKU, will owners of older devices still be locked out of buying the last compatible version of the app?
  2. Does the answer to #1 change if you had already purchased the original SKU? For example, say you purchased OmniFocus 1.x on an iPad 1. Does it go away when you restore from an iCloud backup?
  3. What if the last compatible version was buggy, or has become so due to changes to external services that the app depends upon? There seems to be no way for the developer to submit a fix.
  4. Will this feature come to the Mac App Store? Many apps that should be able to easily run on Mac OS X 10.6 or 10.7 cannot, because of sandbox bugs that weren’t fixed until 10.8 or 10.9.

Update (2013-09-17): See also the Hacker News discussion. Also, an important point is that, with the current developer tools, if you make a 64-bit version (for optimum performance on the iPhone 5s) the fat binary will only run on iOS 7 (even though that same code compiled as 32-bit could support earlier versions).

Kyle Richter (via John Gruber):

No one ever told us [developers] about it. Let me rephrase that, because it sounds pretty entitled. No developer expects Apple to run this kind of stuff by them ahead of time. The problem is no one ever thought this was a possibility. The common misconception here is when an app is updated it is updated to add new features and maybe some bug fixes. These new features may require a newer version of iOS so old users are left in the cold. The truth is a lot happens under the covers during updates, API endpoints are updated, data models changed, multiplayer protocols changed, even legal issues are addressed.

Update (2013-09-19): Here’s Apple’s official announcement:

Previous versions of your apps are now available for re‑download by users who have already purchased them, allowing customers to use your apps with older devices which may no longer be supported by the current version of your app. If you do not wish to make these versions available, you can manage the availability of your apps' previous versions in the Rights and Pricing section of the Manage Your Apps module in iTunes Connect. Learn more.