Archive for April 2006

What is Beyond?

I’ve added a new page, What is Beyond?. (The link is in the sidebar on the right.) It’s a summary of what Beyond will be, and I’ll continue to flesh it out as things continue on.

More on genealogy anywhere

In the day or so since writing Genealogy Anywhere, my vision has expanded. “Genealogy anywhere” has really caught hold of me, and I’ve realized that what we need is a Firefox of genealogy, so to speak. Universality has become the new north star of the project. And so there will be Windows and Linux versions, and whatever else people use. But don’t worry, Mac users, the Mac will always be my top priority. (And I’m not going to be writing the Windows/Linux versions — others can do that.) And of course we’ll get it translated into as many languages as possible. (I have connections. :))

I’m glad I’ve come to this before I really started coding, because this will require a strict separation layer so that ports to other OSes will be possible (and not exasperating). Time to look seriously at the Firefox model and see how they do things…

Genealogy anywhere

During my text processing class this afternoon I was reading through the phpGedView website, and I came across this question on the about page: “How do you synchronize your data with your relatives when they make changes on their computers?” (It’s a question phpGedView tries to answer.) When I read that, I suddenly thought of CVS (Concurrent Versioning System). Rather than explain CVS (you can read about it on your own if you’d like), let me explain what this means for genealogy. Imagine the following scenario:

Your family tree data is stored on a central server (either something like Writeboard.com or your own personal web server). When you use Beyond on your Mac, it downloads a local copy of your data from the server and you can work on that without being connected to the Internet (useful for when you’re in the field). If you want to collaborate with someone else — let’s say it’s your sister — you can give them access to all or just part of your data. They download their own local copy and work on that. When you’re done making changes, Beyond uploads the data back to the server. Your sister does the same thing. What if there are conflicts? It allows you to decide which changes take precedence, so nothing is lost. Seamless.

It gets better. Say you have three computers at home. You install Beyond on the second computer and it will automatically download your data from the server, complete with latest changes. Ditto for the third. You can work on whichever one you want and don’t have to worry about synchronization — Beyond takes care of that for you. If you go on a trip, you can take your laptop with you, work on your genealogy as much as you want to, and when you get back home, it’ll re-sync with the server so that your desktops will automatically get the updates.

Now for the crown jewel: what if you’re on a computer where you can’t install Beyond? What if — gasp — you’re on Windows box? There’ll also be a web app which lets you access the same data as the desktop app — it’s all on that central server — and so you’re up-to-date no matter where you go on the world, on any computer. Any computer. And you don’t have to worry about flash drives or copying files or anything like that. The web app would have to have reduced functionality, of course, but you’d still be able to do all the things that matter (including printing charts to PDF). So you’re at the library and forgot to bring your pedigree with you? No worries, just go to one of the computers, log in, and print the chart (remember that this is from your latest data, the same you were working on fifteen minutes ago when you left your house).

As far as the user interface goes, it’ll have to be seamless, utterly transparent and easy to use. No clunky upload/download dialogs (unless something goes wrong). It’d be nice to be able to “check out” only certain parts of your tree, but I don’t know if that’d work too well… An advantage would be that edit histories would be built-in (by nature of the whole central-access metaphor), so you could see who edited what and when. Another is having duplicate copies of your data (you have at least two, one on your desktop and one on the server, and more if you’re collaborating with someone else). Truth be told, I can’t think of any disadvantages. If you can, please leave a comment.

You know, this is extra incentive to use SQLite, because I can use that for the desktop implementation and a normal MySQL database for the online storage. Hmm, I’m liking this idea a lot. But of course you wouldn’t have to have an online server to be able to use Beyond — it’d be perfectly usable as a standalone desktop app that never connected to the Internet at all. No worries there.

So, after I came up with all this, I was reading Dan Lawyer’s post Raising the Bar for Record Managers and came across this comment by Dallan Quass (the guy in charge of WeRelate:

Another possible 11th suggestion is the ability to “sync” your local desktop client with an on-line record manager, where you can see what changes others have made and accept or reject those changes in your desktop repository. This is similar to what software engineers use when a group of distributed engineers collaborate using a shared on-line repository that can be sync’ed with their off-line desktop repositories.

Sounds mighty familiar. :) But to my credit, I hadn’t read that until after I’d come up with all of the above. But that doesn’t matter, because this isn’t about me, this is about progress and making a better genealogy experience for all of you. And that’s what I’m committed to.

An unexpected turn of events

Remember how my laptop died a few days ago and I’ve been trying to figure out how to push development forward? The answer has arrived: when I got to work today, they told me that we’re getting an iMac here in our lab so that I can work on Beyond this summer. This is almost too good to be true. :) Speaking of Macs, my friends at work are slowly converting. One bought an iBook a few months ago, another bought a MacBook Pro last week, and yet another is planning on buying one soon. Life is good. :)

As soon as finals are over, I’ll be able to start working twenty hours a week on this. I’ll try to get things done until then, but it’ll depend on how intense finals get. I still should be able to work on the design a little, though.

To web or not to web?

I’m thinking more about the possibilities of Beyond as a web app.

Advantages:

  • You can use it on any computer in the world, basically
  • Storage concerns no longer exist
  • Collaboration becomes much more feasible
  • It’s easier to make your data part of the web, if you want

Disadvantages:

  • You have to have your own web server[1]
  • The interface couldn’t be as rich
  • Your Internet connection has to be up to be able to work

[1] Unless someone started a website hosting accounts, which people could use like they use Flickr. But I don’t have the resources to do that.

Well, I don’t really know. Visual overlays for merging data would be harder to pull off in a web setting. As for requiring a web server, does phpGedView do that? Hmm, I need to look into that… The advantages of a web app are nice, especially if you don’t have your own computer (or your computer is broken :)).

Anyway, the main thing is to figure out whether the Right Thing is to stick with making a desktop app or to make a next-generation (pun intended) web app instead. Comments?

Separation of powers

Until my laptop died, I hadn’t really considered separating the underlying code from the user interface (Cocoa). But now that I can’t actually develop the interface until I fix my laptop, I’m forced to see what I can work on until that time. And thus I’ve realized that I really ought to make the underlying code as free from Cocoa as possible so that Beyond can be ported to Gtk or Qt or, heaven forbid, even Win32.

In retrospect, it completely boggles my mind that I wasn’t thinking along these lines from the beginning. I do believe in separating style from content, so to speak. Weird.

SQLite

I’m starting to seriously consider SQLite for Beyond instead of XML as the base file format. It looks like it’d work a lot better. I’ll look into it more thoroughly later on…

iRoots

On April 1st, MacGenealogy.org ran this announcement: Apple to Launch iRoots, iRoots Pro Genealogy Applications in 2007?. LOL, it’s a good read. At first I got kind of excited, but then I realized what day it was posted on and suddenly it all made sense (and the stuff later on in the announcement is…well…you’ll see).