Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts published in December, 2003

Steve Jobs himself said that hell froze over; but even so, as he repeated in a Nov. 5 conference call, Apple won’t switch to Intel Microprocessors. “It’s perfectly technically feasible to port Panther to any processor.. but we’re very happy with PowerPC”, he said. “The G5 is the fastest personal computer in the world… right now we don’t see a compelling need to switch processor families and the stuff that’s in the PowerPC roadmap… is really good.”

Nothe that he didn’t mention Intel explicitly, nor did he use the word platform. Why did our glorious leader feel the need to repeat the obvious? There has always been speculation about Apple migrating to Intel processors, especially while Motorola was responsible for the “megahertz gap” between top-of-the-line Macs and the competition. There actually is a version of Darwin, Apple’s open-source base for Mac OS X, for the Intel platform, and a rumored “Marklar Project” that supposedly keeps an up-to-date full Mac OS X running on top of that version.

I’m emphasizing the difference between “Intel processor” and Intel (or x86, or AMD) platform. Apparently, nearly all speculators thinks those terms are synonyms; they’re not. Beyond the processor itself, the Intel platform also includes support chips, BIOS, and standard peripheral controllers – a standard motherboard, for all practical purposes.

Every now and then, well-known analysts say that Apple’s only hope to survive would be to migrate to the Intel platform. Last March, John C. Dvorak predicted that “Apple Computer Corp. will switch to Intel processors within the next 12 to 18 months… announcing the new architecture in July at the next Macworld Expo would be ideal”. Soon after that, he again predicted that Apple would come out with a dual-architecture Itanium/G5 Mac in early 2004, then later offer Mac OS X for generic Dell/HP/IBM computers. Instead, in July, Apple announced the IBM PowerPC 970-based G5!

Former Apple CEO John Sculley said recently that Apple considered the Intel option in 1992 – when Apple was leaving the 68K architecture – but this was discarded in favor of the PowerPC architecture. Even though Sculley still considers that decision “one of the biggest strategic mistakes that Apple ever made”, it’s clear in hindsight that only the PowerPC had enough capacity to emulate the 68K in software without any performance loss; a decisive factor in easing the platform transition.

Whoever wants Apple to migrate to the Intel platform wants, in essence, to run Mac OS X on a cut-rate PC assembled in some anonymous Far-East factory, or by some hardware geek in his own living room, and of course, also wants to run Linux or Windows on the same machine. The chance of this happening is zero. What would be the consequences of the release of Mac OS X for any generic PC? Apple, of course, would have to close down their computer assembly lines. They’d never be able to compete with someone like Dell on price only; just look what happened to Gateway and dozens of others.

It would be a support nightmare; they’d have to test and consider all possible variations of motherboards, peripherals, displays, BIOS, in other words, all those things that already bedevil PC users today. And finally, they’d have to do battle with Microsoft and their ironclad contracts with hardware vendors. Who would pay US$129 (or even US$49?) for an operating system if, owing to contractual requirements, their PC already came with Windows installed? That’s one of the reasons that the BeOS went under.

Let’s bury the notion of migrating to the Intel platform, and consider the use of the Intel processor itself. Apple could, for the sake of argument, build Macs with motherboards based on a Pentium IV (or Itanium, or Opteron), but with its own architecture. So, it would have Open Firmware instead of a BIOS and no concerns whatsoever about Windows compatibility. It would be a Mac as we know it today, but with different processor and support chips. Mac OS X would be recompiled for this new platform and wouldn’t run on common PCs. This option (and not the first!) is what Steve Jobs discarded in the interview I cited earlier.

The chance of this happening isn’t zero, but very nearly so. What advantages could Apple gain from this option? They might have some price advantages in buying the processors and support chips, perhaps a shorter design time, since Apple wouldn’t have to design their own bus controller. The machines would have to have more complex cooling systems to hold noise down; even iMacs would need several fans, in a G5-like scheme. iBooks and PowerBooks would probably be a little larger.

But in terms of performance, I’d bet that there would be a sizable disadvantage. Why? There’s an obvious answer: AltiVec. (Steve Jobs mentioned this precise point last year, in fact.) Not for nothing Apple now has its whole product line based on G4 and G5 CPUs, all of which have AltiVec built in; part of the noticeable speed increase seen between Mac OS X 10.0 and 10.3 can be credited to the gradual optimization of basic OS routines with AltiVec. Many people mistakenly believe that this PowerPC section is restricted to multimedia applications; far from the truth. AltiVec also has specialized instructions for data pre-caching, as well as for high-bandwidth data conversion and movement. And of course, Quartz Extreme itself needs AltiVec’s pixel conversion and vector instructions to implement Mac OS X’s visual subtleties. Only Microsoft would benefit from an Intel processor, as their Virtual PC emulator would then run at native speeds.

