00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:08  <dominictarr>calvinfo: yeah, objectMode is ugly, and tacked on.
00:00:23  <substack>but in my version you'll also have to solve programming puzzles along the way and defeat monsters with gear of your own design
00:00:34  <dominictarr>that is great.
00:02:03  <substack>holy hell what just happened https://www.gittip.com/substack/
00:03:10  <dominictarr>that is a lot of tacos!
00:03:44  <jesusabdullah>Nexxy: eliot looks a lot like you! :3
00:04:35  <dominictarr>wow, I am on 27, so I could buy quite a few tacos too!
00:05:44  <jesusabdullah>I don't do gittip
00:06:02  <dominictarr>jesusabdullah: it's just like busking!
00:06:26  <jesusabdullah>yeah well
00:06:42  <jesusabdullah>I don't think I want it
00:06:49  <jesusabdullah>makes open source feel too much like a job
00:06:59  <jesusabdullah>I have enough open-source-is-my-job projects as it is
00:07:07  <dominictarr>get a sign: "will code for food"
00:07:28  <dominictarr>or "need money for AWS instances"
00:07:57  <dominictarr>jesusabdullah: this makes it way less like a job than kickstarter
00:08:28  <dominictarr>anyway, wether you do it for fun or allow your self to feel obligated is your decision
00:09:57  <substack>yes you just do whatever you want and people give you money
00:10:01  <substack>pretty much the best possible thing
00:10:38  <dominictarr>that is the best possible model for fostering creativity
00:11:01  <substack>agreed
00:13:32  <dominictarr>well, second best
00:13:59  <dominictarr>if nobody even had to give you anything, that might be better
00:14:38  <jesusabdullah>hmmm
00:20:15  <timoxley>dominictarr so if I have something like: var s = pull.values([1,2,3,4,5,6])
00:20:25  <timoxley>what are my options for piping that around
00:20:43  <dominictarr>so, nothing starts moving until you pipe to a sink
00:20:54  <timoxley>what about old streams
00:21:05  <timoxley>they aren't sinks by default?
00:21:15  <dominictarr>var toPull = require('stream-to-pull-stream')
00:21:22  <dominictarr>oh, hmm
00:21:43  <dominictarr>toPull.writable(stream) //<-- forces it to a sink
00:21:54  <timoxley>ahh
00:22:02  <dominictarr>or it might be toPull.sink(stream)
00:22:12  <dominictarr>I only added the the other day, though
00:22:25  <dominictarr>because I hadn't needed that before
00:22:27  <timoxley>yep sink
00:22:49  <dominictarr>otherwise it checks whether the stream is readable and/or writable
00:23:17  <dominictarr>but sometimes with node streams that isn't representative of what you should actually do...
00:27:17  * dominictarrchanged nick to dominictarr_zzz
00:32:25  * mikealquit (Quit: Leaving.)
00:34:18  * tilgoviquit (Ping timeout: 245 seconds)
00:46:00  * timoxleyquit (Quit: Computer has gone to sleep.)
00:47:28  * mikolalysenkojoined
00:52:11  * dominictarr_zzzquit (Quit: dominictarr_zzz)
00:53:27  * kevino80joined
01:03:06  * jolissquit (Ping timeout: 264 seconds)
01:19:36  * tilgovijoined
01:27:32  * vitorpachecoquit (Ping timeout: 256 seconds)
01:29:09  * defunctzombie_zzchanged nick to defunctzombie
01:32:37  * mikealjoined
01:33:28  * jcrugzz|afkchanged nick to jcrugzz
01:34:08  * timoxleyjoined
01:38:01  * klusiasquit (Read error: Connection reset by peer)
01:38:24  * defunctzombiechanged nick to defunctzombie_zz
01:43:23  * stagasjoined
01:45:09  * nicholasfquit (Read error: Connection reset by peer)
01:45:33  * nicholasfjoined
01:50:51  * jxsonquit (Remote host closed the connection)
01:59:41  * jibayquit (Quit: Leaving)
01:59:45  * defunctzombie_zzchanged nick to defunctzombie
02:02:49  * defunctzombiechanged nick to defunctzombie_zz
02:04:56  * hij1nxquit (Ping timeout: 256 seconds)
02:11:06  * hij1nxjoined
02:19:47  * timoxleyquit (Quit: Computer has gone to sleep.)
02:28:04  * tmcwjoined
02:32:10  * st_lukejoined
02:33:36  <st_luke>substack: i love those music videos for disasteradio
02:33:55  * nicholasfquit (Read error: Connection reset by peer)
02:34:19  * nicholasfjoined
02:35:57  * nicholasfquit (Read error: Connection reset by peer)
02:36:24  * nicholasfjoined
02:37:46  * kevino80quit (Remote host closed the connection)
02:38:43  <mbalho>buy his records from bandcamp
02:39:45  * st_lukequit (Remote host closed the connection)
02:55:11  * wolfeidauquit (Remote host closed the connection)
03:07:03  * lepahcjoined
03:08:08  * Altreus_joined
03:09:46  * Ralt_joined
03:10:12  * py1hon_joined
03:12:44  * defunctzombie_zzchanged nick to defunctzombie
03:12:55  * Madars_joined
03:13:43  <isaacs>substack: yo
03:13:49  * chapelquit (Ping timeout: 245 seconds)
03:13:50  * Raltquit (Ping timeout: 245 seconds)
03:13:50  * LOUDBOTquit (Ping timeout: 245 seconds)
03:13:50  * Altreusquit (Ping timeout: 245 seconds)
03:13:52  * py1honquit (Ping timeout: 245 seconds)
03:13:52  * Domenic_quit (Ping timeout: 245 seconds)
03:13:53  * lepahcchanged nick to chapel
03:13:53  * Ralt_changed nick to Ralt
03:13:53  * Madarsquit (Ping timeout: 245 seconds)
03:14:19  <isaacs>substack: so, new plan re http client. less ambitious. i think you'll like it.
03:14:34  <isaacs>substack: 1. unref sockets instead of destroying them.
03:14:35  <mbalho>substack: r u in pdx
03:14:47  <isaacs>substack: 2. only queue when you hit the max
03:14:53  <isaacs>substack: 3. default max is Infinity
03:16:22  <substack>mbalho: yep
03:16:42  <mbalho>substack: where are you stayin?
03:16:46  <substack>isaacs: default max of Infinity sounds perfect
03:17:58  <substack>mbalho: 31st and glisan
03:18:24  <mbalho>substack: nice, i might be staying at like 32nd and burnside
03:20:15  <mbalho>substack: im on the east side by the morrison bridge at bunk bar now
03:22:17  * defunctzombiechanged nick to defunctzombie_zz
03:26:05  * mikealquit (Quit: Leaving.)
03:28:59  * Domenic_joined
03:33:26  <substack>I'm just staying at my airbnb and finishing my demos
03:33:35  <substack>my presentation is at 10:30 tomorrow morning
03:37:00  * tmcwquit (Remote host closed the connection)
03:41:43  * LOUDBOTjoined
03:44:03  * mikolalysenkoquit (Ping timeout: 260 seconds)
03:46:10  * vitorpachecojoined
03:46:18  * nicholasfquit (Read error: Connection reset by peer)
03:46:43  * nicholasfjoined
03:52:36  * vitorpachecoquit (Read error: Connection reset by peer)
03:53:04  * vitorpachecojoined
04:01:48  * vitorpachecoquit (Ping timeout: 245 seconds)
04:02:00  * mikolalysenkojoined
04:03:23  * nicholasfquit (Read error: Connection reset by peer)
04:04:10  * nicholasfjoined
04:08:57  * vitorpachecojoined
04:13:27  * mikolalysenkoquit (Ping timeout: 260 seconds)
04:34:07  * AvianFluquit (Remote host closed the connection)
04:39:54  * mikolalysenkojoined
04:41:57  * timoxleyjoined
04:48:03  * mikolalysenkoquit (Ping timeout: 245 seconds)
04:50:10  <Domenic_>did someone get a complex arithmetic module working?
04:57:13  * nicholasfquit (Read error: Connection reset by peer)
04:57:23  * nicholasfjoined
05:07:28  * tilgoviquit (Remote host closed the connection)
05:10:51  * timoxleyquit (Ping timeout: 260 seconds)
05:14:26  * nicholasfquit (Read error: Connection reset by peer)
05:14:47  * nicholasfjoined
05:15:11  * timoxleyjoined
05:19:43  * farnsworthquit (Ping timeout: 245 seconds)
05:19:43  * cubertquit (Ping timeout: 245 seconds)
05:28:25  * cubertjoined
05:29:43  * farnsworthjoined
05:36:48  * farnsworthquit (Ping timeout: 245 seconds)
05:39:16  * cubertquit (Ping timeout: 276 seconds)
05:44:47  * mikolalysenkojoined
05:46:59  * itprojoined
05:47:00  * itprochanged nick to ITpro
05:47:26  * farnsworthjoined
05:48:23  * cubertjoined
05:48:36  <substack>jjjjohnn1y: this 404s https://github.com/NHQ/webaudio
05:49:11  * mikolalysenkoquit (Ping timeout: 252 seconds)
06:11:09  * no9quit (Ping timeout: 256 seconds)
06:20:39  * keslajoined
06:23:35  * nicholasfquit (Read error: Connection reset by peer)
06:24:18  * nicholasfjoined
06:24:21  * no9joined
06:25:12  * saijanai_joined
06:29:21  * keslaquit (Ping timeout: 248 seconds)
06:30:23  * keslajoined
06:30:39  * timoxleyquit (Ping timeout: 260 seconds)
06:37:55  * jxsonjoined
06:41:37  * shamaquit (Remote host closed the connection)
06:45:03  * mikolalysenkojoined
06:50:07  * mikolalysenkoquit (Ping timeout: 276 seconds)
06:59:32  * djcoinjoined
07:06:46  * mikolalysenkojoined
07:14:22  * jxsonquit (Read error: Connection reset by peer)
07:15:17  * jxsonjoined
07:17:05  * timoxleyjoined
07:21:31  * keslaquit (Read error: Connection reset by peer)
07:23:17  * jcrugzzquit (Ping timeout: 248 seconds)
07:29:05  * keslajoined
07:31:35  * jcrugzzjoined
07:45:47  * keslaquit (Read error: Connection reset by peer)
07:47:58  * mikolalysenkoquit (Ping timeout: 276 seconds)
08:00:48  * wolfeidaujoined
08:25:23  * nicholasfquit (Read error: Connection reset by peer)
08:25:40  * nicholasfjoined
08:28:18  * fotoveritequit (Ping timeout: 264 seconds)
08:29:04  * fotoveritejoined
08:32:46  * no9quit (Ping timeout: 246 seconds)
08:33:26  * mcollinajoined
08:36:13  * spionjoined
08:36:49  * jxsonquit (Remote host closed the connection)
08:48:03  <juliangruber>https://www.gittip.com/for/javascript/ substack is the best owning javascript person out there!
08:48:13  <juliangruber>/owning/earning/
08:53:31  * mikolalysenkojoined
08:58:13  * mikolalysenkoquit (Ping timeout: 248 seconds)
09:04:27  * ralphtheninjajoined
09:20:57  * stagasquit (Read error: Connection reset by peer)
09:23:25  * dguttman_joined
09:25:06  * douglaslassancejoined
09:25:08  * dguttmanquit (Ping timeout: 245 seconds)
09:25:08  * dguttman_changed nick to dguttman
09:25:37  * douglaslassancechanged nick to asterokid
09:25:40  * cianomaidinjoined
09:26:42  * Altreus_changed nick to Altreus
09:27:03  * Altreusquit (Changing host)
09:27:03  * Altreusjoined
09:42:26  * ins0mniajoined
09:49:00  <ins0mnia>bla bla bla framework "designed to resemble MVC architecture from frameworks like Ruby on Rails" bla bla bla - NodePDX.
09:49:07  <ins0mnia>how is this even allowed be there
09:52:52  * nichola__joined
09:52:58  * nicholasfquit (Read error: Connection reset by peer)
09:53:39  * chapelquit (Ping timeout: 260 seconds)
09:54:04  * chapeljoined
09:58:57  * mirkok_joined
09:59:01  * dguttmanquit (Quit: dguttman)
10:04:25  <juliangruber>i have no clue
10:05:26  <ins0mnia>somehow I had the guy as one of my linkedin connections, just removed him
10:06:37  <juliangruber>that's the spirit :D
10:06:48  <ins0mnia>:D
10:17:04  * jibayjoined
10:23:05  * asterokidquit (Read error: Connection reset by peer)
10:23:22  * douglaslassancejoined
10:34:06  * cianomaidinquit (Quit: cianomaidin)
10:40:55  * cianomaidinjoined
10:43:49  * timoxleyquit (Quit: Computer has gone to sleep.)
10:56:33  <tanepiper>who was it that said that?
10:56:48  <tanepiper>fuck RoR
11:02:34  * douglaslassancequit (Quit: Leaving...)
11:02:46  * nicholasfjoined
11:03:06  * nichola__quit (Read error: Connection reset by peer)
11:05:43  * spionquit (Ping timeout: 246 seconds)
11:18:47  * spionjoined
11:26:37  <ins0mnia>ralphtheninja: I think I woke up stoned this morning
11:27:04  * dominictarrjoined
11:27:39  <ralphtheninja>ins0mnia: lol
11:27:51  <ins0mnia>:)))
11:47:53  <juliangruber>substack: browserify should support circular dependencies on app level, right?
11:48:17  <juliangruber>substack: every time I have one the 2nd require only gets {}
11:56:28  <dominictarr>juliangruber: avoid circular deps!
11:56:39  <dominictarr>that is an antipattern anyway,
11:56:52  <dominictarr>although, browserify should support it, if node does.
11:57:43  <juliangruber>Class Post. Class PostList. Post.list() returns PostList. PostList needs Post to display the list
12:12:57  <dominictarr>juliangruber: if they are tightly coupled, maybe put them in the same file
12:13:08  <juliangruber>dominictarr: hm true
12:13:28  <juliangruber>but for now i just do Post.list = function () { return new PostList(Post) }
12:13:59  <dominictarr>or, otherwise, what I do, is inject deps that would be circular
12:14:17  <dominictarr>module.exports = function (dep) { return {} //return the export }
12:14:46  <dominictarr>you should avoid all of this though i think
12:15:25  <juliangruber>true
12:15:43  <juliangruber>but since its an app some coupling is good
12:16:03  <juliangruber>i think...
12:16:18  <juliangruber>has anyone ever seen this happen:
12:16:18  <juliangruber>Assertion failed: wrap->object_.IsEmpty() == false, file ../src/fs_event_wrap.cc, line 124, function OnEvent
12:16:31  <juliangruber>ploy crashed because of this
12:18:10  <dominictarr>juliangruber: maybe "applications" are a bad idea?
12:18:31  <dominictarr>I mean, what is an application but a bunch of modules glued together with a UI?
12:18:44  <juliangruber>dominictarr: I'm writing this for BoerseGo which is still 3/4 a php shop and I'm leaving next month...so I don't wanna be too progressive
12:18:58  <dominictarr>I understand
12:19:05  <dominictarr>I'm just thinking out loud now
12:19:36  * harrowquit (Write error: Connection reset by peer)
12:19:45  <juliangruber>I have super decoupled components that know nothing about each other and one boot.js that glues them all together
12:19:57  <juliangruber>this problem I had happened inside 2 files of a component
12:20:02  <ralphtheninja>juliangruber: perfect timing to rewrite the whole system before you leave :D
12:20:08  <juliangruber>(component != component.io, still using browserify)
12:20:13  <juliangruber>ralphtheninja: trollolol
12:21:04  <ralphtheninja>"Oh btw, you dont have any applications anymore. Bye!"
12:22:03  <dominictarr>all the so-called applications are now controlled directly via a node repl!
12:22:27  <dominictarr>the web page should just load to a ">" and a blinking cursor
12:28:01  * harrowjoined
12:33:31  <juliangruber>:D
12:48:59  <juliangruber>dominictarr: I want pipable urls too
12:49:30  <juliangruber>google.com/puppies|translate.google.com|evernote.com
12:49:45  <dominictarr>oh, yeah. yes.
12:49:47  <juliangruber>google.com/puppies would stream to translate.google.com/|evernote.com
12:50:14  <juliangruber>so you don't have to do req('google.com/puppies').pipe(req('translate.google.com')).pipe(req('everynote.com'))
12:50:19  <juliangruber>but their servers send data
12:50:42  <dominictarr>need some way to make a smart header so you can react to the type of data.
12:50:43  <juliangruber>which will be a ddos tool for free too
12:50:57  <juliangruber>content-type?
12:51:15  <dominictarr>something like that, but it should be usable for files too.
12:51:31  <dominictarr>not just connections
12:51:40  <juliangruber>I'd like alrt.io to work like alrt.io/5min|gmail.com/?s="Alert finished"
12:51:59  <juliangruber>hm true
12:52:57  <dominictarr>hmm, so I'm working on a thing that is like jquery for the file system
12:53:06  <dominictarr>it's like jquery except with pull-streams
12:53:33  <dominictarr>and you can use extended globs as css selectors for files
12:53:47  <dominictarr>but, it could be adapted for any tree structured data
12:54:04  <dominictarr>so you could use it on databases, apis maybe too.
12:54:26  <juliangruber>so we need an unified interface for tree structures
12:54:46  <dominictarr>yeah.
12:54:52  <juliangruber>which would be fairly easy to write for anything
12:55:06  <dominictarr>so, I have a shot at that with pull streams
12:55:24  <dominictarr>there is depthFirst, widthFirst, and leafFirst
12:55:49  <dominictarr>and you just make pass a function that maps node -> PullStream<childnodes>
12:56:12  <dominictarr>you could extend it for A* etc, too.
12:56:38  <juliangruber>best-leaf-first search?
12:56:52  <juliangruber>never heard of leaf first seach
12:57:12  <dominictarr>it's also called topological sort
12:57:28  <dominictarr>it traverses the files before the directories
12:57:38  <juliangruber>ah ok
12:57:39  <dominictarr>or say, the deps that don't have deps
12:57:48  <dominictarr>you need it for rm -rf
12:58:13  <juliangruber>i see
12:58:23  <juliangruber>leveldb would be the easiest wrapper to write i guess
12:58:35  <juliangruber>since you can always use the same kind of search?
12:58:59  <juliangruber>ah, no
12:59:07  <juliangruber>just read how you would implement the wrapper
12:59:08  <juliangruber>sweet
13:01:58  <dominictarr>yeah, I think you might need to declare what structure your keys have though
13:02:26  * tmcwjoined
13:03:12  * keslajoined
13:03:19  * kevino80joined
13:03:53  <dominictarr>or use universal index like in MarkLogic
13:06:00  * no9joined
13:08:39  * mirkok_quit (Quit: mirkok_)
13:09:00  * mirkok_joined
13:14:05  <juliangruber>like, would leveldb say `foo:bar` or just `bar`, when you're on the `bar` node?
13:15:09  <juliangruber>also should the children be `foo:bar` or just `foo`
13:16:13  * keslaquit (Ping timeout: 276 seconds)
13:16:18  <juliangruber>nah, it should always only be `foo`, a single identifier for the current level
13:24:51  <dominictarr>maybe treat it like it's {foo: { bar: value } }
13:25:06  <dominictarr>so, split keys are like nested objects.
13:34:21  <juliangruber>that's nice
13:41:23  * timoxleyjoined
13:42:39  <timoxley>dominictarr I'm trying to pipe a net stream over a muxdemux "sub stream" thing, and it seems to get really confused about Buffers
13:42:54  <dominictarr>oh, yes
13:43:00  <timoxley>I have to pass it through through and toString it
13:43:17  <dominictarr>you can do that if you use msgpack-stream
13:43:20  <timoxley>ahhh
13:43:22  <timoxley>ok
13:43:24  <timoxley>cool
13:43:30  <timoxley>as per example at bottom of readme
13:43:32  <timoxley>?
13:43:35  <timoxley>what's the cause there?
13:43:47  <dominictarr>https://github.com/juliangruber/multilevel/blob/master/lib/server.js#L15-L21
13:44:10  <dominictarr>timoxley: because buffers don't JSON well
13:44:18  <timoxley>yeah I noticed
13:44:25  <timoxley>16k of array indices
13:44:30  <timoxley>as an object
13:44:36  <dominictarr>maybe they could base64 or something
13:44:39  <timoxley>not pretty in terminal
13:44:43  <dominictarr>at least that would work
13:44:57  <juliangruber>the solution dominictarr pointed to works very well
13:45:08  * kevino80quit (Remote host closed the connection)
13:45:19  <juliangruber>so well that we could even make it an option for mdm
13:45:30  <juliangruber>new MuxDemux({ binary : true })
13:45:50  <juliangruber>since it's the only reasonable way to do this atm
13:45:52  <timoxley>juliangruber dominictarr and stream-combine is preferred over es.pipeline?
13:46:08  <dominictarr>they are the same thing
13:46:09  <juliangruber>es.pipeline == stream-combine i think
13:46:14  <timoxley>great
13:46:29  <dominictarr>but when I published, pipeline was taken already :{
13:47:28  <timoxley>dang
13:50:41  <juliangruber>actually I think binary mode should be the default
13:50:56  <juliangruber>as a "real" stream/transport/socket supports binary
13:51:42  <juliangruber>currently multilevel requires a binary capable stream, and i need to make an option {binary:false}, in which case it should encode buffers as base64 or anything else that behaves well
13:57:42  * duncanbeeverspart
14:00:57  * thl0joined
14:06:13  * tmcwquit (Remote host closed the connection)
14:09:44  * thl0quit (Remote host closed the connection)
14:10:28  <timoxley>so… I can't seem to get an html page to load correctly though my stream, any requests after the first one sit there at "pending"
14:11:22  <timoxley>I have a feeling it's something to do with browser only able to open a single connection at a time or something, because I notice the first request never seems to fire the 'end' event
14:11:37  <timoxley>any… clues? cc dominictarr
14:11:46  * kevino80joined
14:12:35  <dominictarr>juliangruber: yes, I'd be happy to merge that -
14:13:21  <juliangruber>timoxley: what module do you use for requests?
14:13:22  * nicholasfquit (Read error: Connection reset by peer)
14:13:46  <dominictarr>timoxley: can you post a test script?
14:13:53  * nicholasfjoined
14:14:33  <timoxley>juliangruber requests are coming from the browser
14:14:49  <dominictarr>not emitting an end event is definately an error.
14:15:43  <dominictarr>timoxley: could also be related to pipelining? are you proxying http or tcp?
14:15:46  <timoxley>dominictarr there's a lot of moving parts in this thing, hard to produce a small test case
14:15:52  <timoxley>I'm parodying tcp
14:15:57  <timoxley>proxying*
14:16:01  <dominictarr>haha
14:16:05  <timoxley>parodying probably more accurate
14:16:50  <timoxley>I'm piping the browser request via net to the actual service then back
14:17:18  <timoxley>missing the end event is definitely it, I set a 1s timeout to end requests and magic happens
14:18:32  <dominictarr>hmm, can you just make a simple server that proxies tcp over mux-demux, with hardwried settings?
14:21:56  <timoxley>dominictarr I'll link you some code
14:23:59  * stagasjoined
14:25:19  * johnkpauljoined
14:26:37  <timoxley>ugh, I can't find any particular place it could be without having to run you though the whole thing… I'll try find where the 'end' event is dropped
14:27:16  <dominictarr>man, http sucks. it's like a RPC framework, but you have to configure everything manually!
14:35:48  * thl0joined
14:36:54  * dominictarrquit (Quit: dominictarr)
14:37:20  * thl0quit (Remote host closed the connection)
14:41:31  * thl0joined
14:44:51  <timoxley>juliangruber that msgpack thing worked, thanks
14:57:28  * thl0quit (Remote host closed the connection)
15:18:54  <isaacs>substack: i'm gonna write a chapter for Beautiful JavaScript (kinda like Beautiful Code, but only JS). I'm thinking of using mkdirp as my example.
15:22:13  * keslajoined
15:22:43  * keslaquit (Client Quit)
15:28:53  * mcollinaquit (Ping timeout: 252 seconds)
15:31:34  * mcollinajoined
15:44:54  * mikolalysenkojoined
15:51:06  * defunctzombie_zzchanged nick to defunctzombie
15:52:29  * dguttmanjoined
15:54:56  * defunctzombiechanged nick to defunctzombie_zz
15:57:02  <jjjjohnn1y>how can i keep a reference to the scope of a closure?
15:57:51  <jjjjohnn1y>details: live coding environment
15:58:11  <jjjjohnn1y>want to some variables to be "global" to the env
15:58:18  <jjjjohnn1y>but not true global
15:58:48  <jjjjohnn1y>problem is, when new code comes in from the editor
15:59:12  <jjjjohnn1y>and I compile and run it, it is no longer in the scope of the closure
15:59:37  <jjjjohnn1y>possibly due to the various event emitters and stuff happening with the editor
16:00:34  <jjjjohnn1y>even tho everything is defined in the same closure
16:00:45  <jjjjohnn1y>i'll be here all day
16:06:53  <substack>isaacs: dunno, mkdirp is kind of hacky but at least it's short and maps well to the problem
16:07:16  <isaacs>substack: the thing i like about mkdirp is that i can't tell whether you or i wrote it at this point.
16:07:24  <isaacs>substack: it feels like *no one* wrote that module.
16:07:31  <isaacs>substack: it's just the natural expression of the problem.
16:07:59  <isaacs>it's not really that hacky, either. "try and then handle the error" is core unix philosophy stuff.
16:08:41  <djcoin>jjjjohnn1y: Sounds like continuation state monad may come in handy - no in fact no idea :)
16:08:45  <substack>true, it does feel like it just "exists"
16:10:03  <isaacs>substack: and for the book chapter, i really want it to be something instructive, that i can write 5000 words or so about, without a bunch of caveats, like "don't look at this other part over here, that's shit..."
16:10:28  <jjjjohnn1y>djcoin: how do i use javascript monads
16:10:43  <isaacs>substack: another idea i'd had was to talk about the module system in node, nad the node_modules hierarchical loading stuff
16:11:20  <isaacs>substack: but thta IS riddled with some bad ideas and backwards compatibility. and if the point of my paper was "backwards compatibility ruins everything", well, there are better examples of that :)
16:11:51  <isaacs>substack: i think the point is to show beautiful javascript, not ugly ass compromises that manage to do something well in spite of themselves
16:12:15  <djcoin>i'm kidding jjjjohnn1y, i barely understood your problem so :( + i will have to go in a couple of minutes
16:13:19  <isaacs>jjjjohnn1y: you could do what the node repl does.
16:13:26  <isaacs>jjjjohnn1y: ie, actually use globals, but use them in a separate context.
16:14:57  * dguttmanquit (Ping timeout: 248 seconds)
16:14:58  <jjjjohnn1y>isaacs: how does it
16:15:26  <jjjjohnn1y>oh repl.js
16:16:53  <jjjjohnn1y>magic.context = magic.createContext();
16:17:10  <jjjjohnn1y>i can see I am dealing with some high level shit here
16:19:13  <jjjjohnn1y>isaacs: what is the secret of using globals in a separate (non global?) context?
16:19:29  * shamajoined
16:21:15  <jjjjohnn1y>this is in the browser BTW
16:21:35  <jjjjohnn1y>i can't use the vm
16:21:36  * dguttmanjoined
16:22:04  <isaacs>jjjjohnn1y: ah
16:22:13  <isaacs>jjjjohnn1y: maybe run stuff in an iframe?
16:22:17  <isaacs>jjjjohnn1y: that's kinda like a separate context.
16:22:31  <isaacs>jjjjohnn1y: basically, you need to actually use globals, but you have to use them somewhere that it won't stomp your working env.
16:22:55  * thl0joined
16:22:58  <isaacs>jjjjohnn1y: so, you an use a cross frame postMessage() to send the code, then the receiving frame runs it in the global scope.
16:23:12  <jjjjohnn1y>ah
16:23:52  * spionquit (Ping timeout: 246 seconds)
16:23:54  <jjjjohnn1y>that may pose some problems itself
16:23:56  <jjjjohnn1y>isaacs: does that signify there is no way back in to a closure?
16:24:01  * crankquit (Ping timeout: 248 seconds)
16:25:47  * kevino80quit (Remote host closed the connection)
16:26:44  * thl0quit (Remote host closed the connection)
16:28:42  <isaacs>jjjjohnn1y: there is no way back into a closure, no
16:29:03  * defunctzombie_zzchanged nick to defunctzombie
16:29:17  <isaacs>jjjjohnn1y: my point is only, if you're doing the same kind of thing that a node repl does, you can use a similar technique, but s/vm/iframe/
16:36:03  <mbalho>isaacs: i swear i saw you walk into nodepdx just now but it was a doppelganger
16:36:12  <mbalho>only looks like you from the side though
16:36:24  <jjjjohnn1y>i think that means i would have to put the main process in an iframe
16:36:30  <isaacs>mbalho: yeah, that's because he didn't wanna shell out for the full likeness rights
16:36:42  <isaacs>mbalho: so he's only licensed to look like me from certain angles
16:36:48  <mbalho>haha
16:37:00  <isaacs>mbalho: i would negotiate, but you know, don't wanna devalue this.
16:38:24  * kevino80joined
16:45:16  * crankjoined
16:55:32  * defunctzombiechanged nick to defunctzombie_zz
17:05:48  * shamaquit (Remote host closed the connection)
17:07:00  * douglaslassancejoined
17:10:12  * shamajoined
17:11:23  * defunctzombie_zzchanged nick to defunctzombie
17:14:02  * defunctzombiechanged nick to defunctzombie_zz
17:17:55  * jxsonjoined
17:28:13  * yorickjoined
17:37:15  * thl0joined
17:37:24  <yorick>http://cowbirdsinlove.com/46
17:39:25  <jjjjohnn1y>bout to say fuck it eval runs in the closured context
17:39:48  <jjjjohnn1y>i am neither afraid or ashamed of globals or eval
17:40:46  * mcollinaquit (Read error: Operation timed out)
17:41:01  <jjjjohnn1y>globals will, of course, get in your way misused, and my awesome software cant have that
17:41:43  * thl0quit (Ping timeout: 260 seconds)
17:41:45  <jjjjohnn1y>its not a matter of will or wont with globals, its just when and for what reason
17:41:59  <jjjjohnn1y>and usually you have good reason not to use them
17:42:10  <jjjjohnn1y>eval tho
17:42:43  <jjjjohnn1y>that aint my problem is it
17:45:57  <jjjjohnn1y>i wish i could say "use context" in a function
17:46:15  <jjjjohnn1y>and it would tie the scope to that context
17:46:33  <jjjjohnn1y>i must be amditting things that, of made public, would surely deminish my hourly rate
17:46:59  * spionjoined
17:47:05  * nicholasfquit (Read error: Connection reset by peer)
17:47:26  * nicholasfjoined
17:48:52  * cianomaidinquit (Quit: cianomaidin)
17:53:25  * AvianFlujoined
18:08:46  * douglaslassancequit (Quit: Leaving...)
18:10:02  * no9quit (Ping timeout: 252 seconds)
18:10:16  * spionquit (Ping timeout: 246 seconds)
18:22:34  * no9joined
18:23:55  * defunctzombie_zzchanged nick to defunctzombie
18:29:31  * mikolalysenkoquit (Ping timeout: 240 seconds)
18:32:10  * thl0joined
18:33:35  * defunctzombiechanged nick to defunctzombie_zz
18:43:21  * tmcwjoined
18:49:00  * mikolalysenkojoined
18:54:45  * jcrugzzquit (Ping timeout: 256 seconds)
18:55:12  * yorickquit (Read error: Operation timed out)
18:55:44  * yorickjoined
18:59:16  * stagas_joined
19:01:11  * stagasquit (Ping timeout: 252 seconds)
19:01:22  * stagas_changed nick to stagas
19:09:27  * ITproquit (Ping timeout: 260 seconds)
19:10:21  * thl0quit (Remote host closed the connection)
19:15:12  * thl0joined
19:16:30  * jcrugzzjoined
19:19:13  * thl0quit (Ping timeout: 240 seconds)
19:19:37  * thl0joined
19:31:45  * thl0quit (Remote host closed the connection)
19:34:45  * st_lukejoined
19:42:39  * cianomaidinjoined
19:43:44  * cianomaidin_joined
19:43:44  * cianomaidinquit (Read error: Connection reset by peer)
19:43:44  * cianomaidin_changed nick to cianomaidin
19:54:22  * tmcwquit (Remote host closed the connection)
19:58:07  * tmcwjoined
19:59:06  * tmcwquit (Remote host closed the connection)
20:05:22  * thl0joined
20:09:49  * thl0quit (Ping timeout: 256 seconds)
20:20:49  * cianomaidinquit (Quit: cianomaidin)
20:21:54  * thl0joined
20:23:29  * cianomaidinjoined
20:27:03  * thl0quit (Remote host closed the connection)
20:27:57  * mikolalysenkoquit (Ping timeout: 256 seconds)
20:29:40  * thl0joined
20:30:14  * mikolalysenkojoined
20:30:46  <mikolalysenko>I know a couple of people here were working on browser based JS editors, are there any projects which are reasonably far along?
20:30:59  <mikolalysenko>or any recommendations?
20:32:02  <mbalho>mikolalysenko: mines pretty simple, its on top of codemirror which isnt as npm friendly as it should be hence the abstraction http://maxogden.github.io/javascript-editor/
20:32:19  <mbalho>mikolalysenko: also it uses esprima for error checking
20:32:23  <mikolalysenko>mbalho: looks pretty good, do you have a demo?
20:32:38  <mbalho>mikolalysenko: the link is the demo
20:33:01  <mikolalysenko>mbalho: ah! I see
20:33:10  <mikolalysenko>I am thinking about using this for a course maybe
20:34:01  <mikolalysenko>I'm gonna give it a shot, this looks very nice
20:43:32  * ricardobeatjoined
20:45:12  * calvinfo_joined
20:48:20  * Ralt_joined
20:48:26  * perlbot_joined
20:48:46  * thl0quit (Remote host closed the connection)
20:50:40  * nicholasfquit (*.net *.split)
20:50:41  * py1hon_quit (*.net *.split)
20:50:41  * Raltquit (*.net *.split)
20:50:41  * calvinfoquit (*.net *.split)
20:50:42  * perlbotquit (*.net *.split)
20:50:42  * perlbot_changed nick to perlbot
20:50:42  * Ralt_changed nick to Ralt
20:51:17  * mcollinajoined
20:55:23  * djcoinquit (Quit: WeeChat 0.4.0)
21:04:59  <mikolalysenko>is there a library to quickly drain a stream into a buffer?
21:05:14  <mikolalysenko>(I know there must be at least one, but am having trouble searching for the right module)
21:06:40  <mbalho>mikolalysenko: concat-stream
21:09:42  * tmcwjoined
21:12:45  * jcrugzzquit (Ping timeout: 252 seconds)
21:14:13  * kevino80quit (Remote host closed the connection)
21:14:13  * tmcwquit (Ping timeout: 252 seconds)
21:17:44  * kevino80joined
21:21:16  * mikolalysenkoquit (Ping timeout: 240 seconds)
21:21:19  * kevino80quit (Remote host closed the connection)
21:27:44  * cianomaidinquit (Quit: cianomaidin)
21:30:30  * cianomaidinjoined
21:32:10  * cianomaidinquit (Client Quit)
21:39:02  * ricardobeatquit (Remote host closed the connection)
21:41:37  * no9quit (Ping timeout: 240 seconds)
21:41:54  * mcollinaquit (Ping timeout: 256 seconds)
21:42:31  * mcollinajoined
21:45:36  * thl0joined
21:54:59  * AvianFluquit (Remote host closed the connection)
21:55:17  * no9joined
21:57:43  * thl0quit (Remote host closed the connection)
22:00:08  * thl0joined
22:04:46  * thl0quit (Remote host closed the connection)
22:04:47  * mcollinaquit (Read error: Connection reset by peer)
22:06:48  * dominictarrjoined
22:07:16  * ins0mniaquit (Ping timeout: 276 seconds)
22:17:38  * dominictarrquit (Ping timeout: 252 seconds)
22:26:17  * thl0joined
22:30:29  * thl0quit (Remote host closed the connection)
22:35:48  * jxson_joined
22:39:32  * jxsonquit (Ping timeout: 252 seconds)
22:58:17  * jxson_changed nick to jxson
22:58:35  * thl0joined
23:03:14  * dominictarrjoined
23:05:14  <dominictarr>hello
23:09:47  <substack>ahoy
23:26:38  <dominictarr>trying a new irc clint
23:26:40  <dominictarr>client
23:30:53  * nicholasfjoined
23:32:10  <substack>going to run it in a screen?
23:40:40  <thl0>substack: what's wrong with git add . when you got a good .gitignore and all changes relate to one concern?
23:42:07  * stagasquit (Read error: Connection reset by peer)
23:43:28  * nicholasfquit (Remote host closed the connection)
23:44:04  * nicholasfjoined
23:47:31  * jibayquit (Read error: Connection reset by peer)
23:52:09  <chrisdickinson>`git add -p` for life.
23:52:18  * substackgit commit -am''
23:52:26  <jesusabdullah>git rebase --interactive # \m/
23:52:50  * pkruminsgm's
23:52:55  <jesusabdullah>actually, if I can be honest, git diff --color is my secret weapon
23:53:06  <chrisdickinson>git diff --cached if i forget to -p while adding
23:53:14  <chrisdickinson>(aliased to "dc")
23:53:17  <pkrumins>i like these http://www.catonmat.net/blog/git-aliases/
23:54:18  <chapel>jesusabdullah: why not just set color in global config?
23:54:22  <chapel>then git diff
23:54:30  <jesusabdullah>laziness ;)
23:54:36  <chapel>jesusabdullah: I know what you mean
23:54:48  <chapel>sometimes its easier to type more because you're used to it
23:55:06  <jesusabdullah>truth be told, I don't often customize and configure my tools past the bare minimum
23:55:09  <chapel>like I do git status / git diff multiple times in a row
23:55:12  <jesusabdullah>that means definitely no aliases
23:55:23  <chapel>just because I don't want to scroll up to look at the last one
23:55:39  <chapel>my vim is pretty heavily altered
23:55:54  <chapel>which reminds me, I am starting my new job monday, will be getting a company machine
23:56:06  <jesusabdullah>yeah I don't fuck with vim too much either
23:56:10  <substack>I hate company machines.
23:56:11  <chapel>have to configure that thing now
23:56:14  <substack>I have refused them before.
23:56:30  <substack>which worked because nobody does that
23:56:39  <substack>I hate reconfiguring shit
23:56:45  <chapel>substack: I won't mind, will make it easy to separate work from not work
23:56:51  <substack>and managing synchronization across devices
23:57:13  <chapel>all I have to do is copy some dot files and I am good to go