December 6th, 2005

Plenty of people have wanted to reproduce the “ripple” effect from Dashboard in Mac OS X. So, for all you people looking to do it, here’s some code to ripple your own windows.

Download Rippler here (52KB).

Enjoy 🙂

God’s Debris

November 18th, 2005

Scott Adams, the creator of Dilbert has released a free PDF version of his book God’s Debris. At the moment all I can say is it’s an amazing read that I’m sure I’ll be thinking about for a while.

For now my main comment is: download it. Read it. I don’t think you’ll be disappointed.

Report an Apple Bug Monday: Out of Quota Disk Messages

October 31st, 2005

I’m not constrained to just reporting bugs on Fridays 🙂

This is an enhancement to existing functionality. When the Finder attempts to copy to a file server and runs out of disk quota, it displays the following, somewhat uninformative, message:

Unhelpful Finder error message (Code -1425)

This message should be translated to a string informing the user that they are out of disk quota. This bug has been reported to Apple as Radar 4322110.

Drive TV

October 29th, 2005

Channel 10 Australia started showing Drive TV this afternoon. My opinion, in short: don’t bother.

If you want to watch some good motoring television there’s still only one choice: Top Gear from BBC2 in the UK. And for Australians who haven’t seen it, it’ll soon be available on SBS (article available here).

Gigantic URL

October 29th, 2005

An amusing take on TinyURL and friends is GiganticURL.

For example translates to:

Fun 🙂


October 27th, 2005

I’m not sure most people really have any idea what this whole “postcasting thing” is going to turn into eventually, but perhaps one of the most interesting podcasts I’ve been listening to is Spodcast.

This is where I’m meant to say something inspiring to make you go and listen to it I guess, but to be honest I can’t think of anything that exciting to say. Maybe you should just listen to it yourself and see what you think.

Spiffy New Look

October 27th, 2005

So instead of doing anything even remotely productive tonight I decided to make a pretty new theme for this site. Given that I really can’t be bothered doing too much work, I ended up just making a cool new header image, and editing the colours a bit. Still, I don’t think it looks too bad.

Extended Attributes and Tiger’s Rsync

October 11th, 2005

It’s been a while, but never fear I’ve got a nice shiny new bug for you today.

Rsync can in some cases not handle the -E and -‍-delete functions very well when combined together. Because Apple chose to implement resource forks in rsync using their you-beaut-gee-whiz ._ files, when the resource fork doesn’t exist for the file, or indeed the file doesn’t exist at all in the source directory rsync happily attempts to unlink the corresponding ._ file. On an HFS+ volume, clearly this is going to fail, as it doesn’t exist (incidentally on a UFS, Xsan, FAT, etc volume, it’d work just fine, but rsync is still broken).

A Patch

Due to my extreme generosity, or alternatively in an attempt to get away from some software with a name that rhymes with typo, I’ve whipped up a quick fix to this problem. It may not be the best way to fix it, but it works, and it even removes the resource fork from a file if the resource fork should be deleted, but not the file itself. How’s that for slick?

(Yeah, pasting it into a website isn’t all that slick, but I’m too lazy to upload it as a file right now, so tough luck. And WordPress seems to have stuck \ characters before the quote characters. They shouldn’t be there.)

--- rsync-2.6.3/syscall.c	2005-10-11 14:44:42.000000000 +1000
+++ rsync-2.6.3/syscall.c	2005-10-11 15:47:06.000000000 +1000
@@ -53,6 +53,31 @@
 	if (dry_run) return 0;
+#ifdef EA_SUPPORT
+	if (extended_attributes
+		&& !strncmp(basename(fname), "._", 2)) {
+		int retval;
+		retval = unlink(fname);
+		if (retval == -1 && errno == ENOENT) {
+			char ftemp[MAXPATHLEN+17];
+			if (snprintf(ftemp, MAXPATHLEN+17, "%s/%s/..namedfork/rsrc", 
+					dirname(fname), basename(fname)+2) >= MAXPATHLEN+17)
+			{
+				errno = ENOENT;
+				return -1;
+			}
+			fprintf(stderr, "%s", ftemp);
+			retval = truncate(ftemp, 0);
+			if (retval == -1 && errno == ENOENT) {
+				return 0;
+			} else {
+				return retval;
+			}
+		} else {
+			return retval;
+		}
+	}
 	return unlink(fname);

For reference the bug is Radar 4295233.

Apple Bug Report Friday: Xsan and AFP fun

September 17th, 2005

I’ve been a bit lazy and not posted a bug here for a couple of weeks. What I have been doing however is quite a bit with Xsan and finding a few bugs to go with it. Here’s one found a couple of days ago.


AFP shares from Xsan volumes do not correctly honour directory permissions for a user’s secondary groups. Directories that the user should be able to list because one of their secondary groups allow them read/execute permission to the directory can not be seen over AFP when shared from Xsan.


Essentially what is happening here is that if I have a user with the following UID, GID and groups:
uid=501(admin) gid=20(staff) groups=20(staff), 80(admin)
The user can not view the contents of a folder shared from an Xsan volume if they reason they should be able to see it, according to the POSIX permissions, is that one of their groups (but not their primary group) allows them to. So in this case, if a directory had the following permissions:
drwxr-x--- 7 admin admin 238 Sep 17 10:00 test
the user wouldn’t be able to list the directory over AFP if the directory is on an Xsan volume.

This problem does not effect files: if the user has permission to read a file through their secondary groups they can do it without difficulty.

Bug Report

This has been tested on Mac OS X 10.4.2 Server and Xsan 1.1 with a Mac OS X 10.4.2 client. I’ve filed a bug with detailed steps for reproduction as Radar ID 4259969.

Microsoft Gadgets

September 14th, 2005