mikeal / nodeconfeu

Node Conf Europe
4 stars 0 forks source link

NodeBase Block #6

Open mikeal opened 11 years ago

mikeal commented 11 years ago

Being that talks are only 20 minutes it would be a good idea to get an understanding of what each speaker is talking about so that we can order the talks in such a way that we can limit overlap and let the talks build on each other a bit.

@rvagg @dominictarr @hij1nx what are you thinking?

mikeal commented 11 years ago

@hij1nx your working title is hij1nx talks in italics about database shit :P

mikeal commented 11 years ago

adding @juliangruber

mikeal commented 11 years ago

@hij1nx @juliangruber I think it would be good to figure out what underlying modules you're taking for granted so that @rvagg and @dominictarr might cover them in their talks and lay a good foundation for yours.

rvagg commented 11 years ago

I was thinking about introducing this https://github.com/rvagg/lmdb/tree/lmdb and perhaps talking a bit about storage primitives. Not sure, 20 mins is tight so it'd need to be focused.

@mikeal what are your thoughts on the level of technical detail needed here? Are we getting close to any kind of saturation point in the community where people are starting to get a handle on this level* stuff and how leveldb works or should we be covering some of the basics?

mikeal commented 11 years ago

I think that the block should start with a doc that gives a good overview stack and community. That said, the talk doesn't need to be about that, it should just cover it.

@rvagg if you could construct a talk that was more like a story "I wrote levelup, we broke it out in to these smaller components and then people wrote alternate implementations below and a huge ecosystem on top," similar to what you did at that meetup in SF we were at but spend way less time explaining the ins and outs of each library, just cover where they fit in to the ecosystem. that could be done in about 10 minutes if you really ratchet it down, then you could spend the next 10 minutes talking about lmdb.

it could only work if you really didn't get in to any implementation details in leveldb or any of the leveldb forks in the first 10 minutes, you could then introduce some of that information when explaining lmdb by throwing out some comparative points with the leveldb forks.

do you think that would work? if you don't think it is enough time we could try for a different person handling the introductory content and layer you in after.

juliangruber commented 11 years ago

I think I'll be talking about using leveldb on the client, with things like multilevel and level-reactive and 2 other modules I'm writing right now.

mikeal commented 11 years ago

awe man, i was looking forward to a talk about search :)

real quick, can you give us the gist of the other 2 modules. you don't have to get in to specifics but i just want to make sure any foundational shit is covered before you speak.

rvagg commented 11 years ago

I can trim it down, ultimately there's too much nerdery in the lmdb stuff and I've done the "how leveldb works" stuff to death (as have @hij1nx, @dominictarr, @juliangruber and others). I'm much more interested in how the culture of modularity is shaping what we do so I can focus on the basics of that and then do a look backwards in the stack to the 3 leveldb implementations and lmdb (and more perhaps, there's level.js, leveldown-gap, memdown, locket, mysqldown [the "wut?" factor] and eventually a pure leveljs). Which leaves everyone else to cover the upwards part of the stack. So @dominictarr, @juliangruber, @hij1nx it'd be good if you didn't get too far off into your specific stuff but cover some of the stack from levelup upwards.

I don't know of the format would allow it but there's scope for pulling @substack into this block since he's been doing some very interesting work here too and he's done streams to death.

juliangruber commented 11 years ago

@substack and @dominictarr have been doing most about search, I only have this one module implementing this one idea. Maybe I could cut that quickly to show the spirit of just inventing shit for your needs rather than having to switch to a database that supports the kind of geospatial queries you need.

Oh, and I can totally show using level-places in the client transparently over multilevel.

juliangruber commented 11 years ago

One module will be a local cache, so you can do

var remote = multilevel.client(); // ...
var cache = levelup('cache', { db: MemDown }); // or db: leveljs
var db = new PersistentCache(cache, remote);

Then you keep using db and for every key that you use it will store that locally and if necessary update the remove => Don't worry about caching and subsequent lookups of the same data will be very fast.

dominictarr commented 11 years ago

So, I was gonna do my talk on "how to write a level db module", essentially, about patterns for extending leveldb cleanly, with the aim of being composable with other modules. perhaps I should go first?

<3 italics

mikeal commented 11 years ago

actually, i think it would be best for you to go second. if @rvagg tells the "story" it'll be clear where your content fits in and it also means that @rvagg will have an easier time describing where all the components go since you'll be covering it a bit better after.

max-mapper commented 11 years ago

@hij1nx you're working with open data AND growing a beard??? you'll be hearing from my lawyers

mikeal commented 11 years ago

Paolo is being moved to the "Beard Track."

:P

the order is @rvagg @dominictarr @juliangruber @hij1nx

davglass commented 11 years ago

If there is a beard track, I want on the tattoo track!! Wait, I might be alone on that, never mind :)

davglass commented 11 years ago

Sweet! My left arm sleeve (totally geeky) will be mostly done by the time the event comes around. I should do my talk in a tank top :)

