00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:07  * ircretaryjoined
00:01:11  <Raynos>im thinking I want function* (duplex) { }
00:01:57  <Raynos>wel function* (duplex, opts) {} really
00:09:51  * jxsonquit (Remote host closed the connection)
00:10:20  * timoxleyjoined
00:16:41  * mcollinaquit (Ping timeout: 245 seconds)
00:17:24  <juliangruber>Raynos: the koa router will be very sexy: app.get('/:cat/:id', function(cat, id) { this.body = cat })
00:17:32  <juliangruber>very similar to director from flatiron
00:17:45  <substack>this.body?
00:17:47  <juliangruber>or whatever the router is called
00:17:50  <substack>(skeptical face)
00:18:03  * timoxleyquit (Remote host closed the connection)
00:18:04  <juliangruber>substack: this.body = fs.createReadStream(...) works too
00:18:09  <Raynos>juliangruber: thats not sexy :p
00:18:21  <juliangruber>Raynos: you're not sexy :P
00:18:23  <substack>juliangruber: why not just use the http.createServer() idioms?
00:18:25  <juliangruber>:D
00:18:52  <juliangruber>substack: more semantic, less technical
00:19:01  <juliangruber>res.end('bla') vs this.body = 'bla'
00:19:08  <Raynos>http.createServer(route({ "/:cat/:id": function* (duplex, opts) { sendBody(duplex, opts.params.cat) }))
00:19:35  <Raynos>but I have thought about doing
00:19:45  <juliangruber>substack: i'm not saying i'm prefering that or anything
00:19:50  <Raynos>http.createServer(route({ "/:cat/:id": function* (duplex, opts) { return { body: opts.params.cat } }))
00:20:01  <Raynos>or
00:20:08  <juliangruber>Raynos: too object-y/configuration-y for my taste
00:20:12  <Raynos>http.createServer(route({ "/:cat/:id": function* (duplex, opts) { return stream([opts.params.cat]) }))
00:20:53  <juliangruber>Raynos: I had this realisation that most http things are cached anyways, and with generators flow control is way easier -> less reasons to use streams for http responses
00:21:14  <Raynos>well that depends
00:21:19  <Raynos>most of the time i dont use streams
00:21:20  <substack>var parts = req.url.split('/'); if (parts.length === 2) { res.end('cat=' + parts[0] + '; id=' + parts[1]) } else res.end('404!')
00:22:32  <juliangruber>substack: that's harder to scale
00:23:02  <juliangruber>app.get('/:cat/:id', function*(){ this.body = 'cat=' + cat + ';id=' + id })
00:23:10  <juliangruber>that's more dense :P
00:23:24  <substack>why are you throwing away (req,res)?
00:23:26  <substack>I need those
00:23:29  <substack>give them back
00:23:32  <juliangruber>:D
00:23:33  <juliangruber>:D :D
00:23:44  <substack>and don't put them on `this`, that's weird
00:23:50  <juliangruber>for standard web applications you might not need them that much
00:23:52  * kevino80joined
00:24:18  * jxsonjoined
00:24:23  <juliangruber>substack: usual thing: get query, go to database, call to templating lib, render to client
00:25:02  <juliangruber>in koa terms that's arguments, generators, this.body = render(template, args)
00:25:10  <juliangruber>no need for req/res
00:25:30  <juliangruber>when you want to pass req/res around it's weird having them on the context, agree
00:26:31  <juliangruber>also with req, res, when you attach things to them, it's not always clear whether something should be attached to req or res
00:27:02  <juliangruber>given you think that's a good idea
00:27:39  <Ralt>that's only when you don't know what they mean, or you don't know http?
00:29:37  <Ralt>Raynos: ping
00:31:09  <juliangruber>Ralt: res.model, req.user, req.cookie, res.cookie, ...
00:31:58  <Raynos>Ralt: yo
00:32:13  * mikolalysenkoquit (Quit: Lost terminal)
00:32:16  * jergasonjoined
00:32:44  <Raynos>juliangruber: people that do that should get shot
00:33:13  <juliangruber>Raynos: i'm pretty sure stackvm people do that
00:33:17  <juliangruber>I did it
00:33:39  <Raynos>yeah and its a mistake
00:33:42  <Raynos>i've done it in the past
00:34:13  <juliangruber>it's just so much nicer to call `res.error(err)` than to `error(req, res, err)` or `var error = errorHandler(req, res); error(err)`
00:34:32  <juliangruber>ok it's not _much_ niser
00:34:33  <juliangruber>nicer
00:34:35  <juliangruber>but nicer
00:34:51  * timoxleyjoined
00:35:25  * jxsonquit (Ping timeout: 245 seconds)
00:35:35  <juliangruber>substack: i've been working with people which I would never let go the "do it yourself approach" but use some libs that enforce structure
00:35:51  * AvianPhonejoined
00:35:54  <juliangruber>it's ideologically wrong, but pragmatical in that case
00:36:21  <juliangruber>s/i've been working/i've worked/
00:36:48  * jergasonquit (Ping timeout: 245 seconds)
00:38:39  <juliangruber>substack: I mean, if I'd only ever work alone I'd definitely choose something more exciting than koa
00:39:12  <Raynos>juliangruber: sendError(req, res, err) is silly. do callback(err)
00:40:21  <Raynos>get("/:id", function (duplex, opts, cb) { db.get(opts.params.id, function (err, result) { if (err) return cb(err); sendJson(duplex, result) }) })
00:45:32  <juliangruber>Raynos: yeah that works, but doesn't work if you stick to the standard http signature
00:45:42  <juliangruber>which substack wants to do
00:54:27  <Raynos>get("/:id", function (req, res, opts, cb) { db.get(opts.params.id, function (err, result) { if (err) return cb(err); sendJson(req, res, result) }) })
00:54:37  <Raynos>juliangruber s/duplex/req, res/
00:55:23  <Raynos>get("/:id", function* (req, res, opts) { sendJson(req, res, yield db.get(opts.params.id)) }) })
00:55:29  <Raynos>juliangruber: also generators are nice ^
00:56:14  <substack>what's with this sendJSON thing?
00:56:23  <substack>db.getJSON(opts.params.id).pipe(res)
00:56:28  <substack>or
00:57:03  <substack>db.get(opts.params.id, function (err, value) { res.end(JSON.stringify(value)) })
00:59:26  * chiltsquit (Ping timeout: 240 seconds)
01:00:00  * chiltsjoined
01:00:28  * defunctzombiechanged nick to defunctzombie_zz
01:01:07  * defunctzombie_zzchanged nick to defunctzombie
01:01:13  * Kessler_joined
01:02:32  * timoxleyquit (Remote host closed the connection)
01:03:59  * Kesslerquit (Ping timeout: 240 seconds)
01:06:04  * timoxleyjoined
01:12:21  <Raynos>substack: JSON.stringify & setting headers is too much effort ( https://github.com/Raynos/send-data/blob/master/json.js#L19 )
01:12:52  <Raynos>substack: it also sets content-length https://github.com/Raynos/send-data/blob/master/index.js#L45
01:16:27  * ins0mniaquit (Read error: Operation timed out)
01:17:19  * dguttmanquit (Quit: dguttman)
01:17:38  * jxsonjoined
01:26:43  * jolissquit (Ping timeout: 260 seconds)
01:26:46  * kevino80quit (Read error: Connection reset by peer)
01:27:48  * kevino80joined
01:31:25  * kevino80quit (Remote host closed the connection)
01:34:14  * chapelquit (Ping timeout: 240 seconds)
01:34:50  * thlorenzjoined
01:36:58  * mikolalysenkojoined
01:44:42  * st_lukequit (Remote host closed the connection)
01:45:55  * mk30quit (Ping timeout: 250 seconds)
01:46:52  * st_lukejoined
01:51:48  * chapeljoined
01:56:30  <defunctzombie>Raynos: use express :p
02:00:22  * shamaquit (Remote host closed the connection)
02:02:42  * shamajoined
02:03:45  * mikolalysenkoquit (Ping timeout: 245 seconds)
02:04:14  * AvianPhonequit (Ping timeout: 240 seconds)
02:05:55  * tim_smartquit (Ping timeout: 264 seconds)
02:06:19  * tim_smartjoined
02:06:27  * dguttmanjoined
02:15:17  * shamaquit (Read error: Connection reset by peer)
02:16:07  * shamajoined
02:16:08  * kumavisquit (Quit: kumavis)
02:17:40  * thlorenzquit (Remote host closed the connection)
02:18:37  * st_lukequit (Remote host closed the connection)
02:22:00  * mikolalysenkojoined
02:30:09  * jxson_joined
02:30:27  * jxson_quit (Remote host closed the connection)
02:33:20  * jxsonquit (Ping timeout: 245 seconds)
03:05:57  * AvianFlujoined
03:20:57  * coderzachquit (Quit: coderzach)
03:21:02  * mikolalysenkoquit (Ping timeout: 240 seconds)
03:21:36  * coderzachjoined
03:23:00  * dguttmanquit (Quit: dguttman)
03:24:02  * dguttmanjoined
03:24:29  * coderzachquit (Client Quit)
03:25:00  * dguttmanquit (Client Quit)
03:28:09  * dguttmanjoined
03:31:02  * chapelquit (Ping timeout: 240 seconds)
03:31:41  * mikolalysenkojoined
03:44:03  * mikolalysenkoquit (Ping timeout: 240 seconds)
03:44:51  * Kessler_quit (Ping timeout: 276 seconds)
03:51:00  * chapeljoined
04:12:14  * chapelquit (Ping timeout: 240 seconds)
04:20:55  * mk30joined
04:28:59  * dguttmanquit (Quit: dguttman)
04:30:39  * calvinfoquit (Quit: Leaving.)
04:39:51  * dguttmanjoined
05:07:50  * jergasonjoined
05:13:06  * jergasonquit (Ping timeout: 256 seconds)
05:16:11  * rxgxquit (Quit: timeout)
05:21:32  * jergasonjoined
05:30:31  * dguttmanquit (Quit: dguttman)
05:37:31  * i_m_cajoined
05:37:38  * calvinfojoined
05:51:12  * AvianFluquit (Remote host closed the connection)
05:51:41  * AvianFlujoined
05:52:21  * chapeljoined
06:02:48  * jxsonjoined
06:06:56  * AvianFluquit (Remote host closed the connection)
06:07:25  * AvianFlujoined
06:18:31  * jergasonquit (Remote host closed the connection)
06:27:25  * defunctzombiechanged nick to defunctzombie_zz
06:31:24  * defunctzombie_zzchanged nick to defunctzombie
06:32:50  * djcoinjoined
06:33:58  * jxsonquit (Remote host closed the connection)
06:36:15  * kumavisjoined
06:42:13  * dguttmanjoined
06:43:16  * kumavisquit (Quit: kumavis)
06:45:19  * defunctzombiechanged nick to defunctzombie_zz
06:46:14  * dguttmanquit (Ping timeout: 240 seconds)
06:50:12  * rvaggchanged nick to Omakase
06:50:37  * Omakasechanged nick to rvagg
06:52:17  * defunctzombie_zzchanged nick to defunctzombie
06:57:26  * chapelquit (Ping timeout: 240 seconds)
07:01:55  * defunctzombiechanged nick to defunctzombie_zz
07:12:12  * i_m_caquit (Ping timeout: 276 seconds)
07:14:02  * mirkokieferjoined
07:18:38  * AvianFluquit (Remote host closed the connection)
07:19:10  * wolfeida_quit (Remote host closed the connection)
07:20:05  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302])
07:21:58  * dominictarrjoined
07:29:06  * jergasonjoined
07:29:11  * calvinfoquit (Quit: Leaving.)
07:33:46  * jergasonquit (Ping timeout: 245 seconds)
07:36:03  * mk30quit (Ping timeout: 250 seconds)
07:46:07  * dominictarrquit (Quit: dominictarr)
07:52:31  * chapeljoined
08:11:50  * defunctzombie_zzchanged nick to defunctzombie
08:11:53  * jcrugzzquit (Ping timeout: 246 seconds)
08:15:02  * dominictarrjoined
08:21:45  * defunctzombiechanged nick to defunctzombie_zz
08:44:30  * timoxleyquit (Remote host closed the connection)
08:46:16  * shamaquit (Remote host closed the connection)
08:46:47  * timoxleyjoined
09:18:25  * jcrugzzjoined
09:22:38  * jcrugzzquit (Ping timeout: 245 seconds)
09:33:02  * chapelquit (Ping timeout: 240 seconds)
09:50:10  * chapeljoined
09:51:27  * mcollinajoined
09:54:38  * chapelquit (Ping timeout: 240 seconds)
09:57:14  * nicholasfjoined
10:09:42  <dominictarr>http://www.dwheeler.com/trusting-trust/
10:14:49  * mcollina_joined
10:17:27  * mcollinaquit (Ping timeout: 276 seconds)
10:21:14  * mcollinajoined
10:21:15  * mcollina_quit (Ping timeout: 245 seconds)
10:38:36  * Kesslerjoined
10:43:16  * mcollinaquit (Ping timeout: 240 seconds)
10:44:44  * ins0mniajoined
10:44:54  * mcollinajoined
10:54:20  <dominictarr>rvagg: did you see the article of deterministic bulids?
11:23:26  * mirkokieferquit (Quit: mirkokiefer)
11:33:35  * mirkokieferjoined
11:47:35  * thlorenz_joined
11:48:39  * nicholasfquit (Remote host closed the connection)
11:49:12  * nicholasfjoined
11:50:25  * chapeljoined
11:55:22  <rvagg>dominictarr: doesn't ring a bell
11:55:32  <dominictarr>rvagg: it's very interesting
11:55:41  <dominictarr>https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise?utm_source=buffer&utm_campaign=Buffer&utm_content=buffera2637&utm_medium=twitter
11:56:48  <dominictarr>the tl;dr is to have a deterministic compilation so that every binary is identical, that way you can know if build tools have been compromised by a trojan
12:03:03  <rvagg>mmm, very interesting
12:03:57  <rvagg>what interests me most at the moment is the way that governments are unwittingly unleashing the power of many nerd minds to protect the sovereignty of the individual; Tor being just one example and obviously leading by example here which is great
12:19:42  <dominictarr>yes. we live in very interesting times.
12:20:13  <dominictarr>we really need deterministic builds for a fully distributed npm too
12:20:43  <dominictarr>I've been looking for documentation on how to basically get gcc to do a deterministic hello world
12:20:59  <dominictarr>but I'm having trouble finding anything
12:26:38  * nicholasfquit (Ping timeout: 264 seconds)
12:40:07  <rvagg>that link to debian may lead you somewhere: https://wiki.debian.org/ReproducibleBuilds
12:40:55  <rvagg>hah, you pasted the dwheeler link which is linked from the debian page so I guess you've already looked through that
12:41:39  <dominictarr>yeah, the simplest approach seems to be to run gcc with this faketime tool
12:41:55  <dominictarr>that lets you force an unchanging timestamp
12:42:16  <dominictarr>and then there is a bit of things to remove prefixes from build paths
12:42:38  * chapelquit (Ping timeout: 240 seconds)
12:42:56  <dominictarr>https://github.com/wolfcw/libfaketime
12:43:05  <rvagg>funny that it's so difficult but I guess compilers are quite sophisticated these days
12:43:45  <dominictarr>^ essentially, it monkeypatches the timer call in C (!!!)
12:43:58  <dominictarr>TIL EVEN C HAS MONKEY PATCHING
12:43:59  <LOUDBOT>WHOA IS IT CAPSLOCKDAY ALREADY?!
12:44:11  <dominictarr>YES LOUDBOT YESSS
12:44:11  <LOUDBOT>WHO ELSE HERE MASTURBATES TO SUMS OF INFINITE SERIES?
12:44:36  <djcoin>There is no limit to the hack level you can reach :)
12:45:40  <dominictarr>currently installing a ubuntu vm to test this faketime thing
12:47:37  <dominictarr>there is another project, that uses vms to give everything reproducable builds http://gitian.org/
12:48:26  * AvianFlujoined
12:49:05  <rvagg>I wish I could run faketime on my life and get a few more days in the week to get stuff done
12:50:30  <dominictarr>rvagg: that probably would have unforseen negative consequences
12:50:52  * Kesslerquit (Ping timeout: 260 seconds)
12:51:07  <dominictarr>the positive solution to this problem is to invite/encourage new collaborators into our community
12:52:02  <rvagg>"Dust: A Blocking-Resistant Internet Transport Protocol" http://blanu.net/Dust.pdf
12:57:56  * coderzachjoined
13:01:13  <dominictarr>rvagg: whats the tl;dr ? does it fake the timing patterns in a normal protocol, like https or something?
13:01:48  <rvagg>dominictarr: it's a pluggable mechanism that can change as required; as filters get smarter it can change, so it's not a fixed protocol
13:02:47  <dominictarr>ah, so the packets can just be made into a different format?
13:02:53  <dominictarr>interesting. will read.
13:04:35  * Kesslerjoined
13:07:31  <rvagg>mm, so there are a bunch of ways of transforming traffic so that it looks like something that it's not but that just makes it an arms race, I think Dust is an effort to make it easier to adapt to particular environments and improvements in filtering technology over time
13:08:30  * thlorenz_quit (Remote host closed the connection)
13:10:16  <dominictarr>rvagg: socks5 proxy that encodes stream inside cat pictures
13:10:30  <dominictarr>makes any communication 5000x more CUTE!
13:10:43  <rvagg>yeah, so it just lookslike a bazillion cat pictures flying around the internet.. which is reasonable
13:11:32  <dominictarr>it's not like the powers that be are gonna censor cat pictures!
13:33:25  * dguttmanjoined
13:33:35  * dguttmanquit (Client Quit)
13:33:44  * mbrevoortjoined
13:36:34  * Kessler_joined
13:39:06  * Kesslerquit (Ping timeout: 264 seconds)
13:40:41  * AvianFluquit (Remote host closed the connection)
13:46:26  * tmcwjoined
13:48:28  * thlorenz_joined
13:51:08  * chapeljoined
13:52:27  <guybrush>woah very nice video dominictarr thx for posting
13:52:45  <dominictarr>guybrush: network folklaw?
13:52:50  <guybrush>yes
13:53:03  <dominictarr>ralphtheninja found that originally
13:53:05  <guybrush>i didnt even know about Radia Perlman
13:53:40  <dominictarr>neither. and she is funny too.
13:54:16  <guybrush>right, seems like a really awesome person
14:12:54  * tmcwquit (Remote host closed the connection)
14:13:28  * tmcwjoined
14:15:23  * tmcw_joined
14:16:04  * tmcwquit (Read error: Connection reset by peer)
14:22:43  * mikolalysenkojoined
14:30:19  * kevino80joined
14:33:15  * AvianFlujoined
14:36:09  * fallsemojoined
14:36:14  * chapelquit (Ping timeout: 240 seconds)
14:49:04  * kevino80quit
14:52:33  * kevino80joined
15:06:10  * dguttmanjoined
15:24:19  <mirkokiefer>anyone who has experience in doing some kind of integration testing across servers?
15:24:38  <mirkokiefer>I need to start a node server on machine A
15:24:46  <mirkokiefer>and another on machine B
15:25:03  <mirkokiefer>run some tests and then destroy everything
15:25:41  <mirkokiefer>I'm just using local vagrant boxes
15:26:45  * jergasonjoined
15:29:34  * shamajoined
15:35:38  * mikolalysenkoquit (Ping timeout: 264 seconds)
15:35:41  * evboguejoined
15:41:03  * AvianFlu_joined
15:41:12  * AvianFluquit (Disconnected by services)
15:41:16  * AvianFlu_changed nick to AvianFlu
15:45:08  * mikolalysenkojoined
15:47:52  <mbalho>dominictarr: if i echo '{"foo": "bar"}' | nodeprogram.js and nodeprogram.js does process.stdin.pipe(split(JSON.parse)) i get an error because echo inserts a newline after the json string and then through emits null after the newline and split gets [ '{"foo": "bar"}', '' ] and then tries to JSON.parse('')
15:48:32  <mbalho>dominictarr: woudl you be open to a pull request in split that makes it more tolerant to trailing newlines
15:49:33  <dominictarr>you could do split(JSON.parse).on('error', funciton () {})
15:50:01  <mbalho>that catches downstream errors too though
15:50:04  <dominictarr>currently, it emits an error when the provided function throws
15:50:13  <dominictarr>no, errors arn't propagated
15:50:22  <dominictarr>they only emit on the stream.
15:50:52  * chapeljoined
15:50:58  <mbalho>i'd rather not call JSON parse when i know it will fail
15:51:15  <dominictarr>okay, so the cleaner way would be:
15:51:37  <dominictarr>split(function (e) { if(e) return JSON.parse(e) })
15:51:50  <mbalho>ah nice
15:52:06  <mbalho>i was mostly checking to see if you consider the above behavior a bug
15:53:09  <dominictarr>well, not really, since there is no way for split to know whether you are passing is JSON.parse
15:53:38  <mbalho>ah good point
15:53:59  <dominictarr>I'd take something that added split.json() though,
15:54:16  <dominictarr>which just defaulted to that, and behaved nicely, though.
15:54:24  <mbalho>cool
15:57:59  * kevino80quit (Remote host closed the connection)
15:58:17  <dominictarr>might want csv too… where to drawn the line?
15:58:42  <mbalho>heh
15:58:46  <mbalho>dominictarr: check out https://github.com/maxogden/dat/blob/master/developing.md#hello-world
15:58:57  <mbalho>dominictarr: all those work if you npm install dat -g
15:59:20  * kevinohara80joined
15:59:49  <mbalho>dominictarr: the point of dat cat | dat is that you can do dat cat | some_other_program | dat to do a streaming db transform
16:00:13  <mbalho>dominictarr: but if you do dat cat | dat it just in place updates each document to the next revision
16:02:17  <dominictarr>mbalho: I have been thinking about data a lot recently
16:02:26  <dominictarr>(installing dat)
16:02:44  <dominictarr>like, I want to see a graph of the world that shows what countries export what where
16:03:31  <dominictarr>dat init
16:03:40  <dominictarr>Error: Cannot find module 'hat'
16:04:08  <dominictarr> at Object.<anonymous> (/Users/dominictarr/.nave/installed/0.10.10/lib/node_modules/dat/lib/storage.js:10:12)
16:12:28  * tmcw_quit (Remote host closed the connection)
16:13:04  * tmcwjoined
16:15:04  * blobaumjoined
16:16:00  <AvianFlu>YOU CAN'T FIND THE HAT IN THE DAT
16:16:00  <LOUDBOT>THEY DON'T HAVE WIFI HERE. OH SHIT THEY DON'T HAVE WIFI HERE
16:16:06  <AvianFlu>THAT'S JUST LIKE THE CAT IN THE HAT I SWEAR
16:16:06  <LOUDBOT>I THINK I JUST SHAT MYSELF. AGAIN. WHY DOES THIS KEEP HAPPENING?
16:16:13  <AvianFlu>LOUDBOT: twitlast
16:16:14  <LOUDBOT>http://twitter.com/LOUDBOT/status/372754504258572289 (lewellyn/##turtles)
16:17:30  * tmcwquit (Ping timeout: 264 seconds)
16:19:34  * jergasonquit (Remote host closed the connection)
16:21:03  * kumavisjoined
16:21:17  * blobaumquit (Quit: Leaving)
16:24:28  * jergasonjoined
16:28:28  * tmcwjoined
16:31:12  * Kessler_quit (Ping timeout: 276 seconds)
16:32:11  * dominictarrquit (Quit: dominictarr)
16:36:48  * kevinohara80quit (Remote host closed the connection)
16:40:43  * kevino80joined
16:44:27  * Kesslerjoined
16:49:54  * mikolalysenkoquit (Ping timeout: 264 seconds)
16:50:11  * mikolalysenkojoined
17:03:27  * dominictarrjoined
17:04:38  * chapelquit (Ping timeout: 240 seconds)
17:06:27  * calvinfojoined
17:12:24  * defunctzombie_zzchanged nick to defunctzombie
17:14:40  * defunctzombiechanged nick to defunctzombie_zz
17:14:50  * defunctzombie_zzchanged nick to defunctzombie
17:14:57  <chrisdickinson>isaacs: a question: in node, commit 45a13d96 change the behavior of EventEmitter's ctor (switches `this._events = null` for `this._events = this._events || null`). This breaks "classical" / "old-style" event emitter subclassing (i.e., where `MyCtor.prototype = new EventEmitter`) in a non-obvious way. Should I file this as a bug, or is this a pre-emptive wontfix?
17:15:37  <isaacs>chrisdickinson: that method of subclassing is neither "classical" or "old-style", it's just "Broken"
17:15:52  <chrisdickinson>well, it's definitely broken now :)
17:16:20  <isaacs>chrisdickinson: use util.inherits, or MyCtor.prototype = Object.create(EventEmitter.prototype, { constructor: { value: MyCtor, enumerable: true, configurable: true, writable: true } })
17:16:28  <isaacs>chrisdickinson: it's *always* been broken
17:16:36  <isaacs>chrisdickinson: we were writing blog posts about how broken that was back in 2002
17:16:50  <isaacs>chrisdickinson: you're double-running the parent ctor tht way
17:16:56  * chrisdickinsonnods
17:17:05  <isaacs>chrisdickinson: unsafe at any speed.
17:17:15  <isaacs>chrisdickinson: and if you think THAT'S bad, try doing that with stream.Readable!
17:17:18  <isaacs>whooo boy
17:17:31  <isaacs>CRAZY weird shared state shenanigans if you do that!
17:17:51  <chrisdickinson>oh yeah, I'm aware. I'm not saying I like it, definitely
17:18:05  <chrisdickinson>Just that it exists, and it's a breaking change from 0.8 -> 0.10
17:18:48  <isaacs>chrisdickinson: that's not a "breaking change". that's "it never should have worked, and did by accident, stop writing javascript wrong"
17:18:52  <chrisdickinson>haha
17:18:54  <chrisdickinson>okay.
17:19:17  <isaacs>chrisdickinson: `new Blah` runs the constructor. that's not how you create a descendant prototype.
17:19:37  <isaacs>chrisdickinson: i'm not exaggerating about the "blog posts in 2002" complaint, btw.
17:19:41  <chrisdickinson>oh, I know.
17:20:16  <isaacs>chrisdickinson: i literally have personally spent more than a decade telling people how terrible that is and not to do it.
17:20:35  <isaacs>chrisdickinson: if you see any code doing this, please spread The Good News about JS OOP inheritance
17:20:56  <chrisdickinson>It's mostly code that was built to support pre-es5 + object.create
17:21:53  <isaacs>chrisdickinson: no excuse!
17:22:00  <chrisdickinson>haha
17:22:04  <chrisdickinson>I'm fixing, I'm fixing.
17:22:40  <chrisdickinson>I just wanted to see if there whether it would be regarded as a bug, or a wontfix; and if it's a wontfix if there's a list of "known breaking changes" from 0.8 -> 0.10 that it could potentially be added to.
17:22:42  <isaacs>chrisdickinson: function oldExtend(c, p) { function f() {}; f.prototype = p.prototype; c.prototype = new f; }
17:23:02  * chrisdickinsonnods
17:23:05  <isaacs>chrisdickinson: it's a list of "common JS bugs that we don't pretend to support"
17:24:00  <chrisdickinson>'kk. thanks!
17:25:35  * timoxleyquit (Remote host closed the connection)
17:29:21  <chrisdickinson>(and also sorry!)
17:29:29  * kevino80quit (Remote host closed the connection)
17:31:16  * AvianFluquit (Remote host closed the connection)
17:34:24  * defunctzombiechanged nick to defunctzombie_zz
17:37:04  * jxsonjoined
17:37:07  * AvianFlujoined
17:39:24  <dominictarr>mbalho: http://www.forbes.com/sites/timworstall/2013/02/13/microsofts-excel-might-be-the-most-dangerous-software-on-the-planet/
17:46:59  * jergasonquit (Remote host closed the connection)
17:49:59  * jcrugzzjoined
17:50:09  * chapeljoined
18:07:35  <chrisdickinson>thlorenz_: I seem to have gotten hypernal to produce odd output: http://requirebin.com/embed?gist=6369208
18:07:46  <chrisdickinson>(if you scroll down you'll start seeing nbsp; in there)
18:07:59  <thlorenz_>yeah
18:08:04  <thlorenz_>I'm aware of that
18:08:09  * thlorenz_changed nick to thlorenz
18:08:31  <thlorenz>chrisdickinson: I'm adding these in to get the indent right - it's a stupid way to do this really
18:08:43  <thlorenz>I haven't gotten around to fix this yet
18:09:31  <thlorenz>one option that mbalho suggested was to use whitespace-pre css setting, but that breaks things like hyperwatch that absolutely position themselves
18:10:21  <thlorenz>chrisdickinson: so we really just need a CSS expert to figure this out https://github.com/thlorenz/hypernal/blob/master/index.js#L9-L17
18:10:31  <thlorenz>then I could remove the &nbsp hack
18:11:15  <thlorenz>whoever takes a crack at this should test with hyperwatch to make sure nothing breaks there
18:11:44  * tmcwquit (Remote host closed the connection)
18:12:18  * tmcwjoined
18:16:14  * tmcwquit (Ping timeout: 240 seconds)
18:16:27  * jergasonjoined
18:21:50  * Kesslerquit (Ping timeout: 264 seconds)
18:21:57  * tmcwjoined
18:22:38  * defunctzombie_zzchanged nick to defunctzombie
18:30:47  * defunctzombiechanged nick to defunctzombie_zz
18:35:26  * tmcwquit (Remote host closed the connection)
18:35:59  <dominictarr>mirkok: https://twitter.com/nodeconfeu/status/372784166846607360
18:39:43  * tmcw_joined
18:40:06  * mirkokieferquit (Quit: mirkokiefer)
18:44:15  * tmcw_quit (Remote host closed the connection)
18:46:37  * Kesslerjoined
18:47:05  * defunctzombie_zzchanged nick to defunctzombie
18:56:38  * chapelquit (Ping timeout: 240 seconds)
19:00:36  * Kessler_joined
19:01:18  * Kesslerquit (Ping timeout: 264 seconds)
19:02:15  * jergasonquit (Remote host closed the connection)
19:05:53  * defunctzombiechanged nick to defunctzombie_zz
19:08:21  * jxsonquit (Remote host closed the connection)
19:13:18  * Kessler_quit (Ping timeout: 264 seconds)
19:19:02  * AvianFluquit (Remote host closed the connection)
19:20:00  * mikolalysenkoquit (Ping timeout: 245 seconds)
19:20:27  * AvianFlujoined
19:23:19  * nicholasfjoined
19:30:07  * thlorenz_joined
19:31:54  * thlorenzquit (Ping timeout: 264 seconds)
19:35:20  * mk30__joined
19:44:03  * jxsonjoined
19:45:37  * jergasonjoined
19:50:05  * chapeljoined
19:54:14  * mikolalysenkojoined
20:03:26  <rowbit>/!\ ATTENTION: (default-local) [email protected] successfully signed up for developer browserling plan ($20). Cash money! /!\
20:03:26  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
20:10:53  * defunctzombie_zzchanged nick to defunctzombie
20:11:06  * jergasonquit (Remote host closed the connection)
20:11:40  * jergasonjoined
20:12:02  * kumavisquit (Quit: kumavis)
20:25:26  * st_lukejoined
20:26:34  <st_luke>it would be nice if shrinkwrap was a bit more refined
20:26:41  <st_luke>it creates a massive amount of diff noise now
20:28:35  <defunctzombie>shrinkwrap is a fix for a wart :p
20:28:45  <defunctzombie>actually more like a coverup
20:28:55  * kumavisjoined
20:28:56  <defunctzombie>to hide it and not actually help solve the underlying problem
20:44:33  * thlorenzjoined
20:45:21  * ednapiranhajoined
20:47:54  * thlorenz_quit (Ping timeout: 268 seconds)
20:59:46  * tilgovijoined
21:03:16  <Domenic_>st_luke: agree
21:03:33  <Domenic_>st_luke: not sure exactly what the problem with it is, never spent time looking into it
21:03:38  * mcollinaquit (Remote host closed the connection)
21:03:41  <Domenic_>but the diffs are indeed always weirdly different
21:11:44  <jesusabdullah>https://twitter.com/marak/status/372828155880275968 SOOO tempted to reply, "throw in my shit from your storage unit and it's a deal"
21:11:49  <jesusabdullah>bad idea?
21:11:51  <jesusabdullah>probably
21:15:03  <jesusabdullah>then again
21:15:06  <jesusabdullah>I still want my shit
21:15:11  <st_luke>he told me "im a flake" cause i didnt call his landlord right away when he wanted me to
21:15:13  <st_luke>ok buddy
21:15:26  <jesusabdullah>Well
21:15:37  <jesusabdullah>he's the flake for not meeting up with the person that I got to get my shit out of his storage unit
21:16:03  <jesusabdullah>and then ignoring me until I gave up
21:16:26  <st_luke>its probably gone
21:16:31  <jesusabdullah>yeah probably
21:17:14  <jesusabdullah>tweeted. yolo.
21:21:21  * itprojoined
21:21:21  * itprochanged nick to ITpro
21:22:45  <jesusabdullah>https://twitter.com/jesusabdullah/status/372831549135134721
21:23:13  * soldairjoined
21:23:50  * ednapiranhaquit (Remote host closed the connection)
21:25:07  * evboguequit (Quit: leaving)
21:26:35  * jcrugzzquit (Ping timeout: 240 seconds)
21:33:06  <st_luke>bikeshedding takes more energy out of me than anything
21:33:59  * chapelquit (Ping timeout: 260 seconds)
21:34:47  <jesusabdullah>so why are you bikeshedding st_luke ?
21:35:00  <st_luke>arguing about deployemnt strategies
21:35:44  <jesusabdullah>oh
21:43:53  <AvianFlu>I CAN DEPLOY ALL THE THINGS BETTER THAN YOU CAN DEPLOY ALL THE THINGS
21:43:54  <LOUDBOT>GIVE US YOUR POOR, YOUR TIRED, YOUR HUDDLED MASSES LONGING TO BE LOUD
21:44:02  <AvianFlu>LOUDBOT: twitlast
21:44:02  <LOUDBOT>http://twitter.com/LOUDBOT/status/372836999599636480 (SubStack/#stackvm)
21:49:40  * kumavisquit (Ping timeout: 264 seconds)
21:52:27  * nicholasfquit (Remote host closed the connection)
21:52:36  * chapeljoined
21:57:18  * kumavisjoined
21:57:40  * thlorenzquit (Remote host closed the connection)
22:01:38  <mbalho>dominictarr: oops fixed dat so it has the correct dependencies
22:02:34  * tilgoviquit (Read error: Connection reset by peer)
22:03:54  <dominictarr>substack: I've been paying around with the idea of a tiling window manager in the browser: http://dominictarr.github.io/vec2-layout/
22:04:15  <dominictarr>also, I figured out how to resize terminals.
22:05:57  * djcoinquit (Quit: WeeChat 0.4.0)
22:08:39  <defunctzombie>dominictarr: you should make a chrome app IRC client that uses tiling concepts :) so I can see multiple rooms
22:08:51  <defunctzombie>pick up where I left off with eyersee haha
22:09:07  <dominictarr>oh, yeah. that would be ideal for IRC
22:09:21  <defunctzombie>https://github.com/shtylman/eyersee
22:09:34  <defunctzombie>I worked on that a while back, works as a chrome app
22:09:40  <defunctzombie>(fancy extension with tcp sockets)
22:09:47  <defunctzombie>want to revisit it at some point
22:09:54  <defunctzombie>I think it could lead to good things and interesting UI
22:10:01  <mbalho>anyone know a module for rendering markdown on the terminal?
22:11:46  <mbalho>ahh found https://npmjs.org/package/conch, didnt have very good keywords
22:13:00  * AvianFluquit (Ping timeout: 268 seconds)
22:16:50  <dominictarr>defunctzombie: does chrome socket have the same api as net?
22:17:06  <defunctzombie>dominictarr: no, but I wrote a wrapper that gives you a streaming api
22:17:17  <dominictarr>aha, cool.
22:17:18  <defunctzombie>https://github.com/shtylman/chrome-socket
22:17:25  <defunctzombie>or started to when I did that IRC stuff
22:17:59  * jcrugzzjoined
22:18:17  <dominictarr>oh, rigth - this is the wrapper
22:18:22  <defunctzombie>and I think I have a repo for typed array handling that it does
22:18:36  <defunctzombie>it has been a while since I have looked at this stuff :)
22:18:50  <dominictarr>defunctzombie: the other part of the plan is a 'networking layer'
22:19:15  <dominictarr>so that tabs, iframes, node, etc
22:19:20  <dominictarr>can all address each other
22:19:31  <dominictarr>via polyfils and relays if necessary
22:19:56  <defunctzombie>IPC layer of sorts?
22:21:02  * mirkokieferjoined
22:21:05  <dominictarr>yes, but with streams
22:21:35  <dominictarr>like an Actor Model polyfil
22:22:45  * jergason_joined
22:25:04  * jergasonquit (Ping timeout: 264 seconds)
22:26:05  <mbalho>can anyone recommend a page to link people to that explains how to fix their node paths so that -g will start working?
22:26:18  <mbalho>paths/permissions/etc
22:27:46  <defunctzombie>mbalho: ?
22:28:00  <defunctzombie>mbalho: people should install node via nvm imho
22:28:13  <defunctzombie>or nave, or whatever the shit is the hotness these days
22:28:16  <mbalho>like howtoinstallnodeforidiots.com
22:28:17  * mcollinajoined
22:28:18  <mbalho>i want that
22:28:30  <defunctzombie>nvm has a one line command and you just do it
22:28:34  <defunctzombie>we should make it even simpler
22:28:35  <defunctzombie>mbalho: I agree
22:29:01  * thlorenzjoined
22:36:01  * defunctzombiechanged nick to defunctzombie_zz
22:37:54  * thlorenzquit (Ping timeout: 264 seconds)
22:38:58  <dominictarr>mbalho: I use nave
22:39:21  <dominictarr>nave can install binaries so it's fast too
22:40:42  <dominictarr>mbalho: install-node.jsforcats.com ?
22:40:47  * wolfeidaujoined
22:44:13  <mbalho>lets just make a github repo with a troubleshooting readme
22:47:50  * fallsemoquit (Quit: Leaving.)
22:57:02  * mcollinaquit (Ping timeout: 256 seconds)
23:00:32  * thlorenzjoined
23:03:21  * dominictarrquit (Quit: dominictarr)
23:03:31  * ITproquit (Ping timeout: 256 seconds)
23:07:03  * st_lukequit (Remote host closed the connection)
23:10:42  * nicholas_joined
23:14:47  * st_lukejoined
23:15:35  * st_lukequit (Remote host closed the connection)
23:16:07  * chapelquit (Ping timeout: 264 seconds)
23:18:01  * st_lukejoined
23:18:33  * mk30__quit (Ping timeout: 250 seconds)
23:22:37  * damonoehlmanjoined
23:23:29  * mirkokieferquit (Quit: mirkokiefer)
23:24:45  * AvianFlu_joined
23:28:59  * evboguejoined
23:30:03  * st_lukequit (Remote host closed the connection)
23:31:14  * st_lukejoined
23:31:40  * thlorenzquit (Remote host closed the connection)
23:34:01  * thlorenz_joined
23:35:08  * timoxleyjoined
23:36:02  * maksimlinjoined
23:37:39  * thlorenz_quit (Read error: Operation timed out)
23:45:01  * kumavisquit (Quit: kumavis)
23:45:39  <Raynos>pkrumins, substack: Having trouble with IE10, Saf6, and other browsers for my tests ( https://ci.testling.com/Colingo/browser-tz ). Are those VMs down ?
23:46:07  <substack>taking a look
23:47:07  <substack>yes we're getting timeouts from those browsers
23:47:17  <substack>could be related to the error: socket hang up longstanding bug
23:47:29  * jergason_quit (Remote host closed the connection)
23:50:20  * chapeljoined
23:54:27  * fallsemojoined
23:56:17  * calvinfoquit (Quit: Leaving.)
23:59:43  * i_m_cajoined