Here's some links to stuff we talked about last night.
Open source graph databases:
http://github.com/twitter/flockdb (written in: Scala)
http://neo4j.org/ (API: lots of langs, protocol: Java or REST, query
method: SparQL, replication: master/slave, written in: Java)
Announcement post on FlockDB:
http://engineering.twitter.com/2010/05/introducing-flockdb.html
It looks like you interact with Flock through Thrift, which I don't
quite understand:
http://incubator.apache.org/thrift/
... but I think it somehow makes it easier to write clients from
different programming languages:
http://github.com/fauna/thrift_client
http://github.com/twitter/flockdb-client
Twitter is using Flock for this feature:
http://twitter.com/thoughtbot/followed_by_my_follows
I've also attached a screenshot for anyone who's not a Twitter user.
We also talked a bit about various mathematical and computer science topics:
http://en.wikipedia.org/wiki/Directed_graph
http://en.wikipedia.org/wiki/Undirected_graph
http://en.wikipedia.org/wiki/Data-flow_analysis
http://en.wikipedia.org/wiki/Transitive_closure
A couple of things we didn't mention but I've thought about since...
There was a brief discussion about whether the participants learned
these concepts easier through mathematical notation (those that were
familiar did) or through doodles (that'd be me, personally). The
doodling reminded me of a recent presentation, "The Doodle
Revolution":
http://www.flickr.com/photos/24462152@N03/sets/72157624268778227/with/4749830738/
The key quotes are:
If you doodle something about the topic while you learn it, your
chances of comprehending it and retaining it over time are around 90%.
If you just read text, your chances are more like 10%. I thought that
was interesting.
Lastly, one of my colleagues has been learning C, so to learn and
practice the skill, he's been writing a graph database:
http://github.com/joshuaclayton/loxosceles
Dan