Together with these arguments, consider the excellent roadmap of the PowerPC architecture, with IBM widely adopting the G5 (970) and its successors, and it’s easy to see that Steve Jobs is right – there’s no compelling reason to switch. So, why does Apple still maintain the x86 version of Darwin, as well as the fabled “Marklar Project”? That’s because this helps finding bugs which might otherwise be masked by the processor architecture, and to simplify future architectural changes. For instance, without these precautions, the recent release of the G5 machines, with their 64-bit memory addresses, would no doubt have been delayed for several months.

Despite Jobs’ repeated denials, we can be sure that the “Mac Intel Inside” rumors won’t die; they tickle the fancy of PC users and are the kind of “too good to be checked” items that certain journalists love so much.

(This is a somewhat edited and updated version of my “Ombudsmac” column for issue #114 of Macmania magazine.)

My list of subscriptions has been updated (it’s to the left if you’re reading this in a browser), somewhat belatedly. Most of my favorite comics now have RSS feeds, a very welcome development.

So much to read, so little time icon_eek.gif

This post’s title comes from the Beatles’ famous song “Lucy in the Sky With Diamonds”. What? Yes, for some reason the printed lyrics actually say “the girl with kaleidoscope eyes”, but some people hear it that other way.

This sort of thing seems to be called a “Mondegreen”, for reasons explained by Jon Carroll in his article “Mondegreens Ripped My Flesh”. Thanks go to Bernie DeKoven’s DeepFUN for the tip. Other examples abound, such as Bob Dylan’s “Dead ants are my friends, they’re blowin’ in the wind” and Simon & Garfunkel’s “Like a bridge over trouble, Walter, I will lay me down”.

There are mondegreens in many languages. In Portuguese the canonical example is Claudio Zoli apparently singing “trocando de biquíni sem parar” (“endlessly switching bikinis”) instead of “tocando B.B.King sem parar” (“endlessly hearing B.B.King”); there’s an entire blog devoted to examples from Brazilian sources.

I remember my mother quoting some German mondegreens… I’ll post a few after I get a chance to talk to her.

Posted by taliesin’s log:
taliesin’s log linked to this post

Of current affairs and perennial folly

After a tour of the blogosphere established that the weekend’s big story has triggered every imaginable kind of response, on top of a couple of e-mails asking what I make of it, it was a relief to find that many are still busy with something completely di

Here’s a new installment in my Interesting Times column.

It’s the first part of a two-part article about the QI-900 computer which I designed in the middle 1980’s. It had moveable windows, menus, and preemptive multithreading. Even so, it already was obsolete when it came out…

How is it possible to design a highly advanced computer that was aready obsolete at launch? See how I managed to achieve this…

This story took place after the end of the QI-800 project, still at Quartzil Informática, as I reported in my first post.

In early 1983 we started thinking about what to do after the QI-800, which was a quite run-of-the-mil system; just one more 8-bit computer running Digital Research’s CP/M-80. The Brazilian market was still quite diverse and nobody had any idea how information processing would develop.

We had many meetings about this. Everybody agreed that we had to follow some American standard, to avoid a proprietary solution. But which? The Apple II was still a market leader but wasn’t a good fit for business users. Quartzil didn’t want to enter the domestic Apple II market – there already were a dozen Brazilian clones of the Apple II, and there was a hidden demand for “office” computers for larger companies. The Apple III was considered too large and complex to copy, and didn’t seem to sell well. The IBM PC 5150 was too limited, and there was some fear of IBM, which was the only American manufacturer with a sizable presence in Brazil.

Our main reference was Byte Magazine, not only because it brought the latest news, but it also had ads with reference prices. We subscribed to the Jameco Catalog and every month waited anxiously for it – our main interest were RAM prices and the availability of new, larger-capacity RAMs and EPROMs. I recall that the Z80 processor which we’d used in the QI-800 sold for about US$3.00 at that time. I just checked the current price and it’s US$1.99.

For some time we considered making a flexible computer… the motherboard would take care of peripherals and there would be CPU plug-in boards for different architectures. The user could plug in a Z80 board to run CP/M, or another board to be Apple II-compatible, or whatever. We soon killed the idea; the board connectors would be too expensive, every CPU board would need its own RAM, and we would have to write separate software for every CPU. And to accommodate future 16-bit CPUs all support chips (buffers, transceivers, and so forth) would have to be duplicated from the start.

My personal idea was to clone the recently-released Apple Lisa. Byte’s description of the graphical user interface was fascinating and I had no doubts that this would be the future of computing. But unfortunately the price – US$9,995.00 – was prohibitive, even for importing one machine for disassembly; and the prices of the M68000 CPU and support chips at Jameco were very high, too. Therefore I failed to make my case, and the more conservative directors opted for continued use of the Z80 architecture. The name of the new system – QI-900 – was about the only unanimity.

A team was hired to study the large company market – the companies that focused on processing large quantities of data in their IBM mainframes. Of course their conclusion was that the main market would be for so-called “data entry systems”. These companies were interested in replacing their hundreds of IBM 029 keypunch machines. These were expensive, complex and noisy electromechanical machines and demanded constant preventive maintenance and trained operators.

IBM already was trying to replace the keypunches with their IBM 3270 video terminals. Few people, today, can evaluate the influence of this product – today there’s still a huge market for companies that sell 3270 emulators, or provide 3270 maintenance and support. You can walk into any bank in Brazil and find that most PCs are running such an emulator. It was a huge, complex desktop system, with green characters on a dark background, displaying 25 or 26 lines of 80 characters (punch cards also had 80 character columns). The display terminal itself was connected to the mainframe by a communications controller that was the size of a small refrigerator and used proprietary IBM cabling and protocols, mostly the BSC-3 protocol. Everything was implemented in hardware… there were dozens of printed-circuit boards, huge power supplies, and it was very expensive.

Everybody knew that a properly programmed microcomputer would be able to stand in for a IBM 3270 terminal for a tenth of the cost… and probably for even less. The main obstacle would be reverse-engineering BSC-3 and the IBM communication interface. We therefore decided to build a CP/M microcomputer with special interfaces and 3270 emulation software. (A few months after this decision, IBM launched a special model of the PC 5150 with exactly this feature, but I think it never was sold in Brazil.)

This decision profoundly affected the QI-900 keyboard layout, which looked like this:

It was the largest and most complex keyboard of any Brazilian computer at the time, adopting the IBM 3270 keyboard layout – the rationale was that data entry operators would already be familiar with it. The famous “programmed function” keys (PF1 to PF12) first appeared on the 3270. Several of the keys didn’t make any sense on a microcomputer and after some hard lobbying I was allowed to use them for other functions.

What other functions? Well, the most interesting ones are on the left… look what we have up there: “Desfaz”(Undo), “Corta”(Cut), “Copia”(Copy), “Inser”(Paste). I tried to put “Cola” (literally, “glue”) for “Paste” but nobody would have understood it at that time. And lower down, a “QI” key (equivalent to the Apple II and Mac “Apple” key) and a key with a window icon! Where did that come from?

The answer is that my dream of doing something with windows and menus hadn’t died, and with the debut of the first Macintosh in January 1984, the dream was renewed. The magazines discussed the Macintosh way in great detail, and some months later, when Quartzil sent me to attend NCC – the “National Computer Conference”, at the time the world’s largest – I seized the opportunity to buy and bring back in my luggage a Mac 128K with an external drive (400K) and an ImageWriter matrix printer. (This trip is worth an article in itself…)

My studies paid off: as soon as I laid hands on a Mac, still at the conference itself, I already knew how to use it. I was extremely impressed with the richness of the graphical user interface and the operating system’s consistency, and during the trip back I already considered how to incorporate some of that into the QI-900 project. My demonstrations for the directors were quite convincing, and I got authorization to do what I wanted – mostly because I figured out a way to do it without too many hardware changes. Unfortunately it was impossible to include a mouse, however; the Z80 was too slow for a fully graphical interface, and we hadn’t the mechanical know-how to build a mouse. Well, enough suspense, here’s the final result: the QI-900 had menus:

…and moveable windows:

…and, even better than the original Macintosh, it had preemptive multitasking – or rather, multithreading inside the same application.

In the next post I’ll explain some implementation details and why the QI-900 was already obsolete when born.

(clique aqui para ler este artigo em português)

Cheeky Error Messages

No comments

I’ve never been more than an occasional user of Apple’s MPW (Macintosh Programmer’s Workshop). I thought it was defunct but apparently Apple’s still supporting it for development on older Classic systems.

Anyway, one thing I recall is that the MPW C compiler had some funny error messages, and this post on Ztuff reminded me of that today. Some nice ones:

“…And the lord said, `lo, there shall only be case or default labels inside a switch statement'”

“a typedef name was a complete surprise to me at this point in your program”

“This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer AND your window wasn’t wide enough to read this whole error message”

“Too many errors on one line (make fewer)”

I promptly looked up the latest official version of MPW on my Apple Developer CDs (August 2001, if you’re interested) and the latest compilers, unfortunately, seem to have been expurged – there are only the usual dry “illegal whatnot found” messages. I’ll have to see if I can find an older edition.

Unfortunately this sort of humor seems to be increasingly rare. The closest thing I could think of in currently shipping software are the ICQ client connection messages:

First we’ll need an ICQ server…

I’m sure I saw a server somewhere…

Attempting to make sure you are who you say you are…

Now, let’s sort out this little issue called ‘logon credentials’…

Doing something complicated…

Waiting in line with millions of other users…

So much data, so little time…

Fulfilling the server’s endless requests…

Initializing all kinds of protocols…

How fussy can you be about one insignificant connection?

Now comes the tricky part…

Seems like the server is a little picky today…

We’re in. Have fun.

While searching for something completely different, I stumbled upon two amazing galleries for a graph-visualization project called Walrus. There’s a visualization and navigation gallery and a abstract art gallery. The first has some animated images, too.


I certainly will come back later and find out more about this.

Photos licensed by Creative Commons license. Unless otherwise noted, content © 2002-2022 by Rainer Brockerhoff. Iravan child theme by Rainer Brockerhoff, based on Arjuna-X, a WordPress Theme by SRS Solutions. jQuery UI based on Aristo.