Archive for January 2007

Wednesday, January 31, 2007 [Tweets] [Favorites]

C# 3.0: Now with Categories!

Bill Bumgarner:

As it turns out, Microsoft has given the developer the ability to avoid the problems as described above while also giving the developer an infinite spool of rope with which to tie exceedingly difficult debugging knots.

Monday, January 29, 2007 [Tweets] [Favorites]

objc-appscript Preview 1

objc-appscript, an Objective-C version of the Python-based appscript, is an Apple event bridge that lets you communicate with scriptable applications without writing code at the level of Apple event descriptors. It looks somewhat like a Tiger-compatible version of the Scripting Bridge that will be part of Leopard.

Update: here’s the new Web page.

Wednesday, January 24, 2007 [Tweets] [Favorites]

The Future of Retrospect

John C. Welch posts a statement from Dantz co-founder Larry Zulch on EMC Insignia’s plans for Retrospect:

These people, this team, is highly motivated and completely dedicated to your and Retrospect’s success. They have something to prove, and I hope you’ll give them a chance to do so. Out of that could come their and my fondest wish, which is a revitalized Retrospect setting the agenda for data protection software.

Probably too little too late for me, as technology and media prices have shifted such that Retrospect is no longer a very good fit for what I do. Still, it would be nice to see it revitalized.

Lighthouse and Sun History

Paul Kim and Terrance Talbot share their experiences from working with OpenStep at Sun.

Monday, January 22, 2007 [Tweets] [Favorites]

iTunes to Go

Lee Bennett:

So today, I successfully migrated my iTunes library back to my laptop. But, the music files are still on the tower hard drive.

Sunday, January 21, 2007 [Tweets] [Favorites]

Apple and Java

Jens Alfke:

I’m another of those Apple Java engineers who dropped out. I spent five years as a raving Java fanboy, but I gave up after optimizing AWT, implementing drag and drop, and trying to make 1,200 pages of crappy APIs do the right thing on the Mac. Then I took a one-week Cocoa training course, and wrote the first prototype of iChat.

I mostly agree, but I still wish Cocoa had layout managers. It’s great to be able to plunk everything down in Interface Builder and not have to deal with generated code. But taking advantage of that shouldn’t mean that I have to lay everything out by hand and manage all the sizes and spacings in different localizations.

53 CSS-Techniques You Couldn’t Live Without

Smashing Magazine:

Over the last few years Web-developers have written many articles about CSS and developed many useful techniques, which can save you a lot of time—of course, if you are able to find them in time. Below you’ll find a list of techniques we, as Web-architects, really couldn’t live without. They are essential and they indeed make our life easier.

On Linking

Tim Bray:

Since I’m writing for the Net, I wanted to link to it. I did a quick search for its Web site, which also turned up a pretty good Wikipedia entry on the subject. The question is, which to link to? The answer isn’t obvious.

Friday, January 19, 2007 [Tweets] [Favorites]

Objective-C Delegate Optimization

Dave Dribin confirms that the Objective-C runtime is actually pretty fast.

Thursday, January 18, 2007 [Tweets] [Favorites]

Tog on the iPhone

Bruce Tognazzini (via John Gruber):

Beyond the accelerative, frictional scroll, as used with the contacts list, the browser apparently has the “smarts” to enable the user to selectively pick a single article, not by carefully enlarging it to just fit, but by indicating it and having the browser temporarily strip away everything else.  It will be interesting to see if the production iPhone can work this trick on most pages, or whether the Web site must pay close attention to the letter of the HTML law in every regard to make it work.  If the feature is forgiving, it is a home run.

Tuesday, January 16, 2007 [Tweets] [Favorites]

Buy Base Station to Get Software Update

Core 2 Duo–based Macs ship with 802.11n-capable hardware, but to get the software to enable this you have to buy a new AirPort Extreme base station. According to iLounge, this is not because Apple’s trying to push base stations, but rather because they’re trying to comply with accounting rules from 2002’s Sarbanes-Oxley Act:

The company believes that if it sells a product, then later adds a feature to that product, it can be held liable for improper accounting if it recognizes revenue from the product at the time of sale, given that it hasn’t finished delivering the product at that point.

In other words, it may be illegal for a public, US-based company to issue a free software update that adds features. I’m not a lawyer, and I haven’t read the Act, so I have no comment on whether this legal interpretation is correct.

Saturday, January 13, 2007 [Tweets] [Favorites]

