[personal profile] kpreid
Something I've wished for several times recently is a database-document program.

By "document" I mean that the database is a single file, which I can move, copy, etc., as opposed to living in a database server which has to stay up, uses accounts and ACLs, needs special backup procedures, and so on. It doesn't need to support humongous data sets — fits-in-memory and even linear searches are fine.

I am aware that people use spreadsheets for such purposes, but I would like to have named, typed, and homogeneous columns, easy sorting/filtering/querying, etc. which I assume I'm not going to find there. Relational would be nice too.

It must be GUI, and run on Mac OS X, but it doesn't have to be thoroughly native — I can stand the better sort of Java or perhaps even X11 app.

And finally, it should have a file format that either is obvious how to parse, or has a specification, or is supported by many other programs.

Does such a thing exist?

(If not, I might write it.)

(no subject)

Date: 2008-10-30 21:55 (UTC)
From: [identity profile] crschmidt.livejournal.com
I think this is typically "MS Access" in the Windows world. It seems like a GUI around a sqlite database might be able to do what you want, depending on how friendly the GUI to be, though the 'typed, homogenous' columns might fail you there.

(I've, generally speaking, become much more of a fan of sqlite over the past year or so.)

(no subject)

Date: 2008-10-30 22:34 (UTC)
From: [identity profile] kpreid.livejournal.com
I was thinking that myself, but I don't know anything about sqlite.

Does sqlite's file format meet my criteria? My use case is “I wrote this db-document ten years ago, I've changed/upgraded my computer/OS/apps, can I still read it?”

(no subject)

Date: 2008-10-31 00:03 (UTC)
From: [identity profile] crschmidt.livejournal.com
sqlite is backwards compatible, I believe: 3.x can read 2.x. (I don't know about 1.0, as I've never seen any sqlite 1.x data.) It appears as if 2.0 was released in 2001.

So, '10 years' is questionable, but sqlite hasn't changed much in the past Long-Time, and the development seems to keep backwards compatibility as an important principle, as I understand it... but I'm not positive.

(no subject)

Date: 2008-10-30 21:59 (UTC)
From: (Anonymous)
Have a look at couchdb: http://incubator.apache.org/couchdb/
It is written in Erlang.

(no subject)

Date: 2008-10-30 22:32 (UTC)
From: [identity profile] kpreid.livejournal.com
  • it is a server, and distributed, so its data store is not Just Files I Double-Click, which is what I mean by "document".
  • "Schema-free" is the opposite direction entirely.
  • It has accounts. I do not want any access control schemes which need maintenance built in.

(no subject)

Date: 2008-10-30 22:48 (UTC)
From: [identity profile] goawaystupidai.livejournal.com
If you are familiar with Objective-C then you should look into using CoreData. It has multiple serialization formats. One of which is to a SQLite file. Another is XML.

I've used CoreData to quickly knock up applications to manage small data sets. I have a program to track workouts. Record recipes. A mini issue tracker. Small time stuff like that. Nothing took more than an hour or two to get an initial version working.

Not quite as beginner friendly as MS Access, but a really nice system in my opinion.

(no subject)

Date: 2008-10-30 22:53 (UTC)
From: [identity profile] kpreid.livejournal.com
Hm, that sounds like a pretty good option, except that I'd need to keep around an app for each schema I use (and recompile it for changes), which is a lot of work for the kind of small documents I'm thinking of. But I'd certainly consider that if there was some schema I was going to have many documents in. Thanks.

(no subject)

Date: 2008-10-30 22:58 (UTC)
From: [identity profile] goawaystupidai.livejournal.com
I think FileMaker is the closest to MS Access for the Mac. They make a mini version called "Bento" which might be what you are looking for: http://www.filemaker.com/

(no subject)

Date: 2008-10-30 23:49 (UTC)
From: [identity profile] kpreid.livejournal.com
Yeah, I've used FileMaker Pro (and the AppleWorks/ClarisWorks database module); they're what most of my description is inspired by. It doesn't meet the file-format requirement, though. And of course I'd prefer something free :)

(no subject)

Date: 2008-10-31 02:14 (UTC)
From: (Anonymous)
Quoted cvs files should be readable more or less eternally. You could probably write a core data serializer for whatever you think the format should look like.

(no subject)

Date: 2008-11-02 23:46 (UTC)
From: (Anonymous)
"consistently-readable" over a long time, maybe. CSV is lossy from the start.

OmniOutliner?

Date: 2008-10-31 01:00 (UTC)
From: (Anonymous)
At it's simplest it's a glorified to-do list, but it's a lot more than that. I'm using it for planing the DIY renovation of my house, including the costs and progress (sigh), through to planing presentations and holding development scrum information.

It's got a good Mac native UI and came as part of the bundle on my Macbook Pro, so you may be lucky and already have it.

metakit

Date: 2008-11-01 12:09 (UTC)
From: (Anonymous)
You could check out metakit.

http://www.equi4.com/metakit/

jan