Building simplicidade.org: notes, projects, and occasional rants

Folder syncronization

Status: I'm now using a recent version of iFolder for Mac OS X Intel by Boyd Timothy. Works perfectly.

Recently my wife needed a solution for folder synchronization between her laptop (mostly at home) and two other PCs at the office.

I searched a bit for a solution and I noticed two things: GDrive speculation and iFolder.

A GDrive sighting appeared in some blogs recently, in the form of a project named Platypus. The comments suggest that this might be just an internal site. The feature set looks nice, and would probably cover our needs, but only time will tell if it makes the light of day.

The second one is an old friend. I've been playing with iFolder on and off since version 1.0 or something like that. I never really used it seriously because it was pretty slow, and at the time, Linux only.

But the iFolder server was open-sourced recently (some screenshots of the iFolder web interface), so I decided to try it and see what's new.

Installing the software was very easy on a CentOS 4 server. Just follow the CentOS iFolder How-to. In my case, I already had a lighttpd running on that server, so I had to add another alias to the eth0 interface, and bind the Apache web-server that powers the iFolder server to the new alias. It works, but you need one trick: the Apache web-server must listen to the new IP and the localhost address. Apparently some parts of the server communicate via 127.0.0.1. After that little tweak, it worked fine.

The client side of things is more or less straightforward, only a small warning: right now, to use the open-source iFolder server, you must use the 3.4 clients and not the latest 3.5. Apart from that, just grab the Windows installer and run it.

On my MacBook, things are not that easy. First, Mono for Mac OS X Intel was not available at the time I tested (yes, I know that its available now), so there was no native iFolder client for me. I also tried the PowerPC iFolder client, but it does not work either. Apparently there are some problems with the Mono JIT and Roseta (lost the relevant links...).

Enter Parallels. I grabbed a DVD ISO of Fedora Core 5, created a new virtual machine and asked for a Workstation install. 10 minutes later, I was logging on to my new Linux workstation, and downloading the Mono framework and the iFolder client for Linux. After all the components where installed, I run it and I started synchronizing my folders with baby pictures with my wife laptop. Perfect!

Just today, I found (via Planet iFolder) a non-supported "if it burns your macbook don't blame me"-kind-of-thing iFolder client that should work on Intel Macbooks. I tried doesn't work yet:

dyld: Library not loaded: /Users/boyd/stage/ifolder-3.4/lib/libsimias.0.dylib
  Referenced from: /Applications/iFolder 3.app/Contents/MacOS/iFolder 3
  Reason: image not found
 Jul 14 03:25:13 Mr-Tray crashdump[21376]: iFolder 3 crashed

We have to wait a bit longer.

After all this fun, I played a bit with iFolder inside Parallels. It is very nice and fast enough for my day-to-day use. There are still some things to improve, like lack of SSL support, that should be available soon, so use this for non-sensitive data, but apart from that, iFolder worked pretty much as advertised.

I'll keep using it, to see how it goes, specially with large folders (next week, 3Gb folder of baby pictures). The idea is great, the implementation seems fine, I only need a native Intel Mac OS X client, and I'm sold.

Update: Boyd Timothy has an updated iFolder.app for Mac Intels available. I was able to install and run fine, but adding my account would always fail in the log in process with this message in the Console.app:

iFolder 3[29089] Exception in ConnectToDomain: TCP Error -1 TCP error in SimiasService.ConnectToDomain

I'll double check my installation and the Mono Framework I have, but there seem to be some bits missing from my copy of the puzzle.

Update 2: Ok, got it to work, just some problem with the password from my account. I reseted the password on the server and I was able to log in. Many thanks, Boyd!