Archive for November 22, 2013

Friday, November 22, 2013

Making ‘git rebase’ Safe on OS X

Alexander Rinass:

When performing a large rebase with several commits and many changed files, the rebase process can randomly abort, stating that there are uncommitted changes and rebase cannot continue. However, a “git status” does not report any changes.


The problem has been tracked down to the revisiond daemon of the OS X Versions feature, which detects file changes and seems to somehow alter the file system info of the file, causing a rebase step to fail as it then detects changes.

IBOutlets as Weak References

Zach Drayer:

When using Interface Builder and code, you have IBOutlets. If your project is ARC, the IBOutlets generated are `weak`. This is problematic because if you turn on CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK and CLANG_WARN_OBJC_RECEIVER_WEAK to try and catch bugs, you run into dozens/hundreds/thousands of warnings in your project. While it is nice to have your code as correct as possible, seeing thousands of warnings is enough to greatly sadden pretty much anyone.

The compiler wants you to make a strong reference before each use, which is not really necessary if you know that the owner of the references isn’t going anywhere.

Pausing the Cloud

Matt Henderson:

Whenever any one, or combination of, these apps saturates the ADSL upload bandwidth, downloading then becomes very difficult. And that presents a big problem when trying to do things like watch content on iTunes, or have a conversation over Skype.

These apps all try to address the problem, but in collectively (and sometimes individually) ineffective ways[…]

I’ve seen similar problems that are not related to Internet upload bandwidth. For example, whenever I tried to sync my iPhone using Wi-Fi rather than USB, iTunes saturated the local Wi-Fi, making Safari and Mail unusable.

AppleCare Bargain

B & H Foto & Electronics offers AppleCare for $105 less than Apple (via Lloyd Chambers).

TextExpander Rejected From App Store

Apple no longer permits sharing data among iOS apps via Reminders, the new method that Smile developed for iOS 7. Greg Scown:

We have less than two weeks to develop an alternative data exchange mechanism, and this is complicated by the impending Thanksgiving holiday.

We considered revising the SDK to incorporate code to access users’ snippet data directly on Dropbox. This is not possible due to Dropbox’s app sandboxing. We considered the Datastore, but its limit of 5MB per account is too small for many users’ TextExpander data, and this is not how it was intended to be used. Dropbox is not a viable choice for the available timeframe.

Our only alternative appears to be providing TextExpander data via x-callback-url. User action will be required to acquire and update snippet data. Each app will have its own copy of the TextExpander data, which will not sync automatically with user updates made in the TextExpander touch app. It’s not ideal, but it is within the App Store Review Guidelines.

Brent Simmons:

I would love to see a supported means of sharing data between apps on iOS. I’d love to see something like AppleScript (only much, much better).

In the absence of that, the only non-hacky way of sharing data is a web service.

Manton Reece:

A web service is the best solution right now, but it seems tricky. Charging would potentially alienate many of the existing users. And charging developers would limit the apps that synced.

Regardless of the workaround chosen, the result is that TextExpander will be made more difficult for people to use, for no obvious benefit.

Update (2013-11-26): The new SDK using x-callback-url is available.

Typography for Rocket Scientists

NASA (PDF) (via Michael Erlewine):

The object of this report is to provide a summary of the available literature regarding the design and typographical aspects of printed matter. The report attempts “to bridge” the gap between basic research about typography, and the kind of information needed by designers of flight-deck documentation. The report focuses on typographical factors such as typefaces, character height, use of lower- and upper-case characters, line length, and spacing. Some graphical aspects such as layout, color coding, fonts and character contrast are also discussed. In addition, several aspects of cockpit reading conditions such as glare, angular alignment, and paper quality are addressed. Finally, a list of recommendations for the graphical design of flight-deck documentation is provided.

Layer-backed Text Rendering

In Mavericks Font Smoothing, I noted that there has been a regression in the quality of text rendering in Safari (and some other apps). I thought this was due to a change in Mavericks. However, I noticed a similar change when updating from Tweetbot 1.3.3 to Tweetbot 1.4, with both versions running on Mavericks:

Tweetbot 1.3.3

Tweetbot 1.3.3

Tweetbot 1.4

Tweetbot 1.4

Basil Shkara, developer of the new Bee Mac client for FogBugz, thinks this is due to Tweetbot using layer-backed views. This sounds like a likely explanation. Text rendering has always worked differently in Core Animation layers, for example with subpixel anti-aliasing not being supported. It’s not clear to me why regular anti-aliasing has to use a different algorithm, though. In any event, I would happy to trade animations and super-fast scrolling in order to get better text rendering back.