00:00:00  * ircretaryquit (Remote host closed the connection)
00:00:08  * ircretaryjoined
00:00:23  * niftylettucequit (Ping timeout: 256 seconds)
00:00:39  <substack>thl0: pretty great
00:01:03  <thl0>substack: :) but debugging more involved things like generators is pretty broken
00:01:23  <thl0>substack: nothing we can do about it though, it's how traceur generates code and source maps
00:01:48  <Domenic_>thl0: can you step into super.attack?
00:02:02  <thl0>Domenic_: let's try shall we?
00:02:26  <substack>seems like this transforms + inline source maps approach can run circles around the older ways
00:02:43  * Altreus_joined
00:02:43  * jjjjohnnnyjoined
00:02:53  * purrquit (Quit: No ping reply from server)
00:02:54  <Domenic_>thl0: hmm it got really confused.
00:03:00  <thl0>substack: agreed - that was definitely the right decision
00:03:03  * purrjoined
00:03:03  * simcop2387quit (Excess Flood)
00:03:10  <thl0>Domenic_: yeah it's kind of broken
00:03:27  * simcop2387joined
00:03:38  <thl0>Domenic_: hits the super.attack breakpoint before the one that calls it
00:03:59  * chiltsjoined
00:03:59  * pikpikjoined
00:03:59  * mirkokjoined
00:03:59  * mint_xianjoined
00:03:59  * FireFlyjoined
00:03:59  * munrojoined
00:04:19  <thl0>hopefully traceur will get better at this, although Raynos said he is gonna reimplement an ES6 transpiler in a few hours
00:06:48  * jlordquit (Ping timeout: 245 seconds)
00:08:39  * niftylettucejoined
00:08:39  * munroquit (Ping timeout: 272 seconds)
00:11:16  <Raynos>I forgot I said that
00:11:22  <Raynos>remind me more
00:11:25  <Raynos>REMIND ME MORE
00:11:25  * defunctzombie_zzchanged nick to defunctzombie
00:11:25  <LOUDBOT>Y U SO LAZY, FREEH?
00:12:40  <Raynos>ehm
00:12:42  <Raynos>yes I will do that ...
00:13:45  * defunctzombiechanged nick to defunctzombie_zz
00:14:27  * munrojoined
00:15:17  * mirkokquit (Ping timeout: 272 seconds)
00:16:29  <Raynos>My IRC client is fucked.
00:17:48  * st_lukejoined
00:19:59  * mirkokjoined
00:20:26  * simcop2387_joined
00:21:31  * jdiezquit (Ping timeout: 264 seconds)
00:23:56  * dfggquit (Ping timeout: 264 seconds)
00:24:07  * dfggjoined
00:24:16  * simcop2387quit (*.net *.split)
00:24:16  * thl0quit (*.net *.split)
00:24:16  * fotoveritequit (*.net *.split)
00:24:18  * simcop2387_changed nick to simcop2387
00:30:43  <jesusabdullah>Domenic_: yt? I asked you the other day which version of npm had non-buggy peerDeps support and I lost it in the scrollback
00:30:51  * juliangruber_quit (Ping timeout: 245 seconds)
00:31:03  * Domenic_quit (Ping timeout: 258 seconds)
00:31:03  <jesusabdullah>balls.
00:31:03  * juliangruberjoined
00:33:30  * farnsworthquit (Ping timeout: 258 seconds)
00:41:44  * substacktopic: Unofficial browserling/testling mad science channel. For official help /join #browserling
00:45:23  * fotoveritejoined
00:45:23  * jcrugzzjoined
00:45:23  * jibayjoined
00:45:23  * farnsworthjoined
00:45:23  * mikolalysenkojoined
00:45:23  * mint_xianjoined
00:45:23  * defunctzombie_zzjoined
00:45:23  * jdiezjoined
00:45:23  * juliangruberjoined
00:45:23  * dfggjoined
00:45:23  * simcop2387joined
00:45:23  * mirkokjoined
00:45:23  * niftylettucejoined
00:45:23  * pikpikjoined
00:45:23  * chiltsjoined
00:45:23  * purrjoined
00:45:23  * jjjjohnnnyjoined
00:45:23  * Altreus_joined
00:45:23  * ircretaryjoined
00:45:23  * jlord_joined
00:45:23  * rvaggjoined
00:45:23  * Guest62188joined
00:45:23  * chrisdickinsonjoined
00:45:23  * thatguydanjoined
00:45:23  * devaholicjoined
00:45:23  * hij1nxjoined
00:45:23  * Guest44152joined
00:45:23  * crank_joined
00:45:23  * jden|zz_joined
00:45:23  * mikealjoined
00:45:23  * brianloveswords_joined
00:45:23  * Benvie_joined
00:45:23  * Nexxyjoined
00:45:23  * zujoined
00:45:23  * wolfeidaujoined
00:45:23  * stlsaintjoined
00:45:23  * shamajoined
00:45:23  * jez0990joined
00:45:23  * dguttmanjoined
00:45:23  * owenbjoined
00:45:23  * kenperkinsjoined
00:45:23  * rannmannjoined
00:45:23  * kanzurejoined
00:45:23  * johnkpauljoined
00:45:23  * jan____joined
00:45:23  * ryanseddonjoined
00:45:23  * LOUDBOTjoined
00:45:23  * tanepiperjoined
00:45:23  * cubertjoined
00:45:23  * owen1joined
00:45:23  * Raltjoined
00:45:23  * heathjoined
00:45:23  * calvinfojoined
00:45:23  * mbalhojoined
00:45:23  * CoJaBojoined
00:45:23  * rook2paw1joined
00:45:23  * gozalajoined
00:45:23  * substackjoined
00:45:23  * perlbotjoined
00:45:23  * guybrushjoined
00:45:23  * coffeecup_joined
00:45:23  * doolsjoined
00:45:23  * paul_irishjoined
00:45:23  * rowbitjoined
00:45:23  * robertjd_joined
00:45:23  * Raynosjoined
00:45:23  * ehdjoined
00:45:23  * gildeanjoined
00:45:23  * py1honjoined
00:45:23  * sorensenjoined
00:45:23  * chapeljoined
00:45:23  * pkruminsjoined
00:45:23  * elliottcablejoined
00:45:23  * harrowjoined
00:45:23  * jesusabdullahjoined
00:45:35  * FireFlyjoined
00:47:56  * heathjsjoined
00:49:09  * shama_joined
00:50:33  * calvinfo_joined
00:50:53  * shamaquit (Ping timeout: 258 seconds)
00:51:02  * dfgg_joined
00:51:08  * heathquit (Ping timeout: 264 seconds)
00:51:08  * calvinfoquit (Ping timeout: 264 seconds)
00:51:09  * dfggquit (Ping timeout: 264 seconds)
00:51:52  * douglaslassancejoined
00:52:48  * douglaslassancechanged nick to Asterokid
01:00:33  * douglaslassancejoined
01:00:59  * AvianFlujoined
01:01:09  * Domenic_joined
01:03:15  * farnsworth_joined
01:07:33  * calvinfojoined
01:07:47  * farnsworthquit (Ping timeout: 258 seconds)
01:07:47  * calvinfo_quit (Ping timeout: 258 seconds)
01:07:48  * farnsworth_changed nick to farnsworth
01:08:08  * dguttmanquit (Ping timeout: 258 seconds)
01:08:12  * Asterokidquit (Read error: Connection reset by peer)
01:09:11  * mikolalysenkoquit (Ping timeout: 255 seconds)
01:10:01  * stlsaintquit (Ping timeout: 245 seconds)
01:11:07  <jesusabdullah>Domenic_: yt? I asked you the other day which version of npm had non-buggy peerDeps support and I lost it in the scrollback
01:11:18  * stlsaintjoined
01:12:27  * sveisveijoined
01:14:42  * duncanbeevers_joined
01:16:50  * thl0joined
01:17:54  <jesusabdullah>Domenic_: PM me when you have a chance, that way I definitely won't have to ask you twice XD
01:18:03  <jesusabdullah>Domenic_: er, three times.
01:19:06  * shamajoined
01:20:23  * notalexgordon_joined
01:31:38  * jjjjohnnnyquit (Ping timeout: 264 seconds)
01:31:40  * thl0quit (Remote host closed the connection)
01:31:43  * stlsaintquit (*.net *.split)
01:31:43  * shama_quit (*.net *.split)
01:31:43  * chiltsquit (*.net *.split)
01:31:44  * pikpikquit (*.net *.split)
01:31:45  * stlsaintjoined
01:31:45  * stlsaintquit (Changing host)
01:31:45  * stlsaintjoined
01:31:45  * calvinfo_joined
01:31:46  * Altreus_quit (Ping timeout: 264 seconds)
01:32:04  * jjjjohnnnyjoined
01:32:14  * notalexgordon_quit (Ping timeout: 264 seconds)
01:32:14  * calvinfoquit (Ping timeout: 264 seconds)
01:33:32  * jjjjohnnnyquit (*.net *.split)
01:34:51  * chiltsjoined
01:40:41  * calvinfo_quit (Ping timeout: 258 seconds)
01:40:51  * Altreusjoined
01:40:53  * chiltsquit (Ping timeout: 256 seconds)
01:40:54  * mikolalysenkojoined
01:41:02  * jjjjohnnnyjoined
01:49:57  * calvinfo_joined
01:49:58  * fotoveritequit (*.net *.split)
01:49:59  * chiltsjoined
01:50:00  * thl0joined
01:50:02  * fotoveritejoined
01:50:41  * fotoveritequit (Ping timeout: 240 seconds)
02:00:13  * st_lukequit (Write error: Connection reset by peer)
02:00:46  * fotoveritejoined
02:00:46  * st_luke_joined
02:00:47  * timoxleyjoined
02:00:47  <st_luke_>http://en.wikipedia.org/wiki/Two_Generals%27_Problem
02:00:47  * shama_joined
02:09:39  * jjjjohnnnyquit (*.net *.split)
02:09:40  * Domenic_quit (Write error: Connection timed out)
02:09:42  * jibayquit (Read error: Connection reset by peer)
02:09:42  * timoxleyquit (Ping timeout: 240 seconds)
02:09:42  * shama__joined
02:09:43  * chiltsquit (Ping timeout: 258 seconds)
02:09:44  * mikolalysenkoquit (Ping timeout: 256 seconds)
02:09:44  * shama_quit (Ping timeout: 264 seconds)
02:09:44  * mikolalysenkojoined
02:09:45  * calvinfo_quit (Ping timeout: 258 seconds)
02:09:45  * jjjjohnnnyjoined
02:10:07  <mbalho>rvagg: http://maxogden.com/kindleberry-wireless.html left all the technical stuff out and just linked to your gist
02:10:15  * timoxleyjoined
02:11:47  * calvinfo_joined
02:11:49  * shamaquit (Ping timeout: 253 seconds)
02:13:52  * chiltsjoined
02:15:39  * shama__quit (Remote host closed the connection)
02:24:44  * thl0quit (Remote host closed the connection)
02:33:51  * chiltsquit (Remote host closed the connection)
02:33:52  * mikolalysenkoquit (Ping timeout: 256 seconds)
02:34:22  * timoxleyquit (Quit: Computer has gone to sleep.)
02:34:28  * mikolalysenkojoined
02:34:36  * calvinfo_quit (Ping timeout: 258 seconds)
02:34:36  * calvinfo_joined
02:34:37  * timoxley_joined
02:34:39  * timoxley_quit (*.net *.split)
02:34:40  * jjjjohnnnyquit (*.net *.split)
02:34:43  * mikolalysenkoquit (Ping timeout: 256 seconds)
02:34:45  * jjjjohnn1yjoined
02:35:13  * timoxleyjoined
02:36:42  * chiltsjoined
02:47:12  * owen1quit (Ping timeout: 256 seconds)
02:48:18  * thatguydanquit (Ping timeout: 256 seconds)
02:48:24  * st_luke_quit (Remote host closed the connection)
02:48:27  * farnsworthquit (Ping timeout: 292 seconds)
02:48:34  * thatguydanjoined
02:48:34  * st_lukejoined
02:48:36  * chiltsquit (Ping timeout: 252 seconds)
02:48:37  * chiltsjoined
02:48:49  * owen1joined
02:49:45  * farnsworthjoined
02:53:44  <Raynos>defunctzombie: typeahead does not play nicely with position fixed / absolute things :(
02:55:07  * calvinfo_quit (*.net *.split)
03:06:40  * st_luke_joined
03:06:42  <rvagg>mbalho: nice post, I need to write mine up
03:06:42  <rvagg>mbalho: I have 2 connection modes, wifi & usbnet, 2 different kterm menu options so I can plug in the kindle via USB and connect that way, bypassing the need for a wifi connection
03:06:42  <rvagg>the kindle then gets charged via usb, which is a bit unfortunate but probably takes less power than running the wifi dongle
03:06:42  * st_lukequit (Read error: Connection reset by peer)
03:07:08  * Domenic_joined
03:11:19  <rvagg>up up up https://news.ycombinator.com/item?id=5435167
03:15:16  * pikpikjoined
03:28:07  <substack>now with auth: https://github.com/substack/ploy
03:28:13  * notalexgordon_joined
03:34:20  <Raynos>substack: do you have an alternative to fleet yet?
03:36:55  * jcrugzzquit (Ping timeout: 256 seconds)
03:38:23  * jcrugzzjoined
03:38:33  <substack>Raynos: this is pretty much that, yes
03:39:29  <Raynos>oh i see
03:39:32  <Raynos>nice will look into it
03:39:38  <Raynos>fleet is starting to show its age here :)
03:41:15  <substack>this is much simpler
03:41:18  * mmckeggjoined
03:41:35  * mikolalysenkojoined
03:41:54  <substack>except there is a bug in pushover somewhere
03:42:12  <substack>it's failing on my 100M+ substack.net repo
03:46:43  * mikolalysenkoquit (Ping timeout: 256 seconds)
03:50:20  * jcrugzz_joined
03:50:29  * jcrugzz_quit (Client Quit)
03:51:18  <chrisdickinson>substack: is there a particular protocol for changing a package name?
03:51:30  <chrisdickinson>i'm thinking of renaming "browservefy" to "bfy"
03:51:41  <st_luke_>npm unpublish; npm publish
03:51:45  <mbalho>it should have a simple, descriptive name IMO
03:51:51  <mbalho>like browserify-server
03:51:52  <mbalho>:D
03:52:10  <chrisdickinson>mbalho: that's already taken :)
03:52:15  <mbalho>oh yea by raybro
03:52:30  <chrisdickinson>and actually, i think Raynos uses that as his browserify command with browservefy
03:52:42  <Raynos>oh hi!
03:52:54  <chrisdickinson>if he hasn't gotten tired of me being slow to update browservefy yet ): ): ):
03:52:55  <mbalho>https://npmjs.org/package/module-server
03:53:02  <st_luke_>AbstractSingletonBrowserifyFactoryProxy
03:53:18  <Raynos>browserify-server is a thing that is waiting to die
03:53:19  <mbalho>mongodbhackernewsclonehtml6
03:53:27  <chrisdickinson>i'm pretty fond of "bfy", pronounced "beefy"; but it is kind of a silly name
03:53:39  <chrisdickinson>mostly i just like not having to type much
03:53:48  <st_luke_>beefy is available
03:53:51  <substack>chrisdickinson: just stop publishing updates to browservefy and start pushingly to the other place
03:54:02  <chrisdickinson>'kk
03:54:04  <substack>you don't want to unpublish because there are a lot of package.json files that will break if you do that
03:54:08  <mbalho>npm is a ghetto
03:54:11  <chrisdickinson>haha
03:54:19  <chrisdickinson>is there an npm postinstall?
03:54:30  <chrisdickinson>ah yeah
03:54:45  <chrisdickinson>i'll just add a postinstall that tells you to download bfy or beefy or whatever
03:54:46  <st_luke_>npm is a ghetto
03:54:49  <st_luke_>npm is a garbage dump
03:55:16  <substack>isaaacs has already explicitly said that npm is a garbage dump where you dump your js
03:55:27  <substack>*isaaaaaaacs
03:55:38  <mbalho>npmjs.org/steak npmjs.org/beef all available
03:56:00  <chrisdickinson>mbalho: i take it "bfy" is too short, then?
03:56:14  <mbalho>chrisdickinson: im just being silly now
03:56:17  <substack>beefy is good
03:56:18  <st_luke_>make it a verb
03:56:18  <chrisdickinson>haha
03:56:19  <st_luke_>"beefed"
03:56:23  <chrisdickinson>D:
03:56:32  <mbalho>chrisdickinson: but i think more people would use browservefy if its name explained what it was
03:56:33  <substack>beef is a verb
03:56:39  <mbalho>chrisdickinson: though i could be wrong
03:56:54  <chrisdickinson>i think a better readme would go a long way :)
03:56:54  <mbalho>chrisdickinson: and yes i realize 'browservefy' is already a descriptive word :D
03:56:57  <mbalho>chrisdickinson: yea that too
03:57:05  <mbalho>npmjs.org/tortilla wrap your modules
03:57:19  <substack>the desc matters much more than the name
03:58:14  * jcrugzzquit (*.net *.split)
04:09:23  * mmckeggpart
04:10:00  * chrisdickinsonworks on the README
04:12:21  * mmckeggjoined
04:16:45  <chrisdickinson>mbalho: substack: https://npmjs.org/beefy
04:18:35  <Raynos>chrisdickinson: my PRs ;_;
04:18:54  <Raynos>MOAR FEATURES
04:18:54  <LOUDBOT>HI I'M A STUCK PIXEL. NICE TO MEET YOU.
04:18:56  <Raynos>MOAR BLOAT
04:18:56  <LOUDBOT>THEN MAYBE I'LL JUMP OFF OF EB2
04:19:08  <Raynos>chrisdickinson: I am going to PR on xml based configuration files
04:20:32  * st_luke_quit (Read error: Connection reset by peer)
04:20:57  * st_lukejoined
04:23:52  <mbalho>WAT
04:24:47  <chrisdickinson>haha
04:25:15  <chrisdickinson>Raynos: i'm probably going to see if i can't replace live-reload-server with something more lightweight, if that's cool
04:25:27  <Raynos>+1 sec
04:25:35  <chrisdickinson>just noticed that you have to run node-gyp to get beefy ):
04:26:08  <Raynos>chrisdickinson: thats because live-reload uses shoe
04:26:20  <chrisdickinson>i might just use sse-stream
04:26:38  <Raynos>not good enough
04:26:43  <chrisdickinson>haha
04:26:47  <chrisdickinson>for live reloading?
04:26:51  <Raynos>no IE10/IE9 support
04:27:24  <Raynos>replace browserify-server ( https://github.com/Raynos/live-reload/blob/master/package.json#L26 ) with browserify
04:27:44  <Raynos>replace shoe ( https://github.com/Raynos/live-reload/blob/master/package.json#L21 ) with an xhr read stream modules (write one)
04:28:03  <chrisdickinson>yeah
04:28:13  <Raynos>of course
04:28:19  <Raynos>good luck with CORS xhr streaming :P
04:28:52  <chrisdickinson>if the module is small enough / presents the right thing, it'll be served directly out of beefy
04:30:11  * AvianFluquit (Read error: Connection reset by peer)
04:30:38  * defunctzombie_zzchanged nick to defunctzombie
04:30:47  * AvianFlujoined
04:31:21  * defunctzombiequit (Changing host)
04:31:21  * defunctzombiejoined
04:31:23  <defunctzombie>Raynos: chrisdickinson: did you guys clean up the json stream code?
04:31:25  <defunctzombie>I saw yall commenting on it earlier
04:33:17  <Raynos>i didnt
04:33:22  <Raynos>i looked at it
04:33:25  <Raynos>and went psh
04:33:26  <Raynos>complexity
04:34:27  <defunctzombie>heh
04:34:32  <defunctzombie>sadness
04:34:35  <defunctzombie>such a simple thing
04:35:23  <Raynos>it uses like 4 through streams
04:35:25  <Raynos>and them im like
04:35:27  <Raynos>lulwut
04:35:42  <chrisdickinson><3 Raynos
04:36:12  <defunctzombie>yea :/
04:36:18  <defunctzombie>but the idea is so simple
04:37:37  * mmckeggquit (Quit: mmckegg)
04:38:36  <defunctzombie>chrisdickinson: the example also doesn't test what it should tho
04:45:53  <defunctzombie>http://sivers.org/learn-js
04:54:15  <chrisdickinson>hrm, zlib.flush doesn't seem to actually call the callback reliably
04:56:39  * st_lukequit (Remote host closed the connection)
05:04:09  <defunctzombie>substack: did you ever publish tape with the CLI app?
05:04:59  <substack>yes
05:05:29  <substack> https://npmjs.org/beefy
05:05:37  <substack>ignore that
05:05:41  <substack>$ npm view tape bin.tape
05:05:41  <substack>./bin/tape
05:06:34  <defunctzombie>huh
05:06:38  <defunctzombie>oh right
05:06:40  <defunctzombie>nvm
05:06:44  <defunctzombie>also, if I do assert.plan(1)
05:06:52  <defunctzombie>shouldn't the test fail if I didn't call any asserts?
05:07:09  <jesusabdullah>can't stop me from ignoring links
05:09:43  * dominictarrjoined
05:10:17  <jesusabdullah>Mr. Tarr.
05:10:57  <dominictarr>houdy
05:11:14  <substack>tar cjf dominic.tar.gz mad_science/
05:11:47  * timoxleyquit (Quit: Computer has gone to sleep.)
05:12:06  * AvianFluquit (Remote host closed the connection)
05:13:53  <substack>dominictarr: I was just thinking, it should be hideously easy to modify https://github.com/substack/ploy to do branch-based a/b tests
05:14:01  <defunctzombie>substack: seeing a problem with tape not checking that the proper number of assertions was called
05:14:24  <substack>defunctzombie: that is up to the tap consumer to check too
05:14:40  <dominictarr>totally
05:14:45  <substack>I just use the `tap` bin script because it catches all that
05:15:02  <defunctzombie>substack: the text output doesn't say how many should happen tho...
05:15:51  <defunctzombie>substack: I change t.plan from 1 -> 2
05:15:59  <defunctzombie>and it still looks like all my tests pas
05:16:00  <defunctzombie>*pass
05:16:11  <defunctzombie>this is totally fucked behavior ... right?
05:16:14  <dominictarr>Raynos: line delemited pull-* https://github.com/dominictarr/pull-split
05:16:25  <dominictarr>just ported from `split`
05:16:34  <substack>dominictarr: and an algorithm could award developers with access to the source code a percentage of the increases in revenue from the a/b test
05:17:00  <dominictarr>Raynos: based on https://github.com/dominictarr/pull-through << through ported to pull!
05:17:21  <substack>giant web property companies like yahoo and zynga are pretty much just a really inefficient version of that
05:18:17  <defunctzombie>substack: https://github.com/shtylman/jsonwire
05:18:18  * douglaslassancequit (Quit: Linkinus - http://linkinus.com)
05:18:19  <jesusabdullah>In other news, I like food
05:18:20  <defunctzombie>substack: clone that
05:18:29  <defunctzombie>substack: https://github.com/shtylman/jsonwire/blob/master/test.js#L60
05:18:34  <defunctzombie>substack: and change that 1 to a 2
05:18:42  <defunctzombie>substack: tests still look like they pass to me
05:19:16  * st_lukejoined
05:19:28  <st_luke>is there a good module that does all your programming for you
05:20:10  <substack>st_luke: https://github.com/substack/number-script/blob/master/example/all.number
05:20:32  <jesusabdullah>st_luke: yo dawg
05:20:43  <jesusabdullah>st_luke: I think I got peerDependencies on lockdown w/ big
05:20:45  <substack>"This NumberScript program generates the set of all valid NumberScript programs, including itself:"
05:21:08  <defunctzombie>dominictarr: https://github.com/shtylman/jsonwire
05:21:22  <defunctzombie>dominictarr: was banging my head against the wall earlier trying to write this
05:21:28  <defunctzombie>dominictarr: feedback would be appreciated
05:21:29  <jesusabdullah>oh man moose meat is best meat
05:21:33  <defunctzombie>dominictarr: I found nothing out there that does this
05:21:43  <dominictarr>defunctzombie: you need to check transport for 'error'
05:21:46  <st_luke>we're meeting with some dumb record company tomorrow and I realized I don't give a fuck if they like what we're making, so imo we shouldn't even meet with them
05:21:57  <dominictarr>defunctzombie: npm.im/stream-serializer
05:22:01  <jesusabdullah>but st_luke maybe they'll give you $$$
05:22:14  <defunctzombie>dominictarr: it seemed like it was not complete tho
05:22:26  <defunctzombie>dominictarr: and does it do the whole read/write stuff?
05:22:30  <substack>st_luke: what are you making?
05:22:31  <st_luke>jesusabdullah: the only way i can see that happening is if they get some sort of say in the direction, and fuck that
05:22:36  <dominictarr>defunctzombie: yup
05:22:48  <jesusabdullah>st_luke: I like talking to people even if they're tools :)
05:22:53  <dominictarr>that is what I use on scuttlebutt, mux-demux, etc
05:22:56  <substack>st_luke: ALSO, http://github.com/substack/ploy has auth and everything else on the todo
05:23:09  <defunctzombie>dominictarr: https://github.com/dominictarr/stream-serializer/blob/master/index.js#L23
05:23:35  <dominictarr>defunctzombie: good point!
05:23:44  <substack>emit('close') ?
05:23:51  <dominictarr>guess that was waiting for someone to put in a pull request
05:24:04  <defunctzombie>dominictarr: I have been looking for something like this / jsonwire
05:24:18  <defunctzombie>dominictarr: but need to make sure it has the angles covered for streams pretty well
05:24:36  <defunctzombie>dominictarr: cause it will go into a pretty critical piece of infrastructure :)
05:24:43  <substack>accute, right, obtuse
05:24:44  <substack>check
05:24:50  <dominictarr>I see
05:25:06  <dominictarr>defunctzombie: I'll add you to the repo
05:25:31  <dominictarr>if you want?
05:25:35  <defunctzombie>dominictarr: do you think the stream serializer approach is better than the .pipe stuff I have?
05:25:45  <defunctzombie>dominictarr: yes, I am all for less modules doing the same crap
05:25:53  <dominictarr>cool,
05:26:00  <defunctzombie>dominictarr: I would have used it if it looked more "complete"
05:26:05  <defunctzombie>and tested
05:26:07  <defunctzombie>:)
05:26:26  <jesusabdullah>substack: http://www.alaskahackathon.org Anchorage tries SO HARD
05:26:36  <defunctzombie>substack: any thoughts on the .plan issue?
05:26:41  <defunctzombie>substack: kind of a buzz kill :(
05:26:50  <jesusabdullah>mildly surprised anchorage hasn't angled for a CfA partnership
05:27:17  <substack>SILICON IGLOO
05:27:18  <LOUDBOT>WHY DO JAPANESE GIRLS GET TO LIVE ALONE SO THEY CAN BE RAPED?
05:27:21  <st_luke>if you have a list of 100 things you want to do before you die i dont think were gonna get along
05:27:29  <st_luke>is it wrong to not want to hire someone because they exercise too much
05:27:33  <jesusabdullah>substack: you mean
05:27:37  <jesusabdullah>substack: THE OTHER MOUNTAIN VIEW
05:27:40  <Raynos>dominictarr: https://github.com/dominictarr/pull-through#dont
05:27:42  <Raynos>WRONG.queue
05:27:45  <Raynos>WRONG !
05:27:45  <LOUDBOT>I THOUGHT THEY WERE POWERED BY THE TEARS OF CHILDREN
05:27:46  <substack>haha
05:27:54  <substack>a vew of an actual mountain yes
05:28:03  <dominictarr>Raynos: oh rite
05:28:09  <substack>glacial silica valley
05:28:40  <substack>silicon glacier is pretty good
05:28:41  <jesusabdullah>substack: I meant https://maps.google.com/maps?q=Mountain+View,+Anchorage,+AK&hl=en&ll=61.222503,-149.825535&spn=0.02537,0.09201&sll=61.218784,-149.869566&sspn=0.025373,0.09201&oq=mountain+&t=h&hnear=Mountain+View,+Anchorage,+Alaska&z=14
05:28:53  <substack>oh right *that* neighborhood
05:29:58  <defunctzombie>dominictarr: looking at this code: https://github.com/shtylman/jsonwire/blob/master/index.js
05:29:59  <jesusabdullah>mmhmm
05:30:04  <Raynos>dominictarr: I think this breaks backpressure ( https://github.com/dominictarr/pull-through/blob/master/index.js#L37 )
05:30:09  <defunctzombie>dominictarr: do you see any reason to use the existing stream-serializer code?
05:30:13  <Raynos>oh no wait! It does not
05:30:18  <dominictarr>defunctzombie: The reason that I used the (ahem, monkey patch) approach with stream-serializer is so that it preserves the identity of the stream
05:30:23  <Raynos>nice :)
05:30:24  <substack>jesusabdullah: HACKAHOW!
05:30:32  <dominictarr>because it doesn't wrap it in more objects
05:30:35  <defunctzombie>dominictarr: gotcha, fair enough
05:30:39  <jesusabdullah>substack: hmm?
05:30:41  <defunctzombie>dominictarr: I will keep that and just clean it up
05:30:53  <Raynos>dominictarr: https://github.com/dominictarr/pull-split/blob/master/index.js
05:30:54  <defunctzombie>dominictarr: I will send a pull req with my thoughts
05:30:56  <Raynos>you have the same code twice
05:30:57  <substack>jesusabdullah: HACKA{WHO,WHERE,WHAT,WHEN,HOW} from that link
05:31:04  <jesusabdullah>lol
05:31:05  <substack>AMUSING
05:31:15  <jesusabdullah>also
05:31:17  <jesusabdullah>hAKathon
05:31:29  <substack>I see what they did there.
05:31:37  <substack>they should just pull out as many puns as possible
05:31:56  <Raynos>dominictarr: I think building abstractions on top of the old through api is harmful
05:32:05  <Raynos>we should think of new simpler things
05:32:12  <Raynos>of course pull-through is awesome for back compat
05:32:13  <dominictarr>sure
05:32:14  <jesusabdullah>I call Anchorage the "Me Too" city
05:32:26  <dominictarr>I just wanted to port split over as fast as I could
05:32:59  <Raynos>that makes sense :)
05:33:21  <substack>jesusabdullah: anchorage is the rich kid who buys his way into all the "hip" activities
05:33:38  <jesusabdullah>naw, not a rich kid, definitely not a rich kid
05:33:52  <jesusabdullah>more like the poor kid that struggles to dress right, talk right, etc
05:34:03  <jesusabdullah>but everyone's like, "you're too little, maybe when you're older"
05:34:20  <substack>oh that's better
05:34:23  <jesusabdullah>"c'mon man I can host hackathons too"
05:34:28  <jesusabdullah>"go home, you're twelve"
05:34:50  <substack>YOU CAN'T HAVE A TECH INDUSTRY, ANCHORAGE. YOU'LL SHOOT YOUR EYE OUT.
05:34:50  <LOUDBOT>WHEN DID LULZ GET DECLARED? I WAS BUSY MASTURBATING TO PICS OF YOUR DAD.
05:35:12  <Raynos>dominictarr: btw I documented some of my higher order signal (dominictarr/observable) functions the other day ( https://gist.github.com/Raynos/a35137ef1e4dfc3429f4#file-x-js )
05:35:32  * substack&
05:35:33  <LOUDBOT>YOU NEED TO INSTALL A PROPER LINER IN COAL ASH DISPOSAL PIT AND ALSO DO SOME GROUNDWATER MONITORING
05:35:39  <jesusabdullah>Honestly that's part of why I love Anchorage
05:35:43  <jesusabdullah>the little city that could
05:36:02  <defunctzombie>dominictarr: honestly, I am not sure I see how stream-serializer even works haha
05:36:04  <Raynos>I also wrote a rewinder demo ( https://gist.github.com/Raynos/848ab8b7c79aafbcf6e7#file-x-js-L47 ) that allows you to take an observable and rewind it back in time n ticks
05:36:27  <defunctzombie>dominictarr: ss(socket) would allow me to write json objects and read parsed json?
05:37:01  <defunctzombie>dominictarr: I tried to run the tests I wrote for jsonwire on it
05:37:05  <defunctzombie>dominictarr: and none of them pass heh
05:37:08  <dominictarr>Raynos: it doesn't break BP because it it writer(data) queued anything then it wont get into the read(null, call)
05:37:37  <dominictarr>defunctzombie: yes, that is what it does
05:37:56  <dominictarr>defunctzombie: show me the tests?
05:38:13  <defunctzombie>dominictarr: https://github.com/shtylman/jsonwire/blob/master/test.js
05:38:19  <dominictarr>also, all the tests for scuttlebutt, etc hit this code
05:38:47  <dominictarr>oh,
05:38:53  <dominictarr>this is the other way arough
05:38:59  <dominictarr>you wrap the json stream
05:39:02  <dominictarr>not the text stream
05:39:23  <dominictarr>var json = ss(through)
05:39:34  <defunctzombie>?
05:39:36  <dominictarr>json.emit('data', {json: true})
05:39:45  <defunctzombie>hm
05:39:57  <defunctzombie>wait.. so if I have a tcp socket lets say
05:40:00  <dominictarr>but json-wire does jw(net)
05:40:05  <defunctzombie>I want to read/write objects to it
05:40:07  <dominictarr>which is the same, but reversed
05:40:14  <Raynos>dominictarr: I feel like we are doing something wrong. pull-stream / recurse-stream duplexes are still complex :(
05:40:25  * wolfeidauquit (Read error: Connection reset by peer)
05:40:42  * wolfeidaujoined
05:40:46  <dominictarr>defunctzombie: don't do it like that, write your app as a stream, and then pipe it to the server
05:41:14  <dominictarr>Raynos: only when they do buffering or something
05:41:14  <defunctzombie>dominictarr: then how does the app get input?
05:41:28  <defunctzombie>dominictarr: back from the tcp socket?
05:41:37  <dominictarr>defunctzombie: net.pipe(app).pipe(net)
05:41:53  <Raynos>PIPE PIPE PIPE
05:41:53  <LOUDBOT>GOODMORNING ALL YOU GLORIOUS PEOPLE!
05:42:14  <defunctzombie>interesting
05:42:20  <dominictarr>Raynos: I really like your depthFirst, by the way
05:42:34  <Raynos>dominictarr: is that because its the same as yours? :D
05:42:51  * jez0990_joined
05:42:56  * elliottc1blejoined
05:42:57  <dominictarr>defunctzombie: then your app/module isn't tightly coupled to the IO impl
05:43:17  <dominictarr>Raynos: I havn't compared them side by side, but yours looks simpler
05:43:22  <defunctzombie>dominictarr: ok.. so the app/module will expose itself as a stream
05:43:28  <defunctzombie>which expects to be written to
05:43:30  <dominictarr>yes!
05:43:31  <defunctzombie>with text
05:43:33  <defunctzombie>ok
05:43:40  * defunctzombiewill play with this idea
05:43:41  * mikealquit (Quit: Leaving.)
05:43:45  <dominictarr>sweet
05:44:11  <defunctzombie>dominictarr: what should the console error be emitted on?
05:44:15  <defunctzombie>the stream I suppose?
05:44:17  <dominictarr>defunctzombie: that is how scuttlebutt, mux-demux, dnode, multilevel, all work
05:44:22  <dominictarr>yeah
05:44:26  <defunctzombie>k
05:44:29  <defunctzombie>fascinating
05:44:40  <defunctzombie>dominictarr: fyi, this is for the bitfloor matching engine
05:44:50  <dominictarr>probably not an 'error' because that will break the stream…
05:44:53  * juliangruber_joined
05:45:01  <defunctzombie>dominictarr: if not error then what?
05:45:04  <defunctzombie>dominictarr: error is the common thing
05:45:10  <dominictarr>probably you'd want an invalid-json event
05:45:30  <dominictarr>defunctzombie: yes, but it will make pipe() detach the pipe
05:45:38  <defunctzombie>it will?
05:45:42  <defunctzombie>sigh
05:45:43  <dominictarr>which I think is the user's decision
05:45:45  * xyxnejoined
05:45:51  <defunctzombie>that is kinda fucked
05:45:57  <defunctzombie>why wouldn't it just propigate?
05:46:19  * johnkpaul_joined
05:46:22  * jez0990quit (Ping timeout: 245 seconds)
05:46:23  * FireFlyquit (Ping timeout: 245 seconds)
05:46:24  * elliottcablequit (Ping timeout: 245 seconds)
05:46:26  * Nexxyquit (Ping timeout: 245 seconds)
05:46:26  * johnkpaulquit (Ping timeout: 245 seconds)
05:46:27  * juliangruberquit (Ping timeout: 245 seconds)
05:46:27  <dominictarr>defunctzombie: no, not is classic-stream style pipe
05:47:06  <dominictarr>defunctzombie: in the new pull-stream experiment you get to propagate error, but that is crazy experiments
05:47:33  <defunctzombie>yea.. I am nowhere near moving to 0.10
05:47:43  <dominictarr>https://github.com/joyent/node/blob/master/lib/stream.js#L91-L96
05:48:11  <dominictarr>defunctzombie: I don't think it propagates the error in 0.10 either
05:48:35  * FireFlyjoined
05:50:47  <Raynos>dominictarr: https://gist.github.com/Raynos/e771cbd9d6b188972c74#file-depth-first-js small tweaks to match syntax change
05:51:51  <st_luke>substack: what was your commonjs term
05:51:55  <st_luke>commonjsque?
05:51:59  <Raynos>dominictarr: https://gist.github.com/Raynos/e771cbd9d6b188972c74#file-depth-first-js small tweaks to match syntax change
05:56:51  <dominictarr>Raynos: so, we need to figure out how we are gonna use isClosed / end when it's passed forward
05:57:03  <Raynos>what do you mean?
05:57:14  <Domenic_>st_luke: commonj-esque
05:57:27  <dominictarr>well, i have been thinking that it's for telling the source to disconnect
05:57:35  <dominictarr>and drop it's resources
05:57:42  <dominictarr>like close
05:57:46  <Raynos>well its for anything
05:57:53  <Raynos>its for any message a writable wants to send to a readable
05:57:57  <Raynos>with a strong understanding
05:58:03  <rvagg>dominictarr: you in Dublin?
05:58:04  <Raynos>when its a boolean true it means early termination
05:58:20  <rvagg>juliangruber_: feature request - I want this to work http://ghub.io/levelup/wiki/Modules
05:58:47  <dominictarr>Raynos: well, a boolean means someone has decided to terminate the stream (maybe take)
05:58:55  <dominictarr>Raynos: yes, in ireland!
05:59:05  <dominictarr>in waterford, at cian's place
05:59:18  <Raynos>dominictarr: yes a bollean true means close the stream early, used in take & takeWhile
05:59:27  <dominictarr>anything else, probably is an error
05:59:38  <Raynos>not really
05:59:46  <dominictarr>.. but streams that don't know how to handle an error should just propagate it
05:59:48  <Raynos>anything else is a special protocol between source & sink
06:00:03  <dominictarr>Raynos: but what sort of protocol?
06:00:06  <Raynos>duplexes shouldn't mess with the value
06:00:31  <dominictarr>what should there be, that wouldn't be better as a separate stream?
06:00:57  <Raynos>maybe you have a set of sources & sinks
06:01:00  <Raynos>that pass a number in it
06:01:13  <Raynos>as a hint to the source to be like "go buffer this much"
06:01:28  <Raynos>i.e. a variable high water mark that's controlled by the writable
06:01:48  <rvagg>dominictarr: are you talking at nodejsdub on Thursday night?
06:01:49  <Raynos>like whatever, who cares. it's a thing that allows a sink to send a message to a source. it's a back channel
06:01:59  <dominictarr>don't call it a writeable, call it a reader
06:02:16  <dominictarr>Raynos: no it's important
06:02:35  <Raynos>the point is I dont know what i'll use it for
06:02:42  <Raynos>the only strong use case I have
06:02:44  <Raynos>is
06:02:52  <Raynos>if (isClosed === true) then close & cleanup resources
06:02:59  <defunctzombie>dominictarr: ok.. so that is all good.. what is the wrapper stuff for? and can it go
06:03:01  <Raynos>and if (isClosed is truthy) then pass it up to the source
06:03:06  <defunctzombie>dominictarr: ideally the interface is just ss(stream)
06:03:35  * wolfeidauquit (Remote host closed the connection)
06:03:56  <dominictarr>yes, in a async duplex stream you may want to clean up your resources when it's an error
06:04:46  <dominictarr>hmm, but what it if it propagates everything, only true means stop
06:05:04  <defunctzombie>dominictarr: I meant the exports with that quesiton
06:05:06  <dominictarr>and an error is propagated, but wait for a true
06:05:11  <defunctzombie>dominictarr: there is some sort of "wrap" or whatnot
06:05:17  <Raynos>dominictarr: ?
06:05:25  <Raynos>what is an async duplex
06:05:26  <dominictarr>defunctzombie: that is so you can use a different parser, or disable json
06:05:31  <Raynos>if an async duplex has an error
06:05:38  <Raynos>then just pass the error to the writable/reader
06:05:53  <Raynos>a duplex
06:05:56  <Raynos>does not close a source
06:05:58  <Raynos>when it fucks up
06:06:03  <Raynos>it tells the reader it fucked up
06:06:09  <Raynos>and the reader knows how to handle errors
06:06:12  <Raynos>including closing the source
06:06:16  <dominictarr>defunctzombie: these tests hit that https://github.com/dominictarr/mux-demux/blob/master/test/disconnections.js#L12
06:06:19  <Raynos>so a duplex sends an error down to the reader
06:06:23  * xyxnechanged nick to Nexxy
06:06:26  <Raynos>the reader sends an isClosed back up through the duplex
06:06:35  <Raynos>the duplex gets it and cleans it act up and then sends it up
06:06:36  <dominictarr>https://github.com/dominictarr/mux-demux/blob/master/test/msg-pack.js#L12
06:06:37  <dominictarr>etc
06:06:39  <Raynos>but realy though
06:06:39  <defunctzombie>dominictarr: why not just second arg to function?
06:06:43  <Raynos>a duplex should not be doing IO
06:07:05  <substack>st_luke: yep
06:07:26  <substack>npm search commonj-esque
06:07:36  <defunctzombie>dominictarr: also... mind is blown with the whole turn it inside out thing hhahaa
06:07:41  <defunctzombie>don't know why I didn't see that earlier
06:07:53  <defunctzombie>my app is just gonna be a json object stream interface
06:07:59  <defunctzombie>and higher layers will wrap it with SS
06:08:07  <defunctzombie>will make certain testing easier too
06:08:22  <dominictarr>Raynos: there are plenty of cases a duplex may do io
06:08:50  <Raynos>well fuck all those cases :D
06:08:54  <Raynos>sources & sinks do IO
06:09:42  <dominictarr>Raynos: what if I have a fs traversal, but I want to stat every file?
06:10:07  <dominictarr>I need to pipe ls.pipe(stat)
06:10:45  <dominictarr>or, what if I wan't to recursively delete every .coffee ?
06:10:58  <Raynos>ok your right
06:11:03  <Raynos>COMPLEXITY
06:11:05  <dominictarr>ls.pipe(filter(/\.coffee$/).pipe(rm)
06:11:23  <substack>ls.on('stat', fn)?
06:11:53  <dominictarr>substack: so far, I just do readdir to traverse
06:12:08  <dominictarr>then it pipes the file names
06:12:29  <rvagg>dominictarr: you're still listed on http://www.nodejsdublin.com/ along with me and hij1nx, I wouldn't mind knowing who I need to sync with so we don't overlap too much, are you still speaking there?
06:12:44  <dominictarr>rvagg: yes
06:12:59  <rvagg>dominictarr: cool, what will you be covering roughly?
06:13:00  <dominictarr>we what are you gonna speak on?
06:13:25  <rvagg>dominictarr: was going to talk about basics of leveldb and levelup, leaving any modules/plugins/application stuff alone
06:13:29  <dominictarr>rvagg: hmm, probably level-sublevel
06:13:52  <dominictarr>and level-trigger, and building plugins with that stuff
06:14:12  <rvagg>well I'm just tidying up a presentation, might share it with you and hij1nx for critique and to make sure we don't clash too much
06:14:20  <rvagg>need to do some drawings
06:14:32  <dominictarr>rvagg: cool, good idea
06:15:04  <dominictarr>Raynos: an even better case might be ls.pipe(shasum)
06:15:16  <dominictarr>^ to get the hash of every file
06:15:18  <Raynos>side effects everywhere ;_;
06:15:46  <dominictarr>readonly sideeffects
06:16:00  <dominictarr>side-effects are a part of life
06:16:08  <dominictarr>except on monad mountain
06:16:16  <Raynos>MOTHER OF GOD
06:16:16  <LOUDBOT>OH SHIT THE TURN IS RUNNING
06:16:16  <Raynos>> http://en.wikipedia.org/wiki/Monad_(functional_programming)#The_I.2FO_monad
06:16:23  <Raynos>^ I implemented an IO monad by accident
06:16:25  <Raynos>in my code
06:17:39  <Raynos>IO monad's are actually nice :3
06:18:18  * mikealjoined
06:18:33  <dominictarr>Raynos: link?
06:19:03  <Raynos>not in pull-stream
06:19:05  <Raynos>in some other code
06:19:43  <Raynos>https://gist.github.com/Raynos/95d12aacd3026061ffb1 the general pattern of mapping values to functions that have a side effect on state later
06:19:53  <Raynos>then it's someone else's job to apply these "lazy side effects"
06:20:04  <Raynos>in that examples the functiosn dont actually have side effects :P
06:23:29  <dominictarr>Raynos: what is a use-case for that?
06:24:30  <Raynos>dominictarr: https://gist.github.com/Raynos/cdbcc26b4b1ad20b762b#file-x-js-L40
06:24:47  <Raynos>the idea is that you have some representation of state as an observable
06:24:51  * mikeal1joined
06:24:53  <Raynos>and some other observables that should update that state
06:25:01  * wolfeidaujoined
06:25:02  <Raynos>so what you do is transform all those observables into functions that change state
06:25:08  * mikealquit (Ping timeout: 256 seconds)
06:25:09  <dominictarr>Raynos: give me a concrete example
06:25:16  <Raynos>oh :(
06:25:46  <Raynos>dominictarr: http://raynos.graphics-server.jit.su/full/todo.js line 74
06:25:52  <dominictarr>in english
06:26:04  <Raynos>oh in english
06:26:22  <Raynos>i have some state like a list of things
06:26:28  <dominictarr>aha
06:26:32  <Raynos>there are multiple actions and events that can occur to change state
06:26:43  <Raynos>i convert each event into a function that updates state
06:26:43  * fotoveritequit (Quit: fotoverite)
06:26:45  <dominictarr>that isn't concrete
06:27:09  <Raynos>well one action is pressing a delete button
06:27:16  <dominictarr>okay
06:27:18  <Raynos>another action is writing text in text field and hitting add button
06:27:25  <dominictarr>okay
06:28:04  <dominictarr>so, I have a bunch of files
06:28:57  <dominictarr>ls.pipe(filter(/\.coffee$/).map(function (file) { return function (cb) { fs.unlink(file, cb)})
06:29:33  <dominictarr>map them to functions that delete those files
06:30:15  <dominictarr>then I never need to delete them because I know they are already deleted in future haskell land
06:30:27  <dominictarr>but seriously
06:30:58  <dominictarr>and maybe I pipe those function to another thing that wraps that in another operation?
06:31:56  <dominictarr>what benefit does this have over just deleting the files?
06:33:12  <Raynos>i dont know
06:33:23  <Raynos>i only know about concrete things where it helps me
06:33:26  <dominictarr>well, what is the point of it?
06:33:48  <dominictarr>okay, what has this helped you with, concretely?
06:37:43  <dominictarr>monads are like the assistant monks that budhist monks have.
06:38:11  <dominictarr>monks arn't allowed to touch money, since money is evil, so they have a jar for it
06:38:47  <dominictarr>and then they pass it to the non-holy semi-monks who do the dirty work of actually buying things with it
06:39:51  <dominictarr>that way, monks can effectively accept donations, without ever using money
06:42:17  <substack>monads are just statements
06:42:30  <substack>haskell just turns semicolons into a big production
06:42:48  <substack>(>>) in haskell is the same as ;
06:42:55  <substack>or \n in do notation
06:43:03  <substack>and the types get all uppity
06:43:06  <dominictarr>meaning ";' : next command
06:43:24  <dominictarr>"now do this, after that"
06:43:44  <substack>it's less impressive when you call them what they actually are in a way that all programmers are already familiar with
06:44:19  <substack>and it puts it into the correct framing: why would anyone pay so much attention to (;)
06:44:44  <dominictarr>yes, that is why most programmers live in the valley of web dev, instead of monad mountain
06:45:42  <dominictarr>like, monads allow you to pretend you arn't doing IO
06:45:51  <dominictarr>but at the end of the day, you still are
06:46:05  <dominictarr>so what is the point of a monad?
06:48:07  <Raynos>dominictarr: https://github.com/dominictarr/hyperscript/pull/2
06:48:25  <Raynos>dominictarr: it has helped me in organizing my code
06:49:14  <Raynos>not so much about the whole monad thing
06:49:17  <Raynos>more about closures :P
06:49:34  <dominictarr>Raynos: you don't add class-list to package.json
06:49:52  <dominictarr>right
06:50:04  <dominictarr>so, the problem here, for me really...
06:50:19  <dominictarr>is that if we are gonna have an async operation in a duplex
06:50:33  <dominictarr>how does that work with back pressure?
06:50:34  * juliangruber_changed nick to juliangruber
06:50:56  <dominictarr>so, if I am hashing files… I want to do that in parallel
06:51:04  <dominictarr>right?
06:52:54  <dominictarr>Raynos: so, currently I'm requiring that read(end cb) is not called again before cb(null, data)
06:53:25  <dominictarr>so, each chunk comes all the way through at once
06:54:00  <Raynos>thats not a good requirement
06:54:05  <Raynos>i think ti should be safe for a wrtier
06:54:09  <Raynos>to call read as much as it want
06:54:19  <Raynos>that way it can pull all the data through the duplex streams in parallel
06:54:24  <Raynos>assuming that's safe to do
06:54:39  <dominictarr>hmm, I have a few streams that won't work for
06:54:41  <Raynos>dominictarr: why do I not add it to package.json ?
06:55:03  <dominictarr>oh, I see
06:55:05  <dominictarr>oops
06:55:07  * thatguydanquit (Ping timeout: 264 seconds)
06:55:10  <wolfeidau>Gday juliangruber
06:55:26  <dominictarr>I'm gonna blame jetlag
06:55:43  <Raynos>if you merge that I can use hyperscript in production :)
06:55:55  <dominictarr>Raynos: so, I have a couple of streams that assume you only call read once at a time
06:56:05  <juliangruber>wolfeidau: morning
06:56:05  <Raynos>either thats ok or its not
06:56:12  <Raynos>if you can write them to parallel friendly do so
06:56:15  <Raynos>if not then you cant
06:56:18  <Raynos>the cases where you cannot
06:56:27  <Raynos>is where the source is serial and the serial-ness of it has meaning
06:56:36  <Raynos>in which case no matter what the sink does it cant read the source in parallel
06:56:39  <Raynos>that just wouldnt make sense
06:56:42  <dominictarr>well, I will make a pull.parallel and a pull.serial
06:57:02  <Raynos>there shouldn't be any need to do that
06:57:13  <dominictarr>Raynos: fs.read needs that
06:57:18  <dominictarr>it says in the docs
07:07:12  <dominictarr>Raynos: oops, I mean fs.write http://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
07:07:29  <dominictarr>but… that is a reader, so that is okay
07:11:53  <dominictarr>Raynos: I think I like always parallel pulls better
07:13:41  <Raynos>I think I like parallel pulls being safe
07:13:47  <Raynos>but giving the reader/writer full control
07:13:52  <Raynos>over whether it wants parallel or serial
07:13:55  <Raynos>or 1 per minute
07:14:01  <Raynos>or while (true) pull()
07:25:25  <dominictarr>hmm, that means that the readable has no control over back-pressure, except for buffering all the callbacks
07:25:45  <dominictarr>so, if a reader does pull(); pull(); pull()
07:26:00  <dominictarr>but the readable gets an error from the first read...
07:26:18  <dominictarr>it should return an error to the first cb, and then true to the rest.
07:26:27  <dominictarr>or should it not callback the rest?
07:27:50  <Raynos>i dont know
07:28:04  <Raynos>i think err, true, true is good
07:28:24  <dominictarr>hmm, yeah
07:28:35  <dominictarr>and the reader should handle too many ends
07:28:45  <dominictarr>so, if the reader is collect(cb)
07:28:48  <dominictarr>for example
07:29:07  <dominictarr>it would have called back on the first end, and should just ignore the rest
07:32:26  <dominictarr>although, I fear that will give the same complexity as buffering in a push stream, except in reverse.
07:34:06  <dominictarr>I will experiment
07:42:35  <Raynos>dominictarr: I was worried about that :(
07:42:57  <dominictarr>it's a complexity that can be abstracted, I think
07:43:32  <dominictarr>Raynos: I really don't think streams are a thing that can be 'made easy'
07:43:33  <st_luke>substack: i like what you did with ploy, we might integrate some of that into our tool at my company when we get back to working on it
07:44:13  <substack>rad
07:44:21  <substack>working on solving a pushover bug right now
07:44:25  <substack>then it should be pretty solid
07:47:58  * dominictarrquit (Read error: Connection reset by peer)
07:48:02  * dominictarr_joined
07:50:01  <dominictarr_>Raynos: we should probably do that in the context of actual benchmarks for fs or net or something
07:54:50  <dominictarr_>substack: had a crazy idea last night
07:55:03  <dominictarr_>what if you did implicit type checking of js
07:55:11  <dominictarr_>and then did a type check of all of npm?
07:55:55  <dominictarr_>you could just write a type spec for core, and then check agains that, inferring the types for intermediate functions
07:56:26  <dominictarr_>and when people use things like function () { var args = [].slice.call(arguments);...}
07:56:50  <dominictarr_>just label that as ambigious, until you have a module to handle that pattern
08:00:08  * Domenic_quit (Ping timeout: 245 seconds)
08:11:49  * defunctzombiechanged nick to defunctzombie_zz
08:34:33  * xyxnejoined
08:34:44  * juliangruber_joined
08:35:48  * juliangruberquit (Read error: Connection reset by peer)
08:38:34  * jjjjohnn1yquit (Ping timeout: 264 seconds)
08:38:41  * jez0990joined
08:39:33  * xyxnequit (Ping timeout: 264 seconds)
08:39:59  * wolfeidauquit (Ping timeout: 248 seconds)
08:40:03  * dominictarr_quit (*.net *.split)
08:40:07  * xyxnejoined
08:40:08  * wolfeidaujoined
08:40:26  * dominictarrjoined
08:42:32  * jez0990_quit (Ping timeout: 256 seconds)
08:42:34  * FireFlyquit (Ping timeout: 256 seconds)
08:42:37  * Nexxyquit (*.net *.split)
08:42:58  * Effilryjoined
08:43:06  * calvinfo_joined
08:46:36  * jjjjohnnnyjoined
08:48:07  * Effilrychanged nick to FireFly
09:04:01  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
09:04:01  <rowbit>/!\ ATTENTION: (default-local) warren@....uk successfully signed up for developer browserling plan ($20). Cash money! /!\
09:19:09  * dominictarr_joined
09:19:18  * dominictarrquit (Read error: Connection reset by peer)
09:19:19  * dominictarr_changed nick to dominictarr
09:29:12  * dominictarr_joined
09:31:30  * dominictarrquit (Ping timeout: 252 seconds)
09:31:30  * dominictarr_changed nick to dominictarr
09:44:23  * ITprojoined
09:54:12  * dominictarrquit (Quit: dominictarr)
10:05:33  * jibayjoined
10:12:10  * ins0mniajoined
10:21:31  * spionjoined
10:33:07  * thl0joined
10:38:35  * Paganjoined
10:38:49  * Paganpart ("Soft kitty, warm kitty, little ball of fur. Happy kitty, sleepy kitty, purr, purr, purr.")
11:13:11  * dominictarrjoined
11:27:20  * ralphtheninjajoined
11:33:19  * zero_coderjoined
11:43:02  * ralphtheninjaquit (Ping timeout: 256 seconds)
11:44:11  * zero_coderquit (Remote host closed the connection)
11:48:20  * ralphtheninjajoined
12:04:51  * Domenic_joined
12:15:27  * ITproquit (Ping timeout: 245 seconds)
12:24:56  * jibayquit (Quit: Leaving)
12:29:12  * ralphtheninjaquit (Ping timeout: 245 seconds)
12:30:00  * ralphtheninjajoined
12:46:39  * ralphtheninjaquit (Ping timeout: 245 seconds)
12:48:20  * ralphtheninjajoined
12:51:19  * st_lukequit (Remote host closed the connection)
12:53:47  * ralphtheninjaquit (Ping timeout: 245 seconds)
12:55:28  * ralphtheninjajoined
13:07:05  * thl0quit (Remote host closed the connection)
13:07:52  * thl0joined
13:11:49  * thl0quit (Remote host closed the connection)
13:12:16  * timoxleyjoined
13:13:26  * thl0joined
13:14:08  * heathjschanged nick to heath
13:19:18  * Domenic_quit (Ping timeout: 245 seconds)
13:23:01  * thl0quit (Remote host closed the connection)
13:27:12  * Domenic_joined
13:38:42  * jcrugzzjoined
13:39:14  * tmcwjoined
13:41:42  * johnkpaul_changed nick to johnkpaul
13:41:43  * johnkpaulchanged nick to johnkpaul_
13:42:05  * johnkpaul_changed nick to johnkpaul
13:48:22  * thl0joined
13:48:45  <rowbit>/!\ ATTENTION: (default-local) aegir@... successfully signed up for developer browserling plan ($20). Cash money! /!\
13:48:50  <rowbit>/!\ ATTENTION: (default-local) paid account successfully upgraded /!\
13:59:00  * ralphtheninjaquit (Ping timeout: 264 seconds)
14:00:33  * ralphtheninjajoined
14:11:48  * Domenic_quit (Ping timeout: 245 seconds)
14:15:52  * AvianFlujoined
14:27:34  * mikeal1quit (Quit: Leaving.)
14:28:52  * brianloveswords_changed nick to brianloveswords
14:41:29  * Domenic_joined
14:49:23  * kenperkinsquit (Quit: Computer has gone to sleep.)
14:53:41  * marcello3djoined
14:57:00  * marcello3dquit (Remote host closed the connection)
15:01:08  * mikolalysenkojoined
15:10:35  * mikealjoined
15:17:13  * marcello3djoined
15:21:00  * jibayjoined
15:30:30  * ircretaryquit (Remote host closed the connection)
15:30:37  * ircretaryjoined
15:31:24  * Guest62188changed nick to isaacs
15:33:32  * st_lukejoined
15:40:41  * yorickjoined
15:40:41  * yorickquit (Changing host)
15:40:41  * yorickjoined
15:44:39  * CryptoQuickjoined
15:48:34  * timoxleyquit (Quit: Computer has gone to sleep.)
15:49:37  <dominictarr>hij1nx: hey whats up?
15:51:06  * Benvie_quit (Ping timeout: 264 seconds)
15:52:19  * mikealquit (Quit: Leaving.)
15:53:30  * defunctzombie_zzchanged nick to defunctzombie
16:10:58  * Benviejoined
16:17:28  * Domenic_quit (Remote host closed the connection)
16:20:44  * st_lukequit (Remote host closed the connection)
16:22:13  * simcop2387quit (Quit: ZNC - http://znc.sourceforge.net)
16:22:44  * Domenic_joined
16:22:51  * perlbotquit (Quit: ZNC - http://znc.sourceforge.net)
16:26:03  * jcrugzzquit (Ping timeout: 260 seconds)
16:27:30  * perlbotjoined
16:27:31  * simcop2387joined
16:31:13  * st_lukejoined
16:31:18  * ralphtheninjaquit (Read error: Operation timed out)
16:31:21  * mikealjoined
16:33:46  * mikolalysenkoquit (Ping timeout: 245 seconds)
16:35:07  * ralphtheninjajoined
16:42:11  * mikolalysenkojoined
16:44:25  * kenperkinsjoined
16:47:03  * timoxleyjoined
16:49:54  * ralphtheninjaquit (Ping timeout: 264 seconds)
16:51:24  * ralphtheninjajoined
16:52:09  * jibayquit (Remote host closed the connection)
16:55:52  * CryptoQuickquit (Quit: CryptoQuick)
16:58:04  <defunctzombie>dominictarr: so emitting parse-error or anything of the sort is not good
16:58:16  <defunctzombie>dominictarr: here is the situation that needs to be able to happen
16:58:28  <juliangruber_>substack: https://github.com/substack/bouncy/pull/50#issuecomment-15405848
16:59:03  * tmcwquit (Remote host closed the connection)
16:59:06  <defunctzombie>dominictarr: actually, need to think about this more
16:59:38  <dominictarr>defunctzombie: it's either a bug in your stuff, or someone has connected to your service and is feeding you rubbish
16:59:39  <defunctzombie>cause right now, if you use serialize on the same stream more than once I think that would be a bit weird
17:00:05  <dominictarr>yeah, you don't want to do that
17:00:12  <defunctzombie>dominictarr: right, so if that is the case, would want to disconnect just that user
17:00:18  * CryptoQuickjoined
17:00:38  <dominictarr>stream.on('invalid-json', function () { stream.destroy() })
17:01:20  <dominictarr>well, I guess error would do that, but I think you want to control it. maybe you just want to ignore invalid lines
17:01:42  <dominictarr>it's a decision which can be deferred to the user
17:01:54  <defunctzombie>hm
17:02:17  <defunctzombie>dominictarr: it is also a little weird that it gets emitted on the stream you pass in
17:02:26  * mikealquit (Quit: Leaving.)
17:02:28  <defunctzombie>which isn't really the one that had the invalid error
17:03:09  <dominictarr>maybe, but it's the stream that needs to handle that error
17:03:40  <dominictarr>given that the originator is probably another machine
17:04:04  <defunctzombie>wouldn't serialize be the stream?
17:04:18  <defunctzombie>it just wraps the underlying app stream
17:04:31  <dominictarr>well, actually -- it patches it
17:04:35  <dominictarr>it doesn't wrap it
17:05:25  <defunctzombie>right
17:05:30  <dominictarr>although, it used to wrap it https://github.com/dominictarr/stream-serializer/blob/master/index.js#L61
17:05:32  * tmcwjoined
17:05:54  <defunctzombie>any reason it changed?
17:05:56  <dominictarr>but then you loose the identity of the stream, and have to proxy events to the outside
17:06:05  <defunctzombie>identity of the stream?
17:06:09  <dominictarr>It just felt more lightweight to do that
17:06:20  <dominictarr>stream === serialize(stream)
17:06:23  <dominictarr>is true
17:06:29  <defunctzombie>but it shouldn't be true
17:06:53  <defunctzombie>once you are serializing, it is no longer the same stream
17:07:11  <dominictarr>I found that was simpler, because then if the stream needs to emit other custom events it can
17:07:25  <dominictarr>without having to figure out which is the inner or outer stream
17:07:41  <dominictarr>but still allowing you to pipe directly to net, etc
17:07:54  * FireFlyquit (Ping timeout: 245 seconds)
17:08:11  <defunctzombie>dominictarr: it conflates the IO/network layer with the app layer
17:08:34  <dominictarr>well, at first I didn't do it like that
17:08:49  <defunctzombie>was it slow or something?
17:09:12  <dominictarr>I did net.pipe(split()).pipe(jsonParse()).pipe(appStream).pipe(jsonStringify()).pipe(net)
17:09:22  <dominictarr>that was what I did first
17:09:41  <dominictarr>but people thought that was ugly
17:09:51  <dominictarr>"boilerplate"
17:10:09  <dominictarr>so I wrote stream-serializer so it seemed simple
17:10:23  * FireFlyjoined
17:10:31  <dominictarr>magic, maybe...
17:10:40  <dominictarr>it was a compromise for marketability
17:10:41  <chrisdickinson>defunctzombie: still looking into the newline-delimited json parse / deparse stream?
17:10:52  <defunctzombie>dominictarr: well, that is what stream-serializer does
17:11:16  <defunctzombie>dominictarr: it just gives you a single function call to return an object stream wrapped into a text stream
17:11:34  <defunctzombie>chrisdickinson: stream-serializer does what I want :) just trying to understand the semantics a bit better
17:11:48  * xyxnechanged nick to Nexxy
17:12:05  <dominictarr>defunctzombie: just ss(stream).emit('data', {json: true}) and trust the magic :)
17:12:35  <defunctzombie>dominictarr: but my point is that I should be doing stream.emit('data', {});
17:12:41  <chrisdickinson>radical
17:12:48  <defunctzombie>ss.emit should be emitting text
17:12:53  <dominictarr>it will
17:12:56  <defunctzombie>right
17:13:09  * jcrugzzjoined
17:13:12  <defunctzombie>ok.. so with this approach over the pipes, I can't intercept json parse error properly
17:13:20  <defunctzombie>cause it gets emitted on the 'app'
17:13:33  <defunctzombie>and not from the 'jsonParse()' stream like in the expanded example
17:13:39  <defunctzombie>and that is very confusing
17:13:47  <defunctzombie>because my app is not the one who had the parse error
17:13:53  <dominictarr>right - so if you arn't comfertable with that
17:13:56  <defunctzombie>the serialization stream is the one who had the parse error
17:14:10  <dominictarr>use net.pipe(parse).pipe(app).pipe(stringify).pipe(net)
17:14:19  <defunctzombie>yea
17:14:22  <dominictarr>and check parse for errors
17:14:37  <defunctzombie>I guess that is what I was hoping it would just do
17:14:51  <defunctzombie>allow me to remove the middle two segments but still access as a separate stream
17:15:15  <dominictarr>well, I think it doesn't matter - you still have access to the app-stream
17:15:30  <dominictarr>because you have to have it to connect the stream anyway...
17:15:56  <dominictarr>net.pipe(app.on('parse-error', function () {net.destroy()}).pipe(net)
17:16:11  <defunctzombie>right
17:16:19  <dominictarr>or app.createStream() … probably
17:18:01  <dominictarr>Raynos: https://github.com/dominictarr/pull-flow/blob/master/index.js#L3-L37
17:18:12  <dominictarr>parallelize a pull-stream
17:18:44  <dominictarr>and there is also a function to force serialization
17:19:14  <dominictarr>it's 30 lines, but the nice thing is that it's just an abstraction you can fit into your app
17:19:20  <dominictarr>into your pipeline i mean
17:19:40  <timoxley>substack I'm noobing out here. I want to browserify current package, then require() it inside another script
17:20:35  <timoxley>i'm using -r current-package, but it keeps giving me TypeError: Not a buffer
17:20:42  <dominictarr>I'm seeing some common patterns… can probably abstract some of this stuff
17:21:07  <dominictarr>timoxley: there are some buffer problems in browserify 2
17:21:24  <dominictarr>(currently being worked on)
17:21:40  <timoxley>dominictarr to do with clientside buffer module?
17:21:51  <dominictarr>substack is probably still asleep, it's only 10am in sf
17:21:57  <timoxley>heh
17:22:07  <timoxley>this error is just when I'm building the bundle
17:22:20  <timoxley>I think I'm just invoking it wrong or something
17:22:22  <dominictarr>timoxley: it's because of the way that browserify detects globals
17:22:50  <dominictarr>try it in browserify 1, and see if it works there
17:24:42  <timoxley>dominictarr hrm, different error. if I'm trying to simply export the module in index.js so I can require it
17:25:34  <dominictarr>you are trying to use a global in another bundle/script
17:25:35  <timoxley>dominictarr e.g. browserify -r voxel-merge index.js
17:25:57  <timoxley>Error: Cannot find module: "voxel-merge" from directory ".../voxel-merge"
17:26:23  <timoxley>dominictarr I'll have a look
17:26:35  <dominictarr>hmm, I thought you used browserify index.js -r
17:26:47  <dominictarr>and -r exposed the require as a global
17:27:02  <timoxley>that could be right, I'll see
17:27:36  <timoxley>dominictarr nope
17:27:38  <timoxley>"TypeError: Object true has no method 'match'"
17:28:04  <dominictarr>hmm, guess I'm a noob too
17:28:26  <timoxley>ha, I'll read the readme more
17:28:39  <chrisdickinson>lexical scope seems to get a lot of false positives for me
17:28:47  <chrisdickinson>i mean, sorry, "lexical-scope"
17:32:29  * thl0quit (Remote host closed the connection)
17:32:48  * mikealjoined
17:36:23  <hij1nx>levelweb now has secure login and secure streams via tls -- https://github.com/hij1nx/levelweb#run-the-server
17:36:35  <hij1nx>^so you can run it on an open machine
17:37:45  <defunctzombie>dominictarr: https://github.com/shtylman/jsonwire
17:37:52  <defunctzombie>dominictarr: https://github.com/shtylman/jsonwire/blob/master/index.js
17:37:58  <defunctzombie>dominictarr: so I thought about the error case
17:38:20  <defunctzombie>dominictarr: my current opinion is that 'error' should be emitted and pipes destroyed (as per default)
17:38:42  <dominictarr>fair enough!
17:38:49  <defunctzombie>dominictarr: the reason is.. parsing error means something happened that we did not really expect, the safest thing to do is breakdown the streams
17:38:55  <defunctzombie>dominictarr: and let the user re-pipe or do whatever
17:39:06  <defunctzombie>otehrwise it becomes too easy to ignore the error
17:39:22  <defunctzombie>and errors should never go silently into the night
17:39:36  <dominictarr>yes. maybe I should have stream-serialized do that
17:40:24  <defunctzombie>imho, parsing error means the input is somehow messed up, and we can't really trust it
17:40:32  <defunctzombie>sure, newline stream could be easy to recover from
17:40:53  <defunctzombie>but that is not really safe to do.. the sending end might have a problem and not really be aware of it so sever the pipe
17:41:16  <defunctzombie>anyhow.. obviously that is my opinion
17:41:23  <defunctzombie>and we know how opinionated I am :)
17:43:18  <dominictarr>that is a reasonable opinion
17:46:13  <defunctzombie>is there a WAL (write ahead log) stream?
17:46:50  <defunctzombie>net.pipe(wal(/some/file/here)).pipe ... etc?
17:47:53  * CryptoQuickquit (Quit: CryptoQuick)
17:48:25  <hij1nx>dominictarr: starting to look at sublevel
17:49:16  <hij1nx>dominictarr: need to start storing various stuff for levelweb. this looks good. what is potentially unstable about it?
17:50:13  <dominictarr>well, it's a new idea, and I havn't figured out everything that I can do with it yet
17:50:34  <dominictarr>If I have to change it because there is something awesome that can happen, then I will
17:51:12  <dominictarr>I have a lot of dependent code already
17:51:18  <dominictarr>though
17:51:31  <dominictarr>that is how you should really evaluate stability
17:51:53  <dominictarr>"how much code will the author have to rewrite if this changes?"
17:52:44  <dominictarr>so, if the author has a lot of dependent code… it won't change firviously
17:54:50  * Domenic_quit (Remote host closed the connection)
17:55:22  * CryptoQuickjoined
18:01:43  <Ralt>Raynos: https://github.com/Ralt/img-slider/blob/master/lib/index.js
18:02:11  <Ralt>Raynos: look at the dom-essentials thingie
18:05:12  * nk109joined
18:06:39  * dominictarrquit (Quit: dominictarr)
18:08:11  * thl0_joined
18:08:30  * Domenic_joined
18:10:52  <Ralt>Raynos: looks like I could use your "insert" actually...
18:19:35  <Raynos>Ralt: ?
18:20:40  <Raynos>Ralt, use Raynos/insert for manip & dominictarr/hyperscript for create
18:20:53  <Ralt>actually, no
18:21:01  <Ralt>Raynos/insert is IE9+
18:21:10  <Raynos>then thats a bug
18:21:24  <Ralt>look in mutation.js, there's Array.prototype.map used
18:21:36  <Raynos>well use the ES5 shim :D
18:21:52  <Raynos>but otherwise yes! cool :)
18:21:59  <Ralt>that's a dependency I don't want to incur :P
18:22:31  <Ralt>basically I want to have a single library to depend on, and it includes tons of modules for client-side usage
18:23:10  <Ralt>and with browserify, only those that you require will be bundled...
18:23:16  <Domenic_>es5-shim ftw
18:23:44  <Domenic_>i like it when i can author code as if i were in a sane environment, and not have to do for loops all over the place...
18:24:18  <Ralt>that's one more dependency though
18:24:19  <Domenic_>on the other hand, getting testling-ci badges to be greener is a powerful incentive :P
18:24:53  <Domenic_>Ralt: I don't think of it as a dependency... more just an IE normalization technique. Like... ES5 is my dependency, es5-shim is just a way of making that dependency work in older browsers.
18:25:09  <chrisdickinson>Domenic_: I wanted to ask, do you know of any proposals for getting big numbers into JS for es6? or even just 64-bit ints?
18:25:49  <chrisdickinson>+1 es5-shim. it makes life easier, and i've found that it's a lot nicer than having to lean on jquery / underscore
18:26:20  <chrisdickinson>(though, after writing so much voxel.js / bit twiddling libraries, i've shied away from `array.foreach` and friends)
18:26:27  <Domenic_>chrisdickinson: ES7, Brendan is working on stuff (and it's prototyped in Firefox).
18:26:33  <chrisdickinson>ah, sweet.
18:27:11  <chrisdickinson>that's probably the one thing about JS that I actually emphatically don't like at the moment -- the weird behavior of bitwise operators with numbers, and the hard cap of integers at 2^53-or-so
18:27:16  <Raynos>Ralt: tbh i dont think supporting ES3 is worthwhile
18:27:24  <Raynos>Ralt: I actually prefer to depend on lots of small things
18:27:32  <Raynos>if you depend on one big dom library and only use manip
18:27:36  <Raynos>then it will load everything
18:27:42  <Raynos>if you just require manip then it will load manip
18:28:16  * ITprojoined
18:28:25  <Raynos>Domenic_: i just have IE8/IE9 in my testling ci badge and IE8 is always red :D
18:31:29  <Ralt>Raynos: yeah, so do I. But it's way easier if you have one library loading everything you might need (and not putting everything in the browser)
18:31:47  <Raynos>Ralt: that doesnt work
18:31:51  <Ralt>and I think it's part of the reasons why people use jquery
18:31:56  <Raynos>it will load everything you might need AND put everything in the browser
18:32:05  <Raynos>there is no tree shaking
18:32:33  <Ralt>oh? if I don't require a module, it shouldn't be loaded, should it?
18:32:58  <Raynos>Ralt: https://github.com/Ralt/dom-essentials/blob/master/index.js
18:33:01  <Raynos>but you require all of them
18:33:12  <Ralt>btw do you know about https://github.com/Ralt/iter-shims/blob/master/find.js ? https://github.com/Ralt/or/issues/1#issuecomment-14940411
18:33:16  <Ralt>yeah, got it
18:34:36  <Raynos>yeah those are cool
18:36:59  <substack>Raynos: I unfortunately pushed a change that broke old IEs >_<
18:37:02  <substack>need to debug why
18:38:04  <Raynos>who cares about old IEs :d
18:38:32  * jlord_changed nick to jlord
18:38:37  <Ralt>testling-ci looks awesome
18:40:49  <Raynos>Ralt: just slap on https://github.com/Raynos/ngen/blob/colingo/templates/colingo/content/package.json#L39
18:41:26  * timoxleyquit (Ping timeout: 252 seconds)
18:41:31  <Ralt>great
18:44:04  * timoxleyjoined
18:44:11  * ITproquit (Ping timeout: 260 seconds)
18:44:35  <Ralt>Raynos: why doesn't that work? https://ci.testling.com/Raynos/ngen
18:44:49  <Raynos>because it has no tests :P
18:44:56  <Ralt>oh.
18:45:20  <Raynos>https://github.com/Colingo/sorted-list#sorted-list works though
18:46:02  * ITprojoined
18:49:12  * nicholasfjoined
18:56:08  * dguttmanjoined
19:01:10  * CryptoQuickquit (Quit: CryptoQuick)
19:01:22  * zuquit (Ping timeout: 256 seconds)
19:02:20  * zujoined
19:05:53  * spionquit (Ping timeout: 246 seconds)
19:19:15  <Raynos>npm rebuild recompiles leveldb on every deploy :/
19:21:58  * defunctzombiechanged nick to defunctzombie_zz
19:26:24  <chrisdickinson>mbalho: what was that steganographer module you posted?
19:31:25  <mikolalysenko>Is there any library in npm that implements a fast quick sort with a custom move operator?
19:32:58  <Ralt>why can't you never ask simple questions like "is there any library in npm that implements a template engine" or stuff like this?
19:34:51  <mikolalysenko>because I can solve those questions by googling :)
19:35:50  <Ralt>:P
19:35:57  <mikolalysenko> basically, if I want to sort data stored in typed arrays the options seem pretty limited right now
19:36:30  <mikolalysenko>most of them just turn into convert everything to a regular array and call sort
19:36:44  <mikolalysenko>which defeats the whole point of using typed arrays in the first place
19:39:49  <mbalho>chrisdickinson: npmjs.org/lsb
19:39:54  * stlsaintquit (Ping timeout: 256 seconds)
19:40:07  <mbalho>chrisdickinson: hughsk.github.com/lsb i think is the demo
19:45:11  * ITproquit (Ping timeout: 255 seconds)
19:48:40  <mbalho>jlord: you gotta get some example code in yo readme!
19:49:04  <mbalho>jlord: also add a repository field to your package.json
19:49:26  * nk109quit (Quit: Computer has gone to sleep.)
19:50:45  <st_luke>"In the third experiment, participants performed a global–local letter task after viewing images of baby animals, adult animals, and neutral objects ... Results show that participants performed tasks requiring focused attention more carefully after viewing cute images."
19:50:48  <st_luke>http://www.plosone.org/article/info:doi%2F10.1371%2Fjournal.pone.0046362
19:59:39  <mbalho>i want to get a domain name for http://maxogden.github.com/voxel-painter/ like blocklandia.com or something
20:05:49  <st_luke>thats a good one
20:06:24  <mbalho>target audience is kids
20:06:46  <mbalho>and i am gonna make a second web app that lets them use their critters to make voxel.js mini games
20:07:03  <mbalho>so i need a hilariously cute name
20:07:10  <mbalho>that is also 'cool'
20:07:21  <st_luke>landias are all the rage right now
20:07:36  <mbalho>catlandia
20:09:10  * mikolalysenkoquit (Ping timeout: 256 seconds)
20:09:30  * mikolalysenkojoined
20:12:33  <mikolalysenko>man, I've noticed that there a ton of templating engines in npm, but very few algorithms and data structures
20:12:59  <mikolalysenko>also many custom async control flow libraries
20:13:51  <mbalho>hahaha
20:13:52  <mikolalysenko>and orm framewroks
20:13:52  <substack>you can't get the useful bits without a lot of noise
20:14:07  <substack>I try to publish tiny algorithms to npm
20:14:16  <mbalho>mikolalysenko: totally agree, i have made the same exact observation
20:14:25  <substack>tiniest one: https://npmjs.org/package/gcd
20:14:32  <substack>https://github.com/substack/node-gcd/blob/master/index.js
20:14:33  <mikolalysenko>I just published this: https://npmjs.org/package/bisect
20:14:56  <mikolalysenko>which surprisingly no one had bothered to create
20:15:09  <substack>because unless you already know about euclid's algorithm it's completely not obvious
20:15:14  <mikolalysenko>yeah
20:15:22  <mikolalysenko>I'd like to see some more sophisticated stuff though
20:15:29  <mikolalysenko>like things that actually take a bit of work to create
20:15:44  <mikolalysenko>like linear programming codes, stuff to compute grobner basis, etc.
20:16:08  <substack>https://github.com/substack/gamma.js
20:16:25  <substack>https://github.com/substack/gtest.js
20:16:54  <mikolalysenko>those are nice, and certainly a good start
20:17:01  <substack>https://github.com/substack/chi-squared.js
20:17:08  <substack>I have tons of these.
20:17:19  <mikolalysenko>yeah, here is one I wrote the other day: https://github.com/mikolalysenko/push-relabel
20:17:23  <substack>whenever I find myself reading a wikipedia article about some algorithm I need, I publish it to npm
20:17:29  * AvianFluquit (Remote host closed the connection)
20:17:56  <mikolalysenko>but it is not very thoroughly tested yet
20:18:11  <substack>and https://github.com/substack/node-running-mean
20:18:37  <mikolalysenko>why not just make a module to compute a moment generating function?
20:18:44  <substack>not sure what that is
20:18:46  <mikolalysenko>then you get mean, median, std dev. etc
20:19:05  <mikolalysenko>basically a moment is the expected value of a polynomial x^n normalized wrt to all previous polynomials
20:19:13  <mikolalysenko>so mean = first moment
20:19:18  <mikolalysenko>std deviation = second moment
20:19:27  <mikolalysenko>third moment is called curtosis or something like that
20:19:44  <substack>instead of ORM modules we need more modules like https://github.com/substack/hash-join that deconstruct the roles of databases piece by piece
20:19:47  <mikolalysenko>basically if you know the moments, then by linearity of expectation you can compute any polynomial
20:19:56  <substack>dominictarr and rvagg have done a LOT of work in that area
20:20:29  <substack>I don't really have a very deep mathematical background
20:20:42  <mikolalysenko>yeah, though you know that hash-join is actually a fibered product
20:21:06  <mikolalysenko>which is a generalization of cartesian product/intersection
20:21:25  <substack>I thought it wasn't a cartesian product?
20:21:38  <mikolalysenko>no, fiber product is a subset of cartesian product
20:21:43  <substack>oh ok
20:21:50  <mikolalysenko>basically you specify two sets and a mapping into a common set
20:22:00  <substack>in database parlance it's called a hash join
20:22:06  <mikolalysenko>or just outer join
20:22:09  <mikolalysenko>in sql-ese
20:22:26  <mikolalysenko>the dual is the inner join
20:22:30  <mikolalysenko>also called fibered coproduct
20:22:41  <mikolalysenko>which generalizes disjoint union/set-union
20:23:07  <mikolalysenko>another name for fiber product is "pullback"
20:23:19  <mikolalysenko>and coproducts are sometimes called "pushouts"
20:23:31  <mikolalysenko>but those words have other meanings in differential geometry, which is really annoying
20:25:05  <mikolalysenko>here is the wiki page btw: http://en.wikipedia.org/wiki/Pullback_(category_theory)
20:26:41  * Domenic_quit (Remote host closed the connection)
20:33:34  * Domenic_joined
20:34:57  <Raynos>substack: lol ORMs
20:35:32  * spionjoined
20:47:11  <jlord>mbalho: oh yeah. i'm working on a diagram now that will go along with explaining how the simple server works and will add it and example in the readme.
20:47:30  <jlord>mbalho: if i made updates, do i just `npm publish` again to update them on npm?
20:52:17  * timoxleyquit (Quit: Computer has gone to sleep.)
20:54:35  * mmckeggjoined
20:56:15  * mikealquit (Quit: Leaving.)
21:00:59  <juliangruber_>enstore works well for caching streaming resources like a browserify bundle or a file from fs.createReadStream: https://github.com/juliangruber/enstore#example-cache-for-browserify
21:01:25  * juliangruber_changed nick to juliangruber
21:03:57  * ITprojoined
21:12:26  * nk109joined
21:14:12  * AvianFlujoined
21:16:49  * stlsaintjoined
21:16:49  * stlsaintquit (Changing host)
21:16:49  * stlsaintjoined
21:27:22  * wolfeidauquit (Remote host closed the connection)
21:33:03  * defunctzombie_zzchanged nick to defunctzombie
21:33:14  * st_lukequit (Remote host closed the connection)
21:38:48  * nicholasfquit (Remote host closed the connection)
21:42:09  * ITproquit (Ping timeout: 240 seconds)
21:44:45  * wolfeidaujoined
21:51:04  * timoxleyjoined
21:51:39  <substack>defunctzombie: fixed that bug
21:51:47  <defunctzombie>substack: ++
21:52:53  * nk109quit (Quit: Computer has gone to sleep.)
21:53:42  <mikolalysenko>latest library: https://github.com/mikolalysenko/n-body-pairs
21:54:15  <mikolalysenko>so now you can do collision detection in js, without doing something stupid
21:54:48  * ITprojoined
21:55:04  <substack>defunctzombie: it fails on 0.10 though
21:55:12  <defunctzombie>substack: why is that?
21:55:22  <substack>probably streams
21:55:56  <defunctzombie>hahaha
21:56:07  <defunctzombie>I haven't moved anything over to 0.10 yet
21:56:09  <jesusabdullah>bros
21:56:11  <substack>I'm not using 0.10 either
21:56:19  <substack>everything is broken
21:56:31  <jesusabdullah>YOU're broken
21:56:37  <jesusabdullah>OH SNAP
21:56:37  <LOUDBOT>BUY AN IPAD SAVE THE COMPANY
21:56:59  <defunctzombie>yea
22:02:30  * Benviequit (Ping timeout: 264 seconds)
22:13:44  <defunctzombie>I just turned the core part of the matching engine into a streaming interface
22:13:57  <defunctzombie>really awesome actually cause now I can test it without any IO layer
22:14:10  <defunctzombie>and I have the IO layer as a shell around it for the actual bin file
22:15:14  * spionquit (Ping timeout: 246 seconds)
22:16:14  * fallsemojoined
22:17:11  <mikolalysenko>someone needs to make a template-engine-engine
22:17:15  <mikolalysenko>that generates template engines
22:17:21  <defunctzombie>haha
22:19:24  <Raynos>dominictarr: I just looked in mongodb. I'm logging 21GB of crdt into it
22:19:31  <Raynos>im clearly doing crdt wrong
22:19:34  * spionjoined
22:19:51  * nk109joined
22:19:58  * thl0_quit (Remote host closed the connection)
22:25:41  * tilgovijoined
22:32:10  <jjjjohnnny>whats the socket library of the month?
22:32:55  <jjjjohnnny>is anybody still using sockjs
22:34:22  <Raynos>still usign sockjs
22:34:27  <Raynos>been using it for a year in production
22:35:23  <jjjjohnnny>ok good
22:35:33  <jjjjohnnny>i liked it last time i used it
22:42:43  <Ralt>codegolfs are actually fun.
22:47:40  * fallsemoquit (Quit: Leaving.)
22:48:19  <substack>I haven't had to touch shoe in ages
22:48:21  <substack>it just works
22:59:37  <Ralt>Raynos: dude, CL is fun for codegolfs :P
23:00:12  <Raynos>common lisp?
23:02:15  <jesusabdullah>naw dude, craigslist
23:04:16  <Ralt>yeah
23:04:18  <Ralt>common lisp
23:04:30  * mikealjoined
23:04:49  <Ralt>Raynos: http://codegolf.stackexchange.com/a/11018/6594
23:16:43  * tmcwquit (Remote host closed the connection)
23:17:12  * Domenic_quit (Remote host closed the connection)
23:22:30  <rvagg>mbalho: mostly positive in here: https://news.ycombinator.com/item?id=5435167
23:22:37  <rvagg>mbalho: " I could imagine writing something big on the Trans-Siberian Express with a similar rig."
23:22:55  * thl0joined
23:23:03  <rvagg>plus! a solar charger for the battery. of course! that'd keep this baby running for ever
23:23:18  <substack>all my code is broken on 0.10
23:27:04  <jesusabdullah>not surprising sub considering how much you use streams
23:30:22  * thl0_joined
23:30:29  * tim_smartjoined
23:30:37  * thl0quit (Remote host closed the connection)
23:34:09  * crank_changed nick to crank
23:34:39  * thl0_quit (Ping timeout: 240 seconds)
23:39:11  * stlsaintquit (Ping timeout: 255 seconds)
23:42:17  * nicholasfjoined
23:45:29  * ralphtheninjaquit (Ping timeout: 255 seconds)
23:46:39  * nicholasfquit (Ping timeout: 240 seconds)
23:47:17  * ralphtheninjajoined
23:49:07  * ITproquit (Ping timeout: 264 seconds)
23:49:57  * Domenic_joined
23:49:58  <substack>jesusabdullah: and a lot of timing bugs from process.nextTick
23:55:39  * stlsaintjoined
23:57:05  * AvianFluquit (Remote host closed the connection)
23:59:46  <ins0mnia>anyone can recommend a decent laptop to buy that is not mac?
23:59:55  <ins0mnia>my dell is dying on me