Human beings have different kinds of memory; they remember things in different ways. Three common classes of memory are spatial memory, visual memory and verbal memory. (There’s also chronological memory, but that’s not relevant to my point here.)
I have excellent spatial memory. It’s what I rely on most. For example, if I start to think about how to get to a given place in town, I literally find 3D visualizations of my route flashing into my consciousness. I also have pretty good visual memory; when I make the journey, I verify that I’m going the right way by comparing the visual appearance of buildings and landscape that I pass with the scenes I remember.
My linguistic memory is terrible. If you asked me to name the actual streets on the route, I’d have a hard time remembering them. My mental map of London, for example, only has 6 street names. This makes me a really bad person to get directions from. “You take the narrow road that heads off at a thirty degree angle, right at the place with the green copper roof, over the light colored bridge…”
There’s an upside to my condition. If you rely on verbal memory to navigate, as soon as you step outside your known area you are pretty much lost until you can find a familiar street name. In contrast, I have a pretty good chance of navigating between two known points, even if the area in between is totally new to me.
This hierarchy of types of memory also applies in my interaction with computers. When I want to find my password manager, I don’t remember its name. Instead, I remember that it’s in the bottom hierarchical menu of my KDE menu, positioned near the top, and has a green icon.
I know this experimentally, incidentally: back in the System 6 days there was a joke Mac INIT that removed all the text from the menus. I tried it, and was quite startled to discover that I could still use most of my favorite applications.
With that background out of the way, I would like to talk about why for me, the new KDE 4 application launcher is a user interface disaster of epic proportions.
SixApart have finally released MovableType as open source software under the GPL. I may take a look at it, as it has a working plugin called Privacy that provides for locked postings people have to authenticate to read–something WordPress doesn’t seem able to do at the moment.
MT supports pretty much everything else I need that WordPress has, including categories, tags, OpenID, Atom, and search. Intriguingly, it also allows multiple users with separate sites via a single MT installation. I’m almost tempted to set up a service for anyone I know who wants to leave LJ-land…
I guess I wasn’t paying attention to the Leopard previews earlier in the year, because OS X just blew my mind.
I was editing an e-mail message, and decided to idly click on Time Machine to see what it was doing. Instead of the Finder going into Time Machine mode, my e-mail went into time machine mode. I clicked the back arrow a couple of times, and there was what my e-mail inbox looked like 2 days ago, complete with since deleted messages.
It’s the same with the Address Book. You can step back through how your address book looked at different moments in the past.
My general impression of Leopard is that it’s good. Proper multi-threading in Finder and Mail makes a big difference. But this Time Machine thing is the most amazing backup tool ever. I got a big hard disk at Costco at the weekend, and backing up is now totally painless, there isn’t even an application to run. You just have to make sure a suitable disk is plugged in for long enough to copy the changes over, once a day or so.
Backing up isn’t sexy and it isn’t fun, which is why most people don’t bother to do it. Now there’s no excuse to skip backing up. Or at least, not if you’re a Mac user.
Every process runs as root. MobileSafari, MobileMail, even the Calculator, all run with full root privileges. Any security flaw in any iPhone application can lead to a complete system compromise.
I really thought Apple had better software developers than that. I guess that explains Steve Jobs’ comments about it being impossible to provide a 3rd party SDK safely.
Yeah, if you made the incredibly dumb decision to have no security whatsoever in your mobile OS, then it’s impossible to support 3rd party applications safely.
More to the point, as soon as someone finds a security hole in Safari or Mail, that’s it—they will be able to pwn the entire system. I’d place bets that someone will find such a bug, sooner or later; and then we’ll see iPhone viruses and trojans spreading by e-mail or web.
WordPress 2.3 is out, with official tag support. I’ve just finished upgrading, and tags now work properly. I had to hack together some SQL + Ruby to convert everything, but it should all be done now.
Atom feeds and OpenID support should hopefully work as before; let me know if you notice anything strange. I’m going to test by replying to this…
Update: It works. And excitingly, you no longer have to hack code to get OpenID support working to and from LiveJournal.
GPL v3: The Missing Piece
There has been a lot of GPLv3 discussion on tech sites. Perhaps predictably, a lot of it has missed the point or miscategorized the changes.
If you read the history of the Free Software Foundation and the GNU Public License, you discover that it all came about because Richard Stallman found himself having to use broken software that he wasn’t allowed to fix. The entire purpose of the GPL is to ensure that everyone who uses a piece of GPL-licensed software can change that software, use the changed version, and distribute it to other people.
The GPLv3 changes are not some radical new direction, there’s no bait-and-switch going on. The problem is simply that a number of organizations have found ways to use GPL-licensed software, but still break the spirit of the license by preventing users from being able to change the software, use the changed version, and distribute it.
The television will be revolutionized
Digital TV means crystal clear reception from an $8 wire loop antenna. It means beautiful sharp images a meter across with no visible scan lines.
It also means occasionally having to reboot your television.
It’s just the way things are. I have to reboot my cellphone every day or so, or a memory leak eventually causes it to crash. I have to reboot the printer once a month or so. Our answering machine has needed rebooting a few times, too, and the other day I rebooted the car. I haven’t had to reboot my watch, but it does have to sit and calculate for a while when I change physical time zone. I’m sure in a few more years, I’ll be rebooting the toaster whenever it starts burning toast.
Like a Mac, our TV is entirely software controlled, even powering itself on and off when ordered to by the software. There’s no physical on/off switch, just a button that requests that the software turn the set on or off.
Unfortunately, there’s a bug. Every now and again, the software will think there’s no incoming signal, and ask the hardware to turn off the screen to save power. After a second or two it’ll realize it made a mistake, and ask the screen to power up again. It happens very intermittently, I’d guess once every dozen hours or so, but that doesn’t stop it from being annoying. At one point there was a TV episode on the TiVo that would reliably make it happen at a certain point.
So, I wrote to Sharp asking if this was a known glitch with Aquos TVs. They called me back, and had me put the TV into a special hidden maintenance mode. It turned out my TV needed a software update, something to do with a power glitch in Aquos models that support CableCard. I was refered to a local Sharp service engineer, who brought over a couple of flash cards and apparently did the update. So far, so good.
Something about this disturbs me, though. More and more outwardly simple objects that we interact with are controlled by complex software, and we’re apprently still no closer to solving the problem of delivering reliable software. I didn’t feel too bad when the car needed a firmware upgrade, because a car is a really complicated system—especially a hybrid car that needs to control 2 engines at once and trade off energy between them. But TV is conceptually so simple, and it used to involve no software at all. Digital is nice, and all, but because of the need to decode MPEG-2 we’ve quietly lost simplicity of design. And that’s before you even consider the fact that ATSC is a horrible, horrible piece of design-by-committee with 18 different formats.
It’s something I’ve wanted to see happen for a couple of decades now, and finally it’s happening: Intel are getting their asses handed to them by a better CPU maker, in this case AMD.
If you weren’t in the computer industry in the 80s, you might not be aware that IBM picked the x86 processor series for the IBM PC specifically because it sucked. IBM sold lots of high end workstations and word processing systems, and made good money doing so; the last thing it wanted was for the PC to eat into that market. So, they made a PC which was good enough to satisfy hobbyists, but hopefully crap enough not to compete with IBM’s serious business hardware.
What IBM didn’t foresee was companies like Compaq taking the basic PC design and improving it. Soon the PC’s memory was no longer limited to 640K, it had a real
Still, by the late 80s it was clear that the x86 architecture was a mess. Even Intel engineers realized it. So, they started to design a completely new CPU with a clean, modern RISC-based design. The result was the Intel i860.
Unfortunately, the i860 was designed with an 80s PC mindset, and its performance was horrible as soon as you started to context-switch. It would have worked fine for single-tasking MS-DOS systems, but it was a dog as soon as you wanted pre-emptive multi-tasking. And by the early 90s, when Intel started pushing migration to i860, PC users had begun looking at the Apple Macintosh and Commodore Amiga and asking “Why can’t I do that?” Worse still, other RISC chips like the PowerPC were quickly outpacing the i860.
So the i860 bombed. Intel went back to trying to solve the x86s fundamental problems by throwing more and more transistors at it. Which is why we now have Pentium chips that dissipate 45W of power to run at the same speed as 15W PowerPCs.
People outside the computer industry often don’t realize that Intel aren’t really a technology company; they’re a marketing company. They’re very like Microsoft, in fact—they achieved success by being lucky enough to get picked by IBM, developed a near monopoly, and became fantastically rich. The difference is that whereas Microsoft has continued to dominate by acting illegally to preserve its monopoly, Intel has dominated by spending huge amounts of money on marketing.
The current egregious Intel marketing is “Centrino”. You’ve heard of it, and you probably think you want it, but chances are you don’t know what it really is. You might even think it’s a kind of low-power CPU. Well, it’s not–in fact, it’s just a code word. All “Centrino” really means is that the computer has a Pentium M CPU, an Intel chipset, and a motherboard with Intel wireless networking. It’s pure marketing, designed to force laptop manufacturers to buy everything from Intel instead of just the CPU. However, if the ads said “Buy a computer made entirely by Intel”, they wouldn’t be quite so compelling, would they?
Similarly, average people go into computer stores demanding a Pentium 4. They have no idea what a Pentium 4 is, let alone how it compares to the alternatives, but the saturation advertising has convinced them that they need one. When I tell people (such as my parents) that they can get an AMD system for hundreds of dollars less that’ll run all the same software faster, they find it hard to believe. If they’ve heard of AMD at all, they have some vague memory about Athlon chips being hot. (They were, when they were first released. Now they use less power than Intel Pentium 4 chips.)
In short, Intel CPUs are overpriced, oversized and tend to overheat. They are badly designed, but Intel compensates by using more silicon and more transistors to work around the bad design. Intel CPUs don’t sell on technical merit or bang-for-the-buck, and never have.
But back in the 90s, Intel decided to try again. This time they got help from HP, who had at least managed to achieve modest success with a RISC-based design in their PA-RISC “Bobcat” workstations in the 1990s, and had a next-generation CPU on the drawing board that would try to take the next step beyond RISC. Intel’s engineers got to work, and the new CPU was named Itanium.
HP also owned the DEC Alpha design. The Alpha was the fastest processor around, and was in use in every university science department where there was a need for number-crunching on the desktop. So HP killed it, perhaps out of hubris, or perhaps because of “Not Invented Here” syndrome.
Initially, forecasts for Itanium were rosy. Forecasts, remember, are made by marketing people and business people, not by engineers who know about Intel’s design history. Major vendors signed on to sell Itanium workstations and servers; SGI killed their own MIPS RISC CPU, predicting that Itanium would take over, and IDC expected $30 billion in Itanium server sales by 2001.
The big problem with introducing any new CPU is that businesses generally want to run Windows, which is built for x86. Initially, Intel’s answer to this problem of legacy back-compatibility was that software companies (i.e. Microsoft) would just have to recompile all their code for the Itanium. Of course, it’s now 2005 and Microsoft has just announced that it’s cancelling all plans for an Itanium version of Windows XP, even though OS X and Linux are both running on 64 bit hardware.
Meanwhile, AMD had used some of the design ideas from the DEC Alpha and put them into their x86 chip designs, and called the result Athlon. When the Athlon began beating the Pentium CPUs in performance, Intel quickly started shoveling an x86 compatibility mode into the Itanium design. It was a mess, and the chip’s power consumption ballooned to 130W. Itanium’s performance running x86 code was worse than the competing x86-only hardware; it was so bad that when they threw in the towel and implemented emulation instead, the emulator ran x86 code twice as fast.
Unfortunately, in the mean time AMD had added 64 bit features to their x86 design. The result was a chip with 64 bit power and full x86 compatibility with no slowdown, called Opteron.
So we reach today. Rather than shipping $30 billion of Itanium systems by 2001, Intel hoped to ship 100,000 Itanium systems in 2004. In the mean time, AMD predicted that they would have shipped 2,000,000 Opterons by the end of the year.
Update: Tony Finch tells me that the i860 wasn’t actually a total flop, and that it found a niche in embedded systems. There, it didn’t matter if it handled multi-tasking poorly, and the code could reasonably be hand-optimized in the appropriate places for the i860’s pipelined arithmetic unit—something compilers weren’t good at at the time.
Quite likely true; embedded software is one of those weird parts of the industry that I know very little about, almost its own separate world, where people run strange OSs like QNX and write programs in odd languages like FORTH. Still, a niche is a long way from what Intel wanted to achieve with the i860. I’m sure they’ll find a niche for Itanic too, but it’s still a flop when judged by what they planned it to be.
Chess, the game of kings. In LoveChess, the pieces are all 3D animated figures—and when knight takes bishop, knight takes bishop roughly, from behind.
I’m sure it started off as a joke, but a software company in the Netherlands (where else?) seems to have put in the time and money to create it for real. I wonder if it will sell? Do people really want to watch computer generated chess pieces doin’ it?