C# 3.0: Now with Categories!
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.
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.
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.
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.
Paul Kim and Terrance Talbot share their experiences from working with OpenStep at Sun.
So today, I successfully migrated my iTunes library back to my laptop. But, the music files are still on the tower hard drive.
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.
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.
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.
Dave Dribin confirms that the Objective-C runtime is actually pretty fast.
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.
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.
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.
[@"/a/b/c/d.e/" lastPathComponent] → @"d.e" os.path.basename("/a/b/c/d.e/") → ""
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.
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.”
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.
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.
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.”
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 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.
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.
Steven Frank reminds us that Tiger’s font cache problem with monospaced fonts remains unresolved. His commenters suggest various solutions.
The January issue of ATPM is out: