00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:02:12  * mcollinajoined
00:06:51  * mcollinaquit (Ping timeout: 252 seconds)
00:17:20  * mikolalysenkoquit (Ping timeout: 246 seconds)
00:22:03  * mikolalysenkojoined
00:24:50  * fallsemoquit (Quit: Leaving.)
00:25:16  <Raynos>defunctzombie: streams of strings should treat empty string as an empty chunk
00:27:33  * dguttmanquit (Quit: dguttman)
00:29:00  * dguttmanjoined
00:29:33  * dguttmanquit (Client Quit)
00:32:49  * mcollinajoined
00:33:59  <defunctzombie>I guess an empty string is how String.split() behaves
00:34:11  <defunctzombie>kinda annoying for newline protocols, but whatevers
00:35:30  * mikealquit (Quit: Leaving.)
00:37:27  * mcollinaquit (Ping timeout: 245 seconds)
00:43:01  * dominictarrquit (Quit: dominictarr)
00:43:35  * dguttmanjoined
00:43:55  * defunctzombiechanged nick to defunctzombie_zz
00:50:30  * elliochanged nick to satyriasic
00:51:44  * satyriasicchanged nick to e
00:51:47  * echanged nick to ec
00:52:16  * jxsonquit (Ping timeout: 276 seconds)
00:52:53  * dguttmanquit (Quit: dguttman)
00:53:26  * jez0990_webchatjoined
00:56:39  * fallsemojoined
00:57:41  * jez0990_webchatquit (Ping timeout: 250 seconds)
01:00:48  <mbalho>i made this node.js logo and forgot about it http://i.imgur.com/7rafvl6.png
01:00:49  <mbalho>lets make tshirts
01:06:22  <Kessler>should make a pizza stream version of that too! :)
01:17:23  * tilgoviquit (Ping timeout: 240 seconds)
01:19:50  <wolfeidau>defunctzombie_zz: Yeah i found that too
01:22:20  * jxsonjoined
01:22:46  <Kessler>Nonblocking Algorithms and Scalable Multicore Programming: http://queue.acm.org/detail.cfm?id=2492433
01:23:48  <mikolalysenko>Check it out, I made a pitch detector! https://github.com/mikolalysenko/detect-pitch
01:24:14  <mikolalysenko>almost have autotune working in js...
01:24:42  <mikolalysenko>is autotune a trademark?
01:24:49  <mikolalysenko>like can I create node-autotune?
01:25:51  <Kessler>autotunejs ?
01:26:19  <Kessler>I think by adding either node prefix or js suffix you'll probably avoid any lawsuits :)
01:26:29  <mikolalysenko>Kessler: haha, such wishful thinking!
01:26:51  <Kessler>legal optimism ftw
01:29:34  <mikolalysenko>also I just got back from the superman movie and it was pretty awesome
01:29:43  <mikolalysenko>not sure why there are such mixed reviews for it...
01:32:15  <substack>mikolalysenko: do you know of any good foat -> continued fraction array implementations I can transliterate?
01:32:29  <substack>I had trouble fetching the PARI source, their git remote just hangs
01:33:57  * mcollinajoined
01:38:13  * mcollinaquit (Ping timeout: 248 seconds)
01:45:00  <mikolalysenko>substack: not sure, you could just apply the definition maybe?
01:45:19  <mikolalysenko>like each float = 2^n * x
01:45:28  <mikolalysenko>where n = exponent and x = significand
01:46:22  <mikolalysenko>so they are all just rational numbers and have a simple closed form continued fraction basis... but there are probably some subtleties here I am ignoring
01:51:34  * jxsonquit (Remote host closed the connection)
01:59:30  <substack>it's not at all obvious how to take 2^n*x and generate an array of integers
01:59:48  <mikolalysenko>no, you only need 1 integer if n > 0
01:59:51  <mikolalysenko>and x is an integer
01:59:55  <substack>...
01:59:58  <mikolalysenko>otherwise it is just a rational number
02:00:04  <mikolalysenko>kind of a trivial answer, but there you go
02:00:08  <substack>what
02:00:17  <mikolalysenko>a float is just 2^exponent * x
02:00:21  <mikolalysenko>where x is an integer
02:00:25  <substack>yes but
02:00:27  <substack>like this: https://www.wolframalpha.com/input/?i=continuedFraction%20pi
02:00:27  <mikolalysenko>and exponent is also an integer
02:00:30  <substack>how do I generate arrays like that
02:00:57  <mikolalysenko>wolfram alpha probably has a table that knows what the continued fraction for pi is
02:01:10  <mikolalysenko>try this one: https://www.wolframalpha.com/input/?i=continuedFraction+1%2F256
02:01:17  <substack>no, you can give it arbitrary floats
02:01:21  <mikolalysenko>any float is gonna have a similar results
02:01:52  <substack>oh ok I think I have an idea at least
02:02:05  <substack>it's just the remainder that carries over
02:02:22  <mikolalysenko>yeah
02:02:37  <mikolalysenko>for stuff like roots and things you would want a different representation of course
02:02:40  <mikolalysenko>but those aren't floats
02:02:47  <mikolalysenko>all floats are secretly rational numbers
02:02:52  <mikolalysenko>just they are stored on a log scale
02:03:01  <substack>no for roots I also want the same prepresentation
02:03:13  <mikolalysenko>well, roots can be represented as a continued fraction
02:03:16  <substack>*rep
02:03:20  <mikolalysenko>and it is infinite if the root is irrational
02:03:21  <substack>yes
02:03:24  <mikolalysenko>but floats are all rational
02:03:29  <mikolalysenko>so they have a finite continued fraction
02:03:33  <substack>rational numbers are uninteresting
02:03:39  <mikolalysenko>but floats are rationals
02:04:49  <substack>$ node bin/solve.js 14 17 22 29 38 49 62
02:04:49  <substack>(((n*(n))*(0))+(13))
02:05:04  <substack>oh except ignore the *0, that's a bug
02:05:08  <substack>it works except for that
02:05:19  <mikolalysenko>what am I looking at?
02:05:30  <substack>it generates formulas for arbitrary sequences
02:05:47  <mikolalysenko>like polynomials?
02:06:05  <mikolalysenko>or recurrences?
02:06:06  <substack>it can generate arbitrary algebraic expressions, not just polynomials
02:06:24  <substack>under +,-,*,/, and integral ^
02:06:35  <substack>it can't do recurrences
02:06:42  <substack>but check this out
02:06:59  <substack>for every continued fraction, there is a non-recursive expression
02:07:13  <substack>every real has a continued fraction expression
02:07:52  <mikolalysenko>when you say non-recursive, what do you mean here?
02:07:56  <substack>so the input to this program will be a float like 3.141592654
02:08:08  <substack>it can't find recurrences
02:08:47  <substack>the float 3.141592654 goes in
02:08:56  <substack>generates a continued fraction sequence
02:09:22  <mikolalysenko>here is a simpler continued fraction: 3141592654/10000000
02:09:34  <substack>a formula is generated for the sequence
02:09:34  <mikolalysenko>(I think I miscounted the 0s...)
02:10:03  <substack>and you can use the formula to get the rest of the digits
02:10:37  <mikolalysenko>it sounds interesting, but I think you are missing some constraints here in your definition
02:10:59  <mikolalysenko>for example, I can always find a polynomial that interpolates some sequence
02:11:07  <mikolalysenko>http://en.wikipedia.org/wiki/Lagrange_polynomial
02:11:17  <mikolalysenko>so how do you know the function you come up with is the right one?
02:12:16  <substack>there is no guarantee
02:12:21  <substack>it just matches the input sequence
02:12:24  <substack>but that doesn't matter
02:12:29  <mikolalysenko>ok, but so does a lagrange polynomial...
02:12:51  <mikolalysenko>and also so does the dumb version of the float which is just the definition
02:13:53  <mikolalysenko>I could also find a trig series too. just take a fourier transform
02:14:21  <mikolalysenko>or I could fit it with splines...
02:16:21  <substack>the mechanism isn't very important so long as it tends to give compact formulas
02:19:38  <mikolalysenko>hmm... I don't quite understand what you are trying to do
02:50:22  * vitorpachecojoined
02:54:50  * fotoveritequit (Quit: fotoverite)
02:58:21  * dguttmanjoined
03:00:32  * dguttmanquit (Read error: Connection reset by peer)
03:00:49  * nicholasfjoined
03:05:18  * mcollinajoined
03:10:00  * mcollinaquit (Ping timeout: 256 seconds)
03:19:21  * Kesslerquit (Ping timeout: 252 seconds)
03:31:17  * jcrugzzquit (Ping timeout: 268 seconds)
03:32:46  * timoxleyjoined
03:36:42  * mcollinajoined
04:02:30  * brianloveswordsquit (Excess Flood)
04:04:30  * brianloveswordsjoined
04:15:42  <mbalho>jjjohnny: http://synth.soundkeep.com/
04:17:02  * mcollinaquit (Ping timeout: 245 seconds)
04:17:21  * nicholasfquit (Read error: Connection reset by peer)
04:17:36  * nicholasfjoined
04:31:16  * ralphtheninjaquit (Quit: leaving)
04:31:38  * ralphtheninjajoined
04:35:53  <mikolalysenko>mbalho: that is cool, but too bad all the dials are crazy
04:39:03  <mbalho>lol thats what substack said
04:39:04  <mbalho>its on github
04:39:17  <mbalho>you just click and drag straight up or down
04:39:36  <mikolalysenko>mbalho: yeah, I kind of figured it out, but it is still weird
04:39:52  <mikolalysenko>still it is a pretty awesome synth
04:42:34  * jcrugzzjoined
04:43:24  * mcollinajoined
04:44:21  <substack>mikolalysenko: https://github.com/substack/seqsolve
04:45:10  * whit537quit (Read error: Connection reset by peer)
04:45:13  * whit537_joined
04:46:45  <substack>particuarly, https://github.com/substack/seqsolve/blob/master/lib/permutation.js
04:49:09  <mikolalysenko>ok, so it exhaustively enumerates all formulas
04:49:58  <mikolalysenko>also if you want to generate combinations there is a better/simpler way
04:50:22  <mikolalysenko>check out this: https://npmjs.org/package/bit-twiddle
04:50:29  <mikolalysenko>and in particular nextCombination(x)
04:51:10  <substack>I wouldn't have thought to search in a library called "bit-twiddle" for a combination lib
04:51:16  <mikolalysenko>well, it is in there
04:51:32  <mikolalysenko>but it generates binary combinations by bit-twiddling
04:51:51  <substack>that's a sweet trick
04:52:00  <substack>makes sense
04:52:02  <mikolalysenko>here is the idea in a loop: for(var comb=(1<<k)-1; k<1<<n; k = bits.nextCombination(k)) { ... }
04:52:49  <mikolalysenko>also if you want to generate permutations you can try this out: https://npmjs.org/package/permutation-rank
04:53:04  * whit537_changed nick to whit537
04:53:04  <mikolalysenko>you can use it to enumerate permutations with a simple for-loop
04:58:48  <mikolalysenko>err I typed that loop wrong. here is the correct usage:
04:59:24  <mikolalysenko>for(var c=(1<<k)-1; c<(1<<n); c=bits.nextCombination(c)) { ... }
05:01:38  <substack>5 users have over 200 modules on npm now
05:01:39  <substack>:D
05:02:35  <substack>mikolalysenko: wow you're up to 155
05:02:45  <substack>when did you publish your first npm module?
05:03:33  <mikolalysenko>long ago, but I only started doing it seriously around january
05:03:52  <mikolalysenko>I wrote some simple little module patching thing a few years back
05:04:04  <mikolalysenko>err object patching/diffing
05:04:25  * mcollinaquit (Ping timeout: 240 seconds)
05:04:26  <mikolalysenko>it was an idea for doing networking that didn't work out as awesome as I thought it would
05:05:31  <mikolalysenko>here we go: my first npm module: https://github.com/mikolalysenko/patcher.js
05:05:53  <mikolalysenko>even has a getto non markdown readme :P
05:06:13  <mikolalysenko>and it ends in .js for no particular reason
05:11:23  * ralphtheninjaquit (Ping timeout: 240 seconds)
05:15:14  * nicholasfquit (Read error: Connection reset by peer)
05:15:27  * nicholasfjoined
05:16:17  <substack>I've used that lib!
05:16:30  <substack>I even starred it ages ago https://npmjs.org/package/patcher
05:17:18  <jesusabdullah>I need to unstar everything
05:17:40  <jesusabdullah>Maybe I'll write that "unstar all your shit on npm" script I've been meaning to do
05:18:06  <jesusabdullah>isaacs: how do you get npm to tell you which packages you've starred?
05:18:09  <mikolalysenko>substack: haha awesome!
05:18:16  <mikolalysenko>I don't even know how to star stuff on npm
05:18:28  <jesusabdullah>everything I've starred was from when I was trying to help nodejitsu projects have stars (I mean, I used them right? Seemed fair)
05:18:29  <mikolalysenko>is there some command, like npm star or something?
05:18:32  <jesusabdullah>but I hate starring
05:18:35  <jesusabdullah>mikolalysenko: yeah
05:18:38  <isaacs>jesusabdullah: npm stars
05:18:50  <mikolalysenko>ah, awesome protip!
05:19:06  <mikolalysenko>I am should write a script to star every module on npm...
05:19:11  <jesusabdullah>ohey I should be able to xargs this
05:19:19  <jesusabdullah>except for some reason I have a mental block with xargs
05:19:42  <mikolalysenko>I should probably go to sleep soon though
05:19:51  <isaacs>jesusabdullah: please don't bust up the registry with another hoarders
05:20:01  <jesusabdullah>isaacs: no I want to UNstar everything I've ever starred
05:20:11  <substack>I need to use xargs more too
05:20:12  <isaacs>jesusabdullah: ohhh... ok.
05:20:25  <substack>I used it last week and it worked like I thought it did
05:20:27  <isaacs>jesusabdullah: npm stars | xargs -I P npm unstar P
05:20:33  <substack>but it's not part of my mental flow yet
05:20:55  <isaacs>or, actually, don't need the -I
05:21:04  <isaacs>just npm stars | xargs npm unstar
05:21:11  * isaacsthinks in xargs
05:21:33  <isaacs>i sometimes use xargs completely unnecessarily, even
05:21:42  <jesusabdullah>isaacs: YES thank you
05:21:42  <isaacs><3 xargs so much
05:21:59  <isaacs>jesusabdullah: i'd forgotten that npm unstar takes multiple args
05:22:01  <jesusabdullah>isaacs: Like I said I know vaguely what it does but for some reason it confuses the crap out of me
05:22:07  <jesusabdullah>isaacs: yeah I dod too
05:22:17  * mikealjoined
05:22:26  <isaacs>xargs is the reduce of the command line
05:22:27  <jesusabdullah>did*
05:22:44  <jesusabdullah>isaacs: Like I see what people do with it and I'm like, "yeah that looks awesome"
05:22:51  <jesusabdullah>isaacs: then I read the docs and I'm just like SOO lost, idk why
05:23:03  <isaacs>the TRICKY stuff happens when you need to make xargs run more than one thing
05:23:07  <jesusabdullah>isaacs: I think I need to learn by example, like small toy examples to start with that are really obvious, then work my way up
05:23:07  <isaacs>and then you use sh -c
05:23:31  <jesusabdullah>well at ANY RATE I'm just gonna copypasta that thing you showed me for now
05:23:42  <isaacs>jesusabdullah: https://github.com/isaacs/dotfiles/blob/master/.extra.bashrc#L507-L517
05:24:02  <jesusabdullah>isaacs: so xargs takes ws-separated stuff from stdin and plops them in the arguments? Is that it?
05:24:17  <isaacs>jesusabdullah: basically, yeah
05:24:19  <jesusabdullah>isaacs: or does it run unstar n times?
05:24:33  <isaacs>jesusabdullah: it'll take up to ?i think? 256 args
05:24:48  <isaacs>jesusabdullah: and then call unstar as many times as it needs to to cover all the args
05:24:52  <jesusabdullah>aha, n times
05:24:53  <jesusabdullah>cool
05:24:55  <jesusabdullah>awesome
05:24:56  <jesusabdullah>perfect
05:25:01  <jesusabdullah>yeah screw you stars
05:25:05  <jesusabdullah>eat it lil' flatty
05:25:08  <jesusabdullah>I don't use you
05:25:24  <isaacs>jesusabdullah: if you have fewer than n stars, it'll call count/n times
05:25:27  <isaacs>er, 1 time
05:25:40  <isaacs>or as many as count/n
05:25:55  <isaacs>if you do the -I, then it'll call the command exactly once per arg
05:26:06  * whit537quit (Quit: BLAM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
05:26:24  <jesusabdullah>by "n" I meant "however many chunks there are in that stdin thang"
05:26:29  <jesusabdullah>not a particular cli arg
05:26:44  <jesusabdullah>woot, no more stars
05:26:50  <jesusabdullah>you're a pal
05:26:55  * mikealquit (Client Quit)
05:27:12  <jesusabdullah>isaacs: now if you know how to get engine.io working on nginx you'll be a Real American/Patriot
05:28:10  * isaacsis mostly subversive
05:28:23  <jesusabdullah>it's okay, I think subversives can be patriots
05:28:39  <jesusabdullah>I think? I'll have to consult my Official Unofficial Tea Party Handbook
05:31:07  <jesusabdullah>yaaaay guillermo has the mad hookups
05:31:12  * mcollinajoined
05:35:28  * mcollinaquit (Ping timeout: 252 seconds)
05:38:30  * vitorpachecoquit (Ping timeout: 264 seconds)
05:40:00  * mikealjoined
05:44:03  <substack>isaacs: when I launch a proc with spawn(..., { stdio: 'inherit' }), how can I kill the proc without backgrounding the process that launched the subprocess?
05:44:31  <isaacs>substack: "kill the proc" the proc is the child, or the parent?
05:44:34  <substack>if works fine if I ^D out of the process myself but if I ps.kill() or ps.stdin.end() the parent gets backgrounded
05:44:55  <substack>the proc is a child
05:45:01  <substack>launched with stdio: 'inherit'
05:45:08  <isaacs>substack: right.
05:45:12  <isaacs>substack: it doesn't have its own stdin
05:45:15  <isaacs>it's jut the parent's stdin
05:45:38  <isaacs>substack: that's kind of a weird use case
05:45:48  <substack>I'm launching bash in a subshell
05:45:51  <isaacs>so you wanna launch a repl or something, then ^D, and then you're back to the parent
05:45:52  <substack>so the user does some things
05:45:54  <isaacs>right
05:46:17  <substack>but I want the subshell to be ended by the parent, not the user
05:47:40  <substack>when I do that it does:
05:47:40  <substack>[1]+ Stopped node start.js
05:47:41  <substack>substack : stream-guides $ substack : pipe $
05:47:56  <substack>maybe this is a bash-specific thing?
05:55:25  <substack>surprise fireworks outside
06:01:35  * mcollinajoined
06:03:33  * fotoveritejoined
06:06:14  * mcollinaquit (Ping timeout: 256 seconds)
06:07:58  * dominictarrjoined
06:08:37  <dominictarr>mbalho: no, it should be okay.
06:09:12  <dominictarr>defunctzombie_zz: yeah, trying to be the same as Array.split
06:20:34  * mikolalysenkoquit (Ping timeout: 252 seconds)
06:32:05  * mcollinajoined
06:35:50  * fallsemoquit (Quit: Leaving.)
06:36:42  * mcollinaquit (Ping timeout: 264 seconds)
06:40:47  * defunctzombie_zzchanged nick to defunctzombie
06:41:18  * nk109joined
06:56:01  * defunctzombiechanged nick to defunctzombie_zz
07:02:28  * mcollinajoined
07:06:37  * mcollinaquit (Ping timeout: 245 seconds)
07:08:28  <jesusabdullah>dominictarr: ahaha moduletopia
07:08:38  <jesusabdullah>dominictarr: you're tweeting to the guy that wrote a blog post defending node.js frameworks
07:08:44  <dominictarr>MODULETOPIA
07:09:13  <jesusabdullah>that sounds like a website
07:09:35  <jesusabdullah>http://moduletopia.com
07:09:36  <dominictarr>it's a wonderful island, where everything only does one thing
07:09:46  <jesusabdullah>WE HAVE EVERYWHAT YOU NEEDS
07:10:09  <jesusabdullah>oh, dominictarr http://jesusabdullah.github.io/2013/06/06/14-how2nginx-socket.io.html + demo
07:10:17  <jesusabdullah>nginx is surprisingly fun
07:10:35  <dominictarr>jesusabdullah: just brough moduletopia.com
07:10:51  <jesusabdullah>lol awesome
07:10:55  <jesusabdullah>302 it to npmjs.org for now
07:11:20  <jesusabdullah>actually, you know what would be awesome to have there?
07:11:25  <jesusabdullah>a voxeljs environment
07:11:33  <jesusabdullah>where all the objects are somehow related to npm modules
07:11:43  <jesusabdullah>like, procedurally generated from the npmjs.org _changes feed
07:12:00  <dominictarr>yes
07:12:14  <jesusabdullah>every time a new module is born a new creature is created
07:12:32  <jesusabdullah>or something like that
07:12:37  <dominictarr>someone should totally build that
07:12:41  <jesusabdullah>but only the last n modules or something so it doesn't explode
07:12:45  <jesusabdullah>have you done voxeljs stuff much?
07:13:06  <jesusabdullah>or know of a good example multiplayer voxeljs server?
07:14:22  <jjjohnny>when was it decided they would not be called nodules?
07:16:16  <jesusabdullah>I forget
07:18:13  <jesusabdullah>oh man I just had a crazy idea
07:18:16  <jesusabdullah>a lot of work I bet
07:18:21  <jesusabdullah>but man oh man would it be cool
07:19:15  <jesusabdullah>dominictarr: http://gamelab.mit.edu/games/a-slower-speed-of-light/
07:19:38  <jesusabdullah>dominictarr: they open-sourced the engine for this, it uses haxe but it'd be cool to have effects like this on a voxeljs world for sure
07:20:38  <substack>that would be sweet as a shader
07:22:29  <dominictarr>jesusabdullah: a slower speed of light looks cool
07:23:48  <jesusabdullah>yeah, it's pretty cool
07:24:05  <jesusabdullah>substack: you can implement all of it as a shader?
07:24:16  <jesusabdullah>substack: it's not just the colors, it also distorts your view
07:24:22  <dominictarr>there is a perspective warping thing too
07:24:26  <jesusabdullah>substack: it also screws with your inertia but I bet that's not too bad
07:24:29  <dominictarr>when the speed of light gets really slow
07:24:57  <jesusabdullah>what's really fun is when your vision starts blacking out cause everything's being pushed outside your field of vision :)
07:25:54  <jesusabdullah>http://maxogden.github.io/voxel-perlin-terrain/ I try to look down but mbalho's magnificent beard is in the way
07:26:15  <jesusabdullah>voxel-beard
07:27:21  * mikolalysenkojoined
07:27:33  <jesusabdullah>haha
07:27:41  <jesusabdullah>mikolalysenko: I was just about to say you'd probably be good for this thing
07:27:52  <jesusabdullah>mikolalysenko: funny that you just happened to drop by
07:28:07  <jesusabdullah>mikolalysenko: http://gamelab.mit.edu/games/a-slower-speed-of-light/ + voxel.js = ??!?!
07:28:17  <dominictarr>substack: I just brought moduletopia.com
07:28:19  <jesusabdullah>mikolalysenko: I thought of you cause sub suggested using shaders to do the hard work
07:28:27  <dominictarr>now we just need an island.
07:28:46  <jesusabdullah>where the creatures are procedurally generated with the npm registry _changes feed
07:28:48  <dominictarr>then we can create a new society where everything is a module
07:28:53  <jesusabdullah>haha :)
07:29:05  <jesusabdullah>It'd be cool too to peg the size of the creature to the size of the @latest tarball
07:29:12  <jesusabdullah>so you could see immediately the size of a module
07:29:29  <dominictarr>there is only one problem with life on moduletopia
07:29:37  <jesusabdullah>too many modules? ;)
07:29:41  <dominictarr>no,
07:29:56  <dominictarr>occasionally, the evil MONOLITH
07:30:01  <jesusabdullah>hahaha
07:30:02  <jesusabdullah>yes
07:30:02  <dominictarr>attacks the island
07:30:15  <jesusabdullah>the biggest modules are at least vaguely dangerous
07:30:38  <dominictarr>the islanders must work together to defeat the monolith
07:30:56  <dominictarr>jesusabdullah: that is how modules make babies
07:31:00  <jesusabdullah>yeah, I like the idea that you can destroy modules for points
07:31:09  <dominictarr>they add features
07:31:11  <jesusabdullah>and that bigger modules are more dangerous and worth way more points
07:31:16  <dominictarr>growing
07:31:25  <jesusabdullah>and when you kill them they only come back when a new version is published
07:31:27  <dominictarr>and then parts split off and become new modules
07:31:59  <jesusabdullah>hehe
07:32:08  <jesusabdullah>are there tooltips for voxeljs?
07:32:17  <jesusabdullah>it'd be handy if you could see just what modules you were fighting
07:32:40  * mikolalysenkoquit (Ping timeout: 276 seconds)
07:32:49  * mcollinajoined
07:33:06  <jesusabdullah>I think after I'm happier with browserify-cdn I'm gonna start playing with voxeljs
07:33:12  <jesusabdullah>cause this is actually pretty rad
07:33:20  <jesusabdullah>"actually" XD I make it sound like I doubted you
07:36:55  * mcollinaquit (Ping timeout: 246 seconds)
07:39:52  <jesusabdullah>substack: there's no multiplayer for voxel.js yet is there? Isn't that mbalho was talking about building? We'll need that for moduletopia
07:40:33  * timoxleyquit (Quit: Computer has gone to sleep.)
07:41:39  <substack>that exists
07:41:43  <jesusabdullah>oh? :D
07:42:24  <jesusabdullah>niiice
07:42:38  <jesusabdullah>so all we have to do is write the creature generator and an fps weapons system >:)
07:42:50  <jesusabdullah>oh yeah, dominictarr, I'd love it if there were like ridiculously OP weapons
07:43:05  <dominictarr>"OP"?
07:43:30  * timoxleyjoined
07:46:37  <jesusabdullah>overpowered
07:46:48  <jesusabdullah>think the quake series, or Serious Sam if you ever played that
07:54:29  <jesusabdullah>okay, boning the registry right now
07:54:34  <jesusabdullah>but I only need to do it once
07:54:58  <jesusabdullah>oh christ this is going to be ridiculous, should not do that
07:56:40  <jesusabdullah>actually, I know what I want to do
07:58:17  * shamaquit (Remote host closed the connection)
08:02:41  <jesusabdullah>okay why can't I get at npm's _changes feed
08:02:49  <jesusabdullah>I think I'm fuckin' up the url
08:03:12  * mcollinajoined
08:07:46  * mcollinaquit (Ping timeout: 276 seconds)
08:10:54  * nicholasfquit (Read error: Connection reset by peer)
08:11:20  * nicholasfjoined
08:13:12  <jesusabdullah>dominictarr: how do npm publish bots work?
08:14:30  <jesusabdullah>oh gangster, rvagg wrote it
08:22:35  <jesusabdullah>rvagg: having promblems with the publish-stream, you around? :S
08:24:14  <jesusabdullah>computarrr
08:28:00  <jesusabdullah>rvagg: https://gist.github.com/jesusabdullah/5787395 does this work for you? :S
08:32:19  * jez0990_webchatjoined
08:35:15  <jesusabdullah>oh shit, we want voxel-pp I think
08:37:38  * rvagglooks
08:42:35  <rvagg>7 days is a lot of publishes.. thats full json docs for each publish
08:43:18  <rvagg>jesusabdullah: it's probably working, but taking a while to collect and process the response
08:43:40  <jesusabdullah>1 day?
08:43:45  <jesusabdullah>alright let's dial it back
08:44:41  <jesusabdullah>rvagg: good call, working now
08:44:52  <jesusabdullah>rvagg: at what rate does it spit these out when it's not night-time in the US?
08:45:24  <jesusabdullah>rvagg: This is neat
08:45:42  <rvagg>jesusabdullah: I couldn't tell you, it's not super fast at any time of the day tho
08:45:58  <rvagg>jesusabdullah: https://github.com/rvagg/npm-publish-notify for some filters if that's helpful at all
08:46:04  <rvagg>(in the readme)
08:46:26  <rvagg>jesusabdullah: this is the filter levelbot uses: https://github.com/rvagg/level-bot/blob/master/level-filter-stream.js
08:46:31  <jesusabdullah>wow, even 15 minutes ago
08:47:02  <rvagg>jesusabdullah: and this is one I use for a bot that tells us about australian authors publishing.. given an array of australian npm usernames: https://github.com/polyhack/polyhackbot/blob/master/npm-maintainer-filter-stream.js
08:47:44  <rvagg>jesusabdullah: btw, I think I'd simplify to just this: startTime: new Date(Date.now() - days * 24 * 60 * 60 * 1000)
08:47:51  <rvagg>where days is a variable
08:48:21  <rvagg>AND, run example.js in npm-publish-stream, it's fun on the commandline
08:48:27  <jesusabdullah>this is neat rvagg
08:48:32  <dominictarr>substack: mbalho my friends who made the disasteradio videos latest work http://www.youtube.com/playlist?list=PLqSvRcRIpjRwwEMsc_yi41KGEyiqpivog
08:48:44  <rvagg>jesusabdullah: yeah, I know, lots of fun!
08:55:36  <jesusabdullah>rvagg: https://gist.github.com/jesusabdullah/5787395
08:55:58  <jesusabdullah>not reasonable to do module publishes from much longer than that ago, but out of what WAS published...
08:56:11  <jesusabdullah>If I leave it running long enough it'll become vaguely representative
08:56:31  <jesusabdullah>I should try to get a view based on modules with greatest downloads
08:56:38  <jesusabdullah>that would be more useful
08:56:48  <jesusabdullah>but this can be used for moduletopia
08:59:44  * mcollinajoined
09:00:38  * jez0990_webchatquit (Quit: Page closed)
09:21:59  * jibayjoined
09:23:24  <dominictarr>jesusabdullah: free startup idea: order your groceries online, but there is only one button labled: "male, no dependents, 18 -35
09:23:25  <dominictarr>"
09:24:03  <dominictarr>then you enter your address and they deliver a weeks worth of groceries + 6 pack
09:33:12  <jesusabdullah>yeah, no joke
09:33:22  <jesusabdullah>yourmom.com
09:33:33  <jesusabdullah>maybe
09:33:35  <jesusabdullah>robomom.com
09:33:40  <jesusabdullah>then it doesn't sound like a bad joke
09:34:14  <jesusabdullah>my one complaint about voxeljs is that none of sub's examples include a build script
09:34:19  <jesusabdullah>like, yes I know it's browserify
09:34:31  <jesusabdullah>but how hard would it be to put the command in scripts:build or something?
09:34:39  <jesusabdullah>I can't get this creature one to work for the life of me
09:35:20  * mcollinaquit (Remote host closed the connection)
09:36:11  <dominictarr>is there a way to do search/replace on pdf? need to convert this valve handbook into #stackvm handbook http://assets.sbnation.com/assets/1074301/Valve_Handbook_LowRes.pdf
09:36:28  <jesusabdullah>it depends on the pdf
09:36:33  <jesusabdullah>and it's a Whole Friggin' Thing
09:38:07  <jesusabdullah>dominictarr: yeah, you can scrape it most likely
09:38:32  <jesusabdullah>dominictarr: but it might be better to write a new one, use a combination of markdown, pandoc and latex for building
09:38:39  <jesusabdullah>dominictarr: that would be kinda awesome actually
09:39:17  <jesusabdullah>awww shit olive oil smoke temp up in this
09:40:30  <jesusabdullah>dominictarr: I keep imagining moduletopia having a soundtrack like https://www.youtube.com/watch?v=yG0oBPtyNb0 and https://www.youtube.com/watch?v=DohRa9lsx0Q
09:45:37  <jesusabdullah>or at least, happy summer-themed songs
09:45:47  <jesusabdullah>"summertime" by sublime works too
09:56:07  <dominictarr>it's a tropical island with lots of cute critters, so that stuff is perfect
09:57:00  <jesusabdullah>^__^
09:57:14  <jesusabdullah>If I was doing a game soundtrack I'd be lazy and like embed a spotify station or something
09:59:21  * Kesslerjoined
10:04:17  * ins0mniajoined
10:04:46  <jesusabdullah>hehehe, I secretly find it funny that the project with the most stars on bigcompany is know-your-http
10:05:16  <jesusabdullah>that the posters I made on my off-time are orders of magnitude more popular than the framework I hacked on full-time for like 6 months
10:22:21  <dominictarr>WOW http://www.google.com/loon
10:24:53  <jesusabdullah>wow.
10:25:04  <jesusabdullah>we should try that shit out in the villages up here
10:26:34  <dominictarr>this is gonna change everything!
10:26:41  <jesusabdullah>hopefully!
10:27:24  <jesusabdullah>dominictarr: so you know how screwed up julia's package management is? https://github.com/JuliaLang/METADATA.jl/blob/master/README.md
10:27:31  * jcrugzzquit (Ping timeout: 276 seconds)
10:27:41  <jesusabdullah>dominictarr: it turns out they ALSO give full commit access to that repo, to anyone who ever gets a pull request accepted
10:28:00  <jesusabdullah>and that's how they get around having to curate it apparently
10:28:48  <dominictarr>wait, so the metadata is a subrepo?
10:29:01  <jesusabdullah>okay so it's like this
10:29:05  <jesusabdullah>if you want to publish a package
10:29:16  <jesusabdullah>first, you put it on github, and the repo HAS to be named CamelCase.jl
10:29:31  <jesusabdullah>Then, you make a PR to METADATA.jl with your manifests
10:30:08  <dominictarr>oh, there is only one metadata.jl repo
10:30:11  <jesusabdullah>and when people install packages, the manager syncs up with METADATA.jl and follows the manifests to CamelCase.jl
10:30:15  <dominictarr>that is way more sane
10:30:22  <dominictarr>but still stupid
10:30:24  <jesusabdullah>yes
10:30:52  <jesusabdullah>it's not like "I took three hits of acid" insane but it IS stupid
10:30:53  <Kessler>guten morgen :)
10:31:06  <dominictarr>hey
10:31:16  <jesusabdullah>alright I gotta go to bed
10:31:24  <jesusabdullah>gnight homies
10:31:31  <dominictarr>night
10:31:33  <Kessler>if you're in for very intense reading: http://queue.acm.org/detail.cfm?id=2492433 - Nonblocking Algorithms and Scalable Multicore Programming
10:31:36  <Kessler>nn mate
10:31:36  <jesusabdullah>Kessler: I checked paypal a few hours ago, no test xfers yet, will keep an eye
10:31:52  <Kessler>jesusabdullah: alright! will do too
10:31:53  <jesusabdullah>(I believe them when they say it'll take >1 day XD)
10:32:07  <jesusabdullah>o/
10:32:34  <rvagg>LevelDB meetup on the 25th in SF, mainly Node but non-node LevelDB people more than welcome too! http://www.meetup.com/Node-js-and-LevelDb/
10:33:01  <rvagg>(err, should have left that non-node bit off my copy/paste.. there are no non-noders in here eh?)
10:33:35  <Kessler>the author is from AppNexus which is one of the biggest ad exchange networks in the world
10:35:40  <Kessler>nonnoders - gets funny when you try to read repeat fast :)
10:36:33  * timoxleyquit (Quit: Computer has gone to sleep.)
10:47:11  * mcollinajoined
10:52:13  * mcollinaquit (Ping timeout: 276 seconds)
10:54:21  * timoxleyjoined
10:55:03  <dominictarr>kessler: you can just call them "muggles"
10:55:29  <Kessler>dominictarr: hehe indeed!
10:58:05  <Kessler>if anybody wants to play with airbnb's chronos server: http://ec2-107-21-197-136.compute-1.amazonaws.com:4400/ enjoy
10:59:19  <substack>o_O
10:59:49  <Kessler>please dont run any hazardous jobs though ! :)
11:03:48  <Kessler>dependency graph is pretty cool
11:04:10  <substack>this thing is slick!
11:05:00  <substack>it could use a clock in the ui
11:05:14  <substack>or an ETA indicator
11:05:31  <Kessler>was quite a head ache to get it running though
11:05:46  <Kessler>but I didn't find any good replacements out there
11:06:01  <Kessler>btw I haven't installed node on the machine yet :-)
11:06:16  <substack>well then my job is going to fail
11:06:46  <Kessler>in 24 hours
11:06:47  <Kessler>i think
11:06:48  <Kessler> :)
11:07:02  <Kessler>you can force run it
11:09:43  <Kessler>hmm "doesnot_fail" was suppose to run every 10s
11:11:08  * snojjoined
11:11:11  <Kessler>substack: I think you just email [email protected] :-)
11:11:20  <Kessler>snoj: hi there
11:13:28  <snoj>hey Kessler
11:15:31  <substack>whoops
11:16:59  * nichola__joined
11:16:59  * nicholasfquit (Read error: Connection reset by peer)
11:18:24  * whit537joined
11:49:19  * johnkpaulquit (Read error: Operation timed out)
11:49:39  * johnkpauljoined
11:55:49  * timoxleyquit (Quit: Computer has gone to sleep.)
12:05:25  * snojquit (Ping timeout: 252 seconds)
12:13:37  * timoxleyjoined
12:22:15  * dominictarrquit (Quit: dominictarr)
12:26:04  * dominictarrjoined
12:31:33  * Kesslerquit (Ping timeout: 252 seconds)
12:33:27  * nichola__changed nick to nicholasf
12:49:32  * yorickjoined
12:50:02  <rvagg>stepping on substack & mbalho territory here: https://github.com/rvagg/bl list of buffers that present with a standard readable Buffer interface, and can duplex stream too
13:14:07  * ralphtheninjajoined
13:15:57  * Kesslerjoined
13:35:20  * fallsemojoined
13:45:55  * gwenbelljoined
14:08:32  * gwenbellquit
14:36:25  * nichola__joined
14:39:39  * nicholasfquit (Ping timeout: 256 seconds)
14:46:13  * ins0mniaquit (Ping timeout: 276 seconds)
14:48:37  * ins0mniajoined
14:52:57  * vitorpachecojoined
15:05:22  * ins0mniaquit (Ping timeout: 256 seconds)
15:13:44  * ins0mniajoined
15:18:17  * ins0mniaquit (Remote host closed the connection)
15:22:45  * vitorpachecoquit (Ping timeout: 248 seconds)
15:24:31  * vitorpachecojoined
15:29:04  * mikealquit (Quit: Leaving.)
15:29:44  * vitorpachecoquit (Ping timeout: 256 seconds)
15:51:52  * sorensenquit (Ping timeout: 260 seconds)
15:52:17  * sorensenjoined
16:05:44  * defunctzombie_zzchanged nick to defunctzombie
16:05:48  * thl0joined
16:09:17  * thl0quit (Remote host closed the connection)
16:19:55  * mikealjoined
16:35:58  * vitorpachecojoined
16:38:43  * thl0joined
16:47:19  * vitorpachecoquit (Read error: Connection reset by peer)
16:47:51  * vitorpachecojoined
16:51:50  * defunctzombiechanged nick to defunctzombie_zz
17:08:41  * thl0quit (Remote host closed the connection)
17:15:29  * thl0joined
17:20:36  * shamajoined
17:23:17  * thl0quit (Remote host closed the connection)
17:34:25  * st_lukejoined
18:00:25  <dominictarr>doing my part for moduletopia: https://github.com/subprotocol/verlet-js/pull/14
18:04:08  * purrquit (Remote host closed the connection)
18:04:19  * purrjoined
18:11:02  * jcrugzzjoined
18:16:44  <jesusabdullah>dominictarr: there you go
18:28:22  * timoxleyquit (Quit: Computer has gone to sleep.)
18:43:34  * thl0joined
19:07:08  * mikolalysenkojoined
19:07:46  * shuaibjoined
19:13:57  * shuaibquit (Quit: Computer has gone to sleep.)
19:16:41  * shuaibjoined
19:22:27  * mikolalysenkoquit (Ping timeout: 245 seconds)
19:23:50  * mikolalysenkojoined
19:29:06  * klusiasquit
19:29:53  * mikolalysenkoquit (Ping timeout: 240 seconds)
19:32:16  <mikeal>levelup/leveldb question
19:32:39  <mikeal>about how much slower is a ReadStream(limit=1, reverse=true) than a straight up get()
19:33:37  <yorick>mikeal: is reverse=false equally fast?
19:33:48  <dominictarr>reverse is a little slower
19:33:56  <dominictarr>readstream is a little slower
19:34:12  <mikeal>well, reverse is slower when pulling multiple keys/values, i don't see why it would be slower with only one
19:34:16  <dominictarr>I don't know what "a little slower" is though
19:34:46  <dominictarr>well, underneath, leveldb cursors are a bit weird
19:35:08  <mikeal>also, just the way discs work
19:35:14  <dominictarr>levelup makes it nicer, but it has to tell leveldb to read more than one.
19:35:20  <mikeal>leveldb writes mostly in order, seek backwards over a disc is always slower
19:35:37  <mikeal>ok, i see
19:35:41  <dominictarr>I have compared streaming a file forwards, and backwards,
19:35:54  <dominictarr>it's slower, but not by that much
19:35:57  <mikeal>still, for me, it's the choice between doing one read, then another read based on that read, or this readstream
19:36:38  <dominictarr>right - my bet is that one backwards read is definately quicker than two sequential gets
19:37:05  <mikeal>yup
19:37:19  <mikeal>i'm replicating CouchDB's storage layer
19:37:30  <mikeal>the entire sequence/revision thing
19:37:41  <mikeal>but i'm using an in memory mutex to speed things up a bit
19:38:54  <dominictarr>nice!
19:45:25  <dominictarr>mikeal: by the way, I have a module for reading the end of a range: level-peek, if that is useful.
19:46:11  <mikeal>is that faster than what I was suggesting?
19:47:03  <mikeal>this works with buffer keys right?
19:48:21  * tilgovijoined
19:50:11  * mcollinajoined
19:50:16  <mikeal>oh wow, this is nice dominc
19:50:23  <mikeal>and super helpful :)
19:50:47  <dominictarr>mikeal: no problem. not sure about the keys, would merge a pull request of course!
19:51:53  * st_lukequit (Remote host closed the connection)
19:59:32  * shuaib_joined
20:01:18  * shuaibquit (Ping timeout: 264 seconds)
20:01:19  * shuaib_changed nick to shuaib
20:05:43  * shuaibquit (Ping timeout: 260 seconds)
20:09:40  * st_lukejoined
20:14:11  <mikeal>dominictarr: is there a way to "put" but fail if the key already exists?
20:14:32  <dominictarr>that is something we are working on.
20:15:00  <dominictarr>there are quite a few considerations to get that right, and working nicely with the other parts
20:15:15  <dominictarr>I have a tried a few approaches
20:15:25  <dominictarr>there is the async2 branch of level-hooks
20:15:57  <dominictarr>and level-update
20:16:04  <dominictarr>which is the same idea, but a little simpler
20:16:33  <dominictarr>it might be simplest to read first, and then put
20:17:43  * Kessler_joined
20:18:05  <mikeal>cool
20:18:23  <mikeal>quick question, cause i'm not going to see this until under heavy load
20:18:44  <mikeal>but is batch smart enough to just fact out changes to the same key
20:18:47  <mikeal>factor
20:19:58  <mikeal>also, are two batch calls guaranteed to run/return in order?
20:20:16  * Kesslerquit (Ping timeout: 246 seconds)
20:20:23  <dominictarr>I think if you do two batches in different ticks, it can go either way
20:20:38  <dominictarr>if you get the callback, it's gaurenteed.
20:20:47  <dominictarr>that the next batch will be after that.
20:21:09  <dominictarr>but you can't rely on order in between that
20:22:08  <dominictarr>mikeal: this is the thing that makes a general conditional update tricky
20:22:21  <dominictarr>this is pretty high on my todo list though.
20:22:56  <mikeal>yeah, that's going to limit my performance
20:23:05  <mikeal>because i'm going to have to wait for each batch to return
20:23:12  <mikeal>before i write the next one
20:26:17  <dominictarr>no, only if they share keys
20:26:34  <dominictarr>if they are to different keys, then they can be processed in parallel
20:29:32  <dominictarr>basically, we are talking about transactions - local transactions at least.
20:30:58  * shuaibjoined
20:35:59  * ins0mniajoined
20:36:29  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
20:38:30  * mcollinaquit (Remote host closed the connection)
20:44:22  * mcollinajoined
21:06:55  <st_luke>thl0: have you used lev?
21:07:34  <st_luke>thl0: basically what you're doing with 'level-dump' except much more usable
21:08:53  <thl0>st_luke: yes I have played with it
21:09:14  <thl0>level-dump is for quick feedback when running some code
21:09:26  <thl0>also useful for testing (i.e. look at all values in db)
21:09:45  <mbalho>dominictarr: dunno if you read the backlog but i got level-replicate working for ascii between browser + server
21:09:53  * mcollinaquit (Remote host closed the connection)
21:10:03  <dominictarr>mbalho: oh yes! I saw that!
21:10:13  <thl0>st_luke: I use level-dump to quickly print query results via scripts (i.e. valuepack-mine-npm)
21:10:30  <dominictarr>more modules more better
21:10:32  <mbalho>dominictarr: also i got it working so that the websocket closes unless you have a valid http session
21:10:54  <st_luke>thl0: lev is nice because usage is pretty much on parity with the levelup api
21:10:55  <dominictarr>auth, basically?
21:10:59  <mikeal>ok
21:11:00  <mikeal>storage works
21:11:01  <mikeal>https://github.com/mikeal/couchup/blob/master/index.js
21:11:20  <mikeal>dominictarr: could you have a look at that mutex and tell me if anything might go terribly wrong :)
21:11:21  <thl0>st_luke: yes, it is awesome for inspecting db
21:11:37  <thl0>dump is mainly for .. well dumping parts of the db
21:11:53  <dominictarr>mikeal: will do.
21:11:53  <thl0>st_luke: works in replpad too ;)
21:11:59  * mikealquit (Quit: Leaving.)
21:12:50  <mbalho>dominictarr: yea basically when browser open websockets they send an initial http request
21:13:15  <dominictarr>right - so you force them to login first
21:13:17  <mbalho>dominictarr: so i forked the ws module and exposed the request so that i could incorporate it into my session manager
21:13:33  <dominictarr>oh, that is fantastic
21:13:41  <mbalho>dominictarr: https://github.com/maxogden/doorknob/blob/master/replicate-server.js#L15-L17
21:13:42  <dominictarr>hij1nx: ^ that is what you where looking for
21:14:01  <mbalho>im gonna break the replication stuff out into a module
21:15:04  <mbalho>well just a high level thing that you can use instead of having to require like 8 modules
21:18:48  * fallsemoquit (Quit: Leaving.)
21:20:02  <Kessler_>anyone hear about any in memory in process node.js sql database, something that can be used for testing ?
21:21:55  * st_lukequit (Remote host closed the connection)
21:21:57  <mbalho>dunno about sql but there are in memory key value stores
21:22:43  <Kessler_>yea thing is, in production I use amazon redshift and I want to avoid running postgres server for testing (or any server for that matter)
21:23:21  <Kessler_>how about lightweight sql servers
21:25:20  <Kessler_>no pure js sql servers out there at all as far as google is concerned
21:39:56  * shuaibjoined
21:42:20  * mikealjoined
21:43:46  * thl0quit (Remote host closed the connection)
21:47:02  * owen1quit (Quit: WeeChat 0.4.0)
21:54:50  * tilgoviquit (Remote host closed the connection)
21:59:33  * st_lukejoined
22:08:46  <substack>http://meteorhacks.com/complete-npm-integration-for-meteor.html
22:08:47  <substack>so weird
22:12:04  * nk109quit (Quit: laters...)
22:21:19  <st_luke>"if you need to use npm modules"
22:21:20  <st_luke>those guys are dicks
22:21:24  <dominictarr>eventually they will realize
22:21:55  <dominictarr>that npm is an unstoppable force, but meteore is not an immovable object.
22:22:32  <substack>it's in my queue to do a lengthy guide about how to write fully-featured apps without frameworks
22:23:07  <substack>choose-your-own-adventure style
22:25:26  <dominictarr>nice
22:25:52  <dominictarr>possibly set on the island of moduletopia?
22:26:09  <dominictarr>or maybe "search for moduletopia"?
22:29:00  <dominictarr>st_luke: the meteor guys are pretty cool, actually - I've drank beer with them - but I don't know why they don't like npm, substack and I tried to talk them out of it.
22:29:31  * owen1joined
22:32:37  <st_luke>NIH
22:34:25  <mbalho>honestly npm is a lot of work to get good at using
22:35:10  <mbalho>so in order to compete with meteor we would have to focus on tools for noobs
22:35:24  <mbalho>but the people in here are pretty smart and busy so that stuff always gets ignored
22:35:41  <grncdr>mbalho: what difficulty do you ee?
22:35:44  <grncdr>*see
22:35:52  <mbalho>complexity mostly
22:36:22  <mbalho>but im not saying we should dumb down what we are doing
22:36:30  <mbalho>thats what meteor is for, addressing the simple cases
22:36:43  <mbalho>our little niche of extreme open source modularity is big enough :D
22:36:54  <grncdr>hah fair enough
22:37:14  <grncdr>I'm mostly curious because I found npm to be super simple to get used to
22:37:41  <grncdr>the big conceptual hurdle for most people I've introduced to it is the lack of a global namespace (in your code)
22:38:30  <grncdr>like, they get that they have to require() things, but the lookup mechanism is kind of mysterious
22:38:46  <st_luke>grncdr: thats pretty well documented
22:38:50  <grncdr>it's not, and I usually tell them to read the little section of the API docs
22:38:55  <grncdr>whoops
22:39:05  <grncdr>that came out like a reply to you st_luke, but it wasn't
22:39:19  <grncdr>"it's not" meant it's not mysterious
22:39:26  <st_luke>haha its cool :)
22:40:04  <grncdr>it's actually my single favourite thing about node & npm
22:40:11  <mbalho>being good at npm means being able to intuit about tree structures, the command line, scope, knowing how to search for things online
22:40:20  <mbalho>i think there are a lot of ways to hide a lot of that to get people hooked
22:40:38  <mbalho>we need the gateway drug of npm
22:40:44  <grncdr>mbalho
22:40:46  <mbalho>e.g. the browserify-as-aservice stuff is one avenue
22:40:49  <jjjohnny>lol
22:41:00  <grncdr>have I told you what I wanted to do with baas yet?
22:41:12  <mbalho>grncdr: dont think so
22:41:37  <grncdr>browser editor where require('') auto-completes from npm, and require(/blah/) searches
22:41:51  <grncdr>updates your package.json automatically
22:42:03  <grncdr>and continually rescans your source to remove un-needed deps obviously
22:42:10  <mbalho>grncdr: nice! i have some ideas for UI on that, forget if i sent you my v1 http://creator.voxeljs.com or not
22:42:16  <mbalho>grncdr: that sounds awesome
22:42:35  <grncdr>hah I did not see this yet
22:42:51  <mbalho>grncdr: it uses my snuggie thing in the backend
22:43:00  <grncdr>ah cool
22:43:07  <mbalho>grncdr: but it works pretty well, theres no package.json yet
22:43:16  <grncdr>yeah you did send me a link, I forgot to read it though :|
22:43:27  <mbalho>grncdr: https://github.com/maxogden/javascript-editor for the js editor part
22:43:35  <dominictarr>mikeal: I'm having a little trouble following your mutex code
22:44:02  <grncdr>mbalho: that's really handy
22:44:13  <mbalho>grncdr: i wanna add either a tabbed ui for multiple files or just a simple package.json editor in the sidebar
22:44:29  <mbalho>grncdr: i think to keep it simple i like the one file limitation
22:44:51  <grncdr>mbalho: I mostly agree
22:45:19  <mbalho>cause if you need to do multiple files it means you are hooked on browserify and can now advance to the command line stage
22:45:19  <jjjohnny>can you do a fetch with npm where it fulfills the dep tree but will not do any node-gyp-y things?
22:45:21  <grncdr>I think there doesn't need to be a limitation per-se, but don't spend a lot of UI space & chrome on dealing with multiple files
22:45:27  <grncdr>jjjohnny: yes
22:45:30  <grncdr>npm.cache.read
22:45:45  <grncdr>then grap the tarball out of npm.config.get('cache')
22:46:07  <jjjohnny>whoa slow down!
22:46:10  <grncdr>heh
22:46:23  <grncdr>sorry?
22:46:36  <grncdr>I did that a few days ago which is why it's front of mind
22:46:43  <jjjohnny>npm cache
22:46:45  <jjjohnny>or read?
22:47:11  <jjjohnny>what is read
22:47:14  <jjjohnny>?
22:47:37  <grncdr>sorry, npm.cache.read(pkg, semver) fetches the matching package from npm into your local cache
22:47:44  <grncdr>(if it's not already there)
22:48:04  <grncdr>it takes a callback that gets the package.json contents IIRC
22:48:42  <grncdr>are you looking for a way to do this on the command line?
22:49:02  <jjjohnny>thats where my head was, but either way
22:49:35  <grncdr>npm cache add [email protected] will do the same fetch into cache, but you'll have to do your hackery to grab it out of there I think...
22:49:53  <grncdr>there's probably a better command that just does a fetch into the current dir, but I don't know what it is...
22:50:01  <grncdr>isaacs: ^^
22:50:07  <jjjohnny>neat
22:50:32  <dominictarr>mikeal: hmm, I think I'm understanding it now - but it looks like it does a global lock - just one op at a time, am I missing something?
22:52:14  <mbalho>a module that provided package.json editing UI and a js API that was like .toJSON() and .setValue(jsonObject) would be cool
22:53:28  <dominictarr>omg - this code style is the worse of both worlds https://github.com/troufster/spatial/blob/master/main.js#L208-L215
22:53:54  <dominictarr>both cryptic single letter var names and unnecessarily verbose
22:53:56  <mbalho>dominictarr: his mutex junk is so you can get sequence numbers for everything i think
22:54:17  <st_luke>dominictarr: im sure he means well
22:54:30  <dominictarr>yes.
22:55:13  <jjjohnny>mbalho:
22:55:13  <dominictarr>it's two years old, so everyone was new to node back then.
22:55:32  <mbalho>jjjohnny: haha
22:55:36  <dominictarr>also has callbacks for sync functions
22:55:55  <jjjohnny>mbalho: thats a json editor UI i was hackin a while back
22:55:55  <mbalho>jjjohnny: i get lots of Uncaught Error: HierarchyRequestError: DOM Exception 3
22:55:59  <st_luke>dominictarr: being new to node doesnt excuse cryptic var names and verbose code tho
22:56:15  <jjjohnny>yeah it was in bug shape when I stopped
22:56:34  <dominictarr>yeah - I'd accept one or the other! but both at once is absurd!
22:56:44  <jjjohnny>but the interface is the the part
22:56:47  <jjjohnny>that i like
22:56:56  <mbalho>word
22:56:58  <jjjohnny>does away with nesting problems
22:57:08  <jjjohnny>i'll fix it up as editor soon
23:00:16  <jjjohnny>maybe
23:06:36  * dominictarrquit (Quit: dominictarr)
23:07:39  <grncdr>substack: question about browserify().require({deps: ??})
23:07:55  <grncdr>is it just a stream of dependencies for browser-pack?
23:08:05  <grncdr>and does browser-pack care what order they come in?
23:10:18  * LOUDBOTquit (Ping timeout: 264 seconds)
23:23:42  * ins0mniaquit (Ping timeout: 245 seconds)
23:41:14  * Ikeymanjoined
23:41:17  <Ikeyman>410
23:41:18  <substack>grncdr: it doesn't care
23:41:20  <substack>it doesn't matter
23:41:30  <grncdr>k cool
23:41:48  * Ikeymanpart
23:41:57  <grncdr>I'm realizing though that module-deps is doing all of the work I don't want to redo, so I'm not sure that passing opts.deps is the way I want to go
23:42:17  <grncdr>still need to think about it more...
23:44:08  * thl0joined
23:44:16  * thl0quit (Read error: Connection reset by peer)
23:44:49  * thl0joined
23:56:27  * yorickquit (Remote host closed the connection)
23:59:06  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)