Archive for June 2008

Tuesday, June 24, 2008

Netflix Profiles Feature Going Away

Netflix Community Blog:

Continuing to maintain the profiles feature for the passionate few who use it (including myself) distracts us from the mission of presenting to all our members the easiest way to find the best titles for them from the 100k plus on DVD and the 10k plus available instantly.

There are already more than 1,000 comments on the post. Besides losing a useful feature, customers will lose their queues and all the rating data they’ve entered. Even if this doesn’t cost Netflix customers, it can’t be good for their recommendations engine to have multiple people rating movies under the same account/profile.

Update (2008-06-30): I just received an e-mail from Netflix:

You spoke, and we listened. We are keeping Profiles. Thank you for all the calls and emails telling us how important Profiles are.

We are sorry for any inconvenience we may have caused. We hope the next time you hear from us we will delight, and not disappoint, you.

-Your friends at Netflix

And they’ve also written a blog post. It’s still not clear to me why they thought that removing the feature would make the Web site easier for the people who didn’t use it in the first place, or why they were so willing to throw away user data.

Saturday, June 21, 2008

Subversion’s Biggest Hole

Ned Batchelder:

The thing I miss that Subversion is lacking is a repository setting for globally ignored files. You can set a property on a directory to ignore (for example) *.pyc files. And you can set your client to always ignore *.pyc files in any working tree on your machine. But there is no way to set a repository to ignore *.pyc files anywhere they appear in the tree.

Friday, June 20, 2008

Installing the OS on a MacBook Air

Steven Frank:

No problem, right? Plug the external SuperDrive and the HD into an powered hub? Nope, doesn’t work. The SuperDrive for the MacBook Air only works in one situation: when it is plugged directly into the USB port of a MacBook Air.

Wednesday, June 18, 2008

On Software Bundles

Paul Kim:

I’d say it was worth it, but not in the way people would expect. It was worth it to me in that I got a nice check afterwards without having my sales adversely affected. As for exposure, there may be better ways to get people to know about your app without practically giving it to them. I don’t have a paid upgrade planned out yet so that was not even a consideration for me. For me to do it again, I think I would have to be offered a good deal, percentage-wise. My sense is that these promotions are more effective in the short term than long term.

Monday, June 16, 2008

PMC Call For Developers

Seth Dillingham is looking for software developers to donate their wares to be auctioned off for cancer research and treatment. Last year he raised $5,000, and the goal for this year is $10,000.

All proceeds will be donated to the Pan-Mass Challenge, and in turn to the Jimmy Fund, for the research and treatment of cancer at the Dana-Farber Cancer Institute. The Pan-Mass Challenge is one of the most efficient charities in the world (over 99% of all rider-raised funds are passed through directly to the Jimmy Fund).

Donate Software, Fight Cancer

Friday, June 13, 2008

Firefox 3 for Mac OS X: Under the Hood

Josh Aas:

The context menus, dropdown menus, the toolbar, the search bar, the buttons and text fields within Web pages—they are not actual Cocoa controls. For example, instead of using actual Cocoa buttons for “Submit” buttons we just draw the image of an Aqua “Submit” button into an NSView, one of the basic Cocoa objects we use. Gecko 1.9 has Aqua form controls because we now draw images of Aqua form controls when appropriate, not because we use actual Cocoa controls. The reason we don’t use actual Cocoa controls isn’t because we are lazy or we can’t figure out how to use them or because we are constrained by our cross-platform requirements—Apple’s WebKit doesn’t use actual Cocoa controls for things like “Submit” buttons or popup buttons in Web pages either, at least not the last time I checked.

Sure, but Firefox 3 also uses the fake controls throughout the application: the preferences window, the browser toolbar, the bookmarks editor, etc. Even without clicking on anything, it’s obvious that the interface was built using a cross-platform framework.

Update: Johan Sanneblad has screenshots of some of the differences (via John Gruber).

Thursday, June 12, 2008

DVCS Myths

Derek Slager:

