Macintosh, Favorite Software, Tips, JournalOctober 1, 2009 10:44 am

Well, I really want my notes to be accessible, and that means available to Spotlight more and more now, so with some sadness and some help from touch -r, I just migrated the first document from Alepin to Journler.

Alepin’s export preserves the hierarchy (the way I wish the document package’s internal structure did, #3 on my wishlist), but it doesn’t preserve timestamps. So the package structure is flat but with the timestamps I want, and the export structure is hierarchical with a ‘now’ timestamp. I believe I can fix this!

cd ~/Desktop/Notes\ Exported
find . -name \"*.rtf\" | grep -v TXT.rtf | tee adjustTimes.txt
find . -name \"*.rtfd\" | tee -a adjustTimes.txt
ORIG=~/Documents/stuff/Notes.alpn
while read FILENAME; do echo \"${FILENAME}\"; ls -l \"${FILENAME}\"; BASENAME=${FILENAME##*/}; ls -ld \"${ORIG}\"/\"${BASENAME}\"*; echo; done < adjustTimes.txt
while read FILENAME; do echo \"${FILENAME}\"; ls -l \"${FILENAME}\"; BASENAME=${FILENAME##*/}; ls -ld \"${ORIG}\"/\"${BASENAME}\"*; touch -r \"${ORIG}\"/\"${BASENAME}\"* \"${FILENAME}\"; ls -l \"${FILENAME}\"; echo; done < adjustTimes.txt
rm adjustTimes.txt

Let’s decompose that last long while loop. (And take out the touch command the first time you try this yourself!!! Make sure the right files show up, to make sure you won’t mind the results!)

while read FILENAME; do (stuff); done < adjustTimes.txt

This is a while loop that puts the entire line, one line at a time from that text file, into the variable FILENAME. This is the iterative engine!

First, display the filename (make sure spaces come through properly escaped) with echo "${FILENAME}". Then show the directory listing with timestamp via ls -l "${FILENAME}": too new.

Since Alepin’s package structure is flat, strip off everything in front the last slash; ## is greedy match removal, */ is anything before and including a slash. This should be the rtfd filename inside the Alepin document. However, rich-text-only exports from Alepin are sensibly just RTF. So to look at that timestamp, I need to convert *.rtf to *.rtfd … or just tack on * to match zero or more characters for ls -ld ~/Documents/stuff/Notes.alpn/"${BASENAME}"*.

If all that checks out when you test it, it’s time to move the Alepin timestamps to the Alepin export with touch -r ~/Documents/stuff/Notes.alpn/"${BASENAME}"* "${FILENAME}"! Admire the results with a final directory listing with updated timestamps: ls -l "${FILENAME}" (and a final echo for visual space).Ta-da!

Macintosh, Favorite SoftwareSeptember 29, 2009 3:18 pm

I think everyone has their own version of the perfect application to store all of those information tidbits. The time before last when I went looking for mine, I picked Alepin. Since it has been sold and hasn’t been updated, I had to pick another (Journler), but I still miss the good parts of Alepin. It’s easy to dream while your product is in update limbo, so here’s my sorted list of enhancements to make Alepin perfect.

  1. Spotlight support. This is a deal-breaker for me. Without Spotlight, I have to launch an application to find my memory. With Spotlight, I just search from the menubar and find any tidbit in any application (with a Spotlight importer).
    • QuickLook makes filtering Spotlight results just that much easier.
  2. I want per-page tags, preferably OpenMeta tags. I suppose the new developers would have to worry about which file systems don’t support extended attributes (like Dropbox, SMB mounts …) so I guess Alepin needs a hidden file for that, making it less clean. Or a warning “Tagging only supported on …” but that doesn’t catch a Finder copy that causes data loss. So they need duplicate tagging, OpenMeta where supported and a per-document-bundle hidden plist. And a method to sync those as needed.
  3. I always wished for the internal structure to match hierarchy, meaning “Show Package Contents” in the Finder would have the same nested folders as Alepin’s display, because then I could duplicate page names (Hotels in both the Asheville and Wilmington folders in Travel.alpn), and because then the “recoverability” if an Alepin doc gets corrupt is essentially perfect. All cases were my own fault and easily recovered, but I have had my Alepin documents get corrupted.
    • This could go interesting places, in that Alepin becomes a browser to a folder of RTFD, especially if metadata like tags goes on the file and the safety file can be re-created from the component documents.
    • Add in textutil’s ability to convert to rtfd … this could go many places. I haven’t thought this all the way through, especially since it’s not how I would use Alepin. I’m happy with its Import and Export (to nested folders that aren’t in its internal hierarchy!).
  4. Fix bug where editing a internal component rtfd (using “Show Package Contents” or found because of my tweakings for Spotlight) with TextEdit would cause the whole document.alpn to be corrupt on next launch. Since it showed up in a search, a proper Spotlight importer would help here too; but Alepin would need to be able to open an Alepin document in context to fix it well.
  5. Fix bug where password-protecting an Alepin document on one Mac, copying (well, bbouncer-approved rsync-ing) that document to another Mac and trying to open it would show the corrupt message. Yeah, apparently I can corrupt documents like nobody’s business.

I love(d) Alepin, but I need to be able to find and use what I’ve stored, in a format with easy recoverability from corruption, with solid import and export choices, preferably document-based. I tried (and bought) Circus Ponies, but since then I bought and am using Journler instead because it just feels easier.

Macintosh, Favorite SoftwareAugust 9, 2009 10:05 pm

Just found where that annoying preference was hiding with AppCleaner, since of course Spotlight doesn’t want to search there … even if you don’t want to delete an application, what AppCleaner finds when you’re frustrated can still be valuable!

Favorite Software, ReviewAugust 4, 2009 2:24 pm

From Thomson Reuters Lawsuit Dismissed blog post at The Quintessence of Ham:

I’m delighted to announce that this morning the Fairfax Circuit Court dismissed the lawsuit filed against Zotero by Thomson Reuters. The lawsuit had claimed that the Center for History and New Media “reverse-engineered” Thomson Reuters’s EndNote software to provide data interoperability between Zotero and EndNote.

I used EndNote at work around 1990 to manage our scientific references. I personally used EndNote in the early 1990s when I scored a free copy for being helpful in the right place at the right time. I loved it for bibliography management and formatting! I thought it could have stored more/better/any notes on each reference to help the writing process, but still very useful. At the same time, I was concerned about the company’s ethics. I couldn’t put my finger on it, but I wasn’t sure I liked the company (I read the EULA). The fact that they filed this lawsuit helps me articulate my hesitation. Why should I be locked in to their format? Thank goodness for the web! You can use Zotero or RefWorks (not free, but I have a site license at work) or CiteULike or Connotea or Memento.

From those choices, I would recommend Zotero because it’s very good as a bibliography manager (I don’t need to create bibliographies now, so I don’t have an opinion on that). It even includes the note taking features I wanted in EndNote years ago! It just makes sense to me to store the notes with the reference; that’s what will help you (remember to) make the correct citation.

It’s also a great note-taking tool for anything on the web, web notebook, web snapshot archiver, whatever you want to call this category. So you could probably use Zotero instead of another Firefox add-on like ScrapBook+ or even a service like Iterasi.

The beta version has sync. I’m not sure how I would use Zotero’s Timeline support (maybe if you track news reports on certain topics?), but Timeline is very cool! Many plugins. It’s impressive, and even more impressive that it doesn’t feel bloated. [This sounds like a gush. Guess what? I don’t use it often, but I’m glad it’s there, and when I sync my Profile, I get my Zotero data too.] I guess the real drawback to Zotero is that it requires Firefox and I like Safari and Cruz too.

But my point is, I’m glad the big guy (EndNote, established software with corporate funding) didn’t get to take out the little guy (Zotero, university project) this time.

Macintosh, Favorite Software, ProjectJuly 20, 2009 6:36 pm

So I was following the OpenMetaApplications page, and my current crop of tools to test for file tagging (through OpenMeta so that tags are interoperable) is TagIt (an application to tag or browse the tag cloud), Tagger (looks like QuickLook for adding tags), and s-take’s OMSavePanel (an extra window for tagging for every Cocoa Save dialog window) and OMWizard (a “hierarchical” tag browser). We’ll see which ones I’m still using later …

Macintosh, Favorite Software, Unix, ReviewJune 15, 2009 2:36 pm

I started with these directions to compile rsync, but updated to the latest version, 3.0.6, with my own variants to log every step noted in red.

Compile rsync 3.0.6

Follow these instructions in Terminal on both the client and server to download and compile rsync 3.0.6:

Download and unarchive rsync and its patches
cd ~/Desktop
curl -O http://rsync.samba.org/ftp/rsync/rsync-3.0.6.tar.gz
tar -xzvf rsync-3.0.6.tar.gz
rm rsync-3.0.6.tar.gz
curl -O http://rsync.samba.org/ftp/rsync/rsync-patches-3.0.6.tar.gz
tar -xzvf rsync-patches-3.0.6.tar.gz
rm rsync-patches-3.0.6.tar.gz
cd rsync-3.0.6

Apply patches relevant to preserving Mac OS X metadata
patch -p1 <patches/fileflags.diff
patch -p1 <patches/crtimes.diff

Configure, make, install
./prepare-source 2>&1 | tee prepare-source.out
./configure 2>&1 | tee configure.out
make 2>&1 | tee make.out
sudo make install 2>&1 | tee make-install.out

Verify your installation
[hope:~] /usr/local/bin/rsync –version
rsync version 3.0.6 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, file-flags

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.

By default, rsync will be installed in /usr/local/bin. If that isn’t in your path, you will need to call your new version of rsync by its absolute path (/usr/local/bin/rsync).

So let’s compare … 3.0.5 with no symtimes to 3.0.6 with symtimes. And bugfixes of course. But still Protocol 30, and no significant changes since those directions.

Hmm. Well, I could mull this over with no way of knowing for sure, or I could re-run the unit tests in Backup Bouncer against this fresh compile!

sudo /usr/local/bin/rsync -aNHAX --fileflags --force-change --delete --stats /Volumes/Src/ /Volumes/Dst
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying: basic-permissions ... ok (Critical)
Verifying: timestamps ... ok (Critical)
Verifying: symlinks ... ok (Critical)
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... ok (Important)
Verifying: resource-forks ...
Sub-test: on files ... ok (Critical)
Sub-test: on hardlinked files ... ok (Important)
Verifying: finder-flags ... ok (Critical)
Verifying: finder-locks ... ok
Verifying: creation-date ... ok
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok (Important)
Sub-test: on directories ... ok (Important)
Sub-test: on symlinks ... ok
Verifying: access-control-lists ...
Sub-test: on files ... ok (Important)
Sub-test: on dirs ... ok (Important)
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... ok

OK, that’s pretty awesome! A complete pass! Now I wonder how much of that is because he knew what flags to use with rsync. So, out with the lart (the last MacPorts test in /opt/local/bin), in with the new.

sudo port -f uninstall rsync
sudo port -f install rsync
/opt/local/bin/rsync --version
rsync version 3.0.5 protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, file-flags

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.

All the same capabilities as what I just compiled. Re-test!

sudo ./bbouncer clean /Volumes/Dst
sudo /opt/local/bin/rsync -aNHAX --fileflags --force-change --delete --stats /Volumes/Src/ /Volumes/Dst
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying: basic-permissions ... ok (Critical)
Verifying: timestamps ... ok (Critical)
Verifying: symlinks ... ok (Critical)
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... ok (Important)
Verifying: resource-forks ...
Sub-test: on files ... ok (Critical)
Sub-test: on hardlinked files ... ok (Important)
Verifying: finder-flags ... ok (Critical)
Verifying: finder-locks ... ok
Verifying: creation-date ... ok
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok (Important)
Sub-test: on directories ... ok (Important)
Sub-test: on symlinks ... ok
Verifying: access-control-lists ...
Sub-test: on files ... ok (Important)
Sub-test: on dirs ... ok (Important)
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... ok

Well, whaddaya know … it’s not the new version so much as know what flags to send to rsync. So how does Apple fare with those flags?

sudo /usr/bin/rsync -aNHAX --fileflags --force-change --delete --stats /Volumes/Src/ /Volumes/Dst
rsync: -aNHAX: unknown option
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-35.2/rsync/main.c(1333) [client=2.6.9]
/usr/bin/rsync --help 2>&1 | grep -- "-a\|-N\|-H\|-A\|-X"
-a, --archive archive mode; same as -rlptgoD (no -H)
--append append data onto shorter files
-H, --hard-links preserve hard links
--delete-after receiver deletes after transfer, not before
--address=ADDRESS bind address for outgoing socket to daemon
-E, --extended-attributes copy extended attributes

OK, so I’ll whittle that down to what Apple’s rsync will accept, swapping the X for an E (depending on version as to which flag means extended attributes).
sudo /usr/bin/rsync -aHE --delete --stats /Volumes/Src/ /Volumes/Dst
copyfile(70-extended-attrs/.._symlink-with-xattrs.4GgbUd,70-extended-attrs/symlink-with-xattrs, COPYFILE_UNPACK) failed:62
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying: basic-permissions ... ok (Critical)
Verifying: timestamps ... ok (Critical)
Verifying: symlinks ... ok (Critical)
Verifying: symlink-ownership ... ok
Verifying: hardlinks ... ok (Important)
Verifying: resource-forks ...
Sub-test: on files ... ok (Critical)
Sub-test: on hardlinked files ... FAIL (Important)
Verifying: finder-flags ... ok (Critical)
Verifying: finder-locks ... FAIL
Verifying: creation-date ... FAIL
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok (Important)
Sub-test: on directories ... ok (Important)
Sub-test: on symlinks ... FAIL
Verifying: access-control-lists ...
Sub-test: on files ... ok (Important)
Sub-test: on dirs ... ok (Important)
Verifying: fifo ... ok
Verifying: devices ... ok
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... FAIL

However, since -a and -H are incompatible according to --help and hardlinks failed, let’s try again.
sudo ./bbouncer clean /Volumes/Dst
sudo /usr/bin/rsync -HEr --delete --stats /Volumes/Src/ /Volumes/Dst
skipping non-regular file "10-symlinks/broken_symlink"
skipping non-regular file "10-symlinks/link2broken_symlink"
skipping non-regular file "10-symlinks/symlink1"
skipping non-regular file "10-symlinks/symlink2"
skipping non-regular file "10-symlinks/symlink3"
skipping non-regular file "15-symlink-ownership/symlink1"
skipping non-regular file "15-symlink-ownership/symlink2"
skipping non-regular file "15-symlink-ownership/symlink3"
skipping non-regular file "70-extended-attrs/symlink-with-xattrs"
skipping non-regular file "90-fifo/some-fifo"
skipping non-regular file "95-devices/devvn0"
skipping non-regular file "95-devices/devzero"

I think we know that will be ugly, but let’s look.
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying: basic-permissions ... FAIL (Critical)
Verifying: timestamps ... FAIL (Critical)
Verifying: symlinks ... stat: ./symlink1: stat: No such file or directory
FAIL (Critical)
Verifying: symlink-ownership ... FAIL
Verifying: hardlinks ... ok (Important)
Verifying: resource-forks ...
Sub-test: on files ... ok (Critical)
Sub-test: on hardlinked files ... FAIL (Important)
Verifying: finder-flags ... FAIL (Critical)
Verifying: finder-locks ... FAIL
Verifying: creation-date ... FAIL
Verifying: bsd-flags ... ok
Verifying: extended-attrs ...
Sub-test: on files ... ok (Important)
Sub-test: on directories ... ok (Important)
Sub-test: on symlinks ... FAIL
Verifying: access-control-lists ...
Sub-test: on files ... ok (Important)
Sub-test: on dirs ... ok (Important)
Verifying: fifo ... FAIL
Verifying: devices ... FAIL
Verifying: combo-tests ...
Sub-test: xattrs + rsrc forks ... ok
Sub-test: lots of metadata ... FAIL

Pfft, hardlink still fail, but so do things that passed before!

If you’re going to use rsync, I recommend using MacPorts or compiling the latest version yourself. Looks like Apple needs to add the fileflags and crtimes patches and update to a protocol version 30 rsync. But until then, MacPorts is easy!

Macintosh, Favorite Software, Unix, ReviewJune 2, 2009 2:31 pm

Since I know about Backup Bouncer, I have no excuse not to try it on rsync, the command-line way I use a USB flash drive to keep my files synchronized between work and home laptops. You can get started from this post. Still, I hadn’t tested rsync because my process worked as far as I could tell. (Then I ran into OpenMeta, and I want those tags that are in extended attributes!)

Here’s how I got started:

download Backup Bouncer
tar -zxf backup-bouncer-0.1.3.tgz
cd backup-bouncer-0.1.3
make
./bbouncer create-vol Src
./bbouncer create-vol Dst
./bbouncer create /Volumes/Src

So here are the results from the tests I ran.

First, rsync from an old version of RsyncX (now vanishware?) I believe:

/usr/local/bin/rsync --version
rsync  version 2.6.0  protocol version 27
Copyright (C) 1996-2004 by Andrew Tridgell and others
HFS+ filesystem support for OSX (C)2004 Kevin A. Boyd

Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              IPv6, 32-bit system inums, 64-bit internal inums
	
sudo /usr/local/bin/rsync -av –eahfs –delete –showtogo –stats /Volumes/Src/ /Volumes/Dst/
	
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying:    basic-permissions … ok (Critical)
Verifying:           timestamps … ok (Critical)
Verifying:             symlinks … ok (Critical)
Verifying:    symlink-ownership … FAIL
Verifying:            hardlinks … FAIL (Important)
Verifying:       resource-forks …
   Sub-test:             on files … ok (Critical)
   Sub-test:  on hardlinked files … FAIL (Important)
Verifying:         finder-flags … FAIL (Critical)
Verifying:         finder-locks … ok
Verifying:        creation-date … ok
Verifying:            bsd-flags … ok
Verifying:       extended-attrs …
   Sub-test:             on files … FAIL (Important)
   Sub-test:       on directories … FAIL (Important)
   Sub-test:          on symlinks … FAIL
Verifying: access-control-lists …
   Sub-test:             on files … FAIL (Important)
   Sub-test:              on dirs … FAIL (Important)
Verifying:                 fifo … ok
Verifying:              devices … FAIL
Verifying:          combo-tests …
   Sub-test:  xattrs + rsrc forks … FAIL
   Sub-test:     lots of metadata … FAIL

Yeah, I noticed that it fails on extended attributes *sigh*.

Next, rsync from MacPorts.

/opt/local/bin/rsync --version
rsync  version 3.0.5  protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes, file-flags
	
sudo ./bbouncer clean /Volumes/Dst
sudo /opt/local/bin/rsync -av --eahfs --delete --showtogo --stats /Volumes/Src/ /Volumes/Dst/
rsync error: syntax or usage error (code 1) at main.c(1423) [client=3.0.5]
sudo /opt/local/bin/rsync -av --xattrs --delete --stats /Volumes/Src/ /Volumes/Dst/
	
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying:    basic-permissions ... ok (Critical)
Verifying:           timestamps ... ok (Critical)
Verifying:             symlinks ... ok (Critical)
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... FAIL (Important)
Verifying:       resource-forks ...
   Sub-test:             on files ... ok (Critical)
   Sub-test:  on hardlinked files ... FAIL (Important)
Verifying:         finder-flags ... ok (Critical)
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok (Important)
   Sub-test:       on directories ... ok (Important)
   Sub-test:          on symlinks ... ok
Verifying: access-control-lists ...
   Sub-test:             on files ... FAIL (Important)
   Sub-test:              on dirs ... FAIL (Important)
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... FAIL 

That looks a lot better! Now to compare to the rsync that Apple ships with Leopard (10.5).

/usr/bin/rsync --version
rsync  version 2.6.9  protocol version 29
Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.

Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 32-bit system inums, 64-bit internal inums
	
sudo ./bbouncer clean /Volumes/Dst
sudo /usr/bin/rsync -av –xattrs –delete –stats /Volumes/Src/ /Volumes/Dst/
rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-35.2/rsync/main.c(1333) [client=2.6.9]
sudo /usr/bin/rsync -av –delete –stats /Volumes/Src/ /Volumes/Dst/
	
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying:    basic-permissions … ok (Critical)
Verifying:           timestamps … ok (Critical)
Verifying:             symlinks … ok (Critical)
Verifying:    symlink-ownership … ok
Verifying:            hardlinks … FAIL (Important)
Verifying:       resource-forks …
   Sub-test:             on files … FAIL (Critical)
   Sub-test:  on hardlinked files … FAIL (Important)
Verifying:         finder-flags … FAIL (Critical)
Verifying:         finder-locks … FAIL
Verifying:        creation-date … FAIL
Verifying:            bsd-flags … ok
Verifying:       extended-attrs …
   Sub-test:             on files … FAIL (Important)
   Sub-test:       on directories … FAIL (Important)
   Sub-test:          on symlinks … FAIL
Verifying: access-control-lists …
   Sub-test:             on files … FAIL (Important)
   Sub-test:              on dirs … FAIL (Important)
Verifying:                 fifo … ok
Verifying:              devices … ok
Verifying:          combo-tests …
   Sub-test:  xattrs + rsrc forks … FAIL
   Sub-test:     lots of metadata … FAIL 
	
sudo ./bbouncer clean /Volumes/Dst
sudo /usr/bin/rsync -av –extended-attributes –delete –stats /Volumes/Src/ /Volumes/Dst/
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]
	
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying:    basic-permissions … ok (Critical)
Verifying:           timestamps … ok (Critical)
Verifying:             symlinks … ok (Critical)
Verifying:    symlink-ownership … ok
Verifying:            hardlinks … FAIL (Important)
Verifying:       resource-forks …
   Sub-test:             on files … ok (Critical)
   Sub-test:  on hardlinked files … FAIL (Important)
