Archive for September 2012

Saturday, September 29, 2012

iPhone 5 Camera

Take Better Photos:

The iPhone 5’s camera is an evolutionary – not a revolutionary – step forward for iPhones. Whether or not you like it will depend more on your goals from photography than on its particular performance or features. Compared to the iPhone 4s, the biggest difference is its speed. The 5 feels faster and more responsive, with a much shorter shot-to-shot time. It feels clunky to go back to using a 4s after using the 5. Its photos also show more aggressive noise reduction, but at the cost of smearing away some of the finer details. It’s a personal judgement which looks better – the detail of the 4s or the cleaner smoothness of the 5. Personally, I prefer the look of pictures from the iPhone 4s, but the speed of the iPhone 5 has already seduced me too effectively to consider going back.

Jeremy Horwitz:

While its on-paper specifications don’t suggest that much has changed from its predecessor, the iPhone 5 is certainly better, and as close to a pocket digital camera replacement as anything Apple has yet released. Still possessing an 8-Megapixel (3264x2448) sensor, and adding only small software features such as a new Panorama mode that are also found on the iPhone 4S, the iPhone 5 rear camera nonetheless renders colors more accurately than its predecessors, more quickly acquires accurate focus locks, and offers dramatically enhanced low-light performance.

Jim Rhoades:

I’ve learned that 3rd party developers CAN take advantage of this special “low light boost mode.” […] While it’s not documented yet in the AVCaptureDevice Class Reference, taking a peek at the “AVCaptureDevice.h” class header reveals the related properties: lowLightBoostSupported, lowLightBoostEnabled, automaticallyEnablesLowLightBoostWhenAvailable.

Lee Bennett:

Either way, there’s more cloud detail [with AutoStitch], ergo why I like it better. The iOS shot has solid white blown-out areas in the clouds. And no matter which way you look at it, it’s easier to line up individual shots and stitch them later than it is to carefully hold a camera steady as you pan across for a live panorama.

John Gruber:

I’m baffled how [Consumer Reports] arrived at this conclusion, given that I’ve found the iPhone 5 camera to be not just a little better than the 4S in low light, but remarkably better. The only explanation I can think of is that whoever conducted these tests wasn’t using the built-in Camera app on the iPhone 5, and instead used a third-party camera app. In my experience, the iPhone 5’s new low-light capabilities are at least partially software-driven — low-light shots taken with third-party apps don’t seem any better than on the iPhone 4S.

Update (2012-10-04): Digital Photography Review:

The iPhone 5’s sensor isn’t magically more sensitive than its predecessor after all. There have been rumors of pixel-binning and multi-shot noise reduction at play in the iPhone 5, and based on what we’ve seen, it does look like the iPhone 5 employs some sort of pixel-binning at its highest ISO sensitivities, and upsizes the resulting images to 3264x2448 pixels (8MP). Notice how sharpness drops significantly between ISO 800 and ISO 2000. This appears to be more than just increased noise and more aggressive noise-reduction.

James Galbraith:

You’ve probably seen reports from AnandTech, Gizmodo, CNet, and other sites about the iPhone 5’s camera and problems with a purple haze in photos. And while the test photos I took for our iPhone 5 review didn’t show the purple haze effect, I can now confirm that I have been experienced. I’ve even seen the problem (though not quite as pronounced) with an iPhone 4S and a Samsung Galaxy Nexus phone.

Burnside Tweet-to-Email Gateway

Panic (via Cabel Sasser):

It’s particularly useful for companies that provide Twitter support. By handling @questions through an e-mail client, support agents can reply to tweets much quicker, answered tweets can be tracked by “Archiving” them or moving them to a subfolder, multiple agents can work out of the same mailbox (via IMAP), and an easily-searchable archive of tweets can be built over time.

Go Bloviations

Peter Ammon:

Go will refuse to compile a file that has an unused variable or package import. This sounds hygenic, like it’s a way to prevent the inevitable accumulation of unused header imports that torment C projects. But in practice, this is a dreadful, dreadful feature.

Nested Replacements

Allan Odgaard:

The problem is that the capture ($1) should be indented. Fortunately TextMate offers you its powerful format string syntax in the replacement field, which means we can perform further replacements on the capture.

Pretty cool, and I like the idea of previewing replacements.

Jiro Dreams of Sushi

Andy Ihnatko:

Like all great documentaries, it revolves around an idea that is universal. There’s nothing flashy or unconventional about Jiro’s sushi. You won’t find Hot Dog Chocolate Chip Pancake Sushi on his restaurant’s menu. His entire reputation was built on doing something as well as any human being probably ever will. And he got there by always, always, always challenging his own work, and seeking higher standards.

I enjoyed the movie when I saw it in June. As I recall, there’s a part where Jiro says, not unlike John Siracusa, that his most important talent is his sense of taste, being able to tell what’s wrong with his sushi. He thinks there are some French chefs who have better taste, and so theoretically could make better sushi than him, however they are not applying their talents in his area.

iPhone 5 Size

Clark Goble:

I thought the increased size would grow on me. Many have talked about how they forgot about it after a day. It hasn’t for me. I find myself unconsciously straining my thumb as I attempt to swipe the top of the screen. I don’t think I have small hands but honestly I think the earlier size was better. However given how Android has convinced people bigger is better this was probably a good compromise. At least I can swipe across the whole screen for most of the area. And one doesn’t typically swipe to the top status bar. However it really is just a tad too big to use one handed. I’d imagine people with small hands will have to switch to using it two handed the way most Android users do.

Lukas Mathis:

Apple notes that the top left and bottom right areas of the new iPhone’s screen can easily be touched with your thumb, without contorting your hand. […] It’s a bit of a strange claim either way, because different people have vastly different hands.

John Siracusa:

I hand-shimmy with the 3.5. So maybe with a 4-inch screen the hand-shimmy will just be a longer distance. Will I do double-shimmy?

“iCloud Backup”

Marco Arment:

It’s easy for most of us around these parts to forget how badly technology still works for so many people. This is supposed to be the best we have today: an iPad, a routine OS update, an Apple Store, an automatic backup feature.

I keep thinking that my grandmother would have an easier time with an iPad than her Mac. However, she likes to watch videos that require Flash—as I found out when Apple issued a software update that required Flash to be manually reinstalled. And no matter how much easier the iPad might be, I don’t think it could overcome the increased difficulty of solving problems at a distance. There’s no way to do screen sharing to fix things or see what she’s referring to, and with so many unlabeled icons and “invisible” gestures, communicating interface details via phone would likely be even more difficult than usual.

iOS 6 Battery Life

Clark Goble:

Go to your System Settings on the phone. Go to Cellular. Scroll down. It should say “Use Cellular Data for:” Apparently iOS6 defaults to “iCloud Documents on.” That means it was syncing everything on iCloud while on cellular rather than WiFi. I can’t think of what it was syncing, but it might have been Downcast data. In Downcast I’d told it to sync with my iPad. But there wasn’t any setting to specify only on WiFi. So I wonder if Downcast was syncing all the podcasts I’d downloaded before leaving. If so, then that might explain a lot.

Adam C. Engst:

To jump ahead of myself, the solution once again was to delete corrupt Safari bookmarks, but what’s easy on a Mac is often difficult or even impossible in iOS. I’ll share my unsuccessful intermediate attempts, and if you’re experiencing similar battery life problems, I encourage you to try the less-destructive approaches before taking the eventual tack I did.

How Gorilla Glass Came to Be

Bryan Gardiner (via Jason Kottke):

