00:26:12  * jcrugzzjoined
00:28:39  * st_lukejoined
00:32:32  * paulfryzelquit (Remote host closed the connection)
00:38:48  * st_luke_joined
00:41:50  * st_lukequit (Ping timeout: 240 seconds)
01:15:42  * paulfryzeljoined
01:26:45  * soldairquit (Ping timeout: 250 seconds)
01:45:47  * thlorenzjoined
01:57:08  * Raynosjoined
01:59:14  <brycebaril>rvagg: cool, thanks
01:59:31  <rvagg>brycebaril: I bumped to 0.1.0 and published
02:00:38  <brycebaril>Still showing up as 0.0.5 on npm for me for some reason, maybe I've got a stale cache
02:01:20  <rvagg>ack, no, you're right
02:01:27  <rvagg>publish didn't go through
02:01:37  <rvagg>oh well, I'll let you do the honours, just pull the latest master
02:01:46  <brycebaril>ok, will do
02:09:53  * ralphtheninjaquit (Ping timeout: 240 seconds)
03:19:57  * thlorenzquit (Remote host closed the connection)
03:36:18  * Guest29537joined
03:40:26  * Guest29537part ("Leaving")
03:42:06  * jcrugzz_joined
03:43:07  * jcrugzzquit (Ping timeout: 264 seconds)
03:46:10  * godoitisjoined
03:50:49  * godoitisquit (Client Quit)
03:56:59  * timoxleyquit (Remote host closed the connection)
03:58:44  * jcrugzz_changed nick to jcrugzz
04:05:10  * godoitisjoined
04:05:44  * godoitisquit (Client Quit)
05:25:19  * paulfryzelquit (Remote host closed the connection)
05:55:49  * paulfryzeljoined
06:04:43  * paulfryzelquit (Ping timeout: 264 seconds)
07:00:59  * paulfryzeljoined
07:03:39  * keslajoined
07:09:42  * paulfryzelquit (Ping timeout: 256 seconds)
07:38:10  * meschquit (Quit: Connection closed for inactivity)
07:49:14  * st_luke_quit (Remote host closed the connection)
08:54:53  * dubbanjoined
08:58:42  * jcrugzzquit (Ping timeout: 264 seconds)
09:06:21  * paulfryzeljoined
09:10:33  * paulfryzelquit (Ping timeout: 245 seconds)
09:40:40  <rvagg>juliangruber: mikeal's suggested a time ,can you make that one? https://gist.github.com/mikeal/6137274
09:40:41  * Acconutjoined
09:41:14  * Acconutquit (Client Quit)
09:41:31  <rvagg>would be good to hook eugeneware up too but that's 1 or 2am for him I think
09:45:44  <juliangruber>rvagg: sweet
09:46:00  <juliangruber>rvagg: this is today/tomorrow, right?
09:46:29  <juliangruber>ah, next week
09:47:23  <juliangruber>rvagg: yup, works
09:51:43  <rvagg>sounds like it's this week to me
09:52:05  <rvagg>better catch up with mikeal when he's around then eh, or ping him on that levelup issue related to this
10:03:02  * keslaquit (Ping timeout: 240 seconds)
10:07:00  * paulfryzeljoined
10:11:30  * paulfryzelquit (Ping timeout: 276 seconds)
10:12:02  <eugeneware>yeah. it's 1am melb time this week I think.
10:14:22  * ralphtheninjajoined
10:36:08  * dubbanquit (Remote host closed the connection)
11:07:30  * paulfryzeljoined
11:11:48  * paulfryzelquit (Ping timeout: 245 seconds)
11:13:32  * dubbanjoined
11:31:07  * dominictarrjoined
12:08:09  * paulfryzeljoined
12:09:24  * dominictarrquit (Quit: dominictarr)
12:11:34  * Acconutjoined
12:12:02  * Acconutquit (Client Quit)
12:12:52  * paulfryzelquit (Ping timeout: 256 seconds)
12:14:28  * thlorenzjoined
12:20:13  * mcollinajoined
12:20:45  * mcollinaquit (Remote host closed the connection)
12:21:17  * mcollinajoined
12:25:33  * mcollinaquit (Ping timeout: 245 seconds)
12:29:17  * dominictarrjoined
12:31:16  * dominictarrquit (Client Quit)
12:51:49  * Acconutjoined
12:52:34  * Acconutquit (Client Quit)
13:02:59  * dominictarrjoined
13:04:08  * dominictarrquit (Client Quit)
13:08:38  * paulfryzeljoined
13:10:22  * thlorenzquit (Remote host closed the connection)
13:12:55  * paulfryzelquit (Ping timeout: 245 seconds)
13:16:50  * ednapiranhajoined
13:22:47  * st_lukejoined
13:23:23  * mcollinajoined
13:24:17  * ramitosquit (Quit: Textual IRC Client: www.textualapp.com)
13:25:08  * levelbotquit (Remote host closed the connection)
13:25:29  * levelbotjoined
13:28:36  * ramitosjoined
13:47:07  * timoxleyjoined
13:48:28  * thlorenzjoined
13:55:31  * gwenbelljoined
14:08:00  * timoxleyquit (Remote host closed the connection)
14:13:59  * paulfryzeljoined
14:27:47  * st_lukequit (Remote host closed the connection)
14:37:26  * tmcwjoined
14:41:17  * mcollinaquit (Remote host closed the connection)
14:41:52  * mcollinajoined
14:41:55  * mcollinaquit (Read error: Connection reset by peer)
14:44:45  * soldairjoined
14:46:48  * st_lukejoined
14:48:39  * timoxleyjoined
14:51:02  * st_lukequit (Ping timeout: 240 seconds)
14:51:25  * st_lukejoined
14:55:26  * st_lukequit (Ping timeout: 240 seconds)
14:55:47  * jerrysvjoined
15:04:01  * st_lukejoined
15:04:21  * st_lukequit (Read error: Connection reset by peer)
15:07:21  * julianduquejoined
15:23:57  * st_lukejoined
15:26:47  * st_luke_joined
15:27:38  * st_luke_quit (Read error: Connection reset by peer)
15:28:14  * st_lukequit (Ping timeout: 240 seconds)
15:29:56  * st_lukejoined
15:32:32  * ednapiranhaquit (Remote host closed the connection)
15:33:45  * ednapiranhajoined
15:34:12  * st_luke_joined
15:34:14  * st_lukequit (Ping timeout: 240 seconds)
15:38:16  * st_lukejoined
15:38:38  * st_luke_quit (Ping timeout: 240 seconds)
15:39:17  * st_luke_joined
15:42:14  * st_lukequit (Ping timeout: 240 seconds)
15:42:21  * dubbanquit (Remote host closed the connection)
15:43:26  * st_luke_quit (Ping timeout: 240 seconds)
15:45:15  * st_lukejoined
15:50:04  * st_lukequit (Ping timeout: 256 seconds)
15:59:23  * dominictarrjoined
16:01:31  * jcrugzzjoined
16:05:10  * dominictarrquit (Quit: dominictarr)
16:05:46  * gwenbellquit (Ping timeout: 256 seconds)
16:11:50  * dominictarrjoined
16:16:40  * ednapiranhaquit (Remote host closed the connection)
16:18:07  * gwenbelljoined
16:20:20  * ednapiranhajoined
16:27:10  * mcollinajoined
16:28:21  * gwenbellquit (Ping timeout: 248 seconds)
16:41:58  * ednapiranhaquit (Remote host closed the connection)
16:42:39  * ednapiranhajoined
16:43:19  * mcollinaquit (Remote host closed the connection)
16:43:50  * mcollinajoined
16:48:06  * mcollinaquit (Ping timeout: 248 seconds)
16:51:40  * julianduquequit (Ping timeout: 245 seconds)
16:54:07  * dominictarrquit (Quit: dominictarr)
17:04:23  * mikealjoined
17:30:19  * mcollinajoined
17:35:29  * gwenbelljoined
17:36:55  * jxsonjoined
17:39:01  * jxsonquit (Read error: No route to host)
17:39:14  * jxsonjoined
17:39:31  * mcollinaquit (Ping timeout: 264 seconds)
17:43:33  * jxsonquit (Ping timeout: 248 seconds)
17:43:40  * keslajoined
17:45:09  * gwenbellquit (Ping timeout: 264 seconds)
17:47:40  * jxsonjoined
17:59:06  <mikeal>ok guys
17:59:10  <mikeal>and ladies
17:59:21  <mikeal>i'm giving a talk at Change.org tomorrow about node databases
17:59:33  <mikeal>and….. i have not prepared
17:59:36  <ednapiranha>ladies!
17:59:41  <ednapiranha>who else is a lady in here? :)
17:59:45  <mikeal>send me slides of existing things
18:00:32  <mikeal>ednapiranha: most of the lurkers have gender ambiguous names, i'm not going to make assumptions :)
18:00:46  <ednapiranha>lol
18:02:51  <jerrysv>mikeal: terraformer works as a geo-database toolkit, build your own
18:02:57  * mcollinajoined
18:04:11  <jerrysv>mikeal: i can send you my slides from osbridge if you want
18:04:18  <mikeal>that would be great
18:04:26  <mikeal>also, looking at terraformer cause this shit is awesome
18:04:28  <mikeal>the rtree
18:04:30  <mikeal>is that in-memory?
18:07:47  <mikeal>looks like it since it works in the browser
18:07:52  * mcollinaquit (Remote host closed the connection)
18:07:58  <mikeal>i would love to see a leveldown rtree :)
18:08:20  <mikeal>it would probably have to have a few extensions
18:08:27  * mcollinajoined
18:08:44  <jerrysv>mikeal: yeah, it's in memory, but i'm working on a new r-tree right now
18:08:53  <mikeal>in C?
18:09:29  <jerrysv>no, javascript
18:09:58  <jerrysv>it will work without all needing to be in memory
18:10:10  <jerrysv>so should work with leveldown (that was my plan)
18:10:19  <mikeal>nice
18:10:25  <jerrysv>https://github.com/JerrySievert/RTree
18:10:48  <jerrysv>is the pre-optimized prototype version - still need to add `remove`, `load` and `rebalance`
18:11:55  * dominictarrjoined
18:12:52  * mcollinaquit (Ping timeout: 256 seconds)
18:16:29  <mikeal>nice!
18:20:06  <soldair>anyone have any good links to implementations of atomic batch ops with ssts im having trouble picking a method for a "logdown" style leveldown
18:21:52  * jxsonquit (Remote host closed the connection)
18:22:31  * jxsonjoined
18:24:12  <soldair>the only way to write it at once is to find an active sst where all keys sort below all keys in the batch and write it in one go. it may be the only way that i can think of without keeping a "commit" key value per batch
18:27:59  * keslaquit (Ping timeout: 260 seconds)
18:32:07  * ednapiranhaquit (Remote host closed the connection)
18:38:56  * mcollinajoined
18:43:17  * mcollinaquit (Ping timeout: 248 seconds)
18:46:43  * gwenbelljoined
18:50:16  * dguttmanjoined
18:52:58  * mikealquit (Quit: Leaving.)
18:54:13  * mikealjoined
19:01:20  * Acconutjoined
19:01:36  * Acconutquit (Client Quit)
19:02:27  * ednapiranhajoined
19:02:40  * ednapiranhaquit (Read error: Connection reset by peer)
19:03:05  * ednapiranhajoined
19:09:35  <mikeal>soldair: i don't full get what you're trying to do
19:09:45  <mikeal>could you explain just a little more?
19:10:00  <mikeal>you want to do atomic operation per *what* and for what purpose?
19:11:16  * ednapiranhaquit (Ping timeout: 240 seconds)
19:11:53  * soldairquit (Ping timeout: 250 seconds)
19:15:46  * mikealquit (Quit: Leaving.)
19:21:18  * dominictarrquit (Quit: dominictarr)
19:39:26  * mcollinajoined
19:44:27  * mcollinaquit (Ping timeout: 268 seconds)
19:48:46  * jerrysvquit (Remote host closed the connection)
19:51:17  * jerrysvjoined
19:54:01  * mikealjoined
20:03:47  * mikeal1joined
20:03:50  * mikealquit (Read error: Connection reset by peer)
20:06:47  * tmcwquit (Remote host closed the connection)
20:07:38  * ednapiranhajoined
20:09:04  * tmcwjoined
20:15:50  * ednapiranhaquit (Ping timeout: 240 seconds)
20:19:11  * julianduquejoined
20:29:10  * mikeal1quit (Quit: Leaving.)
20:39:27  * mikealjoined
20:39:57  * mcollinajoined
20:44:14  * mcollinaquit (Ping timeout: 240 seconds)
20:49:31  * Acconutjoined
20:49:34  * Acconutquit (Client Quit)
20:58:08  * soldairjoined
20:58:11  * soldairpart
20:58:19  * soldairjoined
21:12:12  * ednapiranhajoined
21:16:25  * ednapiranhaquit (Ping timeout: 246 seconds)
21:18:26  * timoxleyquit (Remote host closed the connection)
21:27:07  * timoxleyjoined
21:40:27  * mcollinajoined
21:45:19  * mcollinaquit (Ping timeout: 268 seconds)
22:00:27  * thlorenzquit (Remote host closed the connection)
22:02:22  * thlorenzjoined
22:03:45  * dominictarrjoined
22:13:10  * paulfryzelquit (Remote host closed the connection)
22:14:46  * dscapejoined
22:14:51  <mikeal>DSCAPE!
22:14:52  <dscape>halo
22:14:55  <dscape>rofl
22:15:02  * brianloveswordsquit (Excess Flood)
22:15:03  <dscape>im teaching this to kids
22:15:13  <dscape>have to make it super simple looking
22:15:20  <mikeal>yeah, this shit is low level, might want to use something a bit up the stack
22:15:47  <dscape>maybe i need to write my own
22:15:54  <mikeal>maybe
22:15:54  <dscape>module to show kids a simple api
22:16:05  * brianloveswordsjoined
22:16:06  <mikeal>if you are going to get in to sorting
22:16:10  <dscape>really i wanted something like
22:16:13  <mikeal>i would suggest bytewise
22:16:25  <mikeal>cause it's harder to wrap your head around slicing without arrays
22:16:36  <mikeal>if you're trying to hack it with strings it's just even more complicated
22:17:27  <mikeal>like
22:17:33  <mikeal>you're trying to show nesting
22:17:37  <mikeal>without a fucking nest :)
22:18:15  <mikeal>also
22:18:20  <mikeal>if you're just teaching the basics
22:18:24  <mikeal>stick with unique keys
22:18:30  <mikeal>and just write a little document store
22:18:33  <mikeal>that's SUPER simple
22:18:40  <mikeal>don't need to understand any of this hsit
22:18:44  * tmcwquit (Remote host closed the connection)
22:18:59  <dscape>mikeal: they are basically building that ranking example i said
22:19:07  <dscape>athletes race multiple races
22:19:13  <dscape>and they want to do a phone app
22:19:19  <dscape>that alerts them when they get beaten
22:19:20  <dscape>lol
22:19:26  <mikeal>that could still be unique
22:19:35  <dscape>also, they decided scraping is cool
22:19:40  <mikeal>just make it ["athleteName", "raceID"]
22:19:52  <mikeal>should use bytewise in this case tho
22:19:53  <dscape>cause coding for a 12 year old that knows nothing is easy aparently :P
22:20:12  <dscape>well, but i need order by time
22:20:22  <dscape>but that works
22:20:28  <dscape>just a more complex index
22:20:35  <dscape>its like showing the guts and stuff
22:20:59  <mikeal>the guts are still on display cause it's still being worked out
22:21:10  <mikeal>if there were lots of higher order things already i'd be scared
22:21:11  <dscape>ideally i would want
22:22:46  <dscape>range(function (doc) { return 'athlete:u17:w:100dash' }, {type: 'string', collation: 'base'})
22:22:59  <dscape>and then just query that by whatever i called it :)
22:23:32  <dscape>range.query('athlete:u17:w:100dash') // sorted list, accounting for dups
22:23:33  <mikeal>yeah, you could have that, but better
22:23:39  <mikeal>dude, use arrays
22:23:42  <mikeal>:)
22:23:57  <dscape>is there anything like this?
22:23:58  <mikeal>seriously, you're going to get them stuck in string slice hell
22:24:08  <mikeal>it's like 10 lines of code
22:24:21  <mikeal>lemme write this for you real quick
22:24:22  <dscape>i can see that - you are right
22:24:30  <dscape>i just want them to understand what they are programing
22:25:12  <dscape>mikeal: did you see my latest blog post?
22:25:20  <dscape>url minimizer with leveldb :P
22:25:29  <dscape>got a bunch of hits cause got famous on hackernews
22:25:38  <dscape>no idea how though, i thought i was in the black list
22:26:34  <mikeal>i saw the docker one
22:27:58  <dscape>yup, features a node app with level + a dinosaur in a spaceship
22:28:48  <dscape>mikeal max would love to teach these kids
22:28:54  <dscape>its 8-16 year old
22:28:57  <dscape>using public apis
22:29:07  <mikeal>gimme like 5 more minutes, i'll have your index for you
22:29:10  <dscape>to do good :D
22:29:13  <dscape>its awesome
22:29:27  <dscape>awesomesauce
22:29:27  <jerrysv>heya dscape
22:29:33  <dscape>hey jerrysv
22:29:34  <dscape>:)
22:29:39  <dscape>how's portland?
22:29:54  <jerrysv>dscape: awesome :) how have you been?
22:30:01  <dscape>good, wet
22:30:03  <dscape>both
22:30:03  <dscape>:)
22:30:07  <dscape>(london)
22:30:13  <jerrysv>not wet here, what's going on in london?
22:30:24  <dscape>hot weather, tropical rain
22:30:30  <dscape>aparently its a thing in london too
22:30:57  <jerrysv>are you coming to rtc?
22:31:08  <dscape>jerrysv: nop
22:31:11  <jerrysv>bummer
22:31:23  <dscape>im trying to fly less
22:31:49  <jerrysv>don't blame you - i took a moratorium when laurie and i moved
22:32:03  <jerrysv>jsconf was the exception, because jsconf
22:32:13  <dscape>it was pretty epic
22:34:28  * jxsonquit (Remote host closed the connection)
22:38:06  * jxsonjoined
22:39:32  <mikeal>dscape: https://github.com/mikeal/dscape-mind-explosion-database
22:39:42  <mikeal>also, npm install dscape-mind-explosion-database
22:39:46  <dscape>mikeal: ROFL
22:39:52  <dscape>my students are going to love that name
22:39:53  <dscape>ahah
22:40:04  <dscape>they are like
22:40:15  <mikeal>whoops, forgot to push readme
22:40:18  <mikeal>done
22:40:18  <dscape>"how many followers do you have on twitter? more than a 100?"
22:40:20  <dscape>lol
22:40:29  <dscape>and "do you work for a bank or something?
22:40:37  <dscape>its awesome
22:41:02  * mcollinajoined
22:41:05  <rvagg>mikeal: https://github.com/rvagg/node-levelup/wiki/Resources some presentations you can pull stuff from for your talk tomorrow at change.org
22:41:15  <mikeal>that db is a little different than what you said, the writes are a little more flexible
22:41:29  <mikeal>i'll add you as a committer so you can improve it as you wish
22:42:10  <mikeal>rvagg: i found those, thanks tho :)
22:43:55  * dominictarrquit (Quit: dominictarr)
22:45:28  <mikeal>dscape: go ahead and add all the sugar that you think you'll need to teach with
22:45:34  <mikeal>you're a collaborator on the project now
22:45:41  <mikeal>how do i give you access to publish to npm?
22:45:45  * mcollinaquit (Ping timeout: 268 seconds)
22:46:48  <dscape>mikeal: npm addsomething
22:46:51  <dscape>i always forget
22:46:55  <nathan7>mikeal: npm owner add <username> <pkg>
22:47:12  <dscape> npm owner add <username> <pkg>
22:47:15  <nathan7>too late q=
22:47:19  <mikeal>done
22:47:52  <mikeal>that should be enough to answer all your "how do do i do this" questions
22:49:17  * tmcwjoined
22:51:02  <dscape>mikeal: did you try the docker stuff?
22:51:09  <mikeal>nope
22:51:09  <dscape>it will blow your mind
22:51:14  <mikeal>i don't have much interest in it
22:51:20  <dscape>yet* :)
22:51:20  <mikeal>it doesn't solve a problem i really have
22:51:28  <dscape>its a problem everyone has
22:51:33  <mikeal>my only dependency on a machine is node
22:51:42  <mikeal>so all that machine management stuff isn't very useful
22:51:55  <dscape>you dont use anything else?
22:52:00  <dscape>or scale your node process?
22:52:01  <dscape>or balance it
22:52:04  <dscape>or terminate ssl?
22:52:14  <mikeal>i load balance, with my load balancer, which is also node
22:52:25  <mikeal>http://github.com/mikeal/hostproxy
22:52:34  <dscape>no websockets i guess?
22:52:38  <dscape>also no scaling ?
22:52:50  <dscape>i guess if thats the case
22:52:55  <dscape>it makes sense for you not to care
22:53:07  <dscape>but this is awesome, e.g. installing couchdb properly configured
22:53:11  <dscape>in seconds
22:53:16  <dscape>behind stuf
22:53:22  <dscape>with docker pull dscape/couchdb
22:53:32  <dscape>s/stuf/stud/
22:55:18  * ednapiranhajoined
22:56:34  <mikeal>we use engine.io but websockets are off
22:56:45  <mikeal>but even if they were, i wouldn't need this
22:57:05  <mikeal>couchdb is relagated to far off place in our infrastructure
22:57:10  <mikeal>because it's like nothing else
22:57:20  <mikeal>and i'm just waiting for the day that i can get rid of it, but that's a ways out still
22:58:02  <dscape>mikeal: im using primus for ws now
22:58:08  <dscape>its strange to have an abstraction on top
22:58:17  <dscape>but once i started using it i liked it
22:58:20  * tmcwquit (Ping timeout: 245 seconds)
22:58:24  <dscape>cause i stopped worrying about compatability
22:58:26  <mikeal>engine.io has been great
22:58:28  <dscape>the api is always the same
22:58:32  <dscape>arnout does the work
22:58:32  <mikeal>just a stream
22:58:32  <dscape>lol
22:58:44  <mikeal>we have like 10 libraries on top of it that do all the real work
22:58:51  <mikeal>but it's much more understandable
22:59:11  <dscape>sounds like primus then
22:59:31  <dscape>have you read, start small, stay small?
22:59:39  <dscape>that's how im doing tasks these days
22:59:43  <dscape>task avoidance
22:59:50  <dscape>by delegation
23:00:13  <mikeal>sounds like how i live my life
23:00:36  <dscape>http://www.youtube.com/watch?v=dzvz1j3h4Xk
23:06:42  * mcollinajoined
23:23:47  * paulfryzeljoined
23:25:20  * tmcwjoined
23:28:21  * paulfryzelquit (Ping timeout: 256 seconds)
23:30:46  * tmcwquit (Ping timeout: 256 seconds)
23:34:34  <mikeal>Raynos: i think you're trying to calm me down by confirming my paranoia is correct :)
23:35:06  <Raynos>mikeal: ?
23:35:19  <mikeal>on the nodejs mailing list :)
23:35:25  <Raynos>mikeal: yes
23:35:29  <Raynos>you cant use generators for both types
23:35:38  <mikeal>well, you *can*, that's the concern :)
23:35:39  <Raynos>I tried to do that :p and my head exploded
23:35:54  <Raynos>like wouldn't it be nice if I could `for (var v of stream())` and then I realised :(
23:36:25  <mikeal>that's the kind of stuff i used to run in to in tests in the Mozilla codebase
23:36:31  <mikeal>like 5 years ago
23:36:50  <Raynos>yeah that sounds like rage
23:37:06  <mikeal>that kinda ruined me
23:37:10  <mikeal>i've calmed down a lot
23:37:34  <mikeal>but i was *really* against them in ES6 because in the entire code base you'd be hard pressed to find a usage of them where it made the code not worse
23:37:38  <mikeal>but then i realized
23:37:44  <mikeal>that's not necessarily the fault of generators
23:37:59  <mikeal>probably the fault of C programmers writing really bad javascript
23:38:18  <mikeal>and not necessarily indicative of what javascript programmers will do with them
23:39:29  <Raynos>I dont actually understand
23:39:37  <Raynos>how you can use generators for the both types in the same module
23:39:51  <Raynos>I would assume that iterators get used for the sync style
23:40:00  <Raynos>and generator functions get used for the async style (wrapped in some kind of thing)
23:40:27  <Raynos>mikeal: I think this problem can be solved by having the community push for wrapping generators, right now co, suspend & pals all do things like `asyncLib(function* () {})`
23:40:53  <mikeal>you're kind of saying "the community should not do clever things for no reason"
23:41:05  <mikeal>and realize that you're talking people who *love* being clever
23:41:53  <mikeal>example: in engine.io they use a function exports but they reset the __proto to the original exports object
23:42:02  <mikeal>so, they export a function that has not call() or apply() method
23:42:07  <mikeal>cause…. clever
23:42:20  <mikeal>programmers are not to be trusted :)
23:47:56  * thlorenzquit (Remote host closed the connection)
23:49:19  * gwenbellquit (Ping timeout: 256 seconds)
23:55:28  * mcollinaquit (Remote host closed the connection)
23:55:59  * jerrysvquit (Remote host closed the connection)
23:57:01  * tmcwjoined