Archive for June 27, 2012

Wednesday, June 27, 2012

SQLite 4

D. Richard Hipp et al. (via Reddit):

SQLite4 is an alternative, not a replacement, for SQLite3. SQLite3 is not going away. SQLite3 and SQLite4 will be supported in parallel. The SQLite3 legacy will not be abandoned. SQLite3 will continue to be maintained and improved. But designers of new systems will now have the option to select SQLite4 instead of SQLite3 if desired.

SQLite4 strives to keep the best features of SQLite3 while addressing issues with SQLite3 that can not be fixed without breaking compatibility.

Very interesting, particularly the primary key and decimal stuff.

Rewritten Facebook iPhone App

Nick Bilton (via Chris Espinosa):

One of the Facebook engineers said the new application has been built primarily using Objective-C, the programming language used to build applications for iOS. Many of the components of the current version of the Facebook app are built using HTML5, the Web-based markup language.

I’m surprised they went the HTML way to begin with, given Apple’s experience with some of the original built-in apps.

Nisus Writer Pro

William Porter:

As I worked on this review and reacquainted myself with Nisus Writer Pro, again and again I wrote a note about something I thought Nisus Writer Pro couldn’t do, and again and again I discovered that I was wrong. Here’s the executive summary: Nisus Writer Pro is a word processing power tool. This power does require a bit of effort to master, but compared to Microsoft Word, Nisus Writer Pro is remarkably user friendly.

If I used a word processor these days, it would probably be Nisus Writer Pro. I probably even have the floppy disk from one of the original versions somewhere. But over the years my workflow has inverted. Instead of writing in a word processing app that supports scripting, I now write markup in BBEdit and write code to process it. This seems like far from an ideal solution, but in practice it works. I’m still waiting for a product that handles writing, editing, and layout; flexible PDF, Apple Help, Web, and e-book output; includes; version control, change tracking, and text comparison. Nisus Writer Pro and, to a lesser extent, Pages seem to be approaching this holy grail but aren’t there yet.

AppleScript, appscript, Scripting Bridge, and Automator

There’s way too much to summarize here, but Dr. Drang and Clark Goble have posted on these topics with insightful comments by Hamish Sanderson, Matt Neuberg, and Andrew Barnert.

I’m not quite as negative on Scripting Bridge as others, but that may only be because I haven’t used it as heavily. It works OK for my purposes, but it certainly seems unfinished, and I’m not satisfied with either the exception- or delegate-based error handling.

For a while, it seemed that AppleScript, with good framework and bridge support, could become really great for both users and developers. Instead, it’s kind of been in stasis. We have Automator and AppleScriptObjC, which didn’t really live up to their potential. And XPC is the new hotness, but (so far) it’s solving a different and narrower problem.

Retina MacBook Pro Burn-In

Lloyd Chambers:

The problem occurs in as little as 20 minutes; close the window and the desktop is left with a latent image; a ghost image of whatever text or graphic was in the window left on screen.

Quitting the Finder or logging out has no effect, indicating that the problem is a hardware (screen) issue, not just a screen-bits (graphics memory) issue.

Suzanne Choney:

Msnbc.com has contacted Apple for comment; we will update this post if we hear back. Individual users, sharing their stories on the company's support site, have said that when they've notified Apple, or taken their laptops into Apple stores, new laptops have been ordered for them as replacements. The reason for the problem has not yet been explained.

There are also threads about this in Apple’s forums and at AppleInsider.

Update (2012-07-03): He’s getting the computer replaced.

Update (2012-09-16): Vojtech Rinik:

As it is always with Apple, there is one more thing. Some of the new Retina screens suffer from a picture burn in issue. The related discussion on Apple Forums is over 200 pages long.

My Retina MacBook Pro also suffers from burn-in, although it did not manifest at the time I wrote this post. I can live with the image retention it as-is, and I don’t want to go through the hassle of replacing the computer. The replacement screen may also be defective, and Apple may break or damage something else while replacing the screen. The main reason I got this computer was the months-long process of getting Apple to repair my previous MacBook Pro. However, I also worry that the burn-in problem will get worse over time and that therefore I should get it replaced now, under warranty.

Steven Sande reports that you can enter the Terminal command:

ioreg -lw0 | grep \"EDID\" | sed "/[^<]*</s///" | xxd -p -r | strings -6

If the display code begins with “LP” it’s an LG display; the Samsung ones seem to work better.

Update (2012-09-20): Marco Arment:

I’m mildly annoyed, but as John Siracusa recently discussed in Hypercritical (starting at 16:49), getting it repaired or replaced always carries the risk that the likely-refurbished replacement might be a lemon in other ways. And I may need to get multiple replacements before finding one without image retention.

Update (2012-10-22): Unfortunately, Samsung will no longer be supplying Apple with LCDs.

Update (2014-06-01): Marco Arment notes that the image retention problem seems to get worse over time.

Sandboxing Core Data and Migrations

Samuel Williams:

As Property Manager acquires new features (in this case, additional tagging and notation facilities), the data model needs to be updated. This in turn depends on CoreData to migrate the user’s previous documents to the latest data model. Traditionally, CoreData migrates the data transparently when the user opens the file, however here lies the problem with sandboxing: the updated file cannot be saved to disk unless the user is presented a NSSavePanel. Because of this, automatic migrations will fail.

Yojimbo and iCloud

Rich Siegel:

Please note that once we release a new version of Yojimbo with iCloud support, Yojimbo will only be available in the Mac App Store. This is because Apple has decided that any applications that use iCloud for sync may only be distributed through the Mac App Store. Therefore, all Yojimbo customers who wish to use iCloud to sync data will have to separately purchase the new version of Yojimbo from the Mac App Store once it becomes available.

Andy Ihnatko:

It’s easy for us all to think “Apple has this new iCloud service that’s way, way better than MobileMe. This is going to be great!” But a lot of developers are really feeling the pain. Products that were working just fine are now broken. Time, money, and resources that developers could be investing in making a great product even better must instead be spent just to keep their software working.

Both MobileMe and Core Data iCloud syncing are headache-inducing. Syncing is a hard problem.