Verifying:         finder-flags … ok (Critical)
Verifying:         finder-locks … FAIL
Verifying:        creation-date … FAIL
Verifying:            bsd-flags … ok
Verifying:       extended-attrs …
   Sub-test:             on files … ok (Important)
   Sub-test:       on directories … ok (Important)
   Sub-test:          on symlinks … FAIL
Verifying: access-control-lists …
   Sub-test:             on files … ok (Important)
   Sub-test:              on dirs … ok (Important)
Verifying:                 fifo … ok
Verifying:              devices … ok
Verifying:          combo-tests …
   Sub-test:  xattrs + rsrc forks … ok
   Sub-test:     lots of metadata … ok 

Hmm, that took some wrangling, but it did work. Now to try the lart fork of rsync in MacPorts.

sudo port -f activate rsync-lart
--->  Activating rsync-lart
Warning: File /opt/local/bin/rsync already exists.  Moving to: /opt/local/bin/rsync.mp_1243889983.
Warning: File /opt/local/share/man/man1/rsync.1.gz already exists.  Moving to: /opt/local/share/man/man1/rsync.1.gz.mp_1243889983.
Warning: File /opt/local/share/man/man5/rsyncd.conf.5.gz already exists.  Moving to: /opt/local/share/man/man5/rsyncd.conf.5.gz.mp_1243889983.
	