The idea to dust off the Chemcor samples actually cropped up in 2005, before Apple had even entered the picture. Motorola had recently released the Razr V3, a flip phone that featured a glass screen in lieu of the typical high-impact plastic. Corning formed a small group to examine whether an 0317-like glass could be revived and applied to devices like cell phones and watches. The old Chemcor samples were as thick as 4 millimeters. But maybe they could be made thinner. After some market research, executives believed the company could even earn a little money off this specialty product. The project was codenamed Gorilla Glass.

Spanner

Google:

Spanner is Google’s scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: non-blocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner.

Via High Scalability, which notes:

We see most of the criticisms leveled against NoSQL turned out to be problems for Google too. Only Google solved the problems in a typically Googlish way, through the fruitful melding of advanced theory and technology. The result: programmers get the real transactions, schemas, and query languages many crave along with the scalability and high availability they require.

iOS 6 Collection Views

Matt Neuburg:

The major new widget that will have the biggest impact on app interfaces is the collection view. A collection view is like a table view on steroids. A table view is the scrolling column of cells commonly seen in any master–detail app where a list must be displayed; Settings, Mail, and Music are familiar examples. A collection view breaks the bonds of the single vertically scrolling column, so you can expect, in short order, to see horizontally scrollable rows of data, multicolumn tables, and grids of information.

I’m not really a fan of these horizontally scrolling views, though. They seem like a flashy but less functional version of the basic column view.

iMessage Gets Smarter

James Duncan Davidson:

In the small but lovely improvements department, iMessage support in iOS 6 and OS X 10.8.2 seems to finally smooth out many of the rough edges that it has sported since arriving last year. The ability to receive messages to your phone number on all your clients is the well-publicized part of this. More subtle—and much more welcome in my book—is the fact that iMessage now seems to sort out which client you’re using and keep the rest from dinging extraneously.

However, I’ve found that the actual Messages app is buggy, only logging and printing partial chat transcripts.

Little Snitch 3.0

Little Snitch 3.0 adds tons of features. There are some informative reviews at MacUpdate.

iOS 6 App Store

Chris Newman (via Craig Chapple and Hacker News):

The new system only gives exposure to titles that are already in the charts. How does a new app break through? There is absolutely no way of being discovered unless a user is linked to your app directly, or searches for the app by name.

The new App Store app also feels slower to me than the previous version, and I don’t understand the decision to show only one app at a time in the search results.

Optimizing Flood Fill

Mike Ash:

RAM, despite being officially “random access,” isn’t truly random access these days. Modern computer memory is a complex hierarchical system which is optimized for common access patterns. Truly random access is quite slow compared to linearly reading or writing a long, contiguous chunk of memory.

When it comes to manipulating an image, this means that you always want to write code that iterates over x in the inner loop…

iPhone 5 Scratches

Sebastian Anthony (via Hacker News):

Anodization can significantly add to aluminium’s durability, but only if it’s done properly — and it would seem that Apple either forgot to seal the anodized coating, or it simply didn’t make the anodized layer thick enough to prevent scratching.

I thought Apple had figured out how to make scratch-proof anodized aluminum with the iPod mini and iPod nano. How much extra size and weight would that have added to the iPhone 5?

Update (2012-10-16): AnandTech:

The oxide is even thinner on the bands, particularly the chamfers, which are just painted metal. So while the entire thing is easy to nick, it seems easiest to scratch off lots of paint on the bands, as well as the various metal edges. The soft-anodized surface is just a magnet. And the thing is, I'm not even sure they have the material thickness to oxidize more of the surface to get a more durable finish. The entire phone is so thin, and especially on the bands, I can't see a way for them to corrode any more of the aluminum than they already have without it raising questions about structural integrity.

Make Your Library Enforce ARC

Steven Fisher:

When the user builds the unit, the error will be highlighted. They’ll see the comment just below, explaining how to resolve the problem.

Thursday, September 27, 2012

Source Code Pro

Paul D. Hunt:

Today I’m glad to announce that the complete Source Code family of six weights is ready for primetime and is available through the same channels as Source Sans. You can download the fonts and source files from the Open@Adobe portal on SourceForge. You can clone and fork the project on GitHub. You can also use the fonts on the web through Adobe Edge Web Fonts, Typekit, WebINK, and Google Web Fonts.

Here’s the download page. There are no bitmap versions, so it looks pretty nice on Retina displays but terrible on regular displays at small sizes with font smoothing off.

Update (2012-10-09): John Gruber’s take.

Verizon iPhone 5 Unlocked Thanks to FCC?

James Duncan Davidson:

In a nutshell, for devices that operate in the 700 MHz C block—which Verizon paid $9.4 billion dollars in 2008 for a license to use for their new LTE network—the following paragraph applies…

Sunday, September 23, 2012

BitTorrent and the App Store

TorrentFreak (via Hacker News):

Apple defended this policy and told developers that their apps were not allowed “because this category of applications is often used for the purpose of infringing third-party rights.”

However, now some apps are being approved:

While other BitTorrent apps slipped by Apple’s review team for a day or two, Conttrol’s entrance into the App store is not an isolated incident. A few months ago Apple also blessed Transmission RPC, a remote control for the Transmission popular client.

Visi

David Pollak:

Visi.io is a language, runtime, and development environment written in Haskell (and a little Objective-C) that runs on the iPad and in the Cloud. Visi.io and Visi.Pro will make writing beautiful, interactive iPad facing, Cloud powered apps super simple.

And the GitHub page says:

Visi is an open source language that blends concepts from spreadsheets, scripting languages, functional languages such as Haskell and OCaml, and other systems. The goal of Visi is to be accessible for Excel power users, yet be “correct” such that runnable code should be substantially bug-free.

Via Jonathan Rentzsch, who compares it with Soulver.

Swiss Federal Railways Says Apple Copied Its Iconic Railway Clock

MacRumors (via John Gruber):

Switzerland’s Schweizerische Bundesbahnen, or Swiss Federal Railway service, has accused Apple of using their iconic clock in its Clock app for iPad without permission, according to a report in the Swiss newspaper Blick [Google Translate].

Seeing how similar they are, I would have assumed that Apple had licensed the design.

Mountain Lion’s Mail

Pierre Igot:

In other words, the selectiong highlighting colour remains the neutral grey that is normally indicative of a selection that is in the background, even though the window is now in the foreground. And even if I click on the message again to confirm that it is selected, the selection highlighting colour remains the neutral grey that is normally indicative of a selection that is in the background.

Even in OS X 10.8.2, I’m seeing a bunch of bugs in Mail: read/flagged indicators that don’t update right away (and don’t sync at all from the iPhone), messages that can’t be marked as unread, and searches that don’t find the messages they’re supposed to.

I’m also seeing a new behavior when I receive multiple copies of the same message (e.g. as a direct recipient and via a mailing list or two). Mail seems to silently delete one of them! I can see two messages in my iPhone’s inbox and watch one of them disappear when I open Apple Mail. This has made it difficult to test some mailing lists that I administer, as Mail was deleting messages that really were not equivalent.

See also: Replying From the Proper Account.

Don’t Break Emacs Shortcuts

Andy Lee:

Native apps can “break Emacs” too. I just reported a bug in Sublime Text where ^K (kill to end-of-paragraph) doesn't work in the text field in its Save dialog. I suspect this is because, for some reason, Sublime Text explicitly maps ^K to an item in the Edit menu instead of falling back on the default Cocoa behavior.

Update (2012-09-23): Thanks to Andy Lee for noticing that I had originally misattributed his post to Andy Kim.

Kickstarter Is Not a Store

Perry Chen, Yancey Strickler, and Charles Adler:

It’s hard to know how many people feel like they’re shopping at a store when they’re backing projects on Kickstarter, but we want to make sure that it’s no one. Today we’re introducing a number of changes to reinforce that Kickstarter isn’t a store — it’s a new way for creators and audiences to work together to make things.

Converting “Finding Nemo” to 3D

Jim Hill:

“What was kind of funny was that we’d show Andrew [Stanton] some of our shots and then explain how we’d had to move a particular piece of particulate matter in order to get rid of a bit of visual distraction, make the scene look better in 3D. And he’d know the exact CG fleck that we were talking about,” [Bob] Whitehill marveled. “Andrew could remember—when they were originally putting together the 2D version of Finding Nemo—how they’d put that particular particulate in place so that the sea Marlin & Dory were swimming in would look just right. So it would provide the proper mood & setting for that moment in the movie.”

Aperture 3.4, Sandboxing, and FlickrExport

Aperture 3.4 is now sandboxed (via Fraser Speirs). This initially caused some problems because it did not migrate my FlickrExport preferences file from:

~/Library/Preferences/com.connectedflow.flickrexportaperture.plist

to:

~/Library/Containers/com.apple.Aperture/Data/Library/Preferences/com.connectedflow.flickrexportaperture.plist

FlickrExport thus didn’t find its preferences. It lost its Flickr API token, thought I hadn’t purchased, and lost my preferences for which keywords to hide. I re-added these, but it wasn’t until after I’d uploaded a set that I realized I had forgotten to re-enable the preferences to save the Flickr ID and URL back to Aperture. Thus, the options to replace photos and update metadata didn’t work until I’d copied and pasted all the photo IDs from the Web site. In retrospect, I should have moved the preferences file to the new location right after updating Aperture. Of course, I would have if I had known then that it was sandboxed.

Knowing a bit about how Aperture works, I wondered how some of its features could be made to work in the App Sandbox. The answer is that Apple plays by different rules. For example, my copy of Aperture isn’t from the Mac App Store, but it has access to iCloud. Third-party applications need to use clunky UI workarounds and security-scoped bookmarks to access files outside of a document package; Apple simply gives Aperture a com.apple.security.temporary-exception.files.absolute-path.read-write entitlement with value /, i.e. read-write access to the entire filesystem. Aperture also makes use of com.apple.security.temporary-exception.sbpl, which Daniel Jalkut noted is the Big Red Button.

Also note that, aside from “com.apple.PhotoApps.AVCHDConverter.xpc” (presumably a codec), Aperture does not use XPC services for privilege separation. The main Aperture application has full hard drive access, as well as being a network client, a network server, and all the rest.

With so many entitlements and temporary exceptions, it doesn’t seem like “sandboxing” Aperture in this way provides many security benefits. Aperture isn’t protected from bugs in itself. And a malicious plug-in could read my address book (or, indeed, any file on my hard drive) and upload it over the network. However, it does restrict what plug-ins can do a bit. For example, Aperture has temporary exceptions for sending Apple events to Mail and iTunes; other event targets are forbidden. This means, for example, that you can no longer write a plug-in that integrates Aperture with Photoshop or Acorn.

Here’s the full list of Aperture 3.4 entitlements:

icarus$ codesign -d --entitlements - /Applications/Aperture.app|bbedit
Executable=/Applications/Aperture.app/Contents/MacOS/Aperture

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.application-identifier</key>
    <string>F9L2L89K5X.com.apple.Aperture</string>
    <key>com.apple.private.icloud-account-access</key>
    <true/>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.assets.movies.read-write</key>
    <true/>
    <key>com.apple.security.assets.music.read-only</key>
    <true/>
    <key>com.apple.security.assets.pictures.read-write</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
    <key>com.apple.security.library-repair.extensions</key>
    <array>
        <string>photolibrary</string>
        <string>aplibrary</string>
    </array>
    <key>com.apple.security.library-repair.ostype</key>
    <array>
        <string>iPlb</string>
    </array>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.network.server</key>
    <true/>
    <key>com.apple.security.personal-information.addressbook</key>
    <true/>
    <key>com.apple.security.print</key>
    <true/>
    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
        <string>com.apple.mail</string>
        <string>com.apple.itunes</string>
    </array>
    <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
    <string>/</string>
    <key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
    <array>
        <string>com.apple.photostream-agent</string>
    </array>
    <key>com.apple.security.temporary-exception.mach-lookup.global-name:before:10.8</key>
    <array>
        <string>com.apple.AOSNotification-FMM</string>
    </array>
    <key>com.apple.security.temporary-exception.sbpl</key>
    <string>
        (begin
            (allow file-search)
            (allow ipc-posix-sem)
            (allow system-fsctl))
    </string>
    <key>com.apple.security.temporary-exception.shared-preference.read-only</key>
    <array>
        <string>com.apple.iPhoto</string>
    </array>
    <key>com.apple.security.temporary-exception.shared-preference.read-write</key>
    <array>
        <string>com.apple.Aperture</string>
        <string>com.apple.iApps</string>
        <string>com.apple.iLifePhotoStream</string>
        <string>com.apple.iLifeAssetManagement.agent</string>
        <string>com.apple.iLifeAssetManagement.crash</string>
        <string>com.apple.iLifePhotoStream.importstatus</string>
        <string>MobileMeAccounts</string>
        <string>com.apple.ImageCapture2</string>
        <string>com.apple.mcxprinting</string>
    </array>
</dict>
</plist>

Thursday, September 20, 2012

Podcasts in iOS 6

I haven’t figured out what to do now that Apple has removed the built-in support for podcasts from the Music app. Now at version 1.1, Apple’s Podcasts app is still clunky and slow and doesn’t sync properly with iTunes. Downcast seems promising, but it doesn’t sync with iTunes, either. I like to use iTunes on my Mac to manage and subscribe to podcasts, as well as archive the good episodes. Plus, I’m suspicious that with apps that do their own downloading I will end up in a situation where I have no signal and nothing downloaded.

Update (2012-09-21): Christopher Breen:

As mentioned, if you’ve installed the Podcasts and iTunes U apps, that’s where you’ll find this content. However, if you haven’t installed these apps and you sync, within iTunes to your device, podcasts and iTunes U content, you play that content within the Music app. Just tap More and you’ll find entries for both kinds of media.

So that’s an easy solution, for now. Thanks to everyone who brought this to my attention.

Update (2012-10-05): Kirk McElhearn:

If you care about podcast playlists, it’s clear that the Podcasts app isn’t for you. But if you’re a casual podcast listener and just want the content, then subscribing to podcasts and downloading them from the Podcasts app may suit you. You may not like the interface of the Podcasts app, but it does an OK job with what it’s supposed to do.

Apple’s iOS 6 Maps App

I was surprised to see the early reviews describe Apple’s Maps app as an improvement. Thus far, having tried it on my old iPhone 3GS, I’ve decided to keep my iPhone 4S running iOS 5. And I’m praying that there won’t be any hardware problems that require me to replace my phone with one running iOS 6. There’s no comparison between the old and new apps, unless you live in the 3D view and only visit areas where it’s available. The quality and quantity of the data, the way it’s presented, and even the user interface and interaction are much worse in Apple’s app.

