Rick Swift & Apple & Embedded I make things. Sometimes, I’ll talk about it here.

Filed Under #Apple

Blender Workflow for visionOS

Refining a workflow from Blender to Reality Composer Pro for visionOS Apps

Blender Workflow for visionOS featured image

Focused Command View Modifiers in SwiftUI

A technique for implementing focused commands.

Permissions API Proposal

Apple desperately needs a unified permissions API.

Permissions API Proposal featured image

macOS TCC: Transparency, Consent, and Control

macOS TCC: Transparency, Consent, and Control featured image

Streaming the Linux Desktop to Remote OBS

I wanted to stream my LinuxCNC desktop to a Mac running OBS.

BoringSSL Root Certs on Mac OS X

Fixing Vapor 4 Fluent/SSL errors connecting to DigitalOcean DB instances.

LC_VERSION_MIN and App Store Validation of bare dylibs

Problems validating bare dylibs in an iOS App.

LC_VERSION_MIN and App Store Validation of bare dylibs featured image

Fusion 360 Post Processors (on macOS)

Finding and modifying CAM post processors for Fusion 360 on macOS.

Using dbus on OS X Yosemite

In the ongoing effort to enhance Podtique for mere mortals, I'm building a web server within the device to aid in configuration. I've chosen node.js (really, locomotive) for this. But the main code is written in C++, and I needed a way for the node.js code to communicate with the C++ process.

Validating a Self-Signed SSL Certificate in iOS and OS X Against a Changing Host Name

We developed a device with which we communicate securely over SSL using a self-signed certificate. The device gets a dynamically-assigned IP address, and that is communicated to the iOS app via other means. By default, NSURLConnection tries to validate the SSL certificate against the hostname, but it was impossible for us to create a wildcard cert that would match.

Recording iOS Device Screen Video

I've been working on a piece of hardware that communicates with an iOS app. It has a display, and using it takes up some space. I made a little demo video of it last night (not yet for public consumption), trying to fit the iPhone, hardware, and associated hardware all in the frame. The result was a video in which the iPhone's screen was hard to see.

I was thinking it would be nice to use picture-in-picture to provide a closeup of my device's display, and the iPhone's screen, but I only have two cameras. It occurred to me that the iPhone supports displaying its screen on an external display, maybe there was a way to record that. A little Googling turned up the answer.

Thanks to this article by Sylvain Gauchet, I learned about the Reflection OS X app ($15 as of this writing). This is one of those delightful apps that does exactly what you need it to do, without breaking the bank (actually, I would've paid triple the price for it).

Reflection turns your Mac (or PC) into an AirPlay target. Your iPhone 4S, iPad 2, or iPad 3 can send their screen output to the Mac. Reflection gives you the option to record the video. It works incredibly well, and it's wireless (no need for the Apple video output cabling).

I was even able to use iChat desktop sharing to demo Reflection to a friend.

Go check out Reflection today. You can try it free for 10 minutes (and only 10 minutes; not 10 minutes each time you launch). But it's only $15.

MissionClock Sales

MissionClock has been in the iTunes App Store for a few weeks now, and I thought I'd post some sales information. The chart below shows the relative number of unit sales per day from July 30, 2009 to September 10, 2009. The two big spikes in sales corresponded to the STS-128 launch attempt on August 24, and the actual launch on August 28. Labor Day was particularly bad. There is no data for the dates from August 5 to August 8.


Clearly, launch days are good for MissionClock.

Apple Suppressed My Negative Review of the Cinema Display

I went to the Apple store a couple weeks back, intent on buying the lovely new 24" Cinema Display. When I got there, I learned that it wouldn't work with my previous-generation MacBook Pro, and that there was no way to make it work (note that a new adaptor is coming in September, for the hefty price of $179).
Frustrated, I went home, and eventually wrote a review on Apple's website, saying that the display was gorgeous but that the inability to use it with my older Mac was a failure, and gave it one star. Here's a screenshot of what I submitted:

Apple Store Display Comment

A couple weeks later, I still haven't seen my review show up on their site. If you happen to see it, please let me know in the comments below.

Safari 4 Public Beta

Hmm. I just installed it, and after 5 minutes, I'm disappointed and unconvinced. The tabs now live in the window's title bar. Inactive tabs' close boxes only appear when you hover over the tab, a practice I generally despise (don't make me hunt for shit in the UI). The close boxes also look different from how they did in 3.x. The tab/title bar text doesn't look like title bar text (the font is different), giving Safari the fragile, unpolished feel of non-Mac-native apps (like Java apps or Qt-ported apps).
Most disappointing, Safari continues to SPOD when loading pages and there's any kind of I/O burden on the system (possibly even just the I/O burden caused by Safari itself). This is on a last-gen 15" MBP Core 2 Duo, 2.5 GHz, 4 GB RAM.
Going from a "top site" thumbnail to the actual page is slow, I'm sure due to typical Safari page rendering slowness.
I'm running Klicko, so it's hard to know how inactive window clicks actually behave, but there might be some oddness there. Overall, I'm not at all sure what the improvements are in this new Safari. Good thing it's a free update, but I think, so far, they should be paying me to update.

Mostly Success with iPhone firmware v2.0

Earlier I discovered a post on Gizmodo telling me how to download the 2.0 release and manually install it. After a harrowing 30 minutes while I feared I was going to lose my photos and notes, and another 15 minutes syncing all my music & videos, I finally got it all back to where it was. (Note: be sure to back up your phone first. If you manually update it, the backup and restore doesn’t happen. The Backup command has moved to a contextual menu on the iPhone in the left column.)
I grabbed a couple of free iPhone apps, and installed them. Then I bought a few more apps, and when I tried to sync, iTunes reported errors like:

The application "Poker" could not be installed because the application could not be found.

Huh. I figured it was because there was not enough free room, but after deleting The Incredibles and trying again, I kept getting the same error.
I finally decided to power-cycle the phone, and quit & relaunch iTunes. As I write this, I’m watching the sync progress. It seems to be working. Not sure what the actual problem was.

Using dd to write floppy disks on Mac OS X

At work I had the need to write a bootloader directly to a floppy disk. In-house we use dd on Linux to do this, but it was giving me trouble on Mac OS X. I finally figured it out. Here are the instructions I wrote up:
These steps work on Mac OS X 10.5.2. They probably work on earlier versions, too, but I haven't tried it. This works with a TEAC FD-05PUW USB floppy drive that I picked up at Fry's (sometime in 2008-02).
When you plug in the USB floppy and insert a disk, the Finder will mount it on the desktop (if it's formatted) and create a couple of entries in /dev like /dev/disk1 and /dev/rdisk1 (the actual numbers corresponding to the drive will depend on how many other drives are attached. Be sure you're working with the right one!)
You would then be tempted to execute something like the following. Unfortunately, you'll get an error:

$ sudo dd if=redboot-pc/install/bin/redboot.bin of=/dev/disk1
dd: /dev/disk1: Resource busy

If you try using the raw device instead, you get a different error:

$ sudo dd if=redboot.bin of=/dev/rdisk1
dd: /dev/rdisk1: Invalid argument
382+1 records in
382+0 records out
195584 bytes transferred in 41.107951 secs (4758 bytes/sec)

In this case, the file is actually 195936 bytes in length. I'm not sure why it seems to write some of the bytes (I'm not sure it actually even wrote that many).
Using the buffered device (/dev/disk1 is correct, but it's busy because it's mounted by the Finder. If you simply unmount it via the Finder, then all the entries in /dev for the device go away, and you're unable to tell dd what to do. The solution is to unmount the disk using diskutil unmount, which leaves the /dev/disk1 entry in place, and then you can use dd correctly:

$ diskutil unmount /dev/disk1
$ sudo dd if=redboot-pc/install/bin/redboot.bin of=/dev/disk1
382+1 records in
382+1 records out
195936 bytes transferred in 13.345421 secs (14682 bytes/sec)

After that, I think it's safe to just unplug the USB drive, but I'd feel better if I knew how to completely unmount the device before doing so. In any case, the OS didn't complain like it would if a volume were mounted and online.

Update: Time Machine

Feh. Time Machine sucks. After a painful setup process, I left Time Machine to do its thing. I just saw it mount a disk image that it created on the remote volume, so I know that all the speculation about enhancements to AFP (and possibly HFS+) are bunk. If it’s going to create disk images, it could do the same thing on any kind of file server. There’s no excuse for the AEBS not working.
That, I’m sick, and it’s pretty clear Cal’s going to lose to ASU. Fuck, what a shitty weekend.
Update: Feh. Time Machine does not estimate time remaining nor current data rate. I seem to be getting about 28.92 GB/h (over wired gigabit Ethernet).
Update: Time Machine really consumes CPU cycles. When the MBP is idle, the fans are not audible. Since Time Machine has been backing up, they've been continuously audible. The average data transfer rate has dropped to 16.9 GB/h. I have spent a few minutes of the last two hours watching streaming video, and doing a little bit of other work, but mostly it has been running undisturbed. mdimport is also running, not sure why.
Update: The combination of Time Machine and Leopard on the client and server make for some seriously fast network volume mounting! Whereas SuperDuper! takes ages to mount a network volume served by a Buffalo GigaStation NAS (first the volume, then the disk image on that volume, a process that takes several minutes), Time Machine and Leopard get the disk image mounted in seconds. After clicking on the Time Machine icon in the Dock, most of the time spent waiting for time machine to actually engage (with a tip of the hat to Picard) is waiting on the server’s drives to wake up.
I have yet to see how well the whole system does when I sleep the MBP, go to another network, and wake it up again. Maybe I’ll try that this afternoon. For sure I’ll try it when I go to work tomorrow.
One other note: When engaging Time Machine, the network volume does not mount; only the disk image mounts. Not sure how they pull that off, but maybe that’s one of the enhancements to AFP in Leopard. Hardware Growler reports both the server volume and the disk image mounting; just the network volume is hidden from the desktop (even though I have configured things to show mounted volumes).
When Time Machine begins an automatic backup, it does not display the floating progress window. Opening the System Preferencs panel shows a progress bar, though.
Update: Time Machine doesn’t deal well with lost servers. I engaged Time Machine, let it mount the backup volume (disk image), closed the lid on the MBP (it took a minute or more to sleep, but this is not new behavior in Leopard for me), and went to a breakfast place with free WiFi. There, I opened the MBP, saw the Time Machine screen still up, waited for Hardware Growler to indicate that the system had self-assigned an IP address, and then started moving through time. After a bit of back-and-forth, Time Machine appeared to hang (although the starry background animation continued). After several minutes (5 - 10), I decided to force-quit Time Machine. Pressing Command-Option-Escape had no effect, and after pressing it several times, Time Machine suddenly disengaged and there was a server-disconnect dialog on the screen.
Also, during the time that Time Machine was up, a dialog was presented asking if I wanted to join one of a couple of networks, including the free one at at the breakfast place. However, I was unable to click on any of the networks to select them, and hence, was unable to join a network (the window could move, and the “Other…” and “Cancel” buttons worked fine). Feh. Feh.

Time Machine, AirPort Extreme and ZFS

First, the good news. It’s not new news, but it’s still good. Leopard shipped with a read-only implementation of ZFS. To get a beta version of a full read/write ZFS, you need to have an Apple Developer Connection account (the free Online membership is enough). Look in the “Mac OS X” section of the downloads area. I’m using v1.1.
Now, the bad news: you can’t use ZFS storage pools as your Time Machine Backup drive. Sigh. I’m not surprised, but I had hoped. Eventually, it makes sense for Apple to move to ZFS as the default file system, but who knows how long that will take? For the time being, HFS+ (Mac OS Extended) file systems store meta data about files that other file systems can’t handle natively. I suspect this is true of ZFS, too. You can hack your way around these limitations, by simply creating additional files on the system and storing the meta data in there, but that’s ugly. My hope is that Apple will enhance ZFS to support HFS+’s metadata natively, and that will be that.
Time Machine has other limitations, too. I’m not too upset that I can’t yet use ZFS for my backups (so long as Apple fixes this in the next six months or so), but I am upset that I can’t use the AirPort Extreme Base Station as a backup file server. It was said, in the months leading up to the release of Leopard, that Time Machine could back up to the AEBS. In fact, it’s the reason I bought the AEBS: I couldn’t be sure that a non-Apple file server would properly support AFP, and I had it on good authority (Apple) that the AEBS would do the trick.
I can speculate as to why: other Mac backup solutions, like SuperDuper!, create a disk image on the target volume to work around limitations in AFP. Although I’m not certain of the precise limitations, they have to do with file ownership and permissions (for example, a user ID on one system is not necessarily the same as a user ID on another system). From what I understand, Apple has enhanced AFP in Leopard (and by one account, HFS+, or at least the filesystem API) to accommodate the needs of backup software.
So, at the last minute, Apple tells us that you can’t use an AEBS as a backup server, but you can use Personal File Sharing on another machine running 10.5. I have an older PowerBook sitting around, so I decided to buy a FireWire external drive and use that as my backup solution (for now).
I bought a Buffalo DriveStation Duo. I chose it because Fry’s had it (I could get it right now) and I was able to verify that it can operate in JBOD mode. I wanted to try using ZFS first, and if that didn’t work, the DriveStation supports mirroring.
I followed the directions in the Apple ZFS Readme’s Getting Started section. As described in the readme, it was necessary to repartition the drives to use the GUID Partition Table. I had a bit of difficulty with this. The volumes mounted when I first connected it, and I used the Finder to unmount them. I tried to make a ZFS pool before repartitioning, which ZFS did without complaint, and which subsequently caused a new volume to mount. I unmounted that, but attempts to repartition resulted in “resource busy” errors (the other drive repartitioned fine). Disconnecting the entire DriveStation and reconnecting it seemed to fix it.
I built a nice ZFS mirrored pool out of the two drives, shared it via Personal File Sharing, and mounted it on the other Mac. Time Machine refused to recognize it as an acceptable backup volume. I briefly considered making a disk image on the drive and trying that, but decided I disliked that solution enough that I didn't want to use it even if it worked.
Attempting to use the ZFS pool on the local machine also doesn’t work.
The next step was to reconfigure the DriveStation as a mirrored array, with an HFS+ volume format. I tried to do this with the RAIDSetting application from Buffalo, but it failed with complaints about the "The old volume lable [sic] is not valid. Delete volume label by using disk utility.” After half a dozen attempts to repartition the drives as PeeCee drives, I still can’t get RAIDSetting to function without complaint. The front of the DriveStation shows a green #2 and a yellow flashing #1.
Also note: the RAIDSetting app from Buffalo only works on PowerPC Macs. Basically, the Buffalo DriveStation Mac support is crap, and I would recommend strongly against using it (if you want to use their RAID support).
I finally decided to just play through the pain, and ignore the error. It seems to set the drive into the right mode, so we’ll see what happens.
As I write this, I’ve mounted the new, shared HFS+ Backup volume on my MacBook Pro, and Time Machine is “Preparing.” I’ll try to post an update if it works.

Mac OS X 10.5 (Leopard) First Impressions

Well, I've had 10.5 installed for about 24 hours now, and so far, it’s not really worth the money. In day-to-day use (as a developer), none of the new features has yet to significantly impact my life. Sure, windows look a little different, and settings have been rearranged, but so far I don’t feel like I’ve gotten my money’s worth. For reference, I chose to “Upgrade” my system, rather than “Archive & Install.”
A few things are better. The variety of user interface styles has been reduced, and brushed metal is gone, replaced by a nicer-looking gradient (the Menu Bar looks a bit too much like a title bar, and I thought something was wrong with it until I realized it was transparent, and I was seeing the stars in the default desktop image through it).
Xcode has at least one improvement: it shows error messages in the editor window, directly underneath the offending line. It also complains a lot more about implicit conversions from double to float, but I can fix that.
One thing I’m not sure I like is that many standard icons have changed. Some have changed dramatically, like the System Preferences icon (it now looks like the iPhone’s Settings icon), and others have just been modified. These kinds of changes leave insecure users (like my parents) feeling disoriented, and I think they’re generally a bad idea.
One big fix: Apple Mail no longer seems to break long URIs! It has taken three or four major releases (an unacceptable delay to fix a minor, but very annoying, bug), but non-Mail clients can finally use long URIs sent by Mail without having to hand-edit them (Mail used to break them in a way that destroyed the URI for non-Mail clients).
Hardware Growler still works. My ARM development tool chain still seems to work. The Keyspan USA-19HS USB-to-serial adapter still seems to work. The FTDI USB-to-serial IC on the Sparkfun EM406 SiRF III Evaluation Board still works. ZTerm still works!
In the next post, I’ll talk about my experiences with Time Machine, the AirPort Extreme Base Station and ZFS.

iPhone Success!

After help my my good friend on the iTunes team, we determined that my account was still registered as a corporate account, rather than an individual account (iPhone only works with individual accounts). This was the result of me being a customer for more than 10 years.
I called AT&T back, and the CSA very quickly took some action to somehow finalize the conversion of my account from business to individual. Apparently, this final step had not been taken by the previous CSA. As soon as she did that, I was able to activate my phone, and my number ported within the hour (probably faster; I didn’t check it until an hour later).
Thanks to everyone (especially Mike W.!) who helped set this mess straight.
So far, I'm blown away by the phone, but there are some peculiarities. First and foremost, I wish all list views could have entries deleted by gesturing, rather than having to enter edit mode. Perhaps Apple will refine this sort of thing soon.
More to come, I’m sure…

iPhone Activation Woes

Feh. I’m sitting here with my beautiful new iPhone, trying to go through the activation process. iTunes keeps reporting to me how sorry it is that AT&T has determined that my current account cannot be used with the iPhone. It provided me a number to call, or offered me the option of creating a new account, which is really not what I want to do. I’m sitting on hold with a very kind Canadian customer service agent for AT&T.
Apparently I am on a promotional rate plan that is incompatible with the notion that all existing Cingular/AT&T customers can upgrade to iPhone. Okay, fine, after several attempts, he was able to switch me to a non-promotional plan.
Then, it turns out, my account is a business account. This is very strange. I’ve never asked for a business account. I’ve had my Cingular (the new AT&T) service since it was called Pacific Bell Mobile Services. Not once have I ever been told I had a business account. I’ve always used the “personal” account avenues when contacting Cingular (personal account contact numbers, the personal account link on the web page, etc.)
So, the poor Canadian CSA is waiting on hold with the AT&T business account division to convert my business account into a personal account, which should then allow me to activate my iPhone. Apparently the benefit of having a business account is that only a poorly staffed call center can handle your specific issues.

Waiting in Line

I’m in line, as I write this, waiting to buy an iPhone. Yesterday I bought a 3G ExpressCard for my MBP, and discovered that it doesn't work very well. I gave it to my buddy Mike to use, and he’s sharing the internet connection over WiFi (it seems to work much better for him).
A while ago one of the store employees came out (this was after a FedEx delivery at about 1300) and said, “I can’t reveal specific inventory levels, but all of you,” as he gestured to the whole line, "will be getting an iPhone."


It’s now 1428. Less than four hours to go…
Update (1438): I’ve just plugged the MBP into my buddy’s Vector Power Supply. Among other things, it includes a 200 W power inverter.

New AirPort Extreme base station

Well, I just finished installing my new AirPort Extreme base station. This is the one shaped like a Mac mini. The new software is very nice. They added the client signal strength graph feature, something that used to be there, then wasn't, and is now back again. They've also added link status lights to the ports on the back (although no indication of connection speed).

There were a couple of things that caused a fair amount of difficulty. One was that the new admin software has been renamed. The old one was called "AirPort Admin Utility." Thew new one is "AirPort Utility." I kept trying to upgrade my software before I realized the difference. When I was on the phone with Apple tech support, the agent told me this was a frequent source of confusion.

The other problem I had was that Comcast's cable modem seems to not assign a DHCP address to a new MAC address without being rebooted (this is what initiated the aforementioned support call). The AEBS behaves as if it can't get a DHCP address from Comcast, which is exactly what's wrong. The fix (in my case) is to unplug the cable modem for 30 seconds or so, and plug it back in. (Note: the Apple support agent wanted me to unplug it for 5 minutes, but I told him I'd try 30 seconds first—it worked).

I have yet to hook up a drive, the whole reason for getting it in the first place. I want to find out if they've improved AFP enough to where applications like SuperDuper! can back up over the network without needing to create a disk image first.

Now, to get an MBP with 802.11n networking in it...

Carbon Application Development in D

D is a very nice programming language by Walter Bright. Carbon is a very nice API for developing Mac OS X applications. I wanted to develop Carbon applications in D, so I created an open source project to let others do the same. Please check out Darbon, and let me know what you think!

This is what I want next: iPhone

This is the best phone ever, and I want one. The Apple iPhone.

Followup: MacBook Pro Kernel Panic with External Monitor

Some time ago I wrote about how my shiny new MacBookPro crashes whenever I plug in an external monitor. Turns out, Apple displays don't make it crash.
I wrote a bug about it, and Apple responded well. They gave me a tool to use to record information about the monitor.
Interestingly, I no longer have privileges to read or append to the bug I originated, and neither does my friend at Apple. I finally wrote a new bug referencing the old one to try to get some info, but it's been four months (and a few updates) without a fix.
Also, I'm on my third MBP since then, and it still crashes, so I'm fairly certain it wasn't a hardware defect (but it could be a hardware design flaw).


There are some cool things coming in Leopard (Apple's newest version of OS X). I recommend you take the time to watch the Keynote Address. As usual, there's a bunch of eye candy/fluff in Leopard, and it'll be interesting to see if they fix any of the numerous bugs that have been around since day one.


So, they've added a bunch of wizzy stuff in Mail that I could care less about. The ToDo thing might be cool; we'll see. I really want to know if they fixed the URL-splitting bug. My insider friend tells me that bug is fixed in Leopard, but it wasn't mentioned in the keynote (had it been, it would've received the loudest applause).


