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

My Gorram Frakking Blog

I got in!

Finally! Woo-hoo! Awesome! My application to transfer from U.C. Berkeley's College of Letters and Science into the College of Engineering was accepted.

Interestingly, they wanted me to accept the admission (like I'm going to say "no"...)!

Nice to know NASA's well on its way to stupidity

In this Reuters article, NASA's new administrator talks about how we won't get to the moon 'til 2015 at the earliest, and that that mission will likely be followed by a multinational space station on the moon.

There's nothing on the moon worth the money and the time. It would make much more sense to go straight to Mars, skipping the Moon entirely. We could land humans on Mars by 2015, and have a regular rotating mission every two years, for about a tenth of the cost of the proposed Moon missions.

Bush fucks everything up.

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.

.xxx Will Never Work as Intended

ICANN has finally approved .xxx as a top-level domain. Unfortunately, according to one article, the strictly volunteer use will never encompass the majority of porn sites because ICN, the group responsible for administering the TLD, is going to impose rules about where and how a porn site may operate. Not only that, but domain names will cost significantly more than .com domain names do today:

The new domain will cost less than $100 and will be available to registrants willing to adhere to the predetermined best business practices.

There will remain countless porn sites in the .com TLD, dramatically reducing any "save the children" benefit that proponents claim the new domain provides.

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.

Specifics

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.

Installation

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.

Mail

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.

Spotlight

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.

Finder

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).