Ripplin’

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 http://www.allocinit.net/ translates to:
http://www.GiganticURL.com/url/aHR0cDovL3d3dy5hcHBsZS5jb20vaHR0c
DovL3d3dy5hcHBsZS5jb20vYUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwdg==a
HR0cDovL3d3dy5hcHBsZS5jb20vYUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwd
mFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyMHZZVWhTTUdORWIzWk1NMlF6WkhrM
WFHTklRbk5hVXpWcVlqSXdkZz09aHR0cDovL3d3dy5hcHBsZS5jb20vYUhSMGNEb
3ZMM2QzZHk1aGNIQnNaUzVqYjIwdmFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyM
HZZVWhTTUdORWIzWk1NMlF6WkhrMWFHTklRbk5hVXpWcVlqSXdkZz09YUhSMGNEb
3ZMM2QzZHk1aGNIQnNaUzVqYjIwdllVaFNNR05FYjNaTU0yUXpaSGsxYUdOSVFuT
mFVelZxWWpJd2RtRklVakJqUkc5MlRETmtNMlI1TldoalNFSnpXbE0xYW1JeU1IW
lpWV2hUVFVkT1JXSXpXazFOTWxGNldraHJNV0ZIVGtsUmJrNWhWWHBXY1ZscVNYZ
GtaejA5aHR0cDovL3d3dy5hcHBsZS5jb20vYUhSMGNEb3ZMM2QzZHk1aGNIQnNaU
zVqYjIwdmFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyMHZZVWhTTUdORWIzWk1NM
lF6WkhrMWFHTklRbk5hVXpWcVlqSXdkZz09YUhSMGNEb3ZMM2QzZHk1aGNIQnNaU
zVqYjIwdllVaFNNR05FYjNaTU0yUXpaSGsxYUdOSVFuTmFVelZxWWpJd2RtRklVa
kJqUkc5MlRETmtNMlI1TldoalNFSnpXbE0xYW1JeU1IWlpWV2hUVFVkT1JXSXpXa
zFOTWxGNldraHJNV0ZIVGtsUmJrNWhWWHBXY1ZscVNYZGtaejA5YUhSMGNEb3ZMM
2QzZHk1aGNIQnNaUzVqYjIwdllVaFNNR05FYjNaTU0yUXpaSGsxYUdOSVFuTmFVe
lZxWWpJd2RtRklVakJqUkc5MlRETmtNMlI1TldoalNFSnpXbE0xYW1JeU1IWlpWV
2hUVFVkT1JXSXpXazFOTWxGNldraHJNV0ZIVGtsUmJrNWhWWHBXY1ZscVNYZGtae
jA5WVVoU01HTkViM1pNTTJRelpIazFhR05JUW5OYVV6VnFZakl3ZGxsVmFGTk5SM
DVGWWpOYVRVMHlVWHBhU0dzeFlVZE9TVkZ1VG1GVmVsWnhXV3BKZDJSdFJrbFZha
0pxVWtjNU1sUkVUbXROTWxJMVRsZG9hbE5GU25wWGJFMHhZVzFKZVUxSVdscFdWM
mhVVkZWa1QxSlhTWHBYYXpGT1RXeEdObGRyYUhKTlYwWklWR3RzVW1Kck5XaFdXS
EJYWTFac2NWTllaR3RhZWpBNQ==aHR0cDovL3d3dy5hcHBsZS5jb20vYUhSMGNEb
3ZMM2QzZHk1aGNIQnNaUzVqYjIwdmFIUjBjRG92TDNkM2R5NWhjSEJzWlM1amIyM
HZZVWhTTUdORWIzWk1NMlF6WkhrMWFHTklRbk5hVXpWcVlqSXdkZz09YUhSMGNEb
3ZMM2QzZHk1aGNIQnNaUzVqYjIwdllVaFNNR05FYjNaTU0yUXpaSGsxYUdOSVFuT
mFVelZxWWpJd2RtRklVakJqUkc5MlRETmtNMlI1TldoalNFSnpXbE0xYW1JeU1IW
lpWV2hUVFVkT1JXSXpXazFOTWxGNldraHJNV0ZIVGtsUmJrNWhWWHBXY1ZscVNYZ
GtaejA5YUhSMGNEb3ZMM2QzZHk1aGNIQnNaUzVqYjIwdllVaFNNR05FYjNaTU0yU
XpaSGsxYUdOSVFuTmFVelZxWWpJd2RtRklVakJqUkc5MlRETmtNMlI1TldoalNFS
npXbE0xYW1JeU1IWlpWV2hUVFVkT1JXSXpXazFOTWxGNldraHJNV0ZIVGtsUmJrN
.

Fun 🙂

Spodcast

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;
 	RETURN_ERROR_IF_RO_OR_LO;
+#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;
+		}
+	}
+#endif
 	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.

Summary

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.

Description

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

http://microsoftwi⌫⌫gadgets.com/

Innovative.