There's tons more cool shit. Watch the video.

Neat Scrolling Trackpad Tricks

So, if you use the index fingers on opposite hands, and put them far apart on the trackpad, you can hold one still and move the other and watch things scroll (sort of). Sometimes it helps to make initial contact with the trackpad simultaneously. If you move one up and the other down, they can cancel each other out.

Cinema Display Seems to Work

I just tried plugging in my 22" ADC Cinema Display (via an Apple DVI-to-ADC adapter), and it did not cause a kernel panic as did the Princeton LCD19D monitor. Hopefully, the school projectors will work, too, or I'm screwed.

MacBook Pro Kernel Panic with External Monitor


Wow. I keep finding more things wrong with this Intel machine. Now, if I plug in an external monitor (something I had not yet tried at home with my Cinema Display, but which I just tried now with a Princeton LCD19D flat panel display), I get a kernel panic. If an external monitor is plugged in when I reboot, I get a kernel panic. I've sent the crash report to Apple, but who knows if anyone will ever see it? Meanwhile, I'm now stuck without being able to use my big screens.
Here's the crash reporter info and the unfriendly message I sent along with it to Apple (I have no tolerance for crap like this):

panic(cpu 0 caller 0x0019CAEF): Unresolved kernel trap (CPU 0, Type 0=divide error), registers:
CR0: 0x80010033, CR2: 0x934ecd4c, CR3: 0x00d54000, CR4: 0x000006e0
EAX: 0x0000013c, EBX: 0x00000000, ECX: 0x13cfb6fc, EDX: 0x00000000
ESP: 0x13cfb60c, EBP: 0x13cfb6d8, ESI: 0x00000000, EDI: 0x00000000
EFL: 0x00010247, EIP: 0x0071aa44, CS: 0x00000008, DS: 0x13cf0010
Backtrace, Format - Frame : Return Address (4 potential args on stack)
0x13cfb4d8 : 0x128b5e (0x3bbeb8 0x13cfb4fc 0x131bbc 0x0)
0x13cfb518 : 0x19caef (0x3c1340 0x0 0x0 0x3c1028)
0x13cfb5c8 : 0x197b53 (0x13cfb5dc 0x13cfb6d8 0x71aa44 0x710048)
0x13cfb5d4 : 0x71aa44 (0x710048 0x122f0010 0x10 0x13cf0010)
0x13cfb6d8 : 0x71b089 (0x122fe000 0x0 0x0 0x20)
0x13cfb728 : 0x706739 (0x122fe000 0x1 0x10 0x20)
0x13cfb838 : 0x7082df (0x122fe000 0x13cfb8a8 0x4 0x0)
0x13cfb938 : 0x70ca59 (0x122fe000 0x4 0x0 0x0)
0x13cfb988 : 0x70baba (0x122fe000 0x4 0x8000000 0x10000000)
0x13cfb9a8 : 0x70c722 (0x122fe000 0x1fff 0x1fff 0x0)
0x13cfba08 : 0x702087 (0x122fe000 0x1 0x13cfba48 0x140774)
0x13cfba38 : 0x700aa3 (0x13cfbbce 0x122fe000 0x13cfba68 0x18)
0x13cfba78 : 0x70152e (0x122fe000 0x13cfbb98 0x281b9c4 0x284f8e0)
0x13cfba98 : 0x701681 (0x122fe000 0x13cfbb98 0x13cfbab8 0x19cb02)
0x13cfbad8 : 0x72002d (0x122fe000 0x0 0x13cfbb98 0x13cfbb98)
0x13cfbb68 : 0x596e28 (0x28d4800 0x13cfbb98 0x13cfbb98 0x85) Backtrace continues...
Kernel loadable modules in backtrace (with dependencies):
dependency: com.apple.iokit.IOGraphicsFamily(1.4.3)@0x574000
dependency: com.apple.iokit.IONDRVSupport(1.4.3)@0x58f000
dependency: com.apple.iokit.IOPCIFamily(2.0)@0x565000
dependency: com.apple.iokit.IOGraphicsFamily(1.4.3)@0x574000
Kernel version:
Darwin Kernel Version 8.6.1: Tue Mar 7 16:55:45 PST 2006; root:xnu-792.9.22.obj~1/RELEASE_I386
Model: MacBookPro1,1, BootROM MBP11.0044.B02, 2 processors, Intel Core Duo, 2 GHz, 1 GB
Graphics: ATI Radeon X1600, ATY,RadeonX1600, PCIe, 256 MB
Memory Module: DIMM1/BANK 1, 1 GB, DDR2 SDRAM, 667 MHz
AirPort: spairport_wireless_card_type_airport_extreme (0x168C, 0x86), 0.1.17
Bluetooth: Version 1.7.3f4, 2 service, 1 devices, 1 incoming serial ports
Serial ATA Device: ST9100824AS, 93.16 GB
Parallel ATA Device: MATSHITADVD-R UJ-857
USB Device: Built-in iSight, Micron, Up to 480 Mb/sec, 500 mA
USB Device: Apple Internal Keyboard / Trackpad, Apple Computer, Up to 12 Mb/sec, 500 mA
USB Device: IR Receiver, Apple Computer, Inc., Up to 12 Mb/sec, 500 mA
USB Device: Bluetooth HCI, Up to 12 Mb/sec, 500 mA
How fucking charming. A 100% reproducible kernel panic if I plug in an external monitor. Is my brand-fucking-new MacBook Pro a fucking lemon? Does its external video hardware cause a kernel panic, or is it crappy software? I know you guys never seem to develop while regularly swiching monitor configurations, maybe no one there ever bothered to plug in an external monitor? Fuck.
If I plug in a monitor after boot, or if I have it plugged in during boot, the machine kernel panics.
And crashreporter's "Send to Apple" button is disable when there's no network connection, but there's nothing in the dialog to indicate this is why. It took me 10 minutes of wondering how I was gonna get this info sent to Apple to realize I had not yet gotten on the wireless network here at work (because the crappy Migration Assistant failed to migrate any of my preferred networks' information over).