Viewing Google Maps in Mobile Safari is actually not too bad, probably preferable to Apple’s app. That’s saying a lot considering Steve Job’s comments at D5. However, maps.google.com doesn’t have access to my Contacts, where I store the addresses that I want to map. And there’s no way to redirect other apps to display maps in Mobile Safari. Unfortunately, this same problem would likely affect a Google Maps app, should Google develop one and Apple approve it. I hope that they do, though. My understanding is that, for years, Google Maps on Android has been more advanced, supporting turn-by-turn, vector maps, and better caching and pre-loading. It would be nice to see that on iOS.

Also see The Amazing iOS 6 Maps and:

Nilay Patel:

Unfortunately, Apple’s new maps are simply not as good as Google’s. The release of iOS 6 yesterday was immediately followed by users complaining about the new maps, which lack a significant amount of detail and omit public transit directions. Access to high-quality maps is a critical feature for modern smartphones, and Apple’s decision to swap out Google Maps is a rare example of the company openly placing its own interests above those of its customers.

John Gruber:

Seems pretty clear the new Maps is going to be the biggest problem with iOS 6. Here’s the thing, though: we don’t know how much of this decision to switch was Apple’s alone. We do know that Apple’s existing contract with Google for Maps expired this year. It’s possible Apple tried to renew for another year or two and Google either refused (unlikely, I’d say) or offered to do so under terms Apple found unacceptable (possible, I’d say).

Lex Friedman:

We’ve known for months about some of the Maps app’s limitations—its lack of built-in public transit data, the loss of Google’s Street View offering—but the perceived weak spots in its coverage are new to consumers, and perhaps the most problematic failing of all.

Adam Fields:

The old maps app was a showcase - when I wanted to show people what the Retina iPad was really capable of, I pulled out the maps. It could display tons of data on the screen with razor sharp text (even almost too small to read but still legible), and scrolling and zooming was nearly instantaneous. […] That snappiness is simply gone. The overall performance of the app has dropped precipitously, and it now often takes 5-6 seconds for the tiles to draw after each move. It looks like there’s significantly less local caching going on, and I see a lot more of the holodeck placeholder background.

Ian Betteridge:

But there’s one little problem: Maps. In short, it’s the most half-cooked piece of software that Apple has released in my memory, which goes back far longer than I’d care to admit. Worse than Ping? I think so: Ping was, after all, easy to ignore. Maps, on the other hand, is one of the core features of any mobile phone, and Apple has completely fluffed it.

Michael DeGusta:

In total, 63 countries with a combined population of 5 billion people will be without one or more of these features they previously had in iOS. Apple is risking upsetting 70% of the world’s population, seemingly without much greater purpose than speeding the removal of their rival Google from iOS. Few consumers care about such battles though, nor should they have to.

Dan Lyons:

If the new maps app is truly this bad, how come none of those glowing first-round reviews made any mention of this fact?

Anil Dash:

Apple made this maps change despite its shortcomings because they put their own priorities for corporate strategy ahead of user experience. That’s a huge change for Apple in the post-iPod era, where they’ve built so much of their value by doing the hard work as a company so that things could be easy for users. I’m not suggesting (yet) that this is a pattern, and that Apple will start to regularly compromise its user experiences in order to focus on its squabbles with other tech titans. But history shows that dominant players in every era of operating system history have reached a turning point where they shift from the user experience and customer benefits which earned them their dominance to platform integration efforts which are primarily aimed at boxing out competitors.

Dan Frommer:

Now that we see just how crucial Google was to Apple’s Maps service, it seems even more important for Apple to make its own. This is a piece of the smartphone story that is too central to farm out. That would be like Google trying to rely on iTunes as its media store.

Apple’s Trudy Muller:

We launched this new map service knowing that it is a major initiative and we are just getting started with it. We are continuously improving it, and as Maps is a cloud-based solution, the more people use it, the better it will get.

Danny Sullivan (via John Gruber):

It sounds like Google wants its own app for iOS 6 — hence the “regardless of device” part. But it’s not confirming that this will happen soon or why it’s not already happened.

Update (2012-09-21): Clark Goble:

Personally I’ve long used MotionX for driving directions. It’s especially nice on the iPad. One of its better features is optional caching of data up to 2 meg which gives you a lot of the effect of offline maps. I’ve been hearing lots of good things about Waze as well. Even the Microsoft Bing app has extensive map support. Then there’s the free OpenMap program. Although I’ve found OpenMap accuracy problematic at times. (It’s what Apple’s used in iPhoto though) If you need street view (which I never use myself) there’s Street View. There’s also a Google Map client that purportedly does everything Apple’s map program did and more such as Google’s topo maps.

Update (2012-09-23): Jean-Louis Gassée:

The ridicule that Apple has suffered following the introduction of the Maps application in iOS 6 is largely self-inflicted. The demo was flawless, 2D and 3D maps, turn-by-turn navigation, spectacular flyovers…but not a word from the stage about the app’s limitations, no self-deprecating wink, no admission that iOS Maps is an infant that needs to learn to crawl before walking, running, and ultimately lapping the frontrunner, Google Maps. Instead, we’re told that Apple’s Maps may be  “the most beautiful, powerful mapping service ever.

Mike Dobson (via Clark Goble):

My overall view of the companies that it (Apple) has assembled to create its application is that they are, as a whole, rated “C-grade” suppliers.

The whole post is excellent. I live near TomTom/Tele Atlas/GDT, and my impression has been that the acquisition has not been good for the (data) product and that good employees have left the company. I’m sure Apple will improve things with time, but maps are an area where it’s difficult to “walk right in.” So I appreciate that it’s a hard problem, but as Ian Betteridge says:

And that’s the thing: as an Apple customer and user, I don’t care about the issues behind the scenes. Maps is now a poorer experience than it was a few days ago, and I want Apple to fix it fast because that’s what I expect from them.

Update (2012-09-25): Bijan Sabet:

But it’s clear even before using Apple’s own Maps app in iOS 6. Google Maps on Android is vastly superior to Google Maps on iOS 5. It’s truly night and day. […] I think Apple had no choice but to create their own Maps apps. Just like the browser in age of the desktop, Maps is a critical app in the age of mobile.

Kontra also sees the analogy with Microsoft:

Sadly, this wasn’t an occasional inconvenience but a source of daily frustration for millions of paying customers, corporations and individuals alike. With business so dependent on Office, Microsoft’s message was loud and clear: if you want the real thing switch to Windows.

Emily Knapp:

Google won’t be coming to the rescue of iOS 6 users who miss its Maps service, at least not any time soon, according to executive chairman Eric Schmidt. His company has no intention to develop a dedicated app of its Maps service for iOS 6, Schmidt said at a Tokyo press event on Tuesday.

I think it would be negligent of Google not to have their own iOS Maps app ready to go, should they decide they want to ship it. So I assume Schmidt just doesn’t want to reveal it yet.

Update (2012-09-29): Chris Ziegler

Apple’s decision to ship its own mapping system in the iPhone 5 and iOS 6 was made over a year before the company’s agreement to use Google Maps expired, according to two independent sources familiar with the matter. The decision, made sometime before Apple’s WWDC event in June, sent Google scrambling to develop an iOS Google Maps app — an app which both sources say is still incomplete and currently not scheduled to ship for several months.

Tim Cook:

While we’re improving Maps, you can try alternatives by downloading map apps from the App Store like Bing, MapQuest and Waze, or use Google or Nokia maps by going to their websites and creating an icon on your home screen to their web app.

David Pogue:

In short, Maps is an appalling first release. It may be the most embarrassing, least usable piece of software Apple has ever unleashed.

