Archive for October 2008

Friday, October 31, 2008

MacBook Design Tradeoffs

Rainer Brockerhoff discusses design tradeoffs with the new unibody MacBooks and MacBook Pros and responds to comments.

Tuesday, October 28, 2008

First Look at Windows 7’s User Interface

Peter Bright:

At PDC today, Microsoft gave the first public demonstration of Windows 7. Until now, the company has been uncharacteristically secretive about its new OS; over the past few months, Microsoft has let on that the taskbar will undergo a number of changes, and that many bundled applications would be unbundled and shipped with Windows Live instead. There have also been occasional screenshots of some of the new applets like Calculator and Paint. Now that the covers are finally off, the scale of the new OS becomes clear. The user interface has undergone the most radical overhaul and update since the introduction of Windows 95 thirteen years ago.

The taskbar is now much more like the Mac OS X Dock, and Explorer’s sidebar is more like the Finder’s.

Adventures in Cocotron

Glen Aspeslagh (via John Gruber):

Back in August, we decided that we should have a Windows version of our FileMagnet Uploader, a Mac application which connects to the iPhone via Bonjour and moves files back and forth between the desktop and our FileMagnet iPhone app. If you’ve been in this situation before, you know how much fun a line-by-line Windows port can be. Not only do you have to spend weeks hunched over Visual Studio, re-writing your entire program in a different language, but when you’re done you now have two separate code bases to manage. When a friend recommended that we check out Cocotron as an alternative, we were quite skeptical but agreed to try it out.

Monday, October 27, 2008

Fission 1.6

Paul Kafasis:

The biggest update is that Fission now has built-in iPhone Ringtone saving, using the same method found in our MakeiPhoneRingtone application. With Fission, you can take any audio file in any format (not just AAC), and easily turn it into a ringtone/alarm sound for your iPhone! Just crop it down to 40 seconds or less, then choose “Save as iPhone Ringtone”, and Fission will handle the rest. Your file will be transcoding to AAC if needed, then passed off to iTunes and ready for syncing.

Leopard’s Year-old Annoyances

Rob Griffiths:

In OS X 10.5, you can build the same folder, but the aliases don’t work at all—if you hover over them with the mouse, you won’t see their contents. As shown above, in fact, a folder alias actually looks like a document, and there's no disclosure triangle as there is in 10.4.

Sunday, October 26, 2008

Why Explicit self Has to Stay

Guido van Rossum:

When a method definition is decorated, we don’t know whether to automatically give it a ‘self’ parameter or not: the decorator could turn the function into a static method (which has no ‘self’), or a class method (which has a funny kind of self that refers to a class instead of an instance), or it could do something completely different (it’s trivial to write a decorator that implements ‘@classmethod’ or ‘@staticmethod’ in pure Python). There’s no way without knowing what the decorator does whether to endow the method being defined with an implicit ‘self’ argument or not.

I like explicit self, anyway.

Friday, October 24, 2008

BBEdit 9.0.2

BBEdit 9.0.2 fixes the problem with Find Definition and ctags that I encountered with Objective-C files.

Wednesday, October 22, 2008

Key-Value Observing Done Right

Mike Ash:

It’s too bad that such a powerful tool is so broken. Especially since Apple is starting a trend of omitting traditional NSNotification and delegate callbacks in new APIs, instead simply supporting KVO. A perfect example of this is NSOperation: the only way to get notified when an NSOperation finishes is by using KVO to watch its isFinished property.

I hope those are mistakes and not part of a trend. In any case, Ash has done what I was planning to do the first time I couldn’t avoid using KVO: write an adapter that hides the madness behind a notification center interface. It’s simple and clean:

It takes advantage of one pointer that can be guaranteed to be unique: the ‘self’ pointer. Instead of registering the target object for a notification, it creates a unique helper object for each notification and registers that. The helper then receives the notification and bounces it back to the original observer.

Wednesday, October 15, 2008

Something New

James Thomson:

