Dr. Dobb's Journal September, 2005
As John "Hannibal" Stokes suggests in an essay at arstechnica.com, it was probably the liquid cooling. Some demon poured freon in the river Styx in May, causing hell to freeze over. This, in turn, forced Apple to dump the PowerPC processor architecture in favor of chips from Apple's new best friend, Intel. At the announcement, my friend Chris Breen wondered what this meant for Steve Jobs's health, since he was sure he recalled Steve saying that this would only happen over his dead body.
This month's column includes some early thoughts on the Macintel transition, as well as on some other transitioning paradigms, including moving beyond the meme of the meme, the death of Grokster, and hacking your own home.
Moscone West in San Francisco was totally taken up with Apple's Worldwide Developer Conference (WWDC) for one week in May. I attended this year as a developer, something I hadn't done for a while. Apple is doing so many interesting things right now at the scripting or Saturday-morning programmer level (about which I hope to have something interesting to say when I get deeper into them) that I knew it would be worth my time to go. I also knew that attending as a developer would mean that I couldn't share what I learned there, except what was already public. Which, realistically, is almost everything you'd care about unless you're an Apple developer, in which case you were probably at the conference. What was covered in Steve Jobs's keynote was public information, and very public indeed. As rumored a couple of days before the event, Steve revealed that Apple would be moving its computers to Intel processors.
The move to Macintel (now an official Apple trademark) has been the subject of intense analysis by everybody and his dog, but I can hardly let it pass by without comment, so here are a few thoughts, presented more or less in the form of a Q&A, or really a Q&G (questions and guesses).
The first question has to be: Why? And the informed guess is surely that Jobs perceived a lack of commitment and delivery from IBM. His stated reasons were that IBM had failed to deliver a 3-GHz G5 and that Intel's chip roadmap made better sense in terms of power consumption. Given that portables are increasingly important for Apple, I see no reason to doubt that motive, and there seems to be some evidence that IBM was more interested in the market for chips in game boxes than in Macintoshes. The second question and the third and beyond must all be about the impact of the move.
And right off, a word needs to be said about elegance, orthogonality, and byte sex. Byte sex is also known as "Endianness." PowerPC chips are Big-endian, like Internet IP addresses. Intel chips are Little-endian, like German sentences. (Would you call Mac OS X on Intel "Ten Little Endian"?) Just about everyone agrees that one of these is brilliant and the other is insane, but there is some disagreement about which is which. To many, though, the PowerPC chips have a certain cachet (I hope that doesn't get copyedited into cache) that has to do with elegance and beauty. That's all gone now. But how much does it matter, and to whom?
Pragmatically, the part that really matters to some is byte sex. Here, I suspect, some 90-10 ruleor 98.5-1.5 ruleapplies. Most developers will have little trouble making the transition. I can't tell you that I watched programmers port their applications with very little effort to run on those 3.6-GHz Pentium 4 Macintoshes in the porting labs at WWDC. But Apple will happily describe such experiences, and if I had seen anything different in the labs, I'd find a way to let you know about it.
Applications that were developed using Apple's Xcode, applications written in Java or Objective C, scripting applications, UNIX-centric applications, applications that make no assumptions about the hardwarethese should port easily. (Tom Yager is being a little cute and a lot accurate, I think, when he says that the problems that are encountered will involve issues that the developers would be embarrassed to admit exist in their code.) Then there will be applications that port easily except for certain small sections of code. And then there will be apps ported from Windows under intense time pressure. And then there will be Microsoft's Mac apps. Apple will have lots of success stories to tell while waiting for Microsoft to come aboard, I suspect.
The marketing question has to be, Will there be an Osborne Effect? (Osborne Computer Company failed spectacularly back in the '80s. That's fact. It is less than fact and closer to myth that it was all because of an unfortunate preannouncement of a new model that would obsolete the current line. That did happen, and sales of the current models did in fact drop off precipitously, which perhaps justifies the term "Osborne Effect," even though there were other factors responsible for the demise of the company.)
Contrary to intuition, there's generally no reason for consumers to avoid the end-of-life nonIntel Macs, but intuition is powerful. So what if the worst case happens and people quit buying Macs, waiting for the new machines? Does Apple rush to release Intel Macs ahead of schedule? Try to fix the problem with PR? Take the loss? The question seems to be generating more questions. But this move is well-timed: The company is cash-rich (which is one of the very best kinds of rich). Apple could, in fact, survive a huge hole in sales; its position is almost the opposite of Osborne's.
Final question: Does the move to Intel push Apple any closer to licensing the OS?
Mike Dell has made noise about wanting to sell Macintel systems. It's easy to question his motivation: Is he angling for better terms from Microsoft? But the idea of Dell licensing the Mac OS has to be looked at both in the light of past licensing efforts and in the light of current market conditions.
Although Steve Jobs did the Macintosh licensing program, it wasn't his licensing program. Opening the floodgates of device incompatibility and lack of quality control and brand dilution is probably not on the Apple agenda. But partnering with the biggest fish in the pondthat's a different story. We are in a different world now than when Apple was licensing the OS before. Computers are less important to Apple in some ways, the PC era keeps threatening to end, and Steve likes to stay ahead of the curve.
Of course, he also believes in the personal computer, but does this necessarily mean by extension, in building boxes? Remember, Steve Jobs has in the past made the decision to move from a proprietary hardware model to a licensed software model with NeXT. He may have hated doing it, he may have had no other choice, but he did go the licensing route when he concluded that it was the right move. Apple has partnered with HP on marketing iPods. Could it decide to partner exclusively with Dell, building some constraints into the contract to protect the Mac market?
While at WWDC, I picked up Gordon Meyer's book Smart Home Hacks (O'Reilly Media, 2005; ISBN 0-596-00722-1). I also caught a talk by Meyer on building an X10 network to automate a home. I have long been attracted to the hackishness of X10. The whole essence of X10 is a hack, and a particularly hackish hack at that, with the appeal of taking advantage of an unintended side effect of one technology to support another, the slightly outlawish feeling that you're hacking the power company to run your little homemade network.
Actually, of course, you're just hacking your own home or office wiring. X10 works by sending signals over your home's electrical wiring to turn on or off lights, dim them, and control or respond to other devices. Any electrical device can be X10-enabled by plugging it into a cheap X10 module that, in turn, plugs into the wall outlet. In addition to the ability to turn things on and off, X10 can accept signals and data from sensors and can interface with scripting languages, allowing you to construct arbitrarily complex conditions under which actions take place. Because the whole technology is a hack, you have to hack it to make it work properly. Various devices in your home treat X10 signals as noise and try to filter them. Some buzz from your neighbor's house may get picked up and treated as an X10 signal, throwing your system into confusion. You have to tune the network with filters and boosters. Amusingly, if someone unplugs the dryer, even though it is not part of your X10 scheme, you could find that carefully designed X10 system unceremoniously split into two noncommunicating networks. Fun stuff.
This book may just be the nudge that gets me into X10. I certainly have uses for it: a 1000-bottle wine cellar to monitor, plus other business inventory to protect and track; a farm operation needing to monitor weather and soil data; several irrigation systems; a restaurant that has a long checklist of daily startup and shutdown activities, some of which could surely be automated; various heaters and air conditioners and freezers and refrigerators and other devices that could surely be operated more efficiently with automated monitoring of temperatures and an understanding of the different states the restaurant can be inopen for business, opening within an hour, between lunch and dinner shifts, closed for the night, closed for the weekend.
What I find especially appealing is this idea of defining meaningful states that a home/business might be in, then figuring out how to map these states onto the paltry bits of data that X10 devices can pick up. The devices can tell you that there is water at address B10 or movement at address G5 or that switch D8 is closed. But what you would really like to track are meaningful states like "Residents not at home," "Guest staying in guest room for weekend," "Summer home closed up for winter," "Everybody's asleep," "Intruder is in house," "Wine cellar locked and all its systems operating properly," "UPS left package at front door," "Motion detector batteries need replacing," "It's daylight," "It's a holiday," "Rain expected this week," and so on. Coming up with the right states to monitor and working out how to tease evidence for those states out of sensor data calls for some creative thinking. And deterministic algorithms are rare: Mostly it's sifting the evidence and weighing the probabilities and making a judgment. In other words, hacks.
The 100 hacks in the book are mostly Meyer's, and he's certainly an expert, having automated his own home to what unimaginative people might call a ridiculous degree. But a couple dozen others contributed hacks, including Bill Fernandez, who introduced Steve Jobs to Steve Wozniak and was at Jobs's wedding. (See how I connected this X10 story with Apple?)
The hacks in the book include tasks such as making sure the lights stay on in your home office when you're working and not moving around much, even though you've set them to turn off after a set period when no motion has been detected. Since X10 signals can take a couple of seconds to take effect, a good hack is to anticipate where lights need to be turned on. When motion is detected in a bedroom after lights out, and perhaps the bedroom door opens, go ahead and turn on the hall light (dimmed appropriately) and maybe the bathroom light as well. Other hacks monitor the litter box, heat the toilet seat, control lights while you're out, and interface an X10 system to calendar or charting software for scheduling events and viewing system activity.
Incidentally, I was pleased to see that, in that charting hack, an X10 hacker had interfaced his X10 system to a SuperCard program running on OS X. With card-based development products like SuperCard and Revolution, the spirit of HyperCard is still alive on the Mac, and will clearly make the transition to Macintel. (I have it confirmed by a SuperCard developer that SuperCard ran fine on one of those Intel boxes at WWDC.) Meyer makes good use of states in his hacks, conditioning all sorts of system activity on the occupancy state of the house. His system knows whether or not he's home, his wife is home, and/or a guest is visiting, and responds accordingly. For example, if he's home, certain alerts are announced throughout the house; if he's on the road, the alert might instead triggers an e-mail or cell phone call to him. If a guest is present and the residents are away, many of the automated lighting effects are turned off so as not to freak out the guest. Another state variable comes almost free with X10: knowing whether it's daylight outside. Some X10 software will do its best to figure that out for you based on settings on your computer: If it can find a longitude and latitude, it'll use those. You can override its guess, though: If you live on the side of a hill, your local sunrise might be later than it would be on level ground, for example.
There are decent software packages for X10 for Mac, Windows, and Linux, and a couple hundred dollars will typically get you started with a computer-controlled X10 system. From there, it's $10 or $20 to hook up each new device. X10 can also work with wireless devices, including cameras and motion detectors.
I check out the Public Library of Science (PLoS, http://www.plos.org/) from time to time. The idea behind this set of online journals is the open sourcing of science, which you'd think would be redundant, but regrettably, is not. If you're in any doubt as to the need for such a site, you might look at "Medical Journals are an Extension of the Marketing Arm of Pharmaceutical Companies" by Richard Smith (http://medicine.plosjournals.org/).
In June, PLoS Biology (http://biology.plosjournals.org/) posted an essay titled "The Evolution of Norms" by Paul R. Ehrlich and Simon A. Levin. Ehrlich is famously the author of the book The Population Bomb, and more recently, the president of the Center for Conservation Biology at Stanford University. In this article, they tackle the huge question of how the values of a culture change over time.
A lot of folks in technology have read Richard Dawkins's The Selfish Gene and gotten caught up with the analogy of genes in biological evolution and memes in cultural. In certain circles, the meme is a powerful meme. Although I hate to throw cold water on such an appealing concept, these authors judge Dawkins's meme idea "regrettably infertile." You can see why for yourself at http://www. biology.plosjournals.org/.
This summer, the Supreme Court invalidated the Grokster model of collaborative peer-to-peer file sharing. That's the noise on the Web. The way I read it, the Supreme Court invalidated the encouragement-of-copyright-infringement model, but as a repeat-offender copyright holder, I may be an unreliable judge of such things. One thing I am sure of is that the whole notion of collaboration on the Internet is evolving. The Los Angeles Times boldly published an editorial online in the form of a wiki. Not surprisingly, the experiment failed as editorial, but may have succeeded as an experiment. Kudos to them for taking the plunge. Then there's the Gitmo Project, a collaborative project of sifting through the mountains of data about Guantanamo Bay detention practices made available to the ACLU through a Freedom of Information Act request (http://www.dkosopedia.com/index.php/FOIA:Detention_Practices_Project). Unlike SETI@Home, this one involves people rather than computers collaborating.
DDJ