/opt/local/bin/rsync --version
rsync  version 2.6.6  protocol version 29
Copyright (C) 1996-2005 by Andrew Tridgell and others

Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,
              inplace, IPv6, 32-bit system inums, 64-bit internal inums
	
sudo ./bbouncer clean /Volumes/Dst
sudo /opt/local/bin/rsync -av –extended-attributes –delete –stats /Volumes/Src/ /Volumes/Dst/
rsync error: some files could not be transferred (code 23) at main.c(806)
sudo /opt/local/bin/rsync -av –extended-attributes –delete –stats /Volumes/Src/ /Volumes/Dst/
(now runs without error, but transfers stuff every time … known issue if you read lart link)
	
sudo ./bbouncer verify -d /Volumes/Src /Volumes/Dst
Verifying:    basic-permissions … ok (Critical)
Verifying:           timestamps … ok (Critical)
Verifying:             symlinks … ok (Critical)
Verifying:    symlink-ownership … ok
Verifying:            hardlinks … FAIL (Important)
Verifying:       resource-forks …
   Sub-test:             on files … ok (Critical)
   Sub-test:  on hardlinked files … FAIL (Important)
Verifying:         finder-flags … FAIL (Critical)
Verifying:         finder-locks … FAIL
Verifying:        creation-date … FAIL
Verifying:            bsd-flags … ok
Verifying:       extended-attrs …
   Sub-test:             on files … ok (Important)
   Sub-test:       on directories … ok (Important)
   Sub-test:          on symlinks … FAIL