A number of the responses were interesting and thought provoking, while others were so full of FUD and misinformation I couldn’t help but wonder if they were serious. I’ll admit that I was surprised by some of the negative backlash against DVCS. I have explained it to many former users of centralized systems, and it simply never struck me as a very controversial technology. I don’t want to just completely ignore the criticism, however. This post is an attempt to respond directly to some of the more common criticisms, and hopefully convince some of the skeptics that even if DVCS isn’t the solution for you, at least it won’t start your computer on fire.

Tuesday, June 10, 2008

When a Price Drop is Really a Price Increase

Kirk McElhearn:

Since you can’t buy a phone without activating it, and without committing to a two-year AT&T contract, the actual selling price doesn’t mean much. What counts is the total price over time. And Apple’s clearly caved to AT&T to allow this to happen. I guess it’s part of the price they have to pay to get more users of the iPhone, but it’s still dishonest.

I don’t live in an area with 3G coverage. It would be nice to have the GPS receiver, but I don’t mind waiting until there’s more software for it than Google Maps. The other hardware changes in the iPhone 3G were minor. App store aside, the software improvements in iPhone 2.0 were also minor, at least as relates to me, and they’ll be available on the original iPhone. So, although I like the iPhone 3G, yesterday’s announcements had the perverse effect of making me glad to have purchased the 1.0 hardware. It was kind of like getting a 2 GHz PowerMac G5, and a year later they weren’t at 3 GHz after all.

Sunday, June 8, 2008

MDI on the Mac

Lukas Mathis:

Mac applications used to have many windows. Recently, this has started to change, mainly due to Apple’s influence. […] However, these applications do not have MDIs. Neither of these applications are multi-document applications. They are either media managers (iPhoto, iTunes, Aperture), or they are typically used to open only one document at a time (iMovie, iDVD, Final Cut Pro).

[…]

Unfortunately, some companies have taken Apple’s new one-window-approach to UI design as a hint that they should introduce MDIs (or an MDI-like approach to UI design) on the Mac.

Saturday, June 7, 2008

Garbage Collection and the Optimizer

There’s an interesting edge case in the Objective-C garbage collector that’s being discussed on Cocoa-dev. The collector treats variables on the stack as rooted, but the contents of the stack may not match what the programmer is expecting. If gcc’s optimizer determines that a particular variable will no longer be accessed, it can replace it on the stack before it goes out of scope in the Objective-C source. Ordinarily this is safe, but it can cause problems when dropping down to the C level. If the variable points to an NSData, the object can be collected while a pointer to its contents is still in use. Mike Ash describes it nicely:

The problem here is that you’re expecting one pointer to keep a different pointer live, which the GC does not make any guarantees about.

Basically, under GC, my impression is that it should be considered invalid to return a pointer to a caller which depends on the lifetime of the parent object.

Unfortunately, there isn’t a simple fix because NSData’s contents are not always a simple block of collectable memory.

Tuesday, June 3, 2008

AppleScript Is Broken in Firefox 3

Luis de la Rosa:

There’s two pieces of data that’s critical for several apps to get from Firefox: the current URL and the current Title. The title portion is broken in Firefox 3. That’s a regression from Firefox 2. Except, it isn’t officially, since Firefox never officially supported AppleScript. There were just some good programmers who added it in.

So what happens when you request the title? It returns random garbage data.

I’ve also gotten reports of intermittent problems getting the URL via AppleScript.

Announcing SquirrelFish

WebKit’s new JavaScript engine:

SquirrelFish is a register-based, direct-threaded, high-level bytecode engine, with a sliding register window calling convention. It lazily generates bytecodes from a syntax tree, using a simple one-pass compiler with built-in copy propagation.

Oh, and it’s fast.

Apple’s Script

Daniel Jalkut:

Apple should make JavaScript its default scripting language.… It sounds a like I just said “Apple should kill AppleScript,” but I didn’t. You see, the Open Scripting Architecture, on which AppleScript runs, is designed from the start to support multiple languages. Think of the “Open Scripting” part of the system as the part that lets a script tell another application to do something. The specific scripting language you use to accomplish the rest is really of no concern whatsoever. Two languages, such as JavaScript and AppleScript, can easily live side by side.

Agreed. OSA is great, but AppleScript is holding it back.

Monday, June 2, 2008

ATPM 14.06

The June issue of ATPM is out: