notes from May meeting

Skip to first unread message

Jesse Hallett

Jun 2, 2011, 9:08:51 PM6/2/11
I took some rough notes during the May Ruby meeting. It occurs to me
that I ought to share them:

PDXRuby 2011/05

CLOS: Common LISP object system

bitcoin, a peer-to-peer currency

Geoloqi MapAttack is a multiplayer geolocation-based game for iPhone

EventMachine.synchrony is like except that it wraps
non-blocking operations in fiber yields instead of using callbacks.

Frameworks that work nicely with fibers: Goliath, Sinatra-Synchrony

The Rubinius Hydra branch eliminates the GIL (global interpreter lock)
and includes experimental support for fibers.

curl has its own internal event loop which it uses to make multiple
requests in parallel

To bend the CAP theorem, use N/W/R: N is the number of nodes, W is the
number of nodes that have to be updated for a successful write, and R
is the number of nodes that have to be queried for a successful read.
If W + R > N then you have a "quorum". See Cassandra. If W + R <= N
then you have "weak consistency" - which is how DNS works.

Mongo supports distributed MapReduce. "It's cheaper to move the
computation to the data than it is to move the data to the

If you are using MySQL with Ruby, use the mysql2 gem!

Trigram is great for searching for fuzzy word matches - it is a lot
faster than a Levenstien Distance technique.

HBase is an implementation of BigTable. Google has recently moved on
to MegaStore. HBase is a column store; it can be configured to be
consistent or available; it supports MapReduce via Hadoop integration.

Cassandra is almost exactly like HBase, except that its node structure
is more like Dynamo. Facebook is moving from Cassandra to HBase - but
the problems they were having were not the problems that mere mortals
would encounter.

Thrift is a transport protocol and data serialization protocol that is
network-efficient. It is used for shuffling data around. Thrift can
be used to interface with HBase, along with some code generation.

When it comes to Mongo drivers, mongoid is where it is at. There is a
geocoder addon for Mongo that adds support for more sophisticated
geolocation indexes.

Mongo uses BSON (binary JSON) to transport data. Foursquare uses
Mongo and helped to drive geolocation support in Mongo. Mongo uses
geo-hashes to form geolocation indexes.

Riak uses the Dynamo K/V style. Riak will serve data over HTTP.

Forget about Tokyo Cabinet! Kyoto Cabinet is way better. But Redis
is the best key-value store anyway.

Graph data stores include Neo4j and FlockDB. Twitter uses FlockDB for
their social data.

Jesse Cooke

Jun 3, 2011, 3:01:40 AM6/3/11
Thanks Jesse!

Jesse Cooke :: N-tier Engineer / @jc00ke

You received this message because you are subscribed to the Google Groups "pdxruby" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply all
Reply to author
0 new messages