John Gruber:

Whatever chance there was for Apple and Google to agree to a longer-term deal for iOS to continue using Google Maps, the effective deadline for Apple to make that decision was earlier this year, not next year when the existing deal expired.

Dan Lyons:

So this is the best Apple can do. They can’t try to pretend that their maps app isn’t a huge step backward. They can’t try to pretend that they aren’t putting their own squabble ahead of the needs of their customers. They can’t try to pretend that they’ve actually devoted sufficient resources to solving a very difficult problem.

David Pogue:

“It’s fair to say that in the mapping world, you can’t just throw money at it and then you have it the next day. This takes time,” Mr. Gupta said. “It took a lot of time to get where we’re at.” He said that even now, Google is far from done; error reports still flow in by the thousands.

Jason Matheson:

So Apple basically screwed over all iPhone users in Canada this time around. What’s troubling is that many of these towns don’t even appear on the map.

Nick Wingfield and Brian X. Chen:

But numerous interviews with former Apple employees in the wake of the maps controversy made it clear that Mr. Jobs and other executives rarely paid as much attention to Internet services as they did to the devices for which Apple is best known. Nor did they show the kind of consistent foresight in this area that has served the company so well in designing hardware and software.

Including a maps app on the first iPhone was not even part of the company’s original plan as the phone’s unveiling approached in January 2007. Just weeks before the event, Mr. Jobs ordered a mapping app to show off the capabilities of the touch-screen device.

John Gruber:

I thought it was obvious: this whole thing is entirely Apple’s fault. I don’t blame Google for withholding turn-by-turn, voice navigation, and vector map tiles from Apple. Google negotiated in their own interests. Nor do I blame Apple for breaking away. Like I wrote, the situation was untenable.

