DirectX Revisionism

Iain dugg
an article about the upcoming DirectX 10 specification.

Let me rephrase the opening of the article more accurately. The original reads:

Microsoft’s DirectX application programming interface (API) was first introduced in 1995. DirectX was designed to make life easier for software developers by providing a standard platform developers could use to easily make multimedia software and game programming for the Windows Platform.

Before the arrival of DirectX, developers had to program their software titles to take advantage of features found in each individual hardware component. With the wealth of devices on the market, spanning from input devices to graphics and sound cards, supporting every hardware device on the market was a tedious, time-consuming process.

The only fatual part of that is the first sentence about DicrectX coming out in 1995.
Here is my rephrasing.

Microsoft’s DirectX application programming interface (API) was first introduced in 1995. DirectX was designed to lure software developers into using a proprietary, Microsoft-owned API, providing vendor lock-in and reduced availability of games on other platforms.

Before the arrival of DirectX, developers were using OpenGL, a cross-platform, standardized 3D graphics library that allowed developers to take advantage of 3D graphics without requiring deep knowledge of that hardware.

DarwinPorts is now MacPorts

is the new home for the project-formerly-known-as-DarwinPorts.

I’ve mentioned DarwinPorts here a couple of times before [making the most of “ls”] [Fink and DarwinPorts docs].

I’ve recently had to re-install all my ports because of the move to Intel.
The old ports worked fine most of the time.
But after an uptime of a few days or so, something would break, and I would start getting errors about programs being “the wrong architecture”, even though Rosetta is supposed to handle it all.

Ah well, I might as well get as much Intel stuff as I can so my Mac runs nice and fast.
I’m now happily set up with MacPorts and have installed native versions of subversion and jove.

MacPorts has joined the wave of people dumping CVS and Bugzilla in favour of

Open Source panorama software

Tony’s Cottage

I am asked every now and again what I use to make the panoarmas I occasionally post to Flickr.
Well, until recently I used some OEM software – Canon PhotoStitch.
Then my brother-in-law Tony told me that Photoshop could do it.
I was flabbergasted because he was right!
So I used Photoshop to do this picture, which is Tony’s new cottage, appropriately enough.

Tonight I discovered some open source software that may also do the job.
I haven’t used them yet, but thought I would post about them in case anyone else was interested.
They are

I (or maybe Iain if he beats me to it) will post more when I’ve tried them out.
Or maybe Jeff will give it a shot.
Who knows?

Intel Mac owners – are you running PPC VLC?


VLC is used by many people to play avi’s, especially movies and TV shows.
However, on the Mac there is no “universal binary” version of VLC yet.

We discovered tonight that Iain has been watching movies on his Intel Core Duo-based MacBook using the PPC version of VLC.
Needless to say, this adds a whole layer of performance degredation!

So we copied the Intel version of the most recent
nightly build
and CPU usage dropped dramatically.
Actually, it may have been the other way around (see low CPU usage on Intel, and then try PPC version and see much higher values).

Well, in any case, be sure to use an Intel version of VLC to watch those videos!
Even though it is just a “nightly build”, I’ve found the quality of
the one I got
to be quite high.
No crash or any other problems yet.

(knocks wood)

Upstart – replaces Sys V init and even Apple’s new launchd

For ages, Unix systems have booted by simply running an app called “init”, which in turn read shell scripts from /etc/init.d.
This is why on almost all Unix systems, every process would have as its ancestor process id 1, “init”.

Apple decided to update their startup system and created a new, open-source system called
it first showed up in last year’s release of Mac OS X 10.4 Tiger.
It replaces not only init, but also cron and inet)

So, now Ubuntu has released something called Upstart
[post 1]
[post 2],
which is an even more advanced startup mechanism.
Cribbing some text from the upstart page, here are some of the differences between upstart and launchd:

Much of the goal of both systems appears initially to be the same; they both start jobs based on system events, however the launchd system severly limits the events to only the following:

  • system startup,
  • file modified or placed in queue directory,
  • particular time (cron replacement),
  • connection on a particular port (inetd replacement).

Therefore it does not actually allow us to directly solve the problems we currently have; we couldn’t mount filesystems once the “filesystem checked” event has been recived, we couldn’t check filesystems when the block device is added and we certainly couldn’t start daemons once the complete filesystem (as described by /etc/fstab) is available and writable.

The launchd model expects the job to “sit and wait” if it is unable to start, rather than provide a mechanism for the job to only be started when it doesn’t need to wait. Jobs that need /usr to be mounted would need to spin in a loop waiting for /usr to be available before continuing (or use a file in a tmpfs to indicate it’s available, and use that modification as the event).

You can read more in the article about how if Apple had open sourced launchd sooner, Ubuntu would have simply upgraded launchd.

I’m hoping Apple will move to upstart. We shall see.

TechTok 06: MacPro speculation, future Apple/CPU upgrades, Intel vs AMD, CPU sockets, Ubuntu

In an atmosphere of speculation due to the about-to-begin Apple World Wide Developer’s Conference, Iain and I
speculate about many things
in a taxi, and later at Annabelle’s Restaurant, across the street from our hotel, the Marriott San Francisco.
(13MB, 27:56)