Verifying: access-control-lists …
   Sub-test:             on files … ok (Important)
   Sub-test:              on dirs … ok (Important)
Verifying:                 fifo … ok
Verifying:              devices … ok
Verifying:          combo-tests …
   Sub-test:  xattrs + rsrc forks … ok
   Sub-test:     lots of metadata … FAIL

And then clean up.

eject Src and Dst disk images
rm Src.sparseimage Dst.sparseimage 

So, what did I learn?

They all fail on hardlinks (I don’t use ‘em, but Time Machine does), and all but Apple’s rsync fail on ACLs (but I don’t use ‘em).

The RsyncX rsync fails on symlink ownership (I use a little, but I can live with it), on finder flags (I use a little, but I hadn’t noticed a problem), on the extended attributes I now want (deal-breaker), and on lots of metadata (clearly I like metadata). It kicks out 12 failure messages, and I do need to upgrade so I can use OpenMeta.

Looking at rsync-lart, it fails on the finder flags (I use infrequently), finder locks (I can ignore), creation date (I like that to be correct), extended attributes on symlinks (I can avoid), and lots of metadata (but I love metadata), for 7 failure messages total. However, rsync-lart doesn’t have the performance of the others since it always transfers resource forks and extended attributes.

The latest version of rsync fails on finder locks (I don’t mind), creation date (that’s annoying, possibly too annoying), and lots of metadata (oops) for a mere 7 failure messages.

