Archive for December, 2007

DFX 4 Upgrade Policy

Saturday, December 8th, 2007

We’re getting a lot of questions, so to answer what seems to be on many people’s minds:

  1. If you purchase or upgrade to Default Folder X 3.0.6 now, the upgrade to version 4 will be free.
  2. If you purchased or upgraded Default Folder X any time on or after June 1, 2007, the upgrade to version 4 will be free.
  3. Upgrade pricing for other Default Folder X users will be $14.95. Again, if you upgrade now, your serial number will work with both DFX 3.0.6 and 4.0.
  4. Upgrade pricing for those who are using the really old OS 9 version of Default Folder will be $19.95.

Hope that helps!

Default Folder X 4 Video at

Friday, December 7th, 2007

Dan Frakes, a senior editor over at, just finished a really nice video preview of DFX 4: First look at Default Folder X 4. He does a great job of highlighting both the old and new features, and demos one of his old favorites, Finder-click.

I’m impressed (and very happy) with the quality of the video, Dan’s narration, and the overall coverage. If you’re wondering what Default Folder X has to offer, hop over and take a peek at the H.264 video, or subscribe to the video podcast via iTunes.

Thanks Dan!

P.S. There’s also a post by Ian Beck over at TagaMac with a reminder about DFX’s ability to set Spotlight tags – something that makes life so much saner for you tagging folks!

Getting the owner of a process

Thursday, December 6th, 2007

I was a little surprised that I couldn’t find this online anywhere, so for others that may need it, here’s a function that gets the effective owner of a Mac OS X process, given the process pid:

uid_t OwnerForPID(int pid)
    struct kinfo_proc info;
    size_t length = sizeof(struct kinfo_proc);
    int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
    if (sysctl(mib, 4, &info, &length, NULL, 0) < 0)
        return kProcessValueUnknown;
    if (length == 0)
        return kProcessValueUnknown;
    return info.kp_eproc.e_ucred.cr_uid;

And of course, you know you can get your own process ID with getpid() and use the Process Manager’s GetProcessPID() function to get a pid if you know another process’ ProcessSerialNumber.