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

My Gorram Frakking Blog

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

Windoze Sucks

What a bunch of assmasters the people in Redmond are. According to David Kirkpatrick's article, Jim Allchin, some cheesehead at Microsoft, says Longhorn will be much better than previous versions of windows. At the start of the article, he (Kirkaptrick) writes "Jim Allchin, Microsoft's group vice president for platforms, looked at my Apple PowerBook and smugly pointed out that the number of copies of Windows sold this year will be more than all the Macintosh computers used worldwide." And he's proud of that fact!

So what? So what if your company is so big it can cram its product down the throats of millions of unaware customers. So fucking what? All the things Longhorn supposedly will do (like automatically reconfigure its network settings when you move from office to home), Mac OS X (even with its sucky-assness compared to OS 9) has been able to do for years. "If you put in a DVD, the volume will automatically adjust and the video will just start playing full screen"? This is a feature? With its armies of engineers (and a year and a half to go), this is the best fucky Microsoft could come up with after decades of stealing other's ideas? Losers.

"Longhorn will automatically clean up, or defragment, your hard drive, if it is required." Whoopdie-fuckin' do. Mac OS X's filesystem rarely requires defragmenting. But my old housemates shitty home theater PC choked on its own excrement if he did defragment daily.

Longhorn will show me the first page of a document instead of an icon? BFD. Been there, done that. I can put the same file in multiple places on my drive? Been there, done that.

"Microsofts research shows that the average corporate employee spends about 20% of her time on the PC simply looking for items." That's because Microsoft has never encouraged any sense of consistency among its legions of third-party developers, and because Windows' window management is piss poor, at best. No wonder people have a hard time finding things on windows. It's a direct result of the design of the UI. (More like LI…"loser interface").

Allchin talked about an upcoming 64-bit release of Windoze. Kirkpatrick writes, "For Allchin, this is a very big deal for businesses and individuals. The reasons are technical, but the bottom line is that 64-bit computers will be much faster. They should also be more secure." Is this what Allchin is spouting? Sorry, wrong and wrong. Not even the 64-bit Tiger will make your computer faster or more secure. Application developers will have to re-build their apps, and even then, most of what you'll get is the ability to address more memory. Which will probably mean that developers will create even more resource-hungry apps, creating additional burden on our already-overtaxed I/O subsystems.

And, I should point out, that the G5 is already a 64-bit processor, and Tiger ships this weekend, as opposed to "the end of the year" in Allchin's predictions.

Windows "Just Works"? Give me a break. Windows seems to go out of its way to prevent the user from getting work done. What a joke. And to those blind cattle who use windows: you suck, too. It's your fault Windows is as wide-spread as it is, and it's your fault computers suck as much as they do. Windows even pulls down the Mac (which, despite being utterly superior to Windoze, sucks too). Sure, lots of people use Windoze. Lots of people believe in a god, too, and look where that's getting us.

And Kirkpatrick, as a Mac user, you're way to upbeat and positive in your story. Afraid you'll lose future interviews?

Figures.

RayTracing is Fun

CS184's assignment due a few hours ago was a simple ray tracer. So far, the most work, but also the most fun. I implemented a ray tracer that supports ellipsoids and triangles, point lights and directional lights (oops, forgot to mention that to the reader…hope (s)he picks up on that from the images), subsample antialiasing (jittered). It also renders to the screen and outputs jpeg directly, and uses an ANTLR-generated parser to read in scene files. Here are the images I submitted along with my assignment.

Some represent mistakes, but they're interesting anyway. I thought my images were cool, but Sarah Beth's snow globe takes the cake. Creative and refractive. How cool is that?

00Sphereslambert

01Withmatricesyeah

02Withmatricesbetter-1

02Zfirstattemptatellipsoid-1

03Scalingooops-1

05Shinyegg-1

04Scalingspherewormthing-1

08Allprim-1

10Basicprims-1

09Allprimabove-1

06Redspheregreenegg-1

07Reflectiveandegg-1

11Depth0-2

11Depth1-2

11Depth2-2

11Depth3-2

11Depth4-2

11Depth5-2

11Depth6-2

11Depth7-1

11Depth8-1

11Depth8Antialiased-1

12Phongexptest-1

12Phongexptestsubsamp-1

13Primssubsampled-1

14Xmasballfamily-1