rvagg commented 11 years ago

OK, CampJS is done and my brain has finally been able to move to nodeconfeu. Here's what I'm thinking for my basic structure:

I probably won't have time to talk much about above LevelUP which leaves @dominictarr in particular to talk about that stuff.

I'll share my slides with you guys when I have something started.

@mikeal how are the hack-sessions / workshops working? Are they free-form? Is there any NodeBase focus to any of them and do we need to prepare extra stuff for them?

I did this at my CampJS workshop, a descendant of stream-adventure: https://github.com/rvagg/learnyounode/ and I want us to do a "Learn You Some Node Databases" version of the same at some point!

mikeal commented 11 years ago

@rvagg i had assumed that Cian talked to ya'll already, but there is a nodebase session "on the books", you all can structure it however you like, it'll be an hour and have no more than 40 people at once. you may need to run it more than once, depending on the level of signups.

we moved the NodeBase session to Monday so that it is finished up before the sessions.

rvagg commented 11 years ago

ok, I hadn't heard about that.

and yes, I noticed that we'd been moved to Monday which means I'm first; I just hope you have a cool keynote up front or the night before so I don't have to set the tone for the whole event.

rvagg commented 11 years ago

I'm clearly avoiding properly fleshing out my talk by spending a little too much time on the slide design.. I've done a fun Node Land themed slide deck and I'd be happy for anyone (in this block or any other block) to steal it if it interests you--I'd actually appreciate contributions on making it more rad!

http://r.va.gg/presentations/nodeconfeu.2013.slidetheme/

Content is authored in a Markdown file with slide separator markers, there's a build script (with a --watch mode) that turns it into the HTML with syntax-highlighting and all the mod cons you'd expect.

if you're awesome enough to want to join me in this craziness, ping me and I'll add you to the source repo.

mcollina commented 11 years ago

I'm not sure about using it :) (I'm using Keynote most of the time), but I think the content I'm presenting fits well in a HTML5 presentation. So, could you please add me to the repo?

dominictarr commented 11 years ago

@rvagg ahah, cian will love this

juliangruber commented 11 years ago

since @dominictarr will show how to write levelup modules and @hij1nx will talk about a real peace of software built upon level-*, a talk about how to use levelup modules will fit nicely in between.

I'll do some live coding and create a simple application, while not overlapping too much with the workshops.

juliangruber commented 11 years ago

or what about this: A talk about the most important level-* modules, similar to @dominictarr's talk in dublin. Thinking of level-sublevel, map-reduce, level-live-stream, multilevel, bytewise, level-hooks, level-store, level-replicate/-master...

What do you guys think?

juliangruber commented 11 years ago

@substack are you going to do the reactive leveldb thing too?

ghost commented 11 years ago

I'm covering streaming shared rendering and then at the end I'll how to hook up the shared rendering to do live-updating realtime updates hooked up to leveldb.

rvagg commented 11 years ago

My stuff is only now starting to solidify, it's been kind of tough to refine what I'm doing. I've added y'all to my repo, you can see the basics of it in the markdown source here (might be easier to view it raw).

In summary, A Real Database Rethink:

I'm starting to think that I should probably insert my usual "what is leveldb" spiel here somewhere since most people are still in the dark and a gentle introduction might go down well even though I'm trying to expand this beyond leveldb in particular.

I want the module-ecosystem stuff to lead in to @dominictarr's talk which builds on it I believe. I'm going to limit myself to talking more about the categories in the ecosystem (see the table/chart I've built), particularly the pluggable backend.

rvagg commented 11 years ago

Some semi-random thoughts on how to run the NodeBase/Level* workshops:

The stream-adventure / learnyounode inspired workshop tool is coming along OK, tho it's certainly not as as developed as I'd like it to be. stream-adventure got consistently high praise from NodeConf and learnyounode was by far the stand-out session at CampJS according to the follow-up questionnaires; so I'm really keen for this to be the core mechanism for the workshops.

@hij1nx has suggested pairing the more experienced people with the less experienced; I'm not sure how practical the mechanics of that is but we can try. He also thinks we should dedicate the first 10 minutes to getting people to talk about what they already know (@hij1nx do you mean talk to each other or to/with the whole group?). I'd rather be slightly more formal and organised, make sure people feel like they've got bang for their buck in choosing to attend this workshop over an alternative so I'd suggest that instead we go with something more like this:

rvagg commented 11 years ago

i.e. less of this

whatup?

and more of this

whoa!

dominictarr commented 11 years ago

and also

getting-into-it

rvagg commented 11 years ago

my slides are close to complete, latest is published here: http://r.va.gg/presentations/nodeconfeu.2013/

rvagg commented 11 years ago

Hah! It's not that your advice doesn't sound good I'm just trying to reconcile it with the format. We should all talk today and come up with a clearer plan. I'd also like to hear from @substack and @maxogden what feedback they got from nodeconf regarding their format and what improvements they would make.