Tuesday, August 04, 2009

Relationless DBs

In CBS Tower

How many geeks does it take to screw in a light bulb? Quite a few, so far no dice. Igal is manfully wrestling with the ceiling mounted projector, one of the building crew helping out. This is KOIN tower, aka CBS building, and I'm jacked in over the Wifi. I'd say we're about 15-20 in number, all XY, mostly under 50 i.e. I'd be the designated geezer in the room.

Maybe a different computer will work? We've seemingly exhausted the notion of the projector having problems... heh, four more walked in (including an XX), we're a packed house.

While we wait for technical difficulties to resolve... yet more coming in... these are maybe Ruby people mostly? I'm not seeing many guys I know (lining the side wall now, light bulb not lighting -- the projector is on, but blue screen of death).

Yeah, all Ruby people. I'm here cuzza the non-relational DB angle, Python conversant with, but Tokyo Cabinet is really looking at Ruby clients. That's on the list. Woah, another few. I'm not even the only geezer anymore, woo hoo. Light bulb on! Except flickery (rastery actually) but we'll live. OK, I'll shut up now, the entertainment has begun... (email from Kyle, cool).

SAOpdx social networking event on screen, igal flipping through a number of opportunities (Congressman Blumenauer..., UX Book Club, Bear 'n Blog (camping), Portland Ten Startup Workout (businessy topics), Javascript Admirers group (Jesse's, a group I'm familiar with (missed HTML5 dammit))).

I'd say I had the longest hair but for pony-tail over there, but I got a haircut last week, so am blending in with my gray. We're mostly practical summer cuts, the younger XX's shorter than mine. Saw Joan Rivers on CBS Morning Show some, yakking about "rich people" (someone being buried in a Gucci body bag).

Brian is soft spoken, doing a classic slide show on Rubinius, a new VM eh? MRI C, MRI Ruby RBX, RBX Jit, RBX Jit Inline... losing me guy. "The world is written in C" -- yeah, sorta true. MRI is competition I gather, as is Microsoft's IronRuby (compiles to CLR, like IronPython -- is IronScheme still happening?).

Lots of Ruby in Rubinius, mixed with optimized machine code (from C). Engine Yard is the company here. Lets do a timeline with proportionally spaced dots, but no dates, quirky. We need to mic this guy. LLVM JIT #a3526242 was a milestone. Kinda the same idea as Python of course: source code compiles to what looks like assembler (machine code), lotsa splat. Will Unladen Swallow eat this thing? I couldn't tell ya.

Why I'm here is I have this idea of document databases, not ACID compliant, but not needing to be, filling with medical record information, a lot like on Facebook, but instead of "friends" you have medical devices and testing equipment adding data to your transcript, technicians annotating, doctors prescribing, stuff that'd normally bulge a mortal's virtual suitcase of MR events and procedures.

Trying to shoehorn all this into SQL engines is somewhat perverse? Instead, send SQL engines through to harvest from MRs (more like long roles of butcher paper), give them read-only or read/write access perhaps.

An MRI (machine) could contain such an engine, just like those old Quintons I used to work with in CVL, or the FoxPro stuff I did to back CVOR perfusionists with their on-screen data collecting. Sometimes (maybe only once) they'd phone me in during an open heart operation, complaining about the font (secret plan: see if Kirby turns green behind his mask (also hair net and shoe covers)). Dr. Furnary and I were hacking on CORIS, Andy Bennett its godfather (back in the CORE days -- outcomes research).

OK, some geek is interrogating Brian about the business model behind Engine Yard in particular, a hosting company? What justifies this apparently out-sized support of a VM project, kinda like building a pyramid in your living room (kinda Close Encounters) -- my analogy. Seems having a robust VM behind a Ruby application hosting service is a real engineering dream. Google App Engine comes to mind, as a yet bigger investment. Mine is stuck in limbo cuz my source code is trapped in the Jackalope carcass, rotting away in my living room, awaiting emergency services.

Portland is a hotbed of Ruby activity says MagLev guy. MagLev is a hacked optimized Smalltalk VM, sort of. Cool logo. Here's a real Maglev website. MRI is competition again. What's Gemstone again? A company. MRI parses really fast.

Igal is up now, doing good overview, setting up the namespace for us. Lotus Notes is a document-oriented DB. Medical records in Lotus Notes? That's a first approximation maybe (I never used it). AskSam is one I remember. He says "Zah deb" for ZODB, wow. I've always said "zee oh dee bee".

Non-relational (a Papst, someone just gave me a Pabst! -- no beer diet on hold, had a few Buds in high desert, yakking with rancher types) databases improve speed, flexibility, reliability, scalability. Eliminate table schemas, constraints, transactions, locks. Heresy! Call the cops! There's something brittle / fragile about SQL engines, the way igal talks. We're feeling scared about them now, they could all break tomorrow. Google uses BigTable with "eventual consistency" (the not ACID part). You need more asynchrony in such global, distributed systems in the cloud. Airline reservations, banking, ticketing... still SQL why not? Is what I'm thinking.

This is a lot what XML was supposed to be doing? Actually these aren't mutually exclusive tools. Igal knows cool lore about Flickr, LinkedIn... he's done some homework I'm thinking. These DBs tend to have master-slave relationships, or hub-satellites if you dislike the mock classism.

Geeking out with a Pabst, does it get any better? The screen isn't even rastering anymore. Emails to/from Chris Brooks, gotta order from Quiznos, forwarded to Ms. Walker (who also likes Pabst... is a geek).

Check out MongoDB for a good example of this kind of stuff. In a future Portland math class, we might spend some time hacking on these. Smart cookies will figure the math segues to/from what's in the school's standards (schools compete, not states, not nations, the way I'm thinking). Tokyo Cabinet + Tyrant (mixi.jp). Magnitudes faster than CouchDB on lookups but crazy slow with queries (filters). Let's look at the Rufus library... (so many libraries...).

Philosophy would have no problem making bridges, so if the math experts fall on their faces, just tell 'em it's "a language game" (like chess). Problem here is: we don't teach philosophy to children (for some silly reason).

Tokyo Cabinet is a descendant from BerkeleyDB in some ways. "It's become very fashionable to create these..." Then we have "graph databases". Some guy in the audience: sounds like he's talking about polyhedra of course: vertices, edges... CouchDB is pretty sophisticated, though "very, very, very slow" says the slide ("was I doing something ridiculously wrong?") -- relative to Tokyo Cabinet no doubt, but it has ACID, versioned documents... lots more overhead because of the features (get those in place, maybe speed it up later?).

Random thought from high desert: now that GM is so much a slave to the taxpayers (corporations are subhuman, so we're OK talking this way), why not have GM do a lot of the drivers' ed in high schools, make that a mission of dealers somehow? They've cut out driving instruction in our schools, as well as home economics (also most music, art...), given the constricted mindset doing the controlling, intent upon "world domination" in an intellectually lazy, idiocratic sense (too many Pointy Hairs, not enough Coneheads).