00:02:59  * mikealquit (Quit: Leaving.)
00:05:29  * mikealjoined
00:06:08  * mikealquit (Client Quit)
00:56:19  * tilgoviquit (Remote host closed the connection)
01:05:38  * AvianFlujoined
01:59:20  <substack>so there is a chinese github http://gitcafe.com/
01:59:32  <substack>because github works unreliably from china
02:04:24  <substack>unless you have a vpn or ssh tunnel, which everybody does
02:44:30  * tphummelquit (Quit: tphummel)
02:48:26  * AvianFluquit (Quit: AvianFlu)
02:48:42  * _sorensenjoined
02:57:32  * AvianFlujoined
03:03:03  * _sorensenquit (Quit: _sorensen)
03:19:20  * jesusabdullahquit (Ping timeout: 245 seconds)
03:39:49  * jesusabdullahjoined
04:28:40  * mbalhoquit (Ping timeout: 240 seconds)
04:28:49  * mbalhojoined
06:26:04  * hij1nxjoined
07:02:50  * hij1nxquit (Ping timeout: 272 seconds)
07:08:36  <mbalho>substack: whoa
07:08:40  <mbalho>substack: gitcafe rules haha
07:11:36  * hij1nxjoined
07:11:46  <mbalho>cafe i'm in is playing george michael
07:14:32  * shuaibquit (Quit: Textual IRC Client: http://www.textualapp.com/)
07:56:54  * hij1nxquit (Ping timeout: 252 seconds)
07:59:57  * hij1nxjoined
08:06:33  * hij1nxquit (Ping timeout: 246 seconds)
08:24:12  * hij1nxjoined
08:43:27  * dominictarrjoined
08:43:48  <dominictarr>Raynos, you there?
09:53:02  * shuaibjoined
10:09:54  * AvianFluquit (Quit: AvianFlu)
10:17:36  * hij1nxquit (Ping timeout: 240 seconds)
10:34:47  * shuaibquit (Ping timeout: 244 seconds)
10:38:30  * shuaibjoined
11:15:32  * yorickquit (Ping timeout: 272 seconds)
11:16:44  * yorickjoined
11:27:05  <Raynos>yo
11:33:03  <Raynos>dominictarr: pong
11:33:14  <dominictarr>hey, whats up
11:33:36  <dominictarr>working on a new demo for streaming stuff
11:33:48  <dominictarr>hang on, i'll push what i got
11:35:20  <Raynos>so am I :)
11:36:43  <Raynos>https://github.com/Raynos/todomvc/tree/stream-experiment/architecture-examples/stream-experiment
11:36:44  <Raynos>massive WIP
11:47:57  <dominictarr>Raynos okay check this out https://github.com/dominictarr/query-stream
11:48:11  <dominictarr>it's for making autosuggest search stuff
11:48:34  <dominictarr>you send in a stream of updated queries, and it streams results
11:49:11  <Raynos>self.queue is not defined
11:49:56  <dominictarr>oops, I made a patch to through
11:50:10  <dominictarr>so it can now do output buffering.
11:50:40  <dominictarr>okay, that is pushed, reinstall
11:51:57  <dominictarr>I a stream to convert a stream into elements and append them to a given container.
11:52:47  <dominictarr>and another stream that converts DOM events into a stream.
11:53:05  <dominictarr>there is an example in the readme, but it's not implemented yet.
11:53:28  <dominictarr>I wanted to ask you about this first
11:55:20  <Raynos>dominictarr: https://gist.github.com/3727481
11:55:30  <Raynos>That code works if I publish all the modules it uses
11:55:55  <Raynos>its a different way of doing it though
11:57:17  <Raynos>dominictarr: btw Inputstream is npm docs events-stream
11:57:31  <Raynos>dominictarr: https://github.com/Raynos/events-stream#example
11:57:34  <Raynos>That's already implemented
11:59:40  <dominictarr>that looks good.
12:00:18  <dominictarr>need append, not prepend
12:00:40  <dominictarr>I'd expect the results to be in order already.
12:01:54  * hij1nxjoined
12:02:22  <Raynos>dominictarr: https://github.com/Raynos/insert-stream
12:02:33  <Raynos>I already had that lying around
12:03:17  <Raynos>but recently I've been using less streams
12:03:26  <Raynos>and more functional programming abstractions build on top of streams
12:05:22  <dominictarr>I see.
12:06:04  <dominictarr>that looks really good.
12:06:05  <dominictarr>hmm
12:06:28  <dominictarr>I'm a little concerned about it being all different to the stream api...
12:06:36  <dominictarr>trying to sell people on using streams
12:07:01  <Raynos>dominictarr: insert-stream & events-stream are streams
12:07:03  <dominictarr>then on the other hand, maybe this would get around the objection people have of using streams for non text
12:07:17  <Raynos>they are simple pure streams
12:07:21  <Raynos>all this map filter / etc stuff
12:07:30  <Raynos>uses those lazy streams whicha re weird streams
12:07:45  <dominictarr>Raynos, Idea for insert-stream: pause if the element drawn was below the bottom of the screen
12:07:59  <dominictarr>then resume when the user scrolls down.
12:08:00  <Raynos>that's madness
12:08:12  <dominictarr>INSTANT INFINITE SCROLL
12:08:13  <LOUDBOT>BITCHES DON'T KNOW ABOUT MY SPARSE MATRICES
12:08:39  <Raynos>that shouldn't go into insert-stream
12:08:44  <Raynos>that should be infinite-scroll stream
12:08:47  <Raynos>which wraps insert-stream
12:08:55  <Raynos>and adds the write=false / drain behaviour
12:09:01  <Raynos>or it should be piped
12:09:09  <dominictarr>okay, sure
12:12:58  <Raynos>I think its cool for sure
12:14:49  <Raynos>dominictarr: https://gist.github.com/3727525
12:14:56  <Raynos>ignoring the implementation complexity
12:15:05  <Raynos>is the pipe style or wrapper style a better user facing api ?
12:17:03  <dominictarr>well, pipe is familiar and standard.
12:17:07  <dominictarr>idiomatic
12:17:22  <Raynos>agreed
12:17:47  <Raynos>and lazy-pipe actually does the pipe chaining under the hood
12:18:00  <dominictarr>though your style look like it has potential too.
12:18:26  <dominictarr>it would help a lot if you put the requires in, so I knew what modules you where refering to.
12:18:43  <dominictarr>or comments when something isn't actually implemented yet
12:18:55  <dominictarr>like screen.on('scroll',...)
12:20:47  <dominictarr>Raynos, for defaulting booleans, like https://github.com/Raynos/events-stream/blob/master/index.js#L6-13
12:21:09  <dominictarr>a terser way is if (boolean === true) //defaults to false
12:21:27  <dominictarr>and if (boolean === false) // defaults to true
12:22:04  <dominictarr>oops,
12:22:22  <dominictarr>i mean if (boolean !== false) // THIS defaults to true
12:24:44  <Raynos>oh sure
12:25:38  <dominictarr>events-stream is rather a confusing name, as it is quite similar to event-stream
12:26:11  <dominictarr>dom-event-stream would be better.
12:26:15  <Raynos>updated gists
12:26:53  <dominictarr>cool
12:26:54  <Raynos>dominictarr: events-stream does DOM events & event emitters
12:27:39  <Raynos>dominictarr: what do you mean terser way? You mean not using braces?
12:27:48  <dominictarr>yes, I know, but when you first linked me, I though you where linking me to event-stream
12:28:09  <Raynos>i agree naming is a pain
12:28:13  <dominictarr>capture = capture === true
12:28:35  <Raynos>oh
12:28:50  <dominictarr>I had an idea about this naming stuff.
12:29:10  <Raynos>I would call it dom-events-stream if it did dom stuff only
12:29:28  <dominictarr>it also wraps event-emitters?
12:29:50  <Raynos>https://github.com/Raynos/events-stream/blob/master/index.js#L38
12:29:58  <Raynos>just updated it
12:30:44  <Raynos>isaacs: can you republish readable-stream with that only null is magical fix
12:31:10  <dominictarr>I meant the module name
12:32:19  <dominictarr>hmm, I think you could use identical code for DOM and EE
12:32:33  <dominictarr>since EE will just ignore the capture parameter
12:33:01  <dominictarr>just check for addListener | addEventListener
12:33:28  <Raynos>and removeListener | removeEventListener
12:33:30  <Raynos>and the array fix
12:33:32  <Raynos>and etc
12:33:45  <Raynos>but yes it can be cleaner
12:34:30  <dominictarr>what does the array fix do?
12:35:06  <Raynos>read can only return one value
12:35:12  <Raynos>you can emit multiple arguments
12:35:25  <Raynos>https://github.com/Raynos/events-stream/blob/master/index.js#L54
12:35:56  <dominictarr>hmm, but only with DOM events? what events are like that?
12:36:50  <Raynos>No DOM events are fine
12:36:55  <Raynos>they always have one argument, the event object
12:36:57  <Raynos>custom event emitters
12:37:11  <Raynos>allow you to like be `emitter.emit('newStuff', one, two, three)`
12:37:16  <Raynos>like for example
12:37:19  <Raynos>crdt does this
12:38:31  <dominictarr>Raynos, sometimes I want multiple events
12:38:48  <dominictarr>for example, if I'm writing a autosuggest input
12:38:49  <Raynos>dominictarr: agreed. But read can only return a single value.
12:39:00  <Raynos>which is a limitation of readable-stream
12:39:16  <dominictarr>what about this idea:
12:39:45  <Raynos>https://github.com/Raynos/todomvc/blob/stream-experiment/architecture-examples/stream-experiment/todolist/render.js#L38
12:39:50  <Raynos>which is why I return objects like that
12:40:08  <dominictarr>events(DOM | EE, eventNameStream | [eventNames] | {eventName: syncMapFunction} )
12:41:12  <Raynos>how would eventNameStream work?
12:41:12  <dominictarr>so say I want a stream of ev.target.value on keypress, change, and when the user presses enter.
12:41:37  <dominictarr>oops that shoudl be eventNameString
12:41:41  <Raynos>Oh ok
12:41:57  <Raynos>I agree that eventNames is a good idea
12:42:06  <Raynos>I dont like the syncMapFunction
12:42:13  <dominictarr>why not?
12:42:20  <Raynos>just use map(events(...), function (ev) { return ev.target.value })
12:42:34  <dominictarr>yeah, but then you have to do a filter too
12:42:52  <dominictarr>this makes the whole thing reusable
12:43:15  <Raynos>well tbh
12:43:22  <Raynos>https://github.com/Raynos/todomvc/blob/stream-experiment/architecture-examples/stream-experiment/todolist/render.js#L17
12:43:32  <Raynos>I'm clearly already building abstractions
12:43:59  <Raynos>I need more time with the low level things before I learn what the good abstractions are
12:44:06  <Raynos>before I bake higher complexity into events
12:44:35  <dominictarr>fair enough.
12:44:55  <Raynos>finishing todomvc is a good milestone
12:45:17  <dominictarr>sometimes you want to add features just so the code examples look good.
12:45:41  <Raynos>xd
12:45:48  <Raynos>thats the wrong way to do it :P
12:46:02  <Raynos>add features because you use them in apps you build
12:46:06  <Raynos>not because examples look shiny
12:46:22  <dominictarr>oh, but first impressions count.
12:47:06  <dominictarr>it is important for your sense of integrity to be somewhat flexible.
12:47:08  <Raynos>agreed
12:47:17  <Raynos>but all of this code
12:47:20  <Raynos>is incredibly experimental
12:47:32  <dominictarr>totally.
12:47:56  <Raynos>so i dont really care about peoples first impressions atm
12:48:01  <Raynos>because they shouldnt be using this code :P
12:48:46  <dominictarr>haha. okay, I'll try some stuff my way, and we can compare notes. maybe I'll implement it with both and see how it differs.
12:49:17  <Raynos>well im personally converging onto abstracting away that im using streams at all
12:49:30  <Raynos>the fact that everything is a stream is an implementation detail
12:49:35  <Raynos>you just use high level constructs and functions
12:49:57  <Raynos>you dont do source.pipe(to(iterator) you do forEach(source, iterator)
12:51:30  <dominictarr>Raynos, is this only for UI stuff? or would that approach work for other things?
12:51:56  <Raynos>it clearly doesnt work for network stuff because you need to know things are streams
12:52:06  <Raynos>it works for in process moving of data around with streams as the low level construct
12:58:40  <dominictarr>hmm, it's interesting none the less.
13:01:18  <dominictarr>Raynos, with events-stream when do you call 'end'? im not imagining that being used in UI stuff
13:02:49  <Raynos>dominictarr: https://github.com/Raynos/todomvc/blob/stream-experiment/architecture-examples/stream-experiment/todolist/render.js#L91
13:03:07  <Raynos>basically when a view gets destroyed. Clean up the DOM, clean up any open streams, event listeners, etc etc
13:03:23  <Raynos>end basically means "i no longer care about these events remove your listener"
13:04:02  <dominictarr>hmm. yeah, that might be important.
13:04:19  <Raynos>end for me means clean up memory
13:04:31  <Raynos>memory management is a bitch tbh
13:05:36  <dominictarr>so, anyway, I want to make a app where you can have mp3s playing on a computer
13:05:51  <dominictarr>but you can control the playlist in realtime from other devices.
13:06:28  <dominictarr>... and search, and reorder the playlist, and multiple users can add tracks.
13:06:33  <Raynos>well
13:06:35  <Raynos>thats easy
13:06:37  <Raynos>write it
13:06:41  <Raynos>persist state in crdt
13:06:42  <Raynos>done.
13:06:53  <Raynos>other devices means other browsers or other end points?
13:07:01  <dominictarr>browsers or mobile
13:07:20  <dominictarr>I already wrote this once, but it was kinda crappy.
13:07:20  <Raynos>how cleanly does browserify run on mobile?
13:07:23  <Raynos>I havnt tried it once
13:07:37  <dominictarr>no idea. I don't even have a "smart" phone
13:07:44  <dominictarr>neither does substack
13:07:47  <dominictarr>you?
13:07:49  <Raynos>i have one
13:08:18  <dominictarr>I don't think it would really be such a problem.
13:08:27  <Raynos>i dont think so either
13:08:37  <Raynos>well for this I would just write two views one for desktop & mobile
13:08:40  <Raynos>and then use crdt for state
13:08:41  <dominictarr>maybe you just need to be a bit more careful about code size
13:08:47  <Raynos>& distribute crdt over discovery-network
13:09:20  <dominictarr>there is less bandwidth if you have a crdt instance in the middle.
13:09:46  <dominictarr>less bandwidth _required_
13:09:50  <Raynos>that's an optimization problem
13:10:12  <Raynos>theres no reason to sync your state with every mobile device
13:10:15  <dominictarr>this is gonna have a server. a light server, but a server.
13:10:15  <Raynos>only with the desktop "player"
13:10:27  <Raynos>and there should only be one player per playlist
13:10:35  <dominictarr>yeah, usually
13:10:54  <Raynos>you can use a server but it's just increased complexity :P
13:10:59  <dominictarr>first I thought that you might want to listen to the same music as some one remote, but no one has used it like that.
13:12:06  <dominictarr>instead, you want to be able to DJ without standing in one place, and also to take turns selecting the music.
13:18:38  <Raynos>https://gist.github.com/3727806
13:19:16  <Raynos>deploying a 5 line module on gist is easier then on github / npm
13:30:18  <Raynos>I have a desire to deploy 5 new npm modules ( https://gist.github.com/3727882 )
13:30:22  <Raynos>but they are all one line functions
13:30:24  <Raynos>so I feel bad
13:30:29  <Raynos>substack: Tell me everything is ok
13:31:36  <Raynos>https://twitter.com/Raynos2/status/246964164004806657
13:34:52  <Raynos>isaacs: feature request `echo "module.exports = function (v) { return !!v }" > npm publish is-truthy`
13:35:12  <Raynos>theres too much boilerplate involved with publishing one line modules on npm
13:35:25  <Raynos>I want a CLI one-liner to publish my one-liner module
13:35:44  <Raynos>I meant echo ... | npm ...
13:47:55  <dominictarr>Raynos, there is a GISTA for gists.
13:48:03  <dominictarr>(which I am guessing you use)
13:48:09  <Raynos>?
13:48:12  <Raynos>gista?
13:48:24  <dominictarr>you can create gists from the command line
13:48:45  <dominictarr>filefox `gista *.js`
13:48:57  <dominictarr>will create a gist of the current dir and open it in firefox
13:48:59  <Raynos>oh
13:49:03  <Raynos>no i dont do that :P
14:13:41  * hij1nxquit (Ping timeout: 264 seconds)
14:16:45  <Raynos>dominictarr: that dj app
14:16:51  <Raynos>we should write it together in like one day
14:17:03  <dominictarr>totally.
14:17:26  <dominictarr>and we could demo it at LNUG
14:17:32  <Raynos>if im even at LNUG
14:17:40  <Raynos>I may need to go back to America before that
14:17:50  <dominictarr>ah... stink.
14:17:59  <dominictarr>you are registered to speak
14:18:05  <Raynos>i know :D
14:18:21  <Raynos>I send him an email "yea sorry. shit happened. Ill let you know if I can make it"
14:18:35  <dominictarr>I tried speaking remotely via skype once. didn't work very well.
14:18:37  <Raynos>i can always speak remotely for lulz
14:19:35  <Raynos>do you guys also have an annoying backlog of 30 npm modules you need to write?
14:20:04  * hij1nxjoined
14:20:52  <dominictarr>yup.
14:21:06  <Raynos>we should crowd source this backlog
14:21:14  <dominictarr>I've wanted to do the ui stream that pauses when off screen for over a year.
14:21:45  <Raynos>thats like 10 lines
14:21:49  <dominictarr>it took me 9 months to get around to the first version of mux-demux, browser-stream
14:22:07  <dominictarr>it would have been useless with out some deps,
14:22:11  <dominictarr>like mux-demux.
14:22:19  <dominictarr>(or not as useful)
14:29:53  * hij1nxquit (Ping timeout: 264 seconds)
14:57:00  <substack>Raynos: the other domenic who is here in shanghai is using browserify for windows mobile apps in production
15:00:03  <substack>lots of success here indoctrinating programmers into unix philosophy / stream ideology / small module aesthetics
15:00:37  <substack>there are so many really good programmers here who just get all of this stuff
15:04:07  <dominictarr>yes, but in china they grow up reading Confusious
15:05:31  <substack>must help
15:05:46  <substack>also haikus and such things are popular
15:06:02  <substack>which extol the values of terseness
15:07:07  <substack>one guy steven was really awesome, he was asking for more information about programming philosophy before I even gave my talk
15:15:08  * AvianFlujoined
15:16:18  <dominictarr>indeed, as I say, you should read 'art of war'
15:39:56  <shuaib>woah, talk, what talk?
15:40:01  <shuaib>substack gave a talk?
15:40:02  <shuaib>link!
16:06:21  <dominictarr>Raynos, at the moment, I have this problem... I want to do a query of the file system
16:06:24  <dominictarr>like a search.
16:06:47  <dominictarr>and then return a crdt thing
16:06:56  <dominictarr>but only the of the search results,
16:07:15  <dominictarr>and then I want to be able to edit each item.
16:07:37  <dominictarr>if it's only read... then it's really easy to make that readable stream.
16:08:06  <dominictarr>but if the items are properly replicatable, that is a bit more difficult.
16:09:23  <dominictarr>I guess it's like a partial set like we there talking about the other day.
16:10:21  <dominictarr>hmm. it breaks the assumptions of scuttlebutt because you can't assume that the other end has a given set of objects...
16:10:47  <dominictarr>you'd have to use a different pattern that it coupled to an updatable search query.
16:12:06  <dominictarr>you wouldn't need the offline thing in that situation though.
16:12:18  <dominictarr>but otherwise, you could use the same patterns.
16:46:11  * mikealjoined
17:11:31  * mikeal1joined
17:11:32  * mikealquit (Read error: Connection reset by peer)
17:29:04  * cam5joined
17:31:50  <cam5>Hey browserlings! Bug report: I'm signed in to my dev account, but the timer is running. :( http://imgur.com/iB5o8
17:33:20  <pkrumins>try now
17:33:26  <pkrumins>restarted some services
17:34:24  * mikeal1quit (Quit: Leaving.)
17:34:34  <cam5>Still being timed! I'll clear my cookies again, maybe?
17:36:17  <pkrumins>which browser are you using?
17:36:24  <pkrumins>i mean trying to use
17:36:46  <cam5>FF 13 / IE 9
17:37:11  <pkrumins>yes try clearing cookies
17:37:13  <pkrumins>and retry
17:37:19  <pkrumins>it has to work
17:39:52  <cam5>Still nothing. I get the "time's up" dialogue right away.
17:40:15  <cam5>Accessed browserling from Chrome / FF on Mac
17:40:20  <pkrumins>did it work earlier?
17:40:35  <cam5>Hasn't worked today.
17:40:55  <pkrumins>hey i'm getting the same
17:40:56  <pkrumins>just tried
17:42:20  <cam5>At least we can recreate the issue! Good luck with the fix!
17:42:55  <pkrumins>restarted all the services
17:42:56  <pkrumins>trying
17:43:30  <pkrumins>not working
17:44:26  <pkrumins>i wont be able to fix this without substack
17:44:31  <pkrumins>we've to wait until he gets online
17:44:49  <shuaib>pkrumins: you and substack working full time on stackvm still?
17:44:58  <pkrumins>not on stackvm
17:45:01  <pkrumins>but on browserling
17:45:14  <shuaib>Right, I meant stackvm and the related spinoffs
17:45:19  <pkrumins>yes we do
17:45:23  <shuaib>cool
17:45:40  <pkrumins>yup
17:45:47  <shuaib>pkrumins: is it still you and substack or there are new guys?
17:45:48  <pkrumins>cam5: at least free plans work
17:45:53  <pkrumins>shuaib: just us
17:46:02  <shuaib>pkrumins: cool, good luck
17:46:07  <pkrumins>thanks
17:46:18  <pkrumins>cam5: you can logout and use ie9
17:46:50  <shuaib>pkrumins: you back to your own country or still in US?
17:46:52  <cam5>Cool beans. Thanks for gettin' on it so quickly.
17:47:03  <pkrumins>shuaib: my country
17:47:27  <pkrumins>cam5: you're welcome
17:48:12  <shuaib>pkrumins: let me know if you guys ever want an iOS guy to be part of the team ;)
17:48:26  <pkrumins>alright :)
17:49:20  <shuaib>pkrumins: what's your current development environment like (machine, OS, dev stack etc)
17:51:07  <Raynos>dominictarr: oh hi
17:51:24  <dominictarr>just thinking out loud.
17:51:34  <dominictarr>I've decided not to worry about that.
17:51:53  <dominictarr>ohhh. just realized something.
17:52:00  <dominictarr>for this particular problem...
17:52:17  <dominictarr>(a am watching the file system, and streaming changes to a query)
17:52:44  <pkrumins>shuaib: windows xp, visual studio 2010, gvim and many other programs
17:52:52  <dominictarr>... if the user edits a file ... it could just write that change to the FS and then the watcher would see it and stream the change back.
17:53:10  <shuaib>pkrumins: cool. Thanks for sharing
17:53:18  <pkrumins>shuaib: http://www.catonmat.net/blog/must-have-windows-programs/
17:53:25  <dominictarr>the facts come from the fs, so it's not a distributed problem.
17:53:25  <pkrumins>i use these programs and some more.
17:54:01  <Raynos>dominictarr: https://gist.github.com/56486ac973e8c429fb2b
17:54:05  <pkrumins>dominictarr: woodoo magic you're guys doing there
17:54:08  <shuaib>pkrumins: any specfic reason for not having a linux (or mac) system as your primary dev machine?
17:54:09  <Raynos>Has anyone written code that does stream intersection
17:55:30  <dominictarr>can't set a property on the crdt, because other users might be replicating it too.
17:55:57  <dominictarr>I think what you'd have to do is partially duplicate it, and then replicate that as the query.
17:56:39  <dominictarr>actually, you could create a temp crdt that doesn't use scuttlebutt... you'd resend the whole thing on a new connection.
17:57:05  <dominictarr>(but the idea here is the query would be fairly small)
17:58:32  <Raynos>Well yes
17:58:36  <Raynos>for search queries
17:58:42  <Raynos>you would be storing these documents in the crdt db
17:58:59  * mikealjoined
17:59:01  <Raynos>but there is a general issue here
17:59:13  <Raynos>of abusing crdt
18:01:16  <pkrumins>shuaib: it just works well and there is a lot of software
18:01:54  * hij1nxjoined
18:02:31  * mikealquit (Client Quit)
18:11:27  <dominictarr>Raynos, yeah, it turns out I didn't actually need that. lets just steer away from that problem until we find a usecase again.
18:12:33  * hij1nxquit (Ping timeout: 244 seconds)
18:13:14  * cam5part
18:13:40  <Raynos>:D
18:46:29  <dominictarr>dammit, 18,000 people download mikeal/watch every month, and yet I am the first on to find this edge case: https://github.com/mikeal/watch/issues/36
18:53:12  * st_lukejoined
19:08:25  * hij1nxjoined
19:09:41  * mikealjoined
19:14:32  * mikealquit (Client Quit)
19:54:45  * hij1nxquit (Ping timeout: 245 seconds)
20:47:52  * hij1nxjoined
20:52:33  * hij1nxquit (Ping timeout: 268 seconds)
21:39:20  * jibayjoined
21:58:44  * hij1nxjoined
22:02:55  * hij1nxquit (Ping timeout: 248 seconds)
22:04:26  * AvianFluquit (Quit: AvianFlu)
22:35:38  * AvianFlujoined
22:40:08  * st_lukequit (Remote host closed the connection)
22:56:53  * jibayquit (Read error: Operation timed out)
23:19:00  <dominictarr>substack, are you gonna merge this https://github.com/substack/shoe/pull/6 ?
23:20:16  * jibayjoined
23:31:29  * jibayquit (Ping timeout: 246 seconds)
23:33:25  <substack>shuaib: substack.net/doc/hujs/
23:33:41  <substack>dominictarr: seems good
23:34:22  <dominictarr>it's only a few lines, just makes things easier.
23:48:58  * mikealjoined
23:56:04  * st_lukejoined