DiskWarrior Boots 25% Faster From DVD

If you’re making a backup of your DiskWarrior CD, it’s worth spending a few more cents to use a DVD. From a complete shutdown, my iMac took 7:28 to boot to the DiskWarrior license agreement dialog from CD, but it only took 5:33 from DVD-R. Creating a backup is super-easy with DropDMG. Set the format to “.dmg Read-only” and uncheck all the other options. (I keep a “Backup CD/DVD” configuration for this.) Drag the CD onto DropDMG. When it’s done, Shift-drag the newly created .dmg file onto DropDMG. Insert a blank disc and click the Burn button.

Thursday, January 11, 2007 [Tweets] [Favorites]

Beware the Slash

[@"/a/b/c/d.e/" lastPathComponent] → @"d.e"
os.path.basename("/a/b/c/d.e/") → ""

Wednesday, January 10, 2007 [Tweets] [Favorites]

Interface Builder Tip

Daniel Jalkut:

What the Q&A describes is a way to quickly identify the UI corresponding with any UI instance in IB’s hierarchical instance view. Just hold down control-shift and click an item.

Tuesday, January 9, 2007 [Tweets] [Favorites]

iPhone Platform


The only two iPhones at the show were under glass, and Apple representatives said it is a “closed platform,” refusing even to identify the specific processor it uses, and there’s apparently no developer kit for it, though “developers who want to do applications [for the iPhone] are welcome to contact Apple developer relations.”

AirPort Extreme with AirPort Disk

The new AirPort Extreme base station includes 802.11n, of course. It also has three Ethernet LAN ports (eliminating the need for a hub in many cases) and can share USB hard disks as well as printers. I’m not sure whether it’s using WebDAV or AppleShare, but if the latter it should be possible to Smart Update a laptop wirelessly—no server Mac required.

BBEdit 8.6

My favorite changes in BBEdit 8.6 are transparent reading and writing of binary property lists, support for the Emacs “mode:” variable, and Convert to ASCII now doing something sensible with the Euro symbol.

Monday, January 8, 2007 [Tweets] [Favorites]

Apple’s Resolution Independent Interface Tool

Cabel Sasser examines a recent Apple patent filing and concludes that Apple’s Mark Zimmer (formerly of Fractal Design fame) “has invented a scaleable hybrid vector/bitmap user interface that is created and edited by their own full-featured graphics tool.”

Sunday, January 7, 2007 [Tweets] [Favorites]


Jonathan “Wolf” Rentzsch has posted some interesting Cocoa error-wrapping macros. I’ve long used some macros to generate and raise NSExceptions that have the name, reason, and userInfo set based on the error code, a format, and the location in the source file. Rentzsch’s macros go beyond this to stuff the relevant information into a more modern NSError object, with the error domain cleverly deduced from the function’s return type using @encode and typeof. The NSXThrowError macro will also raise an NSException that has the NSError stuffed into its userInfo. Lastly, the actual Objective-C expression that generated the error code is saved as a string in the NSError.

Putting on my code critiquing hat, I don’t like that NSXThrowError introduces an exception name beginning with the reserved NS prefix or that the function-like macros implicitly assign to an error variable in the local scope. Also, they should probably be do-while protected.

Late Night Blog

Late Night Software’s Mark Alldritt has started a blog. In one of the first entries, he describes his 2007 plans for Affrus, FaceSpan, and (my favorite) Script Debugger.

Friday, January 5, 2007 [Tweets] [Favorites]

The Life and Drama of a Mac Shareware Developer

Jesse Grosjean:

And so we come to WriteRoom 2.0’s price. It’s taken me 6 months of development time to finish and for many people it really changes the way that they work. To me and the many people who’ve purchased WriteRoom today $25 is a reasonable price for this. Especially when you consider the facts that you can try a fully functional version of the program for free, I don’t charge for upgrades, and I already tried pricing my software lower with limited success.

ATPM reviewed WriteRoom 1.0 favorably, and it sounds like 2.0 is even better. Best wishes to Jesse, as I’m a fan of his software and development approach, though personally, I don’t need such isolation when writing.

Wednesday, January 3, 2007 [Tweets] [Favorites]

My Font Cache Hates Me

Steven Frank reminds us that Tiger’s font cache problem with monospaced fonts remains unresolved. His commenters suggest various solutions.

Tuesday, January 2, 2007 [Tweets] [Favorites]

ATPM 13.01

The January issue of ATPM is out: