00:01:28  * st_lukejoined
00:21:47  * ITproquit (Ping timeout: 260 seconds)
00:22:07  * ITprojoined
00:37:08  * st_lukequit (Remote host closed the connection)
00:49:11  <substack>http://droneolympics.com/ !
00:49:13  <substack>december 1st
00:52:08  <substack>mbalho: you are already going it would seem!
01:05:14  * AvianFluquit (Remote host closed the connection)
01:11:25  <chrisdickinson>could someone take a quick look at https://gist.github.com/904de7e97fff09f1939d and let me know what you think? it's kind of a sketch of what it would be like to do module-system-y stuff in GLSL.
01:12:02  <chrisdickinson>it might be a little gross, but i'd love suggestions.
01:14:52  <substack>what about #foo=require() ?
01:14:58  <substack>or #var :D
01:15:08  <substack>#var foo=require('./foo')
01:15:22  <chrisdickinson>so the problem is that you need to define some linkage
01:15:31  <chrisdickinson>also you can't have quotes in glsl ):
01:15:54  <substack>the preprocessor would strip everything out
01:16:19  <chrisdickinson>no, gl will barf if there's a string anywhere, even in a stripped out part.
01:16:29  <chrisdickinson>(just tested it on glsl.heroku.com)
01:16:32  <substack>o_O
01:16:36  <substack>that sounds impossible?
01:16:45  <substack>on account of the preprocessor is just a filter
01:16:58  <chrisdickinson>yes, but the preprocessor runs *after* the validator.
01:17:04  <substack>well put it before then
01:17:14  <substack>sounds like a *post* processor
01:17:23  <chrisdickinson>well, pre-ish-processor
01:17:30  <substack>preprocess shader.c | validate | compile
01:18:06  <mbalho>substack: yep i need to use your drone soon to try and get arduino running on it
01:18:09  <substack>chrisdickinson: also dominictarr has been talking about writing a require for c code that uses node modules
01:18:21  <substack>mbalho: no probs, I can bring it over to your place even
01:18:29  <chrisdickinson>substack: yeah, he mentioned this to me at cascadiajs, this is kind of why i'm off on this little glsl adventure
01:18:32  <substack>in exchange for delicious coffees perhaps
01:18:53  <chrisdickinson>this module system would work pretty similarly for C, i think, though GLSL has all of it's own sorts of weird
01:19:01  <substack>robotically roasted!
01:19:23  <substack>mbalho: also do you know if frys in walnut creek carries copper-clad?
01:19:23  <chrisdickinson>(for instance, running the preprocessor myself isn't a great option, since there's all sorts of things the gl context defines or undefines based on the capabilities of the host gpu)
01:19:34  <substack>I'd like to etch some boards before hardward hack
01:20:11  <substack>chrisdickinson: "the preprocessor"
01:20:14  <mbalho>substack: i have to pick up some electronic parts i ordered and shipped to the diy office in SF, will do it on monday
01:20:22  <substack>chrisdickinson: why can't you have more than 1 preprocessor
01:20:28  <mbalho>substack: i now have a submersible water pump to water plants
01:20:31  <chrisdickinson>true
01:20:32  <substack>nice
01:20:41  <mbalho>substack: and some relays and a couple thermocouples and a PID
01:20:53  <mbalho>substack: and a gravity solenoid water valve
01:20:53  <chrisdickinson>but i'd like to make it so that you could write the program in such a way that someone not using this require system could copypasta it and use it still.
01:21:13  <substack>chrisdickinson: don't bother with that use-case
01:21:14  <chrisdickinson>so a module on its own has a potential to be standalone
01:21:32  <substack>just compile to standalone
01:21:33  <chrisdickinson>the other option is to do all of this sort of require'ing / export'ing and linking in JS
01:22:08  <chrisdickinson>the other other option is that since now i've got a well defined AST for glsl and a deparser for that tree, i could just use esprima and compile JS to glsl
01:22:18  <chrisdickinson>100% of all problems solved, ever
01:27:08  <substack>mbalho: http://allashers.com/ !!!
01:27:15  <substack>I can probs source copper-clad here
01:28:43  <mbalho>substack: haha
01:29:30  <mbalho>that place looks sweet
01:29:38  <substack>mbalho: do you have a clothing iron?
01:29:55  <mbalho>for ironing things? jlord has one
01:30:00  <substack>oh nice
01:30:10  <substack>think we could requisition it for toner-transfer?
01:30:22  <substack>at hard hack let's etch some circuit boards
01:30:27  <mbalho>lol
01:30:40  <mbalho>you should just get a cheap one
01:30:49  <substack>I'll check goodwill on international
01:31:24  <mbalho>substack: have you been to the flea market at like 60th and san pablo
01:31:27  <substack>maybe I can find an aerator too to get the reusable etchant method going
01:31:33  <substack>mbalho: negatory
01:31:42  <mbalho>substack: you should go, its awesome
01:31:52  <substack>oh wait is that the one by ashby bart?
01:32:05  <mbalho>its on san pablo so not really
01:32:12  <mbalho>its permanent
01:32:31  <substack>oh wait yes I was just there last week with johnny
01:32:37  <substack>next to pebbles
01:32:42  <mbalho>yea across the street
01:32:50  <substack>in golden gate
01:32:54  <mbalho>http://goo.gl/maps/hESvS
02:02:37  <mbalho>substack: http://www.youtube.com/watch?v=urv6jArKp6M
02:05:50  * yorickquit (Remote host closed the connection)
02:33:29  <substack>mbalho: yes that's what I've done in the past
02:34:41  <substack>even the same writeup by gootee
02:56:41  * jibayquit (Quit: Leaving)
03:04:40  <chrisdickinson>can anyone think of a use for this? https://gist.github.com/4142241
03:40:21  * zz_shykeschanged nick to shykes
03:42:44  * ralphtheninjaquit (Ping timeout: 248 seconds)
04:07:56  <mbalho>substack: word on the street is that the ardrone has 2 usb ports, one by the battery and another set of exposed pins somewhere else
04:24:50  <mbalho>substack: i might need to build a connector to connect to it though
04:31:18  * dominictarrjoined
05:00:33  <ik>DAYCHANGE!
05:02:33  * shykeschanged nick to zz_shykes
05:05:02  * zz_shykeschanged nick to shykes
05:14:49  * st_lukejoined
05:20:48  <mbalho>substack: might need your help doing some drone hacks
05:20:56  <mbalho>substack: see the last few comments here https://github.com/voodootikigod/node-serialport/issues/101
05:33:38  * shykeschanged nick to zz_shykes
05:34:31  * zz_shykeschanged nick to shykes
06:10:25  * shuaibquit (*.net *.split)
06:10:26  * owenbquit (*.net *.split)
06:10:26  * tanepiperquit (*.net *.split)
06:10:26  * guybrushquit (*.net *.split)
06:10:26  * munroquit (*.net *.split)
06:10:28  * ircretaryquit (*.net *.split)
06:10:28  * niftylettucequit (*.net *.split)
06:10:28  * doolsquit (*.net *.split)
06:10:28  * py1honquit (*.net *.split)
06:10:28  * zuquit (*.net *.split)
06:10:28  * chrisdickinsonquit (*.net *.split)
06:10:28  * LOUDBOTquit (*.net *.split)
06:10:28  * ryanseddonquit (*.net *.split)
06:10:28  * cubertquit (*.net *.split)
06:10:28  * farnsworthquit (*.net *.split)
06:10:28  * sorensenquit (*.net *.split)
06:10:28  * chapelquit (*.net *.split)
06:10:28  * ITproquit (*.net *.split)
06:10:28  * Altreusquit (*.net *.split)
06:10:28  * Raynosquit (*.net *.split)
06:10:28  * pikpikquit (*.net *.split)
06:10:28  * jjjjohnnnyquit (*.net *.split)
06:10:29  * chadskidmorequit (*.net *.split)
06:10:29  * owen1quit (*.net *.split)
06:10:29  * rannmannquit (*.net *.split)
06:11:51  * owen1joined
06:16:34  * st_lukequit (Remote host closed the connection)
06:19:37  * ITprojoined
06:19:37  * Altreusjoined
06:19:37  * Raynosjoined
06:19:37  * pikpikjoined
06:19:37  * jjjjohnnnyjoined
06:19:43  * sorensenjoined
06:19:43  * chapeljoined
06:19:47  * chadskidmorejoined
06:19:51  * LOUDBOTjoined
06:19:51  * ryanseddonjoined
06:19:51  * cubertjoined
06:19:51  * farnsworthjoined
06:20:09  <fotoverite>Whoa
06:21:41  * ircretaryjoined
06:21:41  * niftylettucejoined
06:21:41  * doolsjoined
06:21:41  * chrisdickinsonjoined
06:21:41  * py1honjoined
06:21:41  * zujoined
06:21:49  * shuaibjoined
06:22:01  * owenbjoined
06:22:01  * tanepiperjoined
06:22:01  * guybrushjoined
06:22:01  * munrojoined
06:37:09  <dominictarr>network partition
06:38:36  * rannmannjoined
06:51:36  * shykeschanged nick to zz_shykes
07:08:01  * ITproquit (Ping timeout: 252 seconds)
07:14:06  * defunctzombiequit (Remote host closed the connection)
07:44:31  * defunctzombiejoined
07:44:31  * defunctzombiequit (Changing host)
07:44:31  * defunctzombiejoined
07:52:52  * defunctzombiequit (Ping timeout: 250 seconds)
08:39:04  * zz_shykeschanged nick to shykes
08:40:19  * shykeschanged nick to zz_shykes
08:49:15  * defunctzombiejoined
08:49:15  * defunctzombiequit (Changing host)
08:49:15  * defunctzombiejoined
08:57:38  * defunctzombiequit (Ping timeout: 255 seconds)
09:53:56  * defunctzombiejoined
09:53:57  * defunctzombiequit (Changing host)
09:53:57  * defunctzombiejoined
09:58:50  * defunctzombiequit (Ping timeout: 256 seconds)
10:45:33  * dominictarrquit (Ping timeout: 252 seconds)
10:57:07  <juliangruber>channel based (social) networks without authorities: https://gist.github.com/4143091
10:59:56  <substack>juliangruber: hah! dominictarr and I were talking about exactly this earlier today
11:00:39  <substack>well not exactly that
11:00:50  <substack>but rolling your own distributed twitter anyways
11:01:29  <substack>the new range query subscription model planned for scuttlebutt will make building these kinds of things much easier
11:07:17  * alessioalexjoined
11:12:22  * alessioalexquit (Quit: alessioalex)
11:39:47  * jibayjoined
11:47:21  <juliangruber>substack: is my idea a generalisation of yours?
11:54:53  <substack>seems like it
11:54:55  * defunctzombiejoined
11:54:56  * defunctzombiequit (Changing host)
11:54:56  * defunctzombiejoined
11:55:41  <substack>juliangruber: the idea was that once all the pieces of crdt are in place, writing a distributed twitter becomes the hello world
11:56:28  <substack>dangle technology in front of programmers for too long and they'll completely subvert it
11:59:26  * defunctzombiequit (Ping timeout: 250 seconds)
11:59:50  <juliangruber>substack: sounds good
11:59:55  * yorickjoined
12:08:38  <substack>and when you get the data structures right everything else falls into place
12:22:52  * ralphtheninjajoined
12:34:25  <hij1nx>substack: ping
12:35:31  <hij1nx>substack: email me paolo at nodejitsu so we can figure out how to do this integration thing and what the timeline looks like
12:49:45  <substack>pong
12:49:48  <substack>ok!
12:52:35  <substack>hij1nx: do you have a timeline on the new git stuff?
12:53:05  <substack>that could play so nicely with what we've got running for testling-ci
13:07:44  * ITprojoined
13:12:20  * ITproquit (Ping timeout: 248 seconds)
13:22:07  <substack>hij1nx: sent
13:22:54  * chadskidmorequit (Ping timeout: 240 seconds)
13:22:54  <substack>the git stuff shouldn't be necessary to get this running
13:23:15  <substack>in fact once I get the bundler working in all the browsers I'll just put it on npm
13:23:40  * chadskidmorejoined
13:24:16  <substack>it might already work, it's just that I think node-tap has browser compatability issues that are getting in the way so I'm writing a minimal tap-producing test harness that will be largely feature-compatible with node-tap for writing tests
13:34:17  <juliangruber>wtf http://bicymple.com/
13:41:21  <juliangruber>substack: how would crdt deal with not transmitting everything, just updates and the last 10 posts?
13:41:34  <juliangruber>bc memory is limited
13:42:53  <substack>juliangruber: each tweet is a document and a range query specifies the documents of interest
13:43:42  <juliangruber>does crdt do that already?
13:43:54  <juliangruber>i mean range queries?
13:44:45  <substack>not yet
13:44:55  <juliangruber>k
13:45:56  <juliangruber>hm in my system I wouldn't need crdt because its like irc, update only and peers store what they need
13:46:17  <juliangruber>but it's not really thought through yet
13:47:58  <substack>eventually consistent history
13:48:03  <substack>scuttlebutt has that
13:48:32  <substack>and then you don't need to be connected to read the scrollback
13:48:54  * rannmannquit (Changing host)
13:48:55  * rannmannjoined
13:59:25  <juliangruber>not sure i follow you?
14:05:52  <substack>https://github.com/dominictarr/scuttlebutt/#scuttlebuttevents
14:08:06  <juliangruber>ok i get it
14:08:07  <juliangruber>merci
14:25:47  * sorensenquit (Ping timeout: 246 seconds)
14:26:29  * chapelquit (Ping timeout: 246 seconds)
14:32:39  * sorensenjoined
14:35:34  * chapeljoined
14:47:00  * ITprojoined
15:19:37  <tanepiper> http://news.ycombinator.com/item?id=4828080 upboats!
15:31:40  <juliangruber>how can we ship around central authorities and still have unique names?
15:38:00  * defunctzombiejoined
15:38:00  * defunctzombiequit (Changing host)
15:38:00  * defunctzombiejoined
15:44:10  * chapelquit (Ping timeout: 246 seconds)
15:45:13  * sorensenquit (Ping timeout: 246 seconds)
15:49:44  * sorensenjoined
15:49:52  <juliangruber>names are the root of many problems, they force strict consistency
15:53:18  * chapeljoined
15:55:17  <ralphtheninja>tanepiper: sweet! :)
16:24:24  <juliangruber>what is there that is like usernames but easier to handle in a distributed way?
16:24:28  <juliangruber>sha-sums
16:26:34  * lyaunzbequit (Ping timeout: 240 seconds)
16:53:47  <juliangruber>as soon as you have users and names there will always need to be an authority
16:55:48  * jez0990_joined
17:04:48  * jez0990_quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
17:05:05  * jez0990joined
17:09:51  <substack>https://github.com/substack/tape
17:09:56  <substack>isaacs: ^^^
17:10:19  <substack>it's like node-tap except tinier and it works in browsers without crazy hacks
17:10:44  <substack>I pretty much just outright copied the node-tap test api since it's really nice
17:10:49  <substack>including all the silly aliases
17:34:04  * chapelquit (Ping timeout: 246 seconds)
17:34:05  * sorensenquit (Ping timeout: 246 seconds)
17:35:56  <mbalho>guize, i was doing distributed twitter before it was cool
17:36:20  <substack>just got tape working all the way down to ie6
17:42:33  <mbalho>substack: you should get an intern
17:42:52  <mbalho>substack: whose job is to study the node module community
17:43:00  <mbalho>substack: and research better discovery mechanisms
17:43:17  * sorensenjoined
17:43:36  <ralphtheninja>mbalho: discovery mechanism in what sense?
17:43:44  <ralphtheninja>mechanisms*
17:44:22  * chapeljoined
17:44:55  <mbalho>stuff like http://nodezoo.com/
17:45:04  <ralphtheninja>aah ok
17:50:10  * chapelquit (Ping timeout: 246 seconds)
17:50:32  * sorensenquit (Ping timeout: 246 seconds)
18:01:26  * sorensenjoined
18:04:26  * chapeljoined
18:12:27  * st_lukejoined
18:14:00  * AvianFlujoined
18:15:55  * intabulasjoined
18:29:30  * yorickquit (Remote host closed the connection)
18:35:22  * jez0990quit (Ping timeout: 252 seconds)
18:38:47  <isaacs>substack: i dig this.
18:39:09  <isaacs>substack: can you do test('foobar', {skip: true}, function(t) { // this won't even run })
18:45:58  * jez0990joined
18:49:46  <isaacs>substack: also, it seems like plan() is required?
18:59:27  * AvianFluquit
18:59:32  <isaacs>substack: pull requests coming soon..
19:31:05  <niftylettuce>hey the SSL gives a warning at browserling.com in Chrome/Opera/FF, apparently you have non SSL hosted assets getting served up on html /cc substack pkrumins
20:03:38  * ralphtheninjaquit (Ping timeout: 255 seconds)
20:04:33  * yorickjoined
20:04:33  * yorickquit (Changing host)
20:04:33  * yorickjoined
20:16:05  <Raynos>mbalho: someone needs to do that
20:21:00  <juliangruber>dominictarr: I really think making scuttlebutt work asynchronously would benefit it a lot. I'd use it immediately for a new project if it weren't memory based
20:21:51  <juliangruber>dominictarr: because that simply doesn't scale
20:31:34  <Raynos>juliangruber: what do you think he's doing now? :P
20:32:16  <Raynos>juliangruber: find a way to replicate leveldb and your done
20:32:28  <Raynos>juliangruber: or persist scuttlebutt do disk if you need it
20:38:12  * AvianFlujoined
20:47:50  * nk109joined
20:48:26  <tanepiper>hmm - tape looks good, wonder how quickly i can get it running in grunt
20:50:10  <tanepiper>suppose it would need an env switch, to run in node or in phantomjs
20:53:21  * st_lukequit (Remote host closed the connection)
21:15:45  * st_lukejoined
21:22:45  * dominictarrjoined
21:25:27  * nk109quit (Ping timeout: 245 seconds)
21:34:16  <substack>isaacs: plan is in there, skip is halfway implemented
21:48:04  <substack>anyhow, sweet pull reqs!
21:49:00  * zz_shykeschanged nick to shykes
21:49:04  <substack>tanepiper: check out the browser example
21:50:47  <substack>still works in ie6 yay
21:55:34  <defunctzombie>substack: I thought about the "streaming" dependency emission and I think the only real reasonable way to do it is to emit starting with the leafs
21:55:45  <defunctzombie>so you still have to read a few files before you can emit a dependency
21:56:04  <defunctzombie>but once you start emitting leafs, downstream should be able to do things with them
21:56:11  <substack>that could work
21:56:22  <substack>that would be really neat actually
21:56:30  <substack>depth-first
21:56:33  <defunctzombie>yes
21:56:43  <defunctzombie>you basically have to if you want anything useful out of it
21:56:57  <defunctzombie>cause otherwise you don't yet know the paths for some deps
21:57:05  <defunctzombie>which makes it tricker to process downstream
21:57:22  <defunctzombie>since you will essentially "block" till you have that info (at least from the way I see it)
21:57:29  <substack>well if your plugin needs to process dependencies at all
21:57:31  <substack>most won't
21:57:37  <substack>thinking of a good example that would
21:58:48  * davidoccamjoined
21:59:09  <defunctzombie>the other thing to consider is, do you treat this as a serial processing pipeline or general stream
21:59:47  <defunctzombie>if your downstream plugin takes a while, then deps will be spewed out faster than you might be processing them
22:01:00  <substack>the plugins can just implement a pause stream themselves or get the OS to buffer for them if they use |
22:01:15  <isaacs>substack: almost done with some stuff to do the other ordering issues i posted.
22:01:20  <isaacs>substack: just git add -p'ing now
22:01:24  <substack>oh I was just going to fix that, cool
22:01:31  <isaacs>substack: also, t.comment()
22:01:34  <substack>sweet
22:02:05  <isaacs>substack: for the ordering, it's a little janky, but i'm keeping an array of children at t._progeny(). then, in onend, calling pending.unshift.apply(pending, the kids)
22:02:14  <isaacs>substack: so they get pushed in order, then unshifted all at once
22:02:16  <substack>basically I want to use my tap tests for all my node modules in browsers
22:03:04  <substack>isaacs: what about storing t.parent and then computing an index to splice-insert into instead of a naive unshift()?
22:03:36  * eckoitjoined
22:04:31  <substack>for (var i = 0; pending[i] && pending[i].parent === t.parent; i++); pending.splice(i, 0, run)
22:05:01  <isaacs>substack: well, i like the way that youv'e done it here with a pending array.
22:05:17  <isaacs>node-tap does it with this complicated "tests are also harnesses" thing, and then it's like a tree that gets walked
22:05:32  <isaacs>which sounds nice, but in practice, is kind of a huge pita
22:05:51  <substack>also I previously had nested tests get indented but the tap parser didn't like those so I took them out
22:06:06  <isaacs>yeah, that's a bug in the tap parser
22:06:13  <isaacs>(the parser in node-tap,i mean)
22:06:39  <isaacs>substack: so, if you pull from my fork now, it fixes all the things
22:06:40  <substack>anyhow it's really easy to add it back
22:06:45  <substack>hooray!
22:07:27  <isaacs>substack: i think the naive unshift is nice. it's not as optimized, but that doesn't actually matter, since you're not going to run tests so much that it's a bottleneck
22:07:37  <isaacs>substack: it's a lot easier to see what's going on this way
22:09:23  <isaacs>substack: just rebased onto your master and force-pushed
22:11:45  <tanepiper>substack: yea, i will - i'm not going to start on it tonight though
22:12:07  <tanepiper>can probably justify hacking it at work this week :D
22:13:17  <isaacs>young modules are such a delight to work with
22:13:34  <isaacs>that's why we should write smaller modules. they don't age as quickly
22:14:04  <tanepiper>it's more about letting grunt know which environment to run it in using multitasks (no point testing code with fs or process in the browser)
22:14:15  <tanepiper>or window in node
22:14:23  <isaacs>hooray, 0.0.2!
22:14:27  <substack>0.0.2 published yep
22:31:46  * ralphtheninjajoined
22:33:59  <dominictarr>substack, prehaps we can use this for wizzards http://vimeo.com/54233383
22:34:37  <substack>nice!
22:36:33  <dominictarr>defunctzombie, substack streaming deps leaf first will mean you have to output them in topological sort order, which is the most sensible ordering
22:36:38  <dominictarr>so, that is a good thing.
22:37:29  <defunctzombie>dominictarr: substack: one hiccup I have with streaming deps is how they fit in with shims
22:37:41  <dominictarr>shims?
22:37:48  <defunctzombie>with a leaf dep, it might not be immediately obvious it should be ignored
22:37:57  <defunctzombie>so when I package modules
22:38:06  <defunctzombie>that have deps that don't work on the browser
22:38:11  <defunctzombie>I shim them out
22:38:43  <dominictarr>oh, so you load a "client" version instead?
22:38:45  <defunctzombie>yes
22:39:07  <defunctzombie>the best up to date example I have is: https://github.com/shtylman/engine.io-client/blob/master/package.json#L28
22:39:17  <defunctzombie>the bundler tool I use detects this
22:39:23  <defunctzombie>when you require engine.io
22:39:30  <defunctzombie>and uses those files instead
22:40:03  <defunctzombie>this makes the src in the project the same for client/server and lets the bundle step handle compat
22:40:17  <defunctzombie>(I think browserify has a similar concept but don't recall the field)
22:40:57  <defunctzombie>so the issue that streaming deps with shims creates is that I don't want the leafs for the 'ws' node.js module
22:41:04  <defunctzombie>and would need a way to detect that
22:41:16  <defunctzombie>so far.. the only way I can do that is by having the full dep tree
22:41:22  <defunctzombie>and pruning a branch
22:42:13  * st_lukequit (Remote host closed the connection)
22:42:27  <substack>defunctzombie: you could submit a patch to ws
22:42:36  <substack>or engine.io
22:42:50  <defunctzombie>well, the point is that the shim field would be the patch
22:42:54  <defunctzombie>that is the part I added
22:43:11  <defunctzombie>they want the codebase to work in node.js
22:43:14  <defunctzombie>and the browser
22:43:33  <defunctzombie>but things like 'ws' are node.js only
22:44:12  <defunctzombie>the shim thing works, but with streaming deps I do foresee a problem with that approach
22:44:38  <defunctzombie>actually, maybe not, if you just stream the originating file
22:44:40  <defunctzombie>that might work
22:44:56  <defunctzombie>when you stream a dep, you have the whole chain of files that led to it
22:45:03  <defunctzombie>starting with the initial "require" call
22:45:10  * frabcusjoined
22:45:21  <defunctzombie>you could easily check that and ignore if needed
22:45:25  <defunctzombie>fascinating
22:45:39  <defunctzombie>yea, I think that would work
22:45:58  <defunctzombie>so when you stream out a dep, you have to stream out its lineage
22:46:07  <defunctzombie>otherwise you have information loss
22:48:55  <defunctzombie>substack: https://gist.github.com/4145739
22:49:06  <defunctzombie>I think if you "emitted" this for each dependency
22:49:10  <defunctzombie>it would be doable
22:49:20  <defunctzombie>note that parent does not have the source
22:49:26  <defunctzombie>since that will come when the parent is emitted
22:50:01  <defunctzombie>this lets anyone interested in the lineage of the dep get that
22:50:10  <substack>seems like it would be fine without emitting the entire parents tree if you emitted depth-first
22:50:29  <defunctzombie>substack: then you miss the ability to ignore
22:50:34  <defunctzombie>that is the point of the parent tree
22:50:43  <substack>you just build the linked list yourself
22:50:53  <defunctzombie>to know that require('foo') when inside of require('bar') should be ignored
22:50:57  <substack>you only need the filename of the parent, not the grandparents
22:51:14  <defunctzombie>nope.. gotta go all the way back
22:51:22  <defunctzombie>foo inside bar inside baz
22:51:28  <defunctzombie>and say you want to ignore anything in baz
22:51:34  <defunctzombie>and you got foo first
22:51:36  <substack>key an ignore hash by filename
22:52:16  <defunctzombie>don't see how that helps
22:52:19  <substack>var ignore = {}; if (ignore[dep.parent.filename]) ignore[dep.filename] = true
22:52:46  <substack>or rather, that would work for breadth-first
22:52:51  <defunctzombie>right
22:52:55  <defunctzombie>that is my point
22:53:04  <defunctzombie>if my dep tree is baz -> bar -> foo
22:53:04  <substack>breadth-first is easier anyhow
22:53:10  <defunctzombie>I will get foo first
22:53:14  <defunctzombie>but need to know it came from baz
22:53:17  <defunctzombie>to properly ignore it
22:53:31  <substack>anyhow if you want that don't make it nested
22:53:33  <substack>make it flat
22:53:44  <substack>parents : [ file1, file2, ... ]
22:54:35  <defunctzombie>to what benefit?
22:54:51  <substack>you don't need to write a recursive traversal just to pick off the parents
22:55:03  <substack>recursively nested data structures are not very nice to deal with
22:55:32  <defunctzombie>it is like 5 lines of code
22:55:40  <defunctzombie>since there is no async element to it
22:56:07  <defunctzombie>could make it an ordered list versus tree
22:56:22  <substack>but those 5 lines would just turn the tree into an array
22:56:28  <defunctzombie>with first item being the parent, then gparent, and so on
22:56:29  <substack>just have an array to start with
22:56:32  <substack>everything is easier
22:56:41  <substack>yes, ordered
22:56:47  <substack>that's what arrays are good at being
22:57:30  <defunctzombie>ok.. now can it be done with breath first vs depth
22:57:36  <defunctzombie>and more importantly.. should it
22:57:41  <substack>yes
22:58:36  <defunctzombie>so now you are streaming out info for which you do not yet have the deps
22:59:52  <substack>yes
23:00:00  <substack>because the deps aren't necessary
23:13:25  * intabulasquit (Remote host closed the connection)
23:13:51  * intabulasjoined
23:27:10  <defunctzombie>substack: I have a gift for you
23:27:12  <defunctzombie>https://github.com/shtylman/node-required/commit/e92a4855da8396b9ad1d3b71c15d2440292e64e3
23:27:23  <defunctzombie>I hacked around some crap
23:27:29  <defunctzombie>emits 'dep' events
23:27:41  <defunctzombie>run the bin if you want to test it on something
23:28:15  <defunctzombie>events are parent first
23:40:55  <rvagg>juliangruber: ... I think you may have seen a stray tweet with your handle in it that has since been deleted
23:41:32  <rvagg>juliangruber: that was me, I was messing with the twitter API and your handle showed up in some example text which was being used cause it came from my own stream
23:42:21  <Raynos>rvagg: are puts ordered?
23:42:35  <Raynos>put(key, val) put(key, val2)
23:42:37  <Raynos>is key val2 ?
23:42:50  <rvagg>*should* be
23:43:00  * lyaunzbejoined
23:43:21  <rvagg>I'm not actually sure tho, I'd guess leveldb has store level locking to take care of that
23:43:53  <Raynos>i hope so
23:44:25  <rvagg>BUT, perhaps you could try it, use a really big blob for `val` and then use a really small string for `val2` so in theory it takes longer to write val2 than val1
23:44:39  <rvagg>I'd hate to have to do key-level locking in the JS!
23:45:38  <rvagg>Raynos: could probably use the existing test framework to test this, there's a binary blob in there that you can use
23:47:24  * intabulasquit (Remote host closed the connection)
23:47:31  * intabulasjoined
23:55:49  <Raynos>probably
23:58:17  <defunctzombie>Raynos: gracias :)
23:58:36  <Raynos>defunctzombie: what do I use if I use script instead of browserify?
23:58:51  <defunctzombie>Raynos: in what capacity?
23:58:55  <defunctzombie>I usually use it as middleware
23:59:09  <Raynos>well thats silly. I want to use it as a build step
23:59:26  <Raynos>but what features do you not have that browserify has
23:59:28  <defunctzombie>it isn't silly :p, but you can do it as a build step too
23:59:39  <defunctzombie>bin/bundle
23:59:52  <defunctzombie>hm, the process support isn't there