Apple’s rsync fails on finder locks, creation date, and extended attributes on symlinks (I can avoid that). Only 5 failure messages!

So Apple’s own rsync looks promising! When I throw out the FAIL messages that don’t bother me (hardlinks) and decide not to worry about creation dates initially, then all I’m left with is that it fails on the extended attributes of symlinks. I don’t care, since I intend to add extended attributes to the original files instead. I don’t care about ACLs, but I do care about lots of metadata where the rsync 3.0.5 failed.

That means the maligned Apple version of rsync looks ok to me. Now to see if it works out for me in practice …

Favorite Software, GTDMarch 11, 2009 4:31 pm

I looked at the new MonkeyGTD last night, and I was initially sucked by the ways I could slice and dice. I liked looking at everything, or filtering between Work and Personal realms. In addition to regular tags and Realm, there’s Context, Contact, and Area as well as the GTD standards of Project and Action, and action states of Next, Waiting for, and Future. Oh, and Tickler and Reference. Ginsu!

But after pounding on it, I decided to stick with d-cubed GTD after all. I did have to add Category to it (like Area in MGTD), but I did and it wasn’t too hard to do. The reason why is a very simple time-saver: GTD3 knows what to promote to “Next Action” when I’ve completed the previous Next Action in a Project. Looks like I have to manage those states (Next, Waiting, Future) manually in MGTD.