The recent change to the iPhone App Store so that the listed release date of software is the date of initial submission—and not the date of the last update—seems to have had a very profound effect on our sales, and not in a good way. PCalc is now currently sitting on the 29th and last page of the Utilities section, since it was one of the very first apps submitted to the store, and that means it’s now effectively dead in the water.

Thomson is a longtime developer of great Mac software, and his recently updated PCalc is one of my favorite iPhone applications.

I think the App Store’s rigid interface is increasingly becoming a barrier for users. It’s hard to find which applications are new, to find the changes between versions, and to sift through the outdated and often inaccurate reviews. Amazon has become a convenient and reliable source of information, and it’s worth going to even if you plan to buy from another vendor. With the App Store, the situation is almost reversed, and I find that the less I rely it and iTunes, the better. I try to use a third-party feed, Twitter, and blogs to track changes to the store. When looking at an app, the first thing I do is go to its developer’s Web site. Then I search Google for reviews.

The bottom line is that, unless there’s a demo, it’s hard to know what you’re getting. There’s a lot of junk, some of it highly reviewed, so the odds are not in your favor. Since the prices are generally low, I haven’t been shy about buying apps that look promising. This looks to Apple like a success, but I wish I could return about 2/3 of my purchases. That said, I’ve not soured on the App Store because a bunch of the applications I’ve bought are fabulous.

Tuesday, October 14, 2008

Notebook Event

Jason Snell has a great writeup about the new MacBook and MacBook Pro that includes some details that I haven’t seen mentioned elsewhere. In brief, I like:

I don’t like:

EagleFiler 1.4

This morning I released EagleFiler 1.4, a big update with lots of new features including: user-created smart folders, stationery, a Tag Cloud window, more formats for archiving Web pages, and contextual menu commands for setting metadata based on the selected text.

Thursday, October 9, 2008

The How and Why of Cocoa Initializers

Mike Ash:

This is why the standard initializer pattern is the only one that works. Cocoa classes can and do deallocate the original instance, then allocate a new instance of the same class (or a subclass) and return it from their initializers. This is admittedly rare, but it is legal and it does happen. And that, in a nutshell, is why the standard Apple initializer pattern is the only correct way.


JSCocoa “bridges Cocoa to JavascriptCore (WebKit’s JS engine). It allows you to call C code, ObjC code, use C structs, and build Javascript classes inheriting from ObjC classes.”

Saturday, October 4, 2008

Site-Specific iPhone Browsers

Just add <meta name="apple-mobile-web-app-capable" content="yes" /> to enable home-screen bookmarks that launch independently of Safari (via John Gruber).

Thursday, October 2, 2008

The Fear

John Gruber:

Taken together, these three factors lead to The Fear, which is that developers cannot trust the App Store process. You can spend all of the time and effort it takes to build an app, follow every known rule, and still get rejected.

Python 2.6

Python 2.6 is now available:

The major theme of Python 2.6 is preparing the migration path to Python 3.0, a major redesign of the language. Whenever possible, Python 2.6 incorporates new features and syntax from 3.0 while remaining compatible with existing code by not removing older features or syntax.

More from Jesse Noller.

Wednesday, October 1, 2008

ATPM 14.10

The October issue of ATPM is out:

Sad State of Print Publishing for Developers

Erik Sink:

I was just shocked that this magazine exists. I mean really. An entire print publication for people who raise chickens as a hobby? That’s what I call a niche. How does the publisher survive?

More to the point, how can this magazine be successful when Dr. Dobb’s looks like it might be pushing up daisies sometime before the World Series is over? Dr. Dobbs is arguably the most prestigious developer magazine in our industry, but it hasn’t been looking any too healthy over the last year or so.

Netflix API

Michael Hart:

On behalf of the Netflix API team, I’m very excited to announce the release of the Netflix API and to launch this site for our developer community. We have been impressed with the applications developers have managed to build using our RSS feeds or by screen-scraping the web site, so we can’t wait to see what you’ll do with a supported API!

At last! Perhaps this will make iFlix faster…