Saturday, October 30, 2010
Isn’t this just Microsoft catching up to computer science? In a way, yes. Not only could you have written this last week in Scheme, you could have written it last week in C#, assuming you’re willing to unravel the structure of your code into what the process requires. The point is that this is the first major language that I’m aware of to actually add support to unfurl your normal iterative code into callbacks using compiler support. In a world where the conventional wisdom posits that Microsoft is perpetually ripping off a Java that can’t even seem to grow some closures, I thought they deserved some credit.
If that’s the conventional wisdom, I think it’s wrong. Microsoft has done some pretty nifty language work over the past decade or so.
Wednesday, October 27, 2010
The first thing that jumped out at me with iPhoto ’11 and iMove were the new toolbar icons. They aren’t exactly colorful, which was something that I always liked about iPhoto ’09.
The toolbar, which iPhoto still puts at the bottom of the window, looks like QuickTime Player or iOS. My pet peeve is the bright blue highlight color in the Preferences window and sheets, which doesn’t match my chosen highlight color or any of the standard Aqua or Graphite highlights.
Dr. Drang (via John Gruber):
This is a huge resolution range. On a 11″ MacBook Air, a 72-pixel line—which would measure 1 inch long against an onscreen ruler—is just 0.53 physical inches long. On a 21.5″ iMac, that same line is 0.70 inches long. User interface items, like buttons, menu items, and scroll bars are 30% bigger on the iMac than on the Air.
I like to use dual displays, which adds the additional constraint that the notebook resolution not be significantly higher than that of my external display.
As you can see, standard hard drives perform so poorly in this benchmark—the most common operation that most people need their hard drives to do—that it’s no wonder that SSDs feel so much faster than hard drives. It’s not even close.
The difference is so stark that for many people getting an SSD would make more difference than getting a whole new Mac.
Tuncer Deniz worked at Bungie as a producer from 1996 to 1998 and served as the project lead on Myth 2, but he stayed in contact with top Bungie execs. After recently hearing the story of how Steve Jobs got angry when Bungie went to Microsoft in 2000, Deniz decided to tell us what had happened as he heard it. Turns out that Steve Jobs was angry for a very simple reason: he had wanted to purchase Bungie himself…after first turning the company down.
That might have changed some things, or Microsoft might simply have out-bid Apple.
BBEdit 9.6 adds support for directory-specific settings, a way to create instaprojects from the command-line tool, and other new features. My favorite changes, though, are that it automatically turns off soft-wrapping for large documents (as that can be really slow), and that the Translate command has been split into separate commands for HTML-to-text and text-to-HTML. This makes the sheet cleaner and lets me assign them separate keyboard shortcuts.
Sunday, October 24, 2010
No matter how easy it makes purchasing and installing, there’s a huge role for marketing and word out mouth outside the App Store. Lukas Mathis writes:
The App Store on the iPhone is bordering on useless for discovering content. I mostly discover new apps outside of the App Store—friends show me apps on their phones, or I read about them on the web. Almost every time I’ve tried to find new apps by browsing the App Store, I have failed. For example, try searching for apps that help you keep track of your running. How many useless apps do you have to wade through until you find, say, the excellent Kinetic?
I have actually wasted a lot of time searching for such an app without finding anything good. After reading Mathis’ recommendation, I purchased Kinetic in under a minute.
Mathis also makes the point that Apple could have improved the installation experience for all applications:
Unfortunately, this improved user experience only seems to apply to apps sold in the App Store. It would have been great if Apple had solved this problem for everybody, rather than just for the developers who agree to give 30% of their revenue to Apple, and who will be accepted into the store.
But now Apple has the incentive to tie improvements to the Mac App Store, to encourage developers to give it a cut.
Friday, October 22, 2010
The Mac App Store certainly has great potential: more software that’s easier for customers to find, buy, install, and manage—and more sales for developers. I can’t imagine that there won’t be a sufficient mass of good applications for it to be a success. The potential market is too tempting, even for developers who already have their own stores, license generators, and software update mechanisms. But what’s next? We start out with an optional Mac App Store, such as Apple has described, but it’s not clear to me what the eventual equilibrium will be.
As Jonathan Rentzsch and others have written, the current guidelines ensure that the store will start out as an incomplete, sort of dumbed-down collection of applications:
My fellow Mac developers are laughing at the Mac App Store guidelines. They’re reporting that apps they’ve been shipping for years — a number of them Apple Design Award-winning — would be rejected from the Mac App Store. These are proven apps, beloved by their users. The current guidelines are clearly out-of-touch.
Depending on how you read the guidelines, it’s possible that none of my applications would be accepted by Apple, even though I’ve worked hard to follow best practices and to avoid private APIs and sketchy behavior. Supposing that the guidelines aren’t fixed, some types of useful products may never be approved, and the captive audience will not know that these applications exist. Other developers will be pressured either to cut useful features (or bug workarounds) to satisfy Apple or to make a separate App Store version with fewer features. (There would need to be a separate App Store build, anyway, to remove the serial number validation and software update checking, but the question is whether it would be a “Lite” version.)
There may also be different pricing inside and outside of the store. The App Store doesn’t allow trials, refunds, upgrades, discounts, or transfers. Since Apple takes such a large cut (about 9 times what PayPal charges), a developer could charge less for customers who buy direct and still net more from them. I know that, given the choice, I’ll continue to buy from developers directly. The developer gets more money; I get more control over my installations and backups; and I get timely updates and possibly more features.
This is sort of the best of both worlds, though it’s more work for the developer and slightly confusing for customers. The question is whether Apple will want to sustain this model. Is the App Store meant to have “everything,” or is it for “trusted” apps that are smaller and simpler, with pro apps sold elsewhere? Can Apple market the App Store as the best way to buy Mac software when key software is not available and App Store purchasers are in some ways second-class citizens?
Will Apple eventually relax the Mac App Store guidelines, so that virtually all non-haxie software can be included? Or will they stop promoting non–App Store applications and halt updates to the Downloads page (as they did, again, for two weeks this month)? Who would be surprised if Apple eventually deprecated non–App Store apps through a warning (“This application was not signed by Apple; don’t trust it.”) or perhaps a ban?
I don’t know how this will play out, but I’m pretty sure that the Mac App Store is the biggest news in desktop software in a long time.
In an audacious move for such an established property, Netflix is moving their website out of the comfort of their own datacenter and into the wilds of the Amazon cloud. This paper by Netflix’s Siddharth “Sid” Anand, Netflix’s Transition to High-Availability Storage Systems, gives a detailed look at this transition and does a deep dive on SimpleDB best practices, focussing especially on techniques useful to those who are making the move from a RDBMS.
And the new Airs are not alone. They’re simply leading the way. I asked Apple whether this change would be applied across the entire the Mac product line, and they confirmed to me that it would. Existing Macs currently in the retail channel naturally still have Flash Player preinstalled, but in the coming weeks, all new Macs will begin shipping without Flash Player.
Thursday, October 21, 2010
Apple (via John Gruber):
As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.
I’m not sure what this means for CrashPlan, which I have running 24/7, but presumably there will be non-Apple Java VMs that can be installed. The only other Java application that I’ve run lately is Colossus. Another effect is that this makes it harder for Mac developers to use Lucene, which has been tempting given the way Apple has been neglecting SearchKit.
Update (2010-10-22): Matt Drance:
The layer with the least traction in the market on any platform—the client-side AWT/Swing UI—demanded the bulk of Apple’s efforts. Since the Intel transition, building a server VM for Darwin is almost trivial. I have to think there will at least be a viable headless OpenJDK for the Mac by the time Snow Leopard reaches end-of-life status. If there isn’t, then it’s hard to argue with this move. If Java doesn’t care about Java on the Mac, why should Apple? It would be wonderful if Apple kickstarted a community effort by dumping its AWT source into OpenJDK, but now we’re talking about lawyers.
Update (2010-10-25): Chris Adamson:
As I’ve established, Java’s desktop packages are egregiously expensive. In fact, with Apple’s exit, it’s not clear that there’s anybody other than Oracle delivering a non-X11 AWT/Swing implementation for any platform: it’s just too much cost and not enough value. End-user Desktop Java applications are rare and get rarer every day, displaced largely by browser-based webapps, but also by Flash and native apps.
…it’s the next step in a progression that began with iTunes and has slowly spread to the Finder, iLife, and Xcode: the single window UI as standard. In Lion it’s not just a single window, it can be a full-screen window so that the windows of other apps can’t confuse you. The window itself ceases to exist, the desktop ceases to exist, and the UI becomes mono-tasked.
It’s weird because with today’s larger screens multiple windows work better than ever.
Update (2010-10-24): Lukas Mathis:
While I agree that the window management system we currently have is broken, simply doing away with it altogether is not solving the problem. It’s capitulating.
Monday, October 18, 2010
Now look at that 16 x 16 sample again. You’ll see a brief, dark flash at the very top of the spinner, once per rotation. And, if you’re anything like me, you’ll never, ever be able to un-see it. Ever.
Bill Bumgarner on using Instruments to find memory leaks:
Heapshot analysis has proven to be an incredibly effective tool for identifying and fixing memory use issues in applications. The above style of use where you pick a task that should return state back to the same as it was when you started is the most effective form of this analysis.
Monday, October 4, 2010
Verizon Wireless was charging $2 a pop every time customers accidentally pressed the up-arrow key on their flip phones—the keystroke that comes hard-wired to mean “take me to the Web.”…As Times reporter Edward Wyatt reported Monday, the company now acknowledges the $2 accidental-key-press problem—the same one it denied last December…
I’m actually pretty happy with AT&T, except that their network isn’t very good in my area and the local store doesn’t sell MicroCells.
Saturday, October 2, 2010
Friday, October 1, 2010
One of my goals with Canabalt was to make a game that really felt fast, like blazing, sweaty-palms fast. It turns out this isn’t that easy to do in 2D, because the horizon is so close. 3D games get to cheat a little, by letting you stare off into the distance in a way that 2D games tend to struggle with. You can zoom the camera out, so that player can see more of the world, but if you do that then objects appear to be moving more slowly. It’s a really tricky balance.
Lemke Software has released GraphicConverter 7.0. The interface has been redone in Cocoa, and it generally looks better. There are still tons of preferences and options, most of which I will never use. On the other hand, I suppose part of the charm is that when I discover that I need some esoteric feature or format, I usually find it in GraphicConverter. It’s never been my main image editor, but I always seem to find uses for it.
So, the better approach to security would be transparency, which is to say users could install applications like the one being written by Peter Gilbert, above, which would tell them when data is being sent to servers, and they could use their own judgment about whether a particular program should be contacting a particular server given their recent actions. With many pairs of paranoid eyes would come much better app validation than Apple could do in a few days.
But this isn’t allowed on iOS right now—the necessary APIs are verbotten, and Apple apparently (and ironically) has written a tool to automatically detect if an application is using APIs Apple doesn’t allow. So, in this case, Apple’s curated approach has potentially made them less secure than Android.
I don’t understand why iOS makes such a big deal about permission to access location data, when any random app, even one that shouldn’t need network access at all, can access my address book, photos, and clipboard and upload them to who-knows-where.