To me, there are three key points about the maps debacle:

  1. The user experience has been degraded for corporate/political reasons rather than technological ones.
  2. Mapping is hard, and Apple apparently did not realize how hard early enough, or presumably it would have brought more resources to bear or postponed this transition. (The alternative view is that it just doesn’t care so much about #1.)
  3. Apple likely didn’t know how bad its maps really were, even though this had been clear to iOS beta testers for months. If the plan all along had been to release the buggy maps and improve them through user feedback, Apple would have built a proper mechanism for collecting that feedback. Instead, there’s a primitive “Report a Problem” button (which doesn’t actually look like a button). If Apple indeed looks at that feedback, it will waste lots of manpower interpreting it. Both Google Maps and OpenStreetMap offer ways to provide more detailed feedback, which is also more amenable to automated processing.

All three of these point to potentially serious problems with the company that go beyond just shipping a bad app.

Update (2012-09-30): Digital Inspirations notes that Apple has scaled back its marketing claims about Maps.

Jean-Louis Gassée also has questions about how Apple let this happen, and get so out of hand:

In this case, it’s hard to believe the Maps team didn’t know about some of the most annoying warts. Did someone or some ones deliberately underplay known problems? Or did the team not know. And if so, why?

As I was saying on Twitter, I think Apple is in a bit of a bind here. This is not like the iPhone 4 antenna problem, where Apple can leverage a small number of smart people to engineer a fix in the next version. Rather, getting (and maintaining) good map data will require a sustained application of lots of manpower. This is not the sort of thing that Apple has historically been good at. For example, even after four years, Apple still doesn’t seem to have the proper staffing for the App Store review teams. The approval process is currently taking 8 days for iOS apps and 24 days for Mac apps.

Update (2012-10-04): Kontra:

A company in Apple’s current predicament could have followed a number of curative paths. It could have hired the equivalent of more than 7,000 mapping related personnel Google is said to employ to gather, analyze and correct data. However, for other than its retail stores, Apple has no history of hiring so many personnel (8% of its entire head count) for such a narrow operation.

Chris Foresman:

Google Maps is our top choice, considering its large and accurate data set, in addition to transit directions. Waze is a good turn-by-turn navigation app, and the extra traffic data could be especially useful in busy urban areas. These two apps are free, and should cover all your needs.

MacRumors:

Apple is piloting a program to tap into its vast number of retail store employees to help improve the company’s new Maps app for iOS 6. Details on the initiative remain unclear, but multiple sources have indicated that participating stores will dedicate 40 hours of staff time per week, distributed among a number of employees, to manually examine Apple’s mapping data in their areas and submit corrections and improvements.

Adam C. Engst:

Creating a mapping service is unquestionably a Herculean task, and when Google Maps debuted, it certainly suffered from its share of embarrassing errors and omissions. But given how Apple featured Maps in iOS 6 presentations, it seems as though Apple executives failed to realize that the new Maps was not sufficiently mature. That’s the charitable view; the less-charitable might think that Apple knew full well that the new Maps didn’t measure up but felt that its limitations wouldn’t hinder sales of iOS devices. The problems with Maps may not have slowed iPhone 5 sales, but they do make it harder to trust Apple in the future, and those who lost important saved locations feel even more let down.

David Sparks:

My biggest gripe with the Maps app is driving at night. It displays the driving directions in the full screen with a brightly colored background. I use a window mount and the Maps app plays hell on my night vision. It feels like a safety hazard for me and I stopped using it when driving at night. I complained about this on a recent MPU episode and listener Mike wrote in with a great temporary fix.

Update (2012-12-10): Victoria Police News:

Tests on the mapping system by police confirm the mapping systems lists Mildura in the middle of the Murray Sunset National Park, approximately 70km away from the actual location of Mildura.

Police are extremely concerned as there is no water supply within the Park and temperatures can reach as high as 46 degrees, making this a potentially life threatening issue.

Growl 2.0

Growl 2.0, now available in the Mac App Store, fixes some major bugs introduced in 1.3 and adds support for Notification Center and Retina graphics.

Adopting Concurrent Opening for Core Data-Based Documents

Mike Abdullah:

It’s pretty nifty, but the NSPersistentDocument docs make no mention of support for [Concurrent Document Opening] (admittedly they don’t disavow it either), and I suspect it wouldn’t work quite right if you just tried to blindly turn it on. Or, like us, you may be using Core Data in a document-based app, but not using NSPersistentDocument at all. Fortunately there’s only a few things to bear in mind…

It’s strange how developers like Core Data, and have adopted it widely, yet Apple doesn’t seem to make much use of it in its apps and, perhaps for that reason, has not fully supported it in the frameworks and with new technologies such as sandboxing.

iOS 6’s Do Not Disturb

Chris Foresman:

On OS X, Do Not Disturb will automatically shut itself off the next day, so you don’t have to remember to switch notifications back on. On iOS, it works a little differently if you turn it on manually. If you have no schedule set, you have to manually turn Do Not Disturb off. If you do have a schedule set, however, Do Not Disturb will shut off automatically at your regularly scheduled time. If you have a regular schedule, you can use the manual switch to turn Do Not Disturb off before your usual time if you so choose, and it will still shut itself off at the scheduled time.

Remote Packet Capture for iOS Devices

Keith Harrison (via Daniel Jalkut):

As with the Network Link Conditioner you need to use a host Mac computer to perform remote packet capture of an iOS device. The only other requirement is that the device be connected to the host computer via USB. No jailbreaking or hacking of your device is required to get this to work.

EarPods

iFixit:

To make the new EarPods more resistant to water and sweat damage, Apple’s designers removed the external microphone grate.

[…]

The control board in the old earphones isn’t nearly as sealed or secured as the new EarPods, leading to a common complaint among gym-goers finding that their sweet earphones don’t work so well when doused in sweat.

I was pretty happy with the old iPhone headphones. The fit and sound quality were OK. Competing products that had a microphone and remote seemed bulkier and were usually more expensive. The main problem was that they didn’t last. I went through several pairs, but they kept breaking after a couple months of jogging. Hopefully, these changes will make the EarPods more durable.

Currently, I’m using the Philips SHS3200/28 for jogging, but it doesn’t have a microphone or remote. I’m considering replacing it with the Sony DREX12iP, the Philips SHH8107/28, or the EarPods (all of which do).

When I’m working around the house and need a little noise isolation, I’ve had good luck with the Sony MDREX38iP, which (alas) does not have a microphone.

I’d also like to find a product that’s good on airplanes. There I want lots of noise isolation, but I don’t care so much about sound quality. I’d prefer something cheap that I can stuff into my pocket without worrying that it’s going to break.

Update (2012-09-29): Kirk McElhearn:

These earbuds are totally devoid of bass, and even of low midrange sounds. At first, I tried them out when listening to some podcasts. The lack of bass actually makes spoken word a bit easier to understand. But when I put on some music – The Clash’s Train in Vain, from London Calling, for example, with a strong bass riff – the music was hollow and empty.

OS X 10.8.2 Saves Even Better

Matt Neuburg:

When you choose File > Save As in 10.8.2, a Save dialog appears. This has always been the case; I stress that point, because I want to impress upon you that Apple’s solution involves no new dialogs of any kind. The change is within that Save dialog. If the current document contains unsaved changes, the Save dialog now offers a checkbox, “Keep changes in original document.” Moreover, that checkbox is unchecked by default, meaning that if you do nothing, you will not keep the changes in the original document — thus restoring the expected behavior of Save As. And this checkbox can appear regardless of your settings in the document management checkboxes of the General preference pane.

This is much better than in OS X 10.8.0.

Good Enough

Horace Dediu:

Disruption theory has taught us that the greatest danger facing a company is making a product better than it needs to be. There are numerous incentives for making products better but few incentives to re-directing improvements away from the prevailing basis of competition.

Kyle Baxter:

The reason for this is that once a product is “good enough”—it actually more than meets the customers’ needs—there is no basis for competing by making the product better. Instead, you have to compete by making it cheaper. The product becomes a commodity where price is the main differentiator.

Twitter and IFTTT

Matthew Panzarino:

This means that many third-party developers who thought that their complimentary services, which did not duplicate the features or feel of clients at all, were safe under the new rules will have to take a very hard look at their apps.

iOS 6

Rene Ritchie has a chart showing what was new in each version of iOS, plus links to his reviews of them. I don’t recall seeing Ritchie’s work before, but he seems to be doing for iOS releases what John Siracusa has done for Mac OS X ones.

The Retina MacBook Pro’s Power Key

Lloyd Chambers:

But the power-on key is actually a key on the keyboard now, and it too can be jostled and activated, thus booting up a machine stowed in a bag in the back of my SUV.

This is not a supposition; driving along with the MacBook Pro shut down and stowed in a bag in the back of my SUV, I occassionally hear the classic Mac startup ‘chong’ sound.

NSCharacterSet

Mattt Thompson:

And now for the anti-patterns. Take a gander at the answers to this question on StackOverflow. […] I don’t mean to rag on any of the answerers personally–this is all to point out how many ways there are to approach these kinds of tasks, and how many of those ways are totally wrong.

The recommended solution creates so many temporary objects, though.

Colored Placeholder Views

Mark Dalrymple:

Instead of white, it makes a new color based on the address of the object. This means that each object, because it lives at a different address, will get a different fill color…

SCNMaterialProperty.contents

Andy Lee:

I wonder if this property sets a record for the greatest number of disparate, specific types a value is allowed to have in Cocoa. I'm talking about formal Objective-C types, disregarding semantics.

It can be an an NSColor, an NSImage, a CALayer, a CGColorRef, CGImageRef, or an NSArray of six images.

Grow Your Presence on Twitter

Paul Kafasis:

Neat, I’m invited to something!

I was hoping for improved client apps or renewed support for third-party developers, but at least I got six of these advertising solicitations.

Wednesday, September 19, 2012

Microsoft Office 2011 Retina Support

After setting low expectations by implying that only Outlook 2011 would support Retina displays, Microsoft released an Office 14.2.4 update that also adds Retina support to Excel, PowerPoint, and Word. Some of the art hasn’t been updated yet, but the text looks very crisp.

Through some sort of updater glitch, the modification dates for my copies of the applications were stale. This caused Launch Services to think that they could only run in low-resolution mode. Retina support was enabled after I updated the modification dates with this Terminal command:

sudo touch /Applications/Microsoft\ Office\ 2011/*.app

(Thanks to Erik Schwiebert.)

Monday, September 17, 2012

iPhone 5 Speed

Anand Lal Shimpi:

The A6 is the first Apple SoC to use its own ARMv7 based processor design. The CPU core(s) aren’t based on a vanilla A9 or A15 design from ARM IP, but instead are something of Apple’s own creation.

And he has benchmarks:

The fairly low clock speed also points to an increase in IPC (instructions executed per clock) over the Cortex A9 design. As I mentioned in our A6 analysis post, simple voltage/frequency scaling is a very power inefficient way to scale performance. A combination of IPC and frequency increases are necessary. If these results are accurate and the CPU cores are only running at 1GHz, it does lend credibility to the idea of a tangibly wider design.

Update (2012-09-20): Arnold Kim:

The total Geekbench 2 score comes in at 1601. Poole notes that the average score for the iPhone 4S is 629 and the average score for the iPad 3 is 766. A comparison chart of previous iOS devices can be viewed at Geekbench. The numbers seem to validate Apple’s claim that the A6 processor is twice as fast as the A5 and any previous iOS device.

Primate Labs:

Geekbench scores are calibrated using the 2003 entry-level Power Mac G5 as a baseline with a score of 1,000 points.

Update (2012-09-21): Anand Lal Shimpi:

The result is peak theoretical GPU performance that’s near identical to the A5X in the 3rd generation iPad. The main difference is memory bandwidth. The A5X features a 128-bit wide memory interface while the A6 retains the same 64-bit wide interface as the standard A5. In memory bandwidth limited situations, the A5X will still be quicker but it’s quite likely that at the iPhone 5’s native resolution we won’t see that happen.

How Apple Compresses Video Using JPEG, JSON, and <canvas>

David Bloom (via Hacker News):

<video> elements can only be played fullscreen on iPhone, which kind of ruins the desired effect of this inline video.

And on desktop computers, Apple’s Web site needs to work on all major browsers, but Firefox and Opera won’t support h.264 (and there’s no way that Apple would be willing to offer WebM or Theora fallback).

Apple used to solve this problem by sending a separate JPEG image for each frame of video and switching between them. You can see this in action on the Retina MacBook Pro “Features” page—which loads about 5 MB of JPEG images (using lots of separate HTTP requests) just for that 2 second effect.

For iPhone 5, they came up with a new approach that doesn’t require a separate image for each frame.

Apple is also using this approach to allow rotating the EarPods image, QTVR-style. It seems like the leading edge of Web development is always pretty crazy.

Fission 2.0

Paul Kafasis notes the release of Fission 2.0, which has an improved interface (with multiple windows), support for more audio file formats, batch conversion, AAC chapters, and more. The direct and Mac App Store versions are apparently identical except that the Mac App Store doesn’t offer upgrade pricing.

Sunday, September 16, 2012

Paperless, Version 1.2

David Sparks has updated his Paperless e-book:

To get the update in iBooks, delete the current version of the book on your iPad, go to the iBookstore, and re-download. Apple will already remember that you purchased it and you will not have to pay again. In the process, you will lose annotations that you made to the prior version. Sadly, there is no delta update mechanism for books. We are pioneers together.

There’s also a PDF version, created using iBooks Author, which (unlike the iBooks version) you can read, search, and persistently annotate from your Mac. Another interesting format issue is that the PDF version is separable—the 800+ MB of screencasts are in a separate folder. I’ve archived the videos but don’t plan to store them on my Mac’s internal SSD. The iBooks version is presumably all one unit. You can’t access the text without the videos filling up your iPhone or iPad. And if you delete the book to free up space, you risk losing your annotations the next time the book is updated.

Saturday, September 15, 2012

Forbidden Dock Tile Plug-Ins

Karsten Kusche reports that the NSDockTilePlugIn property list key is banned from the Mac App Store.

Blatant Piracy in the App Store

Dave Howell:

AicooSoft has copied our various app descriptions verbatim, co-opted quotes about our apps from the press, and pasted screen shots of our apps pixel-for-pixel into their own screen shots.

Update (2012-09-17): Apple has removed the apps.

Theoretical and Practical Weaknesses of Objective-C

Rob Rix:

Objective-C is a compromise by design, and it is utterly unembarrassed by this. It is, I think, a good compromise, finding a sweet spot where one has very convenient access to low-overhead constructs for performance (C and C++ can be linked in and even intermingled with ObjC) while still having a nice dynamic messaging system supporting flexible late-bound polymorphism.

It’s also a compromise from the ’80s. (Relatively) recent advances in functional programming (among other spheres) sometimes make me wonder if we could strike a better one today.

Friday, September 14, 2012

Lightning

Rainer Brockerhoff:

People keep asking why Apple didn’t opt for the micro-USB connector. The answer is simple: that connector isn’t smart enough. It has only 5 pins: +5V, Ground, 2 digital data pins, and a sense pin, so most of the dock connector functions wouldn’t work – only charging and syncing would. Also, the pins are so small that no current plug/connector manufacturer allows the 2A needed for iPad charging.

Dan Frakes:

As with the 30-pin connector, the Lightning connector supports video output; Apple told Macworld that Lightning-to-HDMI and Lightning-to-VGA cables will be available “in the coming months.”

Everyone keeps referring to Lightning as a “dock connector,” but I haven’t seen any reporting on actual docks for the iPhone 5.

Update (2012-09-18): Rainer Brockerhoff:

In contrast, support for Lightning will probably need no extra chips and less than a dozen extra pins on the SoC; 8 of these will go straight to the connector. One or two of the pins will probably sense which kind of adapter or charger/cable is connected and the others will go, in parallel, to the power controller – switching them will allow enough current for charging without overloading any particular pin. Any current-hungry drivers, signal converters and so forth wouldn’t on the motherboard at all but inside the plug itself, further reducing cost and power consumption for the bare device.

Update (2012-09-20): Dan Frakes:

Apple has confirmed to Macworld that these adapters support analog and USB audio-out, as well as syncing and charging. However, the adapters don’t support video-out or iPod mode, the latter a special mode that lets particular accessories, such as car stereos and some whole-home-audio systems, display your iPod’s menus on the accessory’s own screen. More cryptically, the online Apple Store’s product pages note that “some 30-pin accessories are not supported.”

Jacqui Cheng:

Apple Senior VP of Marketing Phil Schiller has reportedly said that the company has no plans to release a standalone dock for the upcoming iPhone 5, making it the first of its kind without such an accessory from Apple.

I’ve been using docks since the original U.S. Robotics Pilot. I’ve yet to see a better way to charge a device on my desk, while making it easy to access. Cables are more difficult to connect and disconnect, and they don’t hold the device in the proper orientation.

Update (2012-09-21): Rainer Brockerhoff:

The previous connector had no serious protection against flexing, so previous docks had to grip the back and bottom of the device, which also led to a profusion of plastic dock adapters; Lightning docks should be able to get away with just a simple generic back support.

Update (2012-09-23): Rainer Brockerhoff:

Still, my point here is that everybody is used to cables and adapters that are simple, inexpensive, and consist just of wires leading from one end to the other – after all, this is true for USB, Ethernet, FireWire, and so forth. Even things like DVI-VGA adapters seem to follow this pattern. But things have been getting more complicated lately. Even HDMI cables, which have no active components anywhere, transmit data at such speeds that careful shielding is necessary, and cable prices have stayed relatively high; if you get a cheap cable, you may find out that it doesn’t work well (or at all).

Update (2012-10-04): Phil Dzikiy:

Apple has made significant changes to its Made For iPad/iPhone/iPod (MFi) policies, tightening control over the manufacturing of Lightning accessories. According to the sources, only Apple-approved manufacturing facilities will be allowed to produce Lightning connector accessories, even including third-party accessories. Moreover, Apple hasn’t approved any factories yet, which the sources say will limit the number of Lightning accessories available in the near future.

Update (2012-11-01): Phil Schiller:

We do not plan on making a dock for the iPhone 5. Most people who use docks use them with speaker or clock systems.

Hacking Up an armv7s Library

Matt Galloway (via David Spector):

Well the iPhone 5 has been announced and it just so happens that the architecture it uses is what they’re calling armv7s. This brings in yet another architecture to the mix alongside armv6 and armv7. And I bet you are wondering why you’re getting linker errors when building for armv7s when using external libraries. It’s because those external libraries do not have armv7s versions!

I hadn’t seen Galloway’s blog before; he also has a good post about how objc_retainAutoreleasedReturnValue works.

iPhone 5: Simultaneous Voice and Data

Brian X. Chen (via Eric Blair):

That means when AT&T customers place a phone call and use data on the iPhone 5, both functions will roll back to AT&T’s older network, which can handle them simultaneously. When you place a phone call while using data in an app with a Verizon or Sprint iPhone 5, it will roll back to their older CDMA networks, which are not capable of simultaneously doing calls and data. And that’s why the iPhone 5 on Verizon and Sprint, despite being a 4G LTE device, will still not do both at the same time.

J2ObjC

Google (via Michael Jurewitz):

J2ObjC is an open-source command-line tool from Google that translates Java code to Objective-C for the iOS (iPhone/iPad) platform. This tool enables Java code to be part of an iOS application’s build, as no editing of the generated files is necessary. The goal is to write an app’s non-UI code (such as data access, or application logic) in Java, which is then shared by web apps (using GWT), Android apps, and iOS apps.

There’s some documentation about how it works, e.g. they implemented auto boxing and unboxing and translate overloaded Java methods.

Thursday, September 13, 2012

Retina for Masochists

Craig Hockenberry:

There are two problems at play here. The first is that mouse coordinates can be reported for coordinates that do not exist on any attached screen. The second is that the NSPoint does not contain enough resolution to address every pixel on screen.

He also mentions some other interesting problems and solutions.

Wednesday, September 12, 2012

Betting Too Much on HTML5

Drew Olanoff:

Not only was this a big mistake with mobile, but Zuckerberg says that its biggest mistake period was the focus on HTML5. This is the first time that the Facebook CEO has openly admitted this, but things are looking good for the new iOS native app. According to Zuckerberg, people are consuming twice as many feed stories since the update to the new iOS app, which is great.

Exceptions as Fatal

Raymond Chen (via Kyle Sluder):

In Win32, exceptions are considered to be horrific situations that usually indicate some sort of fatal error. There may be some select cases where exceptions can be handled, but those are more the unusual cases than the rule. Most of the time, an exception means that something terrible has happened and you’re out of luck. The best you can hope for at this point is a controlled crash landing.

Just like in Cocoa.

The Skeuomorphism Rift Within Apple

Austin Carr:

“It’s visual masturbation,” says one former senior UI designer at Apple who worked closely with Steve Jobs. “It’s like the designers are flexing their muscles to show you how good of a visual rendering they can do of a physical object. Who cares?”

Inside Apple, tension has brewed for years over the issue. Apple iOS SVP Scott Forstall is said to push for skeuomorphic design, while industrial designer Jony Ive and other Apple higher-ups are said to oppose the direction.

Via John Gruber, who writes:

It’s the difference between a fad and true style. I think Apple’s skeuomorphic designs are a fad, much like the pinstripes and brushed metal of a decade ago.

Update (2012-09-23): Austin Carr:

Today, a former top Apple designer defends Apple’s skeuomorphic approach.

RetinaCapture 1.0.1

Matt Rajca’s RetinaCapture is a neat utility that can simultaneously take screenshots at 1x and 2x (Retina) resolutions. If you have multiple displays, both RetinaCapture’s window and the window that you want to capture must be located on the Retina display. I’ve also found that the menubar must be on the Retina display or else you can’t choose a window; hopefully that’s a bug that can be fixed.

Update (2015-01-30): Unfortunately, the 1x screenshots do not look the same as 1x screenshots taken by the OS. The text is not rendered in the same way and, especially with Yosemite, looks very jagged.

Acorn SDK

Gus Mueller:

This repository contains samples written in JSTalk, as well as in Objective-C. You’ll find various examples, as well as code for reading composites of Acorn images, as well as reading the layer information.

20 Years of OmniGroup

Ken Case:

We’ve seen a lot of changes over the last 20 years, as we transitioned from working on consulting projects to shipping commercial products, from a team of 5 to one of 52—and trying our best to contribute to the platform as it evolved from its humble (but ambitious!) NeXT roots to the wildly successful platform that is now Mac OS X and iOS.

Wil Shipley:

I’ve always felt a debt of gratitude to my supervisor’s supervisor Danny Raphael, who started my career when I objected to being let go over private e-mail. He said (paraphrased), “Wil, you’re bored here. You hate this job. You’re meant for bigger things. Go do them. If you really want this job, come back in three months and let’s talk.”

oldiconutil

Uli Kusterer:

In Mac OS X 10.6, Apple introduced support for PNG-compressed icon data in .icns files. In Mac OS X 10.8, Apple introduced support for Retina icons and the iconutil command-line tool for generating icons from a folder of PNG files.

However, iconutil only knows how to generate PNG-compressed icon data, which means that you can't use it to create a Retina icon that will still display properly on Mac OS X 10.5.

He’s written some code that converts .icns files to use JPEG 2000 internally instead of PNG, which makes them readable on Mac OS X 10.5. Kudos to Kusterer for figuring this out, and shame on Apple for silently breaking compatibility.

Thursday, September 6, 2012

Code by Kevin Leaves the Mac App Store

Kevin Walzer:

These apps have since been rejected three times by the App Store reviewers, and at least part of the problem was the permissions I was requesting for these apps in the sandbox environment. Specifically, the sandboxing environment won’t let me call a system command-line tool to launch Safari (to view my product’s web page) or Mail (so the user can contact me with questions).

This may be a small thing, but to me it’s the proverbial straw that breaks the camel’s back. I’ve used this functionality in my apps for years, I regard it as basic—the ability to contact me via an item in the help menu is simple customer service—and I am unwilling to remove it. Restricting such basic system access is simply ridiculous.

My guess is that he could get this particular functionality working in the sandbox by rewriting his apps to use a different API. However, one of the problems with the sandbox is that adopting it is an open-ended process. You can get one thing working and find that something else doesn’t work—either due to the sandbox’s design or a bug—or that it behaves differently on a different version of Mac OS X. Little of this behavior is documented.

This is also going to mean a change in my development processes. For the past couple of years I have had a cramped and limited view of what my apps could do; I wanted to make sure they did not run [afoul] of App Store guidelines. No more. I will go back to developing the way I prefer: taking full advantage of the Mac’s powerful resources.

Update (2012-11-03): Kevin Walzer:

None of my deep frustrations with the Mac App Store have changed—its slow review time, the technical limitations that sandboxing imposes, and more. But a rational assessment of where my sales comes from says that I can’t ignore the Mac App Store—it truly does enable sales that I couldn’t achieve elsewhere.

Condition Handling for Non-Lispers

cls (via Hacker News):

The possibility of an exception means that we have to manually build the list, because the recovery mechanism (aborting the try block) and the error handling mechanism (the except block) are tightly bound. Our clumsy exception handling system is actually stopping us from building the abstraction that deals with parsing an entire log. And as programming is essentially the art of abstraction, this is something a language should never ever do.

Conditions are an elegant solution.

Freeverse, RIP

Eli Hodapp:

Following the acquisition [by ngmoco], the Freeverse that Mac users spent over a decade following slowly started to vanish. Game releases stopped, the brakes got slammed on publishing, and over the next two years key Freeverse employees who had been with the company for years started leaving. Today, this is punctuated by the two founders walking away from the very company they invested so much of their life into.

And later:

Last Friday details leaked that co-founders Ian and Colin Lynch Smith were leaving Freeverse along with a few other long-time key employees. We may have been a bit hyperbolic at the time with the tombstone image and all that, but it seems that corporate overlord ngmoco wasted no time when it came to shuttering the studio. We’re now getting reports that less than a week later nearly the entire Freeverse office has been laid off, and may be closed entirely.

Hearts Deluxe was probably one of the first Mac shareware products that I purchased. Do these sorts of acquisitions ever work out well for the original customers? Hopefully the Lynch Smiths will found a new development shop.

Improved SICP PDF

Lytha Ayth and Neil Van Dyke have built a new PDF version of Structure and Interpretation of Computer Programs with better typesetting of the math and figures. From Abelson & Sussman’s introduction:

Our design of this introductory computer-science subject reflects two major concerns. First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read and only incidentally for machines to execute. Second, we believe that the essential material to be addressed by a subject at this level is not the syntax of particular programming-language constructs, nor clever algorithms for computing particular functions efficiently, nor even the mathematical analysis of algorithms and the foundations of computing, but rather the techniques used to control the intellectual complexity of large software systems.

Update (2017-03-22): See also: this unofficial Web version with better formatting (via Hacker News).

Block-Based Dictionary Enumeration Can Be Pretty Slow

You’d expect that -[NSDictionary enumerateKeysAndObjectsUsingBlock:] would be faster than fast-enumerating the keys and then looking up the objects, as it could access both at the same time while walking the hash table. However, Mike Abdullah found that it’s actually much slower.

Migrating From NSMutableDictionary to NSCache

Mike Abdullah notes that you can’t rely on NSCache to retain an object for you, even an object that you just inserted into the cache.

Textastic 4.2.1

Textastic, the programmer’s text editor that long available only on the iPad, now has an iPhone version. It has lots of good editing features, but I do not expect it to fare well in my iPhone text editors comparison. It uses a “download” model rather than live editing files in a folder, and it does not support multi-file searching.