More on the Mono Developer Meeting

by John Sequeira

Related link:

I am an avid fan and frustrated user of distributed filesystems. As an author, I want to easily share, version and backup the book that I'm working on with co-authors. As a consultant, I want to do the same with design docs and code, and as a family member, I want to share multimegapixel photos without dealing with corporate email size limits, hotmail quotas, and the odd relative on dialup. I use email for almost all of these scenarios, and project management/intranet software for the rest, but there are a number of nagging drawbacks to both solutions. Mostly though, they're all more work than simply pointing some software at a folder and sending out an email invitation to folks you want to see it. Groove seemed to address these problems pretty well when it came out, and I had a brief love affair with Ray's latest creation. But it's quirky proprietary object store, weird development model, opaque licensing for customizations, and anti-cross-platform design made it unsuitable for most of what I wanted to do and for most of the people I wanted to share with.

To cope, I turned to some open source alternatives. For friends and family getting started in home networking and digital photography, I often end up installing unison or rsync as a quick way to make sure their photos or important files are mirrored on different physical hard drives. But there's a lot of overhead in determining what and how to share, and it's not really easy to deal with security, user accounts, any centralized or remote servers etc. Because of the setup complexity, this jury rigged approach completely falls down as the basis of a project that crosses organizational boundaries.

So, still on the lookout for a solution to this problem, I was thrilled to encounter a very promising one at the Mono Developer conference. I had a chance to speak with the developers of Novell's iFolders, an mono-based, open source distributed file system written. It installs as a shell extension in Windows (like the fabulous TortoiseCVS), and allows you to right-click to define what folders are shareable, what metadata on included objects you want to track, and potentially who you want to share with. It works on Mac OSX and Linux as well, thanks to mono's cross-platform CLR.

iFolders performs a cryptographic handshake with remote users by emailing a sharing invitation similar to Groove and Waste. With the metadata tracking, it's very similar in capabilities to Microsoft's forthcoming WinFS, except it'll be

  • delivered several years earlier,
  • have less granular folder based security instead of high-maintenance, per-object ACLs
  • tuned towards less-structured data than WinFS (no XML-Schemas), and
  • cross platform
  • open source.

    To make the authentication piece work more smoothly, and to demonstrate the metadata-tracking functionality, Novell plans on writing connectors to PIMs (starting with Evolution) so that iFolders will be aware of the email addresses of folks you might want to share with. In addition iFolders will also be able to sync to other devices like a web site or your cell phone.

    The tracked metadata is stored in a database which I think will initially be SQLite but eventually will support pluggable backends for MySQL etc. You can implement virtual folders that offer query-based filtered views just like SQL views. It's eassy to think of really neat things to do with a query-iable file system. Nat's mono-based Dashboard, while not currently iFolders-based, is one of them. Dashboard will likely support iFolder metadata to extend the current context-clustered views of your files that it creates. In other words, it will figure out which iFolder-objects (files/contacts/etc) are relevant to whatever task you're currently working on as a sort of predictive navigation tool.

    At this point I should probably confess that I didn't get to see either the iFolder or the Dashboard demos. I'm writing up my description based on a quick interrogation of two iFolder developers, Brady and Calvin, who'll be officially announcing the project's release at Novell's BrainShare event, and who're also scheduled to deliver a talk at this year's OSCOM.

    Switching gears from technology, Calvin explained that Novell will give their iFolder client away and sell server-based iFolder manageability services, like directory, backups, quotas, versioning, etc. This is Novell, after all, and that's pretty much what Novell does best.

    Anyway, iFolder looks cool and I can't wait to try it. I expect that if they address the technical challenges, it will become a great example of open source synergy with commercial software. Importantly, it will be one of the first major applications built on mono, and will begin to validate Ximian's vision that it's the way to go for ISV's and open source developers looking for a solid cross-platform desktop application framework.