Archive for October 30, 2013

Wednesday, October 30, 2013

iLife, iWork, and the Sandbox

Nik Fletcher:

So that developers can quickly look at the change I’ve put together a repository on GitHub with all the details for Keynote, Numbers, Pages, iPhoto, Aperture, and GarageBand that launched with OS X Mavericks - it seems there’s some interesting stuff in the iOS updates too, but I’ve not yet taken a look for myself.

As you can see, there’s still some Apple private entitlements in use, and GarageBand escapes the sandbox entirely by using an absolute read-write path for not just your hard-drive but any external drives too[…]

He sees it as a positive that Apple is now sandboxing its own apps. On the other hand, it has now been almost two years (and two major OS releases) since the original sandboxing deadline, and in some cases Apple was only able to do it by using entitlements that are not available to third-party developers.

Why Array Indices Start at Zero

Mike Hoye:

This is interesting for a number of reasons, though I’ll leave their enumeration to your discretion. The one that I find most striking, though, is that this is the earliest example I can find of the understanding that a programming language is a user interface, and that there are difficult, subtle tradeoffs to make between resources and usability. Remember, all this was at a time when everything about the future of human-computer interaction was up in the air, from the shape of the keyboard and the glyphs on the switches and keycaps right down to how the ones and zeros were manifested in paper ribbon and bare metal; this note by the late Dennis Ritchie might give you a taste of the situation, where he mentions that five years later one of the primary reasons they went with C’s square-bracket array notation was that it was getting steadily easier to reliably find square brackets on the world’s keyboards.

Update (2013-10-31): Guido van Rossum:

I recall thinking about it a lot; ABC, one of Python’s predecessors, used 1-based indexing, while C, the other big influence, used 0-based. My first few programming languages (Algol, Fortran, Pascal) used 1-based or variable-based. I think that one of the issues that helped me decide was slice notation.

Update (2013-11-22): There’s an interesting discussion on Lambda the Ultimate.

The Decline of Wikipedia

Tom Simonite:

Halfaker’s study, which he conducted with a Minnesota colleague and researchers from the University of California, Berkeley, and the University of Washington, analyzed Wikipedia’s public activity logs. The results paint a numerical picture of a community dominated by bureaucracy. Since 2007, when the new controls began to bite, the likelihood of a new participant’s edit being immediately deleted has steadily climbed. Over the same period, the proportion of those deletions made by automated tools rather than humans grew. Unsurprisingly, the data also indicate that well-intentioned newcomers are far less likely to still be editing Wikipedia two months after their first try.

In their paper on those findings, the researchers suggest updating Wikipedia’s motto, “The encyclopedia that anyone can edit.” Their version reads: “The encyclopedia that anyone who understands the norms, socializes him or herself, dodges the impersonal wall of semi-automated rejection and still wants to voluntarily contribute his or her time and energy can edit.”

Update (2013-10-31): See also the Hacker News discussion.

Fantastical 2

Fantastical 2 (App Store) is another iOS 7 update for a great app. I like the 5-day “week” view when you rotate the phone and the number and punctuation keys on the keyboard, which help with natural language entry. I was a fan of the old theme, but the new, brighter colors are even better. The event list is slightly more compact, so it can actually show more once.

Dan Frakes has a good review:

New in Fantastical 2 is the capability to use this natural-language entry system to create reminders. While you’re entering the task details, tap the calendar/reminder toggle—or simply start your description with “reminder,” “task,” “todo,” or “remind me to” (the four approaches Flexibits specifically recommends)—and Fantastical interprets the text as a reminder instead of a calendar event. As with events, you can specify a particular list using /[list name], and tapping Show Details lets you configure options such as priorities, geofencing, and date/time reminders. (You can also set some of these options by including the information in your task description, such as “remind me Thursday at 4pm.”)

Update (2013-11-06): Brent Simmons:

Fantastical 2 is a new app, but they didn’t want that thing where a new app means you lose all your preferences and have to set up everything all over again.

So what they did is have both versions of Fantastical share a keychain, and they had Fantastical 1 store a copy of some of the preferences in the keychain. Then Fantastical 2 read those preferences back from the keychain — and there you go. No need to set it up again.

Great idea, but it didn’t work on my iPhone.

Tweetbot 3

In general, I like the new Tweetbot 3 (App Store), but it follows two unfortunate trends with iOS apps.

First, it did not remember my preferences or account info from the previous version.

Second, it cannot fit as much on screen at once. Even with the smallest, non-bold font setting, there are fewer characters per line than I’d like. There is also additional vertical padding between tweets. It feels like my screen has shrunk.

Tweetbot 2

Tweetbot 2

Tweetbot 3

Tweetbot 3

Federico Viticci has a nice review:

While the core aspect of the tweet drawer has stayed the same, the fact that it now opens immediately after you tap is a huge improvement in my opinion. I haven’t missed the triple tap actions because the tweet drawer makes it easier to access a wider set of shortcuts; the new animation retains the old app’s idea of “pushing down” tweets below the drawer, but it also reinforces a new kind of physicality that feels less like a robot and more like an object you’re directly manipulating.

Update (2013-11-12): Tweetbot 3.1 adds a smaller font size, which is very nice. You can also turn off the round avatars and badges.

Message List Page Down in Mavericks Apple Mail

Last week I complained that in Mavericks you can no longer Page Up or Page Down through Apple Mail’s message list via the keyboard. The Page Down key used to always apply to the message content pane, even if the message list had focus. However, you used to be able to type Control–Page Down to make it apply to the message list. This no longer works in OS X 10.9.

However, I was able to write a pair AppleScripts that use the accessibility controls to page through the message list. You can use a utility such as FastScripts to assign them keyboard shortcuts.

To page down:

tell application "System Events"
    tell process "Mail"
        set _messageList to scroll area 1 of splitter group 1 of splitter group 1 of window 1
        click button 3 of scroll bar 1 of _messageList -- increment page
    end tell
end tell

To page up:

tell application "System Events"
    tell process "Mail"
        set _messageList to scroll area 1 of splitter group 1 of splitter group 1 of window 1
        click button 4 of scroll bar 1 of _messageList -- decrement page
    end tell
end tell