I should test TeamTasks too, at least its live demo, with that need for transparent next-ing fresh on my mind.

UPDATE 10:50PM: TeamTasks has Scope (MGTD Realm), Users (MGTD Contacts), Priority, and Status (from Planning to Complete). No Next/Waiting/Future. No easy-peasy auto-magic next action in TeamTasks either. I really like the pop-up menu interface to pick scope and friends, but I know myself and to stay on track, I need next actions to become next on their own (as long as I check off what I’ve done). I’m sure I can figure out how to add the pop-up picks by editing the tiddler that controls what task tiddler editing looks like.

Macintosh, Favorite Software, Tips, House, ReviewMarch 9, 2009 3:23 pm

Last weekend, NASCAR caused us to miss our usual Sunday cartoons (Simpsons, King of the Hill, American Dad). Luckily we can use Hulu! It also made me want to try Front Row … and integrate … luckily there’s understudy to fill in the blanks (or sapphire)! It works, although I did have to exit Front Row and come back in a few times. Video RSS is good. So is a VGA extender cable so we don’t have to crowd around this laptop.

Macintosh, Favorite Software, TipsDecember 22, 2008 12:28 pm

I thought I was going to have to find a Leopard replacement to BitMemo since the usual Mac sites had a 404 URL for it, but I found the BitMemo homepage finally!