Open mikeal opened 11 years ago
@hij1nx your working title is hij1nx talks in italics about database shit :P
adding @juliangruber
@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.
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?
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.
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.
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.
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.
@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.
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.
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
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.
@hij1nx you're working with open data AND growing a beard??? you'll be hearing from my lawyers
Paolo is being moved to the "Beard Track."
:P
the order is @rvagg @dominictarr @juliangruber @hij1nx
If there is a beard track, I want on the tattoo track!! Wait, I might be alone on that, never mind :)
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 :)
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!
@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.
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.
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.
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?
@rvagg ahah, cian will love this
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.
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?
@substack are you going to do the reactive leveldb thing too?
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.
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.
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:
i.e. less of this
and more of this
and also
my slides are close to complete, latest is published here: http://r.va.gg/presentations/nodeconfeu.2013/
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.
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?