MacBook Pro Sleep Seems to Have Issues

I decided to run my battery down to do the calibration as suggested in the MBP manual. I got one warning about imminent sleep, and dismissed it. As I was copying a folder, the Mac went into forced sleep right in the middle of playing the "copy complete" sound. It repeated this sound a half-dozen times before the system finally went to sleep.
It darkened the screen, the little white LED came up dully (as it does when the screen's asleep), and then eventually it went into full sleep mode.
I tapped the shift key, to make sure it was really asleep. On my PowerPC AlPB, this is ignored. On this machine, it woke right up. I used it for a few more minutes, and then it completely shut down losing anything I had not yet saved. This was pretty bad.
I've now launched XBattery and plugged it in. Let's see if it gives us any more juice. Currently: 5419 mAh capacity, 3 cycles.

More Migration Difficulties

I reinstalled the OS (via "Erase and Install", removing unneeded languages, printer drivers and apps), completed the Setup Assistant without migrating. Then I allowed Software Update to run, updating to 10.4.6, and updating 9 other apps. Finally I ran Migration Assistant again, and it ran into the same problem: Apparently I have more than 60 million gigabytes of data in my home directory.
I'm currently on the phone with Apple support, but I am not hopeful that they'll resolve this issue (update: nope).
I tried before to remove all of my movies & images, but I had left music and sources from work in there. Maybe I should remove all four of those and try again. Here goes...

Cingular GPRS and Mac OS X

I just subscribed to the $20/mo, 10 MB/mo plan that Cingular offers. Unfortunately, while you can use your cell phone to subscribe, and they can give you all the information you need (although it's like pulling teeth to get Mac info...like so many others, they only officially support Windoze), you can't download the necessary modem script to enable the whole thing to work.
They recommend you download GPRS Script Generator, which requires that you pay the $10 shareware fee before you can generate the necessary script. Fortunately, a very quick search on Google turned up an article on how to configure the Mac for Cingular Motorola use. It provides a modem script that seems to work well.
I have a RAZR V3, and I modified the script to connect at 115200 bps (rather than the default 57600). It worked great!
This is all temporary, of course, 'till I get my 3G card. We'll see how smoothly that goes...

Apple Ordering Problems

I ordered a Mighty Mouse last Thursday, after much anguish trying to determine if it was suitable. No Apple store had it in stock, and few even had it on display (both of which I consider egregious errors on Apple's part).
So, I finally placed an order via the online store on Thu 8/4. At this point, they're estimating 2-4 days delivery (it was same day/one day). I get an order confirmation, and forget about it for a couple days. I go to check status during the weekend, and the system is "down for scheduled maintenance."
I check order status today, only to discover that the order has been canceled. So, I call, and after speaking to three different people, learn that due to a prior fraudulent order using my credit card, I can no longer use that card with Apple's online store.
Back in April, I received an order confirmation email for a new PowerBook. Now, I never placed this order, so I called Apple. They quickly canceled the order, but my card was never charged (AFAIK). I tend to use a debit card with a $1000 daily limit, so there's no way for something as expensive as a PowerBook to have been purchased.
At no time, did Apple inform me that my card was flagged and could never be used again. Nor did they inform me when my Mighty Mouse order was canceled, nor did they inform me that the card was invalid when I placed the Might Mouse order.
And, to top it all off, the Mighty Mouse delivery estimate is now 7-10 days. While the fraud supervisor was gracious enough to approve this order and give me free overnight shipping, and he made it a "replacement" order, which apparently increases one's priority a bit, he could not really do anything to make up for Apple's incredible lack of communication.
Much of this could've been avoided, of course, if Apple had just shipped 200 mice to each store instead of 20. If they were trying to keep it under wraps, they could've ensured that a subsequent larger shipment arrived a couple of days later, rather than leaving everyone hanging.
But really, why make such an effort to keep it a secret? Who the fuck cares if we learn that Apple is going to ship a new mouse? How could it possibly affect anything about Apple's business? I'm not suggesting a six-month-early leak. But a week or two would not give anyone any kind of competitive advantage, and might have kept a few people from buying competing mouse products in anticipation. Instead, Apple has probably driven away frustrated customers.
In any case, secrecy on this product was not so important that Apple couldn't have shipped more units.

TextWrangler & BBEdit as External Editor

I use tools like Perforce and Subversion on a daily basis. I'm a Mac user at heart, and I hate tools like vi and emacs. However, Perforce and Subversion both use external editors like vi and emacs to allow the user to change things, namely checkin comments.
Well, BareBones Software has a pretty decent little text editor called "Text Wrangler" that comes with a command-line utility edit to make it easy to use TextWrangler from the command line (they also make BBEdit, TextWrangler's commercial big cousin). Invoking edit (use "bbedit" when working with BBEdit) all by itself launches TextWrangler. Specify a file name and TextWrangler opens that file, allowing you to edit it with a proper Macintosh user experience.
But, edit can do much more, including this: if you invoke edit -w <file>, it will open that file in TextWrangler, and block until you close the window! (I've tried this before using Apple's open -a command, but it immediately returns, making it useless.) This means you can use edit -w in the external editor configurations in Perforce and Subversion. And, if you add --resume to it, it will return to the Terminal.app after you're done editing. This may not seem like much, but it's more than any other non-CLI Macintosh text editor has been able to do.
Note: Chris Cotton tells me that TextMate also supports this usage.
Basic configuration for most UNIX tools is to set the $EDITOR environment variables (like this in bash:

EDITOR=edit -w --resume
export EDITOR

Read on for alternative information on how configure these tools.

To configure an external editor for Perforce, you can also set the $P4EDITOR environment variable.
To configure the external editor for Subversion, modify your ~/.subversion/config file to include this line:

editor-cmd = edit -w --resume

See the Subversion Book for more information on setting external editors.

Why Intel is Bad for Apple

Speculation hit the fan a few days ago when CNet (and WSJ?) reported that Apple would end its partnership with IBM and Motorola, and switch from using the PowerPC to using the Intel x86 architecture (I had heard the rumor even earlier through some old friends). Knowing this is almost meaningless, because there are so many details missing. For example, will Apple simply start manufacturing x86 computers that can run Mac OS X or (shudder) Windows? Does that mean that Mac OS X would run on any x86 PC?

This just in: the rumor is true.

Almost certainly not. Despite soaring sales of iPods, Apple's income comes almost entirely from the sale of Macintosh hardware. Releasing Mac OS X for x86 would kill their Macintosh hardware sales, because very few people would continue to go to Apple when they could get machines elsewhere for much less. I don't see any way Apple can make the switch without a significant drop in income.

But that's not the real problem. Apple could still make x86-based hardware that runs Windows, but allow Mac OS X to run only on their hardware. This would piss people off, but it's completely feasible (I'll post another entry about how sucky it will be for loyal Mac users to switch to x86 hardware).

The real problem is much more complex and subtle. And at first blush, doesn't sound like a problem. It sounds like a windfall for Mac users. Try to follow along.

Picture this: Apple makes the switch to Intel-based hardware. Mac OS 10.5 is released and runs flawlessly on it. All of your favorite apps release updates (never mind that these will be expensive upgrades, not maintenance releases), even Metrowerks. Then, using the knowledge gained from the 68K-PowerPC migration and a clever adaptation of WINE (an open-source implementation of the Win32 API), Apple adds the most significant feature: the ability to double-click a Windows application and run it on your Macintosh. No Virtual PC, no separate environment, no Start menu.

It's not that big a stretch. The windows might even look like Aqua windows. No doubt it would be a boon to Mac users, and would remove serious hurdles to Mac adoption across all market segments.

Mac users would notice a difference. See, Windows applications generally suck. While Apple could put the window close box in the right place, the OK and Cancel buttons would always be backward. Text selection in fields would be different (although Mac OS X kinda broke that anyway). Pressing the Tab key would tab through all of your controls, regardless of your system settings (although maybe some apps could be made to respect those settings). In many cases, menu shortcuts would require that you use the control key, not the Command key, to access them (no, you would not simply be able to replace "ctrl" with "command" inside WINE…for many reasons I can't get into here). I could write an entire article about differences between Mac and Windows apps, pointing out the real reasons why Windows is inferior to Mac OS. But I think most of you understand this. The Windows UI is fundamentally different from that of the Mac.

OK, so you say to yourself, so what? I've had to run VPC for years, I'm used to that. It's only in the one app I have to use, but now I can have it run fast? Sign me up! This is a perfectly understandable reaction. There's no reason a Windows app couldn't run at nearly the full speed of its Windows XP counterpart (there would be some overhead mapping I/O to the Mac OS, but not much; double-buffering windows takes time).

Now imagine you're a software developer making an application for both Mac and Windows. Your Mac customers comprise, generously, 15% of your market share (you've got more competition in the WIntel market). In reality, it costs you to work on the Mac version enough that your Mac margins are pretty slim, but it's still more income overall.

All of a sudden, Mac OS X/x86 is released with WINE. It doesn't take you long to realize that you will lose only a few of your Mac customers if you drop the Mac version of your product, because now they can run the Windows version just as easily. Sure, it'll take a year, maybe two, for Apple's base of Intel users to grow enough. But the old version of your app will still be available for your Mac customers who don't switch.

But you'll save so much money on development! Now all you have to do is make sure each new version of your Windows app runs on Mac OS X/Intel! And you won't have all of the marketing costs associated with delivering multiple versions of your app. What a boon!

If this sounds alarmist, it's because I haven't explained it well enough. (I have to get back to work, and I've already spent too much time writing this.) But think it through. Software developers who've made Windows and Mac OS versions of their applications will inevitably drop their Mac efforts. It's in their bests interests. Most people don't care enough to do more than grumble. They need the functionality, hamstrung as it is, to do their work. They will continue to pay for the application, especially because they can run it reasonably well. Mac-only developers will rarely, if ever, be able to profitably compete with established Windows applications. The growing momentum to provide Mac versions of applications will stop dead in its tracks.

It may take a few years, but you will slowly see the erosion of the Mac into an elegant OS for launching crappy apps.

And how long after that will once-loyal Mac users simply switch? There are so many more hardware choices in the WIntel world. Apple can never allow Mac OS X to run on that hardware, so we users won't see that benefit if we stick to the Mac. And once all our important applications are available only in their Windows flavors, what's to keep us using the Mac? Safari? Mail? iMovie? Sure, there will be some who stick around, like those who use FInal Cut Pro 90% of the time. But most of us? What would be left?

All of this is predicated on developing an architecture that allows Mac users to "painlessly" run Windows applications. Does anyone believe that will never happen?

The move is certainly bad for us. Within a few short years, we will lose many of our native Mac applications. But within a decade, it will be bad for Apple, too, as users abandon a platform that's lost all its advantages.

Mac OS X 10.4 "Tiger" First Impressions

Okay. I've been running Tiger now for about 24 hours. Rather than work on my CS184 final project, I'll tell you a little about my experiences. This isn't terribly well organized, but I want to write things down before I forget them.

In a nutshell: there were some frightening hiccups along the way, and some bizarre behavior by the Spotlight indexer, but it all seems to be working fairly well now.


First off, I'd like to express my displeasure that while Apple has labored to create wonderful new features and eye candy, they still have not fixed small nagging bugs. For example, auto-scroll in list view in the Finder (and other apps) still does not work. There are also things that Apple refuses to fix, claiming they are by design: you still cannot let go of a scroll bar, and single-line edit fields have a broken selection model (someday I'll post a detailed analysis of why it's broken, and why the Mac OS 9 model is superior).

Before I complain too much, I'd like to point out that Spotlight is a pretty nice feature.


First hiccup: when I was updating my system (I chose to update, rather than "archive and install" or "clean install"), I was unable to deselect any of the additional languages. My very smart friend at Apple suggested that was because I was doing an update, and perhaps the existing system already had those languages installed. While that may be, an app should not provide me with an enabled checkbox and then not let me check it, and it should provide explanations.


I had PGP 8.0.10 installed, and the Mail plugin is horribly incompatible. This is not the first time PGP broke Mail, but it took my very smart friend to suggest it. After laboring to find the plugin, I removed it, and Mail worked again. Mail is much faster at some things, like deleting a bunch of messages. They also added the option to bold a message line if it was unread. But there are still many annoying quirks to Mail: it still breaks long URIs (I've heard the team is very sorry, that this fix just didn't make it, but is scheduled for an upcoming update; nevertheless, it's a pretty big bug, as it affects everyone who receives long URIs sent from Mail and who does not use Mail). Mail has other problems, too. In general, though, it seems to be faster. Note that Mail now stores each message as a separate file, so that Spotlight can index it well. Hopefully this won't overburden the file system. If it doesn't, then this will bring many improvements, not the least of which are improved robustness and more efficient backup (you don't have to back up your whole email store just because one new message arrived).

There's a PGP update coming someday.


This is the only feature, so far, that really pleases me. It has a robust, C-like query language, and seems reasonably fast. On my 60+ GB of data, the indices take up less than 1 GB.

When you first install, Spotlight must index your drive. After that, the file system updates the index every time a file is written. My very smart friend assures me that this is fast, and doesn't impact performance.

At first, Spotlight estimated 35 hours to index my drive. After a while, that went down to a couple of hours. Then, suddenly, it was done. I was able to search for a few things. Then, it was back to indexing. Then it was done. Then it indexed some more. All very bizarre, but in the end, it seems to have my disk indexed.

I've already created a smart folder that searches the Mac OS X 10.4 SDK (another good new addition: separate SDKs for separate OS versions) to find stuff in header files (suggested by my very smart friend).

CodeWarrior 9.0

That CS184 final project I'm avoiding? At first it wouldn't build after I installed Tiger. So I created a new project from stationery, and removed an #include <unistd.h>. Some experts on a list suggested that I didn't have the latest CW update installed, and they may be right. But that same list also had some traffic recently about the update breaking other headers in Tiger, so I'm reluctant to install it. At least I got my project compiling, and I don't really need getopt().

Since Apple keeps usurping command-key equivalents, I've moved my "find header file" key to be Command-Option-`. For some reason that no longer works, but I can't figure out who owns it.

Adium X

I use Adium X for chat, so I won't get to enjoy the new iChat very much. The only problem I've experienced so far with Adium X is that my iChat sound set broke. This is because it used Aliases to refer to the original iChat sounds, so I had to do some manual fixing to get it to work. It's almost where it was, but the new iChat seems to be missing the "1st IM" sound it used to have.


Autoscroll in list view still broken, but FS notifications are finally hooked up, so files should update instantly (rather than you having to deactivate and reactive the window).

Why Apple Fucked Up with Aliases

Aliases used to be this thing in the Mac OS, prior to Mac OS X, that allowed applications to remember where a file was located. More importantly, if you moved that file, the application could still find it. They worked across network volumes, too, automatically mounting a volume if necessary.
With Mac OS X, Apple recommends that an application store URLs to reference files. The problem with URLs is that they are just fancy pathnames to files, so if you move or rename a file, they break. To be fair, I've seen documentation that suggests CFURLRefs should be used only for transient storage of a file reference, but this gets abused across the board.
Safari's downloads window, for example, is guilty of this. Try donwloading something, moving it, and then finding it via the download window. You can't. And Apple puts the blame on the user by popping up a message saying, "Safari can’t show the file 'foo.pdf' in the Finder because it moved since you downloaded it."
Fuck you, Apple. So what if it moved? You can find it, almost always. You had tried and true, superior technology, and when you shitcanned or otherwise drove out all the true Macintosh engineers, replacing them with NeXT Unix weenies, you got rid of that good technology. Everyone knows engineers brought up on Unix are lazy, and don't give a rat's ass about the user. Well, that attitude shows through in Mac OS X.


I've created a Delicious Library-to-HTML converter. It's very raw, but it gets the basic task done. I'll try to avoid schoolwork by continuing to improve on it over the weekend.

Followup: Safari Pauses

Some time ago I posted an entry about how Safari always pauses for interminable periods of time. I found a reasonable, although not ideal, solution.
At least one possible cause for the delays is Safari poring over its cache of form field completions. If you uncheck the "other forms" in this preference panel, you can avoid that searching.

Followup: Brother MFC-8840DN

A while back posted an entry about my Brother multifunction laser printer. In it I mentioned that 20-lb 3-hole paper almost always jammed, but that 24-lb paper worked. Well that wasn't quite true. 24-lb paper works about 70% of the time, but still jams far too frequently.
The longer I own this printer, the more and more disappointed I am with it. I could care less about the fax and scanner if the printer doesn't meet all my needs. It's painfully slow (at least compared to the HP 2300N at work), and often times can't print.
For example, printing AMC theaters movie listings from Safari results in a command syntax error. Printing the same page to a PDF file and then printing also does not work.

Safari Pauses

What is going on with Safari constantly SPODing on me? Almost every page that loads then requires a few seconds of SPOD before I can type (or finish typing) in a form field, or click on a link…what is this?
My guess is that it happens because Safari is looking in its enormous history of Things I May Have Typed Into a Form Field at One Time or Another. This is really annoying. The operation needs to be done in a separate MP task, certainly. More importantly, a much better algorithm/data structure needs to be implemented to avoid such incredibly long waits. (This rant assumes, of course, that it’s this search through some history that’s causing the problem).
I'll post a solution here if I find one.

OS X Still Sucks in So Many Ways

I just recently came across this message in the Finder when I tried to rename a running application:

Are you sure you want to change the name of <appname> while it is open?

Changing the name of an application while it's open may cause problems with the application.

This is caused by the same problem experienced in ScreenSaver: if you change the name of, or move, the folder of pictures to which ScreenSaver is pointing, it will lose track of it.
Both of these problems happen because Mac OS X dicourages the use of Aliases, system-standard data structures for referring to file system objects. Instead, applications are encouraged to use path names. The problem with a path name is that it’s fragile: if you move the item or change its name or the name of any of it’s enclosing directories, an extant path no longer points to that item.

Because Mac OS X encourages the use of pathnames in applications as references to files (via CFURLRef, among other mechanisms), applications are very likely to store these paths, despite the occasional feeble warning against doing so.
Now, it’s one thing for an individual application to make this mistake, but for Apple to endorse this behavior by warning users that they shouldn’t change the name of running applications, rather than letting those applications break. Instead of forcing applications to do the right thing (store file system item references with Aliases, not paths), they make the user wrong by preventing (or at least discouraging) him from changing the name of a file.
Related to this is OS X’s emphasis of filename extension as the way to identify a file’s type. The filename is for use by the user, and the OS’s use of it should not impose any restrictions on what the file name can be.
In the case of filename extensions, Apple has gone to great lengths to try to hide the extension from the user. They still use a string of bytes to store an ID representing the file type, but what they’ve done is move the storage of those bytes on disk from a tidy, dedicated location to the end of the filename, where it gets in the way of the user. Though the hide it, it’s easy to get into situations where the user is either warned about changing the file extension (exposing it), or they inadvertently change the represented file type (without changing the underlying bytes). Bad, bad move, Apple.
It’s just another indication of how Apple has lost sight of what it takes to make a great OS: the details (to get really nit-picky, notice that the error message uses a single straight quote, instead of an apostrophe. It&rquo;s possible it just looks straight given the rendering). Ever since NeXT engineers crowded out Apple engineers, this has been the case.

AirPort & USB Problems with AlPB and Panther

I love my new 15" Aluminum PowerBook G4 (1.25 GHz, backlit keyboard, SuperDrive) very much (many thanks to my facilitator at Apple who helped make it a reality). It’s mechanically much more sturdy than was my TiPB, the fan runs almost never, and the backlight works (which is why I replaced my otherwise fine TiPB). I also think Panther (10.3.1, build 7C107) is a huge improvement over Jaguar.
However, I’m starting to have serious problems, and I don’t know how much of it to blame on Panther and how much to blame on the new hardware.
It started yesterday or the day before, when I restarted (I can’t remember why) and all of sudden my separate keyboard and mouse stopped working (I typically connect the PowerBook to my 22" Cinema Display which has a black/clear Apple keyboard and mouse connected to it). I have an Apple ADC adapter which is normally plugged into the DVI port and the USB port on the right side of the PB.
The USB devices had no effect on the UI, and the mouse light was dark. After a bit of unplugging and re-plugging, I discovered that if I plugged the mouse directly into the port on the left, everything came back, and I could plug the mouse back into the Cinema Display.
BTW—I’ve noticed that unplugging or plugging in a USB device causes a sleeping PowerBook to wake. I understand this to be a problem other PowerBook/Panther users are experiencing, and not just on AlPBs.
I came into work this afternoon, plugged everything in and opened the lid on the PowerBook. Everything came up fine. I read through the day’s mail (Mail), checked to see who was online (Adium), listed my bugs (IE; normally I use Safari, but Bugzilla doesn’t work quite right with it), and then headed for lunch with the group. When I came back, both screens were dark, and hitting keys on either keyboard failed to wake the machine (this is the kind of problem I’d been having on my TiPB prior to Panther).
So, I held the power button until the PB shut off, pressed it to start it up, and ran into the same USB problems described above, but slightly different. Before, the mouse’s light would not come. This time, the light was on, but the mouse had no effect. I unplugged it and plugged it back in to the Cinema Display, but now the light was off for good. I finally discovered that I had to plug the ADC adapter into the left-hand USB port to get those devices to work at all, but they still had no effect on the UI (although the mouse’s light would at least come on).
Apple System Profiler shows two USB roots. Nothing under the first, a hub under the second, a hub under that, and an Apple Optical Mouse under that.
Now, here’s where it gets much worse: the PowerBook thinks there’s no BlueTooth and no AirPort! They’re not off, they’re simply not installed!
So I restarted a couple of times throughout all of this, trying various things (e.g., I removed the Cinema Display from the mix altogether). The PB now recognizes that there is BlueTooth hardware, but refuses to see the AirPort card. And no amount of restarting or USB device permutations seems to make USB work. I just tried plugging the mouse directly into the left port, and the light comes on feebly (just sort of flickers, and not in the way it does when you move the mouse and it gets brighter), but the cursor won’t move.
At this point, I’m at a loss. I’m writing this entry using the PB’s own keyboard and mouse, and hopefully that will hold out so I can get some work done today.
Oh, one more issue: I got into a situation a couple nights ago where the keyboard backlight refused to come on (or be adjusted). The room I was in was very dark. I had to restart to get it straightened out.

I hate Cocoa

I’m getting so tired of hearing people say things like “our product for Mac OS X features a completely new Cocoa-based user interface to take maximum advantage of Apple’s new operating system.” Cocoa does not give an application any superiority over Carbon. Cocoa is not more stable, nor does it perform better. It doesn’t even really make life any easier on the developer.
But people continue to buy into the hype, and then regurgitate it on their customers.

Panther & Office X

Here’s a hint for those of you upgrading to Panther. I just tried running Office X for the first time since installing Panther, and Word kept crashing. After a little investigating, I realized that (for some reason I don’t remember), I had Office X 10.0.0. After applying three updaters, Office X 10.1.5 seems to work fine.


Panther Rocks

Yes, I'm special. I've got Panther. Not a pre-release, the actual GM. Weeks early, no less.
I must say, it really rocks. So many improvements, so many things I've been waiting.
Although you still can't let go of scrollbars.
More to come...

Launch Services Cache Corruption

In the first what is sure to be an ongoing series of entries on how Mac OS X sucks, I’ll describe an issue I came across recently and how I solved it.
Yesterday I restarted my PowerBook (which is running Mac OS X 10.2.6) and found that I could not log in. The login dialog would appear, it would go through the motions, then disappear, then finally reappear.
I suspected that something early in the login process was crashing so hard it was taking down the login process itself. After a couple hours of snooping, and some luck (I was able to ssh in from another machine and watch the system log report the crashes), I discovered that Launch Services’ cache was corrupted, and was causing lsregister to seg fault. Removing that file (/Library/Caches/com.apple.LaunchServices.LocalCache.csstore) allowed login to proceed normally.
Update (2009-03-10): Thanks to this post, I now know that the filenames have changed in more recent OS releases. Launch Services caches information per-user, in files of the form com.apple.LaunchServices-023<uid>.csstore, where <uid> should be replaced with the user ID of the user with which you're having trouble (my default user ID was 501).

New MSN for Mac OS X

Folks, I don’t work for Microsoft. I can’t help you get MSN for the Mac. You should dump any friends you have that insist on using it, anyway.

Tantek mentions a new Tasman rendering engine in his log, with promises of speed and bug fixes.
I ask, “When will we see this update in IE/Mac?“ I simply have no desire to use MSN, but I’d sure like to see fixes to IE. I also wonder if there are stability enhancements.
Maybe MSN is IE. It’s not in Software Update yet, though.