Friday, August 11, 2006

So much for NDAs.



So, folks at WWDC have been delving into their Leopard previews, with results like this.

When members of the die hard early adopter Vista crowd start saying that they bought a Mac after seeing this list, it makes you think that perhaps Leopard isn't as "disappointing" as some folks have suggested.

Which harkens back to that joke I quoted a while back -- What's the difference between Vista and Leopard? Windows developers are excited about Leopard.

Wednesday, August 09, 2006

Comprehension Skills & Blogging



When I was in 4th and 5th grade in country town Australia there were these boxes of cards (from some company in the USA, I think it was called "SRA") we had to go through. There were cards to study and corresponding answer cards. The study cards had about a half page of text on them, and on the flip side were multiple choice questions on the text. You were supposed to read the card and then answer the questions. Flipping back to the text was not considered cheating.

We had to do one card per day. Sometimes we were handed the card, sometimes we could pick. I couldn't understand why this was considered work; the texts were usually at least mildly interesting, took almost no time to read, and the questions were ridiculously easy. E.g. the text might read "And we've provided an API for Time Machine so you can support it in your applications" and the question would be "The new Time Machine product has: (a) a big red knob; (b) an API to help you support it in your application; (c) a big blue knob; (d) none of the above".

What amazes me is that the blogosphere is ripe with opinions, complaints, suggestions, and speculation about Leopard, thanks to the announcements on Monday, and yet almost none of the participants -- despite having graduated from the 5th grade, being of far greater than average intelligence, and more-or-less able to read, write, and spell -- appear to have mastered the art of answering this kind of multiple choice question.

So here are the spoilers -- note that this isn't post modernism 201, so we'll be basing our answers on what was said during the WWDC '06 keynote, or in press releases on the same day, or on Apple's Leopard preview page the same day, even though it may not be true:

Does Time Machine have an API? Yes. Listen harder. Or read the website.

Will iCal support third party servers? Yes. Listen harder. Or read the website.

Is the new iChat basically a bit like NetMeeting? No, because NetMeeting doesn't do screen sharing. Read the website.

Is Leopard just a bunch of fancy sizzle with no steak? I assume if you're still asking this you consider OS-level integrated seamless backup to be sizzle, so how about: Objective-C 2.0, modern garbage collection, full 64-bit support, XCode project snapshots, and visual performance monitoring tools?

Actually, the Leopard Server page is also worth visiting. Summary: comes out of the box with iCal Server, Wiki Server, PodCast Server, and something called PodCast Producer. And of course pretty much every component technology has been revved.

Physics & Game Design



There's an interesting and thought-provoking article on Escapist about Havok and game physics in general which reminded me of some of the thoughts I've had since I started playing with the Unity game development tool.

Unity's fundamental premise is to wrap pretty much all of the state-of-the-art game technology out there in a graphical, high-level development tool, kind of a 3D equivalent of HyperCard (the HyperCard analogy is more apt than, say, Visual Basic, since the runtime and development environments are essentially the same thing; which is what made HyperCard such an amazing thing).

One of the great features of Unity is its excellent support for physics. Because you can implement physics with scarcely any code, it's highly recommended that you do so. Recently, I was trying to implement a sailing ship, and I wanted the player's steering control to move the ship's rudder. For reasons that aren't important, I was having problems, and someone helpfully suggested that I use physics... Aaargh!

Now, a lot of discussion of physics tends to assume you know what physics is. I don't mean formulae or theory, but what physics, as a component of a game, is. In essence, physics is all the behavior you expect from objects as a consequence of their size, shape, and mass. Perhaps the most common example of game physics, present in every game since Pong, is collision detection. In the "real world" two objects cannot occupy the same place at the same time, and to simulate this behavior in the game world you need to do collision detection (as a first step) and then do something about collisions when they are detected (e.g. make the ball bounce rather than go through a wall or paddle). In pong when the ball collides with a paddle or wall, it bounces more-or-less the way you would expect perfectly elastic bodies to bounce.

Interestingly, however, what makes pong at all interesting as a game is the fact that the ball does not bounce the way your Physics textbook says it should. Where your ball hits your paddle modifies the ball's trajectory, allowing you to steer your shot in interesting ways. And herein lies the rub for all the idiots who think adding physics to games will somehow make the world a better place: what makes games good is good gameplay. To some extent physics can make explosions (say) prettier or more impressive, but a nicer deck of cards doesn't make Euchre more fun than Bridge.

In other words, physics can embellish the stuff that makes no difference to the game's outcome, but fine control of object behavior is exactly what makes gameplay good. Indeed many of the things that are being credited to "physics", such as "gravity guns" or "portals" or whatever, are actually hand-crafted, finely tuned violations of physics which mainly use the physics engine to add a bit of convincing jiggle and bounce.

Here's another way to look at it: you design a game that involves going through a door in the side of a wall. If physics lets you blow a hole through the wall, then opening the door ceases to be a plot point in the game. If you can collapse the wall, blocking the door, then you can create an unwinnable condition that may not be discovered during testing. Either way, putting physics into something that actually matters in the game isn't helping.

Microsoft to enhance Mac OS X's Security



According to MacWindows, Microsoft just announced that it will be dropping VBScript support from the Universal version of Microsoft Office for Mac OS X. VBScript is a feature of Office that almost no-one uses, wants, or needs, which comes switched on by default, and which is a favorite venue for malware under Windows and cross-platform malware (e.g. it is the mechanism that allows most mail viruses to work). If you wonder what the "script" in the term "script kiddies" is, and were maybe thinking it's, say, UNIX shell scripts ... nope, it's VBScript. Indeed, most Mac anti-virus programs are chiefly concerned with finding Office macro viruses, since there are as yet no actual Mac viruses for them to find.

Microsoft also announced -- and this has been much more widely reported -- that a Universal version of Virtual PC would be too expensive to develop and is dropping it; this is hilarious since they have already have Virtual PC for Linux and Windows (which are essentially equivalent to Parallels) and so it's a pure business decision which has nothing to do with development costs. They simply don't want to help the rats leave their sinking ship.

Macwindows also said: "One advantage that Microsoft could offer that noone else could is a preinstalled implementation of Windows bundled with the virtual machine software." This is actually rubbish; the only thing that Microsoft could do that no-one else can do is offer Windows at an unbeatable price. Any vendor can buy Windows, install it on an image, and bundle it with their Virtualization software.

Tuesday, August 08, 2006

Thinking out loud about Leopard



The Leopard announcements have been widely judged as disappointing. Pretty much every SteveNote is judged disappointing just afterwards, and then folks gradually absorb the information and recast it all as amazing later (I, for one, thought the iPod was an overpriced useless gizmo that only geeks would buy; if you find reportage at the time, you'll see I was not alone), forgetting that at the time they were disappointed.

I wasn't disappointed. I'm writing this little note to myself as a kind of open diary entry (hmm I guess that's what a blog is :-) ). Maybe I'll laugh at myself in six months' time.

First of all, the Mac Pros are the most droolworthy pieces of hardware Apple has ever released. Well, at least since the Quadra 700 or perhaps the Mach 5 boxes (anyone remember those? Photoshop launched instantly on those suckers...). Sure, I think the cases look ugly and are freaking huge, but you get a whole pile of grunt for not much money. And after reading HardMac I discover that the CPUs aren't soldered in, so you can buy a 2GHz box and swap in faster CPUs at your leisure (more useful to folks outside the US where Apple's prices are ridiculous). The only real complaint is that there's no midrange graphics card option (e.g. an X1600 or a GeForce 7800).

But on the OS front, Time Machine -- if it works -- is a reason to buy Leopard on its own. Backups are a huge deal. We're reaching the point at which the hard disks on which millions of people are storing their entire photo and/or music libraries are going to die of old age and you can only imagine the kinds of horror stories that will start circulating by word of mouth. Similarly, the "but I was just magically saved by Time Machine" stories could become a serious selling point. For serious users developers, Time Machine could make, at minimum, version control for small, single-developer projects completely irrelevant. Whether it will have the ability to roll back servers, etc., remains to be seen, but just this much is a serious win (for me, anyway).

I might note that Time Machine -- at least as shown -- directly supports everything at file level via Finder, but it appears to offer an API for application developers to allow application specific and/or finer grained support. This is what makes having something like Time Machine implemented as OS level so powerful.

The ability to turn any part of any web page into a Dashboard Widget is not only incredibly cool, but it has the potential to both change the way we browse the web AND make Dashboard actually useful and amazing rather than a use-three-times-and-forget piece of eye candy (as it is now). Dashcode sounds pretty compelling, but a lot of that will hinge on whether its JavaScript debugger is as good as advertised.

iChat's screen sharing features (mentioned on the website but ignored during the KeyNote) are pretty mind-blowing. First of all, having this functionality for free at OS level is pretty amazing (but will iChat be able to broadcast and/or connect to non-Mac clients?) and might make remote meetings and collaboration a lot more doable than is currently the case with half-assed tools such as GoToMyPC or WebEx. The big question for me is the extent to which this functionality may be available independently of iChat. E.g. can we log in to a Mac OS X box remotely with a GUI, or can we only screenshare via iChat?

Next, there's Spaces. I've used several virtual screen programs over the years and at some point, such as when I stopped using the computer it was installed on, just given up on them. This is because while they are great in theory, they all suck in practice. It looks to me like Spaces may address this suckage in a number of ways, not least of which is by making it an OS feature so I don't need to install it (or license it) on specific machines. But it also appears to be much more intelligently and simply designed than other virtual screen implementations, in part because it's implemented at OS level:

1. When you jump to an app (e.g. by clicking on it in the dock) you automatically go to its space.

2. There's a well-defined spatial relationship between the spaces which is consistently reinforced with animations and screen layouts. This is really important (and one of the reasons why many people think the OS X Finder sucks*).

3. I'm hoping that it will be well-integrated with Expose (i.e. that dropping into the Spaces overview is, in essence, what Expose will do now).

I'm not convinced that Spaces will be wonderful; but it has the potential to suck less than its predecessors.

* I think the OS X Finder sucks too, but not because it isn't spatial. I think the OS X Finder sucks because it is trying to do a really hard job (manage hundreds or thousands of files in a directory, etc.) with a really bad UI design (arrays of icons or lists of text labels) that dates back to when users only had 500 files on their hard disk.

That said, most of the other announcements are pretty ho-hum. 64-bit -- yeah, whatever. Being able to install 16GB of RAM is all the 64-bit support I really need for now. Core Animation -- cute but will it lead to anything useful or just more cute screensavers? Spotlight -- stealing some ideas from QuickSilver and adding remote searches; cool but hardly earthshaking. Mail 3 looks nice, but I don't currently use Mail 2 (I use gmail) -- although I must say when I do launch it to check my old mail (from before gmail) it does make me think I should go back :-).

Finally, the new voice synthesiser rocks. It's a minor thing but still, it has useful applications. I could actually imagine writing a little app to turn texts from Project Gutenberg into iPod tracks or CDs for road trips ... it sounds THAT good.