00:00:02  * ircretaryquit (Remote host closed the connection)
00:00:11  * ircretaryjoined
00:00:27  * coderzachjoined
00:02:54  * tmcwjoined
00:07:14  * tmcwquit (Ping timeout: 240 seconds)
00:10:38  * chapelquit (Ping timeout: 240 seconds)
00:13:14  * chapeljoined
00:15:21  * jergasonquit (Read error: Connection reset by peer)
00:15:36  * jergasonjoined
00:23:03  * mikolalysenkoquit (Ping timeout: 268 seconds)
00:28:26  * mikolalysenkojoined
00:29:40  * mikealquit (Read error: Connection reset by peer)
00:30:27  * jergasonquit (Read error: Connection reset by peer)
00:30:52  * jergasonjoined
00:33:34  <substack>st_luke, mbalho: will both of you be around tomorrow to figure out the rent issue at stanza?
00:33:39  * substackjust got back
00:34:00  * coderzachquit (Quit: coderzach)
00:34:07  * whit537joined
00:35:28  * fotoveritejoined
00:36:05  * timoxleyjoined
00:42:26  <st_luke>substack: I'll be around tonight/tomorrow night
00:42:34  * jergasonquit (Read error: Connection reset by peer)
00:42:55  * jergasonjoined
00:48:50  * mikealjoined
01:04:36  * thlorenz_quit (Remote host closed the connection)
01:08:16  * kevino80joined
01:13:39  * mikealquit (Quit: Leaving.)
01:16:19  * stagasquit (Ping timeout: 246 seconds)
01:17:39  * calvinfoquit (Quit: Leaving.)
01:18:49  * mikealjoined
01:27:01  * thlorenzjoined
01:28:41  * mikealquit (Quit: Leaving.)
01:31:02  * thlorenzquit (Ping timeout: 240 seconds)
01:32:52  <mbalho>substack: what do we need to do?
01:35:46  <substack>mbalho: rent + utilities for this month, there was a miscommunication
01:36:38  <substack>I have a checkbook if that helps
01:37:17  <mbalho>substack: whats the total amount? do we have to pay a deposit?
01:37:38  * tmcwjoined
01:39:34  <substack>mbalho: I'm not sure, but check the email thread
01:39:57  <substack>we can pay the rent for this month and figure out the rest later
01:41:06  * kumavisquit (Quit: kumavis)
01:42:25  <substack>mbalho: will you be around tonight or tomorrow morning?
01:43:25  <mbalho>substack: wasnt planning on it, what do you need from me?
01:44:53  * fotoveritequit (Quit: fotoverite)
01:45:14  <substack>cash or check so I can cobble together the rent for this month
01:46:05  <mbalho>substack: there should be a denim wallet on top of my dresser, can you extract dollars from that and let me know if its adequate?
01:47:32  <substack>ok I can do that
01:49:47  <dimadima>logistiques
01:51:47  <substack>not sure what I'm supposed to be looking for but I see salad
01:51:53  <substack>ok whoops hah
01:52:00  <substack>wrong channel >_<
01:52:02  <mbalho>lol
01:53:14  <dimadima>>_>
01:54:42  * fotoveritejoined
02:00:01  <chapel>its like deja vu
02:00:11  <chapel>mbalho and his denim wallet on top of his dresser
02:00:31  <mbalho>lol
02:00:54  <mbalho>im susceptible to would be stackvm thieves
02:02:46  * calvinfojoined
02:03:28  * thlorenzjoined
02:07:50  * thlorenzquit (Ping timeout: 240 seconds)
02:12:28  * mikealjoined
02:15:00  * kevino80quit (Read error: Connection reset by peer)
02:17:33  * kevino80joined
02:21:59  * jergasonquit (Remote host closed the connection)
02:29:56  * tmcw_joined
02:29:57  * tmcwquit (Read error: Connection reset by peer)
02:36:19  * kevino80quit (Remote host closed the connection)
02:38:04  * kumavisjoined
02:39:48  <substack>isaacs: does your recent post about the future of node mean that .on('end', fn) without an .on('data', fn) will work now?
02:41:45  * stagasjoined
02:52:51  * ins0mniaquit (Ping timeout: 276 seconds)
03:03:13  * st_lukequit (Remote host closed the connection)
03:04:06  * thlorenzjoined
03:05:19  * st_lukejoined
03:06:34  * tmcw_quit (Remote host closed the connection)
03:08:33  * thlorenzquit (Ping timeout: 264 seconds)
03:11:47  * fallsemojoined
03:16:26  * st_lukequit (Remote host closed the connection)
03:20:59  * fallsemoquit (Quit: Leaving.)
03:21:58  * fallsemojoined
03:22:30  * mikealquit (Quit: Leaving.)
03:23:23  * fallsemoquit (Client Quit)
03:30:54  * stagasquit (Read error: Connection reset by peer)
03:32:36  * jergasonjoined
03:32:47  * tilgoviquit (Remote host closed the connection)
03:35:17  * thlorenzjoined
03:37:40  * jergasonquit (Ping timeout: 264 seconds)
03:39:35  * thlorenzquit (Ping timeout: 245 seconds)
03:54:52  <isaacs>substack: no, something will have to start the flow.
03:54:58  <isaacs>substack: but, you can go BACK to not-flowing
03:55:06  <isaacs>substack: and in any not-flowing mode, you can call read()
03:55:07  <substack>right, makes sense
03:55:16  <isaacs>substack: and any read() that returns a chunk, will also emit 'data', so you can passively listen
03:55:20  <isaacs>this is all already in master.
03:55:29  <isaacs>my "present tense" = "the not-yet-released stable version"
03:55:35  <substack>maybe I should make a module called `onend`
03:55:54  <substack>because I find myself not caring about the data of a stream at all, I just want to know when it's finished
03:55:58  <isaacs>iow, the stable version that is closest in time in absolute temporal distance
03:56:15  <isaacs>substack: function onend(stream, fn) { stream.on('end', fn); stream.resume() }
03:59:11  * defunctzombiechanged nick to defunctzombie_zz
04:05:14  * soldairjoined
04:07:33  <ik>c/,,\
04:08:00  * defunctzombie_zzchanged nick to defunctzombie
04:28:44  * thlorenzjoined
04:28:50  * mikolalysenkoquit (Ping timeout: 246 seconds)
04:28:56  * calvinfoquit (Quit: Leaving.)
04:33:36  * thlorenzquit (Ping timeout: 276 seconds)
04:39:38  * wolfeidaujoined
04:40:07  * soldairquit (Ping timeout: 250 seconds)
04:41:09  * jergasonjoined
04:54:31  * dguttmanquit (Quit: dguttman)
04:57:50  * fallsemojoined
04:58:38  * st_lukejoined
04:59:52  * mcollinajoined
05:12:08  * jergasonquit (Remote host closed the connection)
05:12:59  * thlorenzjoined
05:15:05  * wolfeidauquit (Remote host closed the connection)
05:15:39  * calvinfojoined
05:17:48  * thlorenzquit (Ping timeout: 276 seconds)
05:22:19  * fallsemoquit (Quit: Leaving.)
05:50:42  * jxsonjoined
05:51:21  * shamaquit (Remote host closed the connection)
05:52:07  * jxsonquit (Read error: Connection reset by peer)
05:52:45  * jxsonjoined
06:01:31  <substack>juliangruber: your hyperglue patch seems a bit out of sync with hyperglue master
06:02:41  * thlorenzjoined
06:02:49  <juliangruber>substack: you mean hyperstream?
06:03:17  <juliangruber>substack: it should be based off current master
06:05:50  <substack>oh sorry hah
06:06:01  <substack>I think I was just getting confused merging the wrong repo
06:07:21  * thlorenzquit (Ping timeout: 264 seconds)
06:08:57  <juliangruber>btw this shouldn't be merged yet
06:09:04  <juliangruber>couldn't fix it though
06:09:12  <juliangruber>but maybe with some help :)
06:09:47  <juliangruber>substack: maybe eventually all the hyper* module become one
06:10:47  <substack>trumpet can do a lot of the stuff that hyperstream can do now
06:10:51  * whit537quit (Ping timeout: 268 seconds)
06:12:39  * jxson_joined
06:12:46  * mk30joined
06:14:13  * whit537joined
06:15:00  * jxsonquit (Ping timeout: 245 seconds)
06:16:36  * jxson_quit (Remote host closed the connection)
06:22:45  * jergasonjoined
06:28:00  * jergasonquit (Ping timeout: 276 seconds)
06:29:19  * timoxleyquit (Read error: Connection reset by peer)
06:30:35  * timoxleyjoined
06:30:48  * calvinfoquit (Quit: Leaving.)
06:32:50  * mcollinaquit (Remote host closed the connection)
06:33:48  * blobaumquit (Quit: Leaving)
06:34:05  * st_lukequit (Ping timeout: 240 seconds)
06:40:20  * st_lukejoined
06:51:19  * thlorenzjoined
06:51:51  * mk30quit (Ping timeout: 250 seconds)
06:52:09  * kumavisquit (Quit: kumavis)
06:55:26  * thlorenzquit (Ping timeout: 240 seconds)
06:58:46  * st_lukequit (Remote host closed the connection)
07:02:38  * st_lukejoined
07:13:22  * mirkokieferjoined
07:20:32  * thlorenzjoined
07:23:27  * jcrugzzquit (Ping timeout: 240 seconds)
07:24:38  * thlorenzquit (Ping timeout: 240 seconds)
07:29:29  <st_luke>substack: are you at the house?
07:44:13  * thlorenzjoined
07:45:39  * thlorenz_joined
07:45:39  * thlorenzquit (Read error: Connection reset by peer)
07:49:50  * thlorenz_quit (Ping timeout: 240 seconds)
07:52:34  * jcrugzzjoined
07:52:57  * st_lukequit (Remote host closed the connection)
07:55:21  * st_lukejoined
07:58:04  * jcrugzzquit (Ping timeout: 264 seconds)
08:39:09  * thlorenzjoined
08:43:57  * thlorenzquit (Ping timeout: 264 seconds)
08:55:44  * mirkokieferquit (Quit: mirkokiefer)
08:59:35  * st_lukequit (Remote host closed the connection)
09:02:19  * st_lukejoined
09:18:33  * st_lukequit (Remote host closed the connection)
09:20:26  * damonoehlmanjoined
09:31:38  * dominictarrjoined
09:39:44  * thlorenzjoined
09:44:33  * thlorenzquit (Ping timeout: 264 seconds)
09:56:48  * thlorenzjoined
09:57:55  * kevino80joined
10:00:52  * timoxleyquit (Ping timeout: 268 seconds)
10:01:51  * thlorenzquit (Ping timeout: 276 seconds)
10:05:28  * kevino80quit (Remote host closed the connection)
10:05:48  * timoxleyjoined
10:07:22  * nicholasfquit (Read error: Connection reset by peer)
10:07:52  * nicholasfjoined
10:10:09  * st_lukejoined
10:11:36  * timoxleyquit (Ping timeout: 276 seconds)
10:14:03  * thlorenzjoined
10:14:52  * st_lukequit (Ping timeout: 264 seconds)
10:17:03  * timoxleyjoined
10:18:14  * thlorenzquit (Ping timeout: 240 seconds)
10:20:56  * mirkokieferjoined
10:30:31  * thlorenzjoined
10:31:48  * defunctzombiechanged nick to defunctzombie_zz
10:31:50  * thlorenzquit (Read error: Connection reset by peer)
10:32:23  * thlorenzjoined
10:33:57  * thlorenz_joined
10:33:58  * thlorenzquit (Read error: Connection reset by peer)
10:38:14  * thlorenz_quit (Ping timeout: 240 seconds)
10:39:28  * thlorenzjoined
10:41:08  * thlorenz_joined
10:41:09  * thlorenzquit (Read error: Connection reset by peer)
10:43:28  * thlorenzjoined
10:43:38  * thlorenz_quit (Read error: Connection reset by peer)
10:44:37  * thlorenz_joined
10:44:37  * thlorenzquit (Read error: Connection reset by peer)
10:46:40  * thlorenz_quit (Read error: Connection reset by peer)
10:46:48  * thlorenzjoined
10:48:13  * thlorenz_joined
10:48:13  * thlorenzquit (Read error: Connection reset by peer)
10:50:25  * thlorenz_quit (Read error: Connection reset by peer)
10:50:30  * thlorenzjoined
10:52:08  * thlorenz_joined
10:52:08  * thlorenzquit (Read error: Connection reset by peer)
10:56:13  * thlorenz_quit (Ping timeout: 240 seconds)
10:58:22  * mirkokieferquit (Quit: mirkokiefer)
11:05:00  * mint_xianquit (Ping timeout: 245 seconds)
11:05:17  * mint_xianjoined
11:06:14  * Altreusquit (Ping timeout: 264 seconds)
11:18:52  * Altreusjoined
11:20:28  * thlorenzjoined
11:25:04  * thlorenzquit (Ping timeout: 264 seconds)
11:32:33  * ins0mniajoined
11:44:35  * mirkokieferjoined
11:47:30  * maksimlinquit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302])
12:05:42  * mirkokieferquit (Quit: mirkokiefer)
12:06:32  <dominictarr>http://www.mit.edu/newsoffice/2013/encryption-is-less-secure-than-we-thought-0814.html
12:14:42  * Kesslerjoined
12:21:01  * thlorenzjoined
12:22:40  * damonoehlmanquit (Quit: WeeChat 0.4.1)
12:23:31  * mirkokieferjoined
12:24:14  * mirkokieferquit (Client Quit)
12:25:11  * mirkokieferjoined
12:25:57  * thlorenzquit (Ping timeout: 264 seconds)
12:30:00  * Kesslerquit (Ping timeout: 245 seconds)
12:36:08  * fallsemojoined
12:43:15  * kevino80joined
12:47:35  * tmcwjoined
12:50:13  * Kesslerjoined
12:50:20  * Kesslerquit (Remote host closed the connection)
12:55:04  * fallsemoquit (Ping timeout: 264 seconds)
12:57:35  * thlorenzjoined
13:02:33  * thlorenzquit (Ping timeout: 276 seconds)
13:03:20  * fotoveritequit (Quit: fotoverite)
13:03:50  * stagasjoined
13:13:38  * Altreusquit (Changing host)
13:13:38  * Altreusjoined
13:19:46  * timoxleyquit (Ping timeout: 246 seconds)
13:25:12  * tmcwquit (Remote host closed the connection)
13:25:14  * kevino80quit (Remote host closed the connection)
13:26:18  * tmcwjoined
13:27:18  * tmcwquit (Remote host closed the connection)
13:31:33  * timoxleyjoined
13:37:48  * thlorenzjoined
13:38:22  * tmcwjoined
13:43:26  * jergasonjoined
13:48:56  * stagasquit (Ping timeout: 256 seconds)
13:50:17  * stagasjoined
13:57:03  * stagas_joined
13:57:55  * stagasquit (Ping timeout: 245 seconds)
13:57:59  * stagas_changed nick to stagas
13:59:10  * timoxleyquit (Ping timeout: 245 seconds)
14:02:28  * timoxleyjoined
14:03:00  * ednapiranhajoined
14:03:38  * kevino80joined
14:05:02  * stagasquit (Ping timeout: 240 seconds)
14:11:17  * fallsemojoined
14:17:03  * jcrugzzjoined
14:20:46  * mikolalysenkojoined
14:23:30  <dominictarr>rvagg: you there?
14:24:16  <dominictarr>ralphtheninja: ping?
14:27:20  <ralphtheninja>dominictarr: pong
14:27:35  <dominictarr>ralphtheninja: can you help me with a C++ question?
14:27:39  <ralphtheninja>sre
14:27:40  <ralphtheninja>sure
14:27:45  <ralphtheninja>I can try at least :)
14:28:09  <dominictarr>what this: https://github.com/rvagg/node-leveldown/blob/master/src/iterator.cc#L17-L55
14:28:24  <dominictarr>is it the Iterator constructor declaration?
14:28:45  <dominictarr>what does the stuff after the : do?
14:28:57  <ralphtheninja>dominictarr: it's an initializer list
14:28:58  <dominictarr>Iterator::Iterator (…) : ???? { …}
14:29:13  <dominictarr>so, those set the defaults?
14:29:17  <ralphtheninja>yes
14:30:07  <ralphtheninja>it's a way to init variables .. you could just set them in the body of the constructor method but if you have classes that you want to call constructors on you must use the initializer list
14:30:31  <dominictarr>I'm confused how it's database(database)
14:30:38  <dominictarr>is database a function and a value?
14:31:19  <ralphtheninja>this is confusing I know .. the pattern is like this memberVariable(value)
14:31:30  <ralphtheninja>where memberVariable is a class member
14:31:52  <dominictarr>oh okay, but how come it's setting the value to itself?
14:31:54  <ralphtheninja>and value is a value to init with .. the initializer list has a special syntax since you can't do 'variable = value'
14:31:58  <ralphtheninja>it's not
14:32:06  <dominictarr>where does the value come from?
14:32:36  <ralphtheninja>what's confusing here is that the class member has the same name as the parameter to the constructor
14:32:55  <ralphtheninja>I usually give class members names like database_
14:33:08  <ralphtheninja>and write database_(database) .. then it's more apparent
14:33:40  <dominictarr>rrright
14:33:53  <dominictarr>so it's sugar for database = _database
14:34:03  <ralphtheninja>database_ = database
14:34:10  <ralphtheninja>where database_ is the member
14:34:14  <dominictarr>right
14:34:21  <ralphtheninja>and database is the variable into the constructor call
14:34:21  <dominictarr>okay got it. thanks.
14:34:35  <ralphtheninja>np
14:35:06  <dominictarr>I'll probably have more questions soon, trying to tackle this https://github.com/rvagg/node-levelup/issues/174
14:35:19  <ralphtheninja>sure, just ping me
14:40:37  * dguttmanjoined
14:42:43  * AvianFlujoined
14:44:15  * stagasjoined
14:48:01  <dominictarr>ralphtheninja: do you have implicit boolean checks like in javascript
14:48:12  <dominictarr>like if(start) ?
14:48:40  <dominictarr>where start is evaluated to false if it's a null pointer?
14:49:09  <dominictarr>oh, hmm, looks like I can do start == null
14:49:12  <dominictarr>sorry, NULL
14:49:53  <ralphtheninja>you can do if (start) or if (!start) etc
14:50:18  <ralphtheninja>works for booleans, pointers, integers
14:53:27  <ralphtheninja>you usually write 'if (!start)' instead of 'if (start == NULL)' but it's just a matter of taste really
14:54:22  <AvianFlu>what language are y'all talking about?
14:54:32  <ralphtheninja>c++
14:59:17  <AvianFlu>word, yeah
15:03:44  <AvianFlu>I'M DISAPPOINTED THAT IT ISN'T LOUDBOTSCRIPT
15:03:45  <LOUDBOT>IN OTHER WORDS, TRICKLE-DOWN GOVERNMENT IS FUCKING EXACTLY WHAT CREATES JOBS
15:03:53  <ralphtheninja>hehe
15:07:07  * whit537quit (Quit: whit537)
15:08:08  * whit537joined
15:11:07  * kumavisjoined
15:13:07  <dominictarr>ralphtheninja: is there a thing like Math.max?
15:13:25  <dominictarr>hmm
15:15:31  <ralphtheninja>dominictarr: max of two doubles?
15:15:47  <dominictarr>ah, no strings - no I don't need that
15:15:50  * whit537quit (Ping timeout: 245 seconds)
15:15:52  <ralphtheninja>ok
15:16:50  * whit537joined
15:21:25  <mirkokiefer>anyone who has an opinion on which modules to use for working with mysql?
15:21:57  <mirkokiefer>for tasks like table creation, schema migration and possibly ORM
15:22:15  <mirkokiefer>sequelize and jugglingdb seem to be popular
15:24:35  <dominictarr>ralphtheninja: it's compiling!
15:24:41  <dominictarr>but does it work?
15:25:27  <ralphtheninja>dominictarr: compiling is a good start :)
15:27:56  <dominictarr>ralphtheninja: how do I log a std:string?
15:29:12  <ralphtheninja>printf("%s\n", str.c_str());
15:29:42  <ralphtheninja>thats the c-style
15:29:53  <dominictarr>there is another one with << rigth?
15:30:23  <ralphtheninja>cout << str << endl;
15:30:52  <ralphtheninja>printf probably works out of the box though
15:56:49  * shamajoined
15:57:23  * kumavisquit (Quit: kumavis)
15:58:19  * tilgovijoined
16:00:08  <jesusabdullah>mirkokiefer: I'd just use the raw client
16:00:23  <jesusabdullah>mirkokiefer: there are also libraries for generating the text queries, at least one anyway
16:00:25  * dominictarrquit (Quit: dominictarr)
16:00:31  <jesusabdullah>mirkokiefer: that seems like the right balance to me :)
16:02:14  <mirkokiefer>jesusabdullah: do you remember which library it is?
16:02:27  <mirkokiefer>I've been looking for a sql generator
16:02:57  <mirkokiefer>sequelize has one but its a huge module
16:03:45  <jesusabdullah>mirkokiefer I don't :( :(
16:07:24  <mirkokiefer>ok thanks anyway :)
16:09:27  <jcrugzz>mirkokiefer: https://npmjs.org/package/mysql is supposed to be fast from what ive heard
16:09:36  <jcrugzz>havent ventured into sql land in a long time
16:09:37  * calvinfojoined
16:10:43  <mirkokiefer>jcrugzz: yes I'm using the module - I'm just looking for some sql abstractions in js
16:10:53  <jcrugzz>gotcha
16:11:03  * AvianFluquit (Remote host closed the connection)
16:11:03  <jcrugzz>yea ORM layers are tricky
16:11:10  <mirkokiefer>writing inline sql in js is a pain...
16:11:11  <jcrugzz>they usually just make things slower
16:11:22  <jcrugzz>well thats why id argue not using sql :p
16:11:33  <mirkokiefer>I'd love to not use it :)
16:11:54  <jcrugzz>whats causing the dependence then?
16:12:27  <mirkokiefer>well I'm writing an http wrapper about an existing mysql backend
16:12:35  <mirkokiefer>to get rid of a crappy php interface to it :)
16:14:38  <jcrugzz>mirkokiefer: ahh ok, steps in the right direction :)
16:14:59  <mirkokiefer>yes once everyone in the company is using my http interface I might even get rid of mysql ;)
16:16:25  * kumavisjoined
16:19:57  * timoxleyquit (Remote host closed the connection)
16:22:42  * fallsemoquit (Quit: Leaving.)
16:25:00  * mikolalysenkoquit (Ping timeout: 245 seconds)
16:28:22  * mikolalysenkojoined
16:29:23  * fallsemojoined
16:41:25  * AvianFlujoined
16:42:27  * soldairjoined
16:49:05  * AvianFluquit (Read error: Operation timed out)
16:52:17  * timoxleyjoined
16:53:17  * kumavisquit (Quit: kumavis)
16:54:08  * timoxley_joined
16:55:21  * timoxley_quit (Read error: Connection reset by peer)
16:55:35  * timoxleyquit (Read error: Connection reset by peer)
16:55:36  * timoxley_joined
16:57:11  * timoxleyjoined
16:57:37  * fotoveritejoined
16:58:32  * timoxleyquit (Read error: Connection reset by peer)
16:58:43  * timoxleyjoined
17:00:12  * timoxleyquit (Read error: Connection reset by peer)
17:00:14  * timoxle__joined
17:00:27  * timoxley_quit (Ping timeout: 276 seconds)
17:00:59  <dimadima>hahah i had no idea substack popularized module.exports = function() {} (watching Mikeal Rogers, LXJS 2012 on youtube.) hah!
17:01:02  <dimadima>man
17:01:43  * timoxleyjoined
17:02:51  * timoxle__quit (Read error: Connection reset by peer)
17:03:03  * timoxleyquit (Read error: Connection reset by peer)
17:03:18  * timoxleyjoined
17:04:20  * timoxleyquit (Remote host closed the connection)
17:05:58  <soldair>substack pattern =)
17:07:44  <dimadima>right? =)
17:11:14  <jesusabdullah>I would not give Sub singular credit for that one
17:11:46  <jesusabdullah>The way I remember it, the community reached a concensus on that one. Sub was just one of the early proponents of that "pattern"
17:11:53  <jesusabdullah>I COULD BE WRONG but I seriously doubt it
17:12:06  <dimadima>oh he didn't give singular credit
17:12:32  <dimadima>yeah pretty much what you said, plus, uh, the polificness
17:12:36  <dimadima>if that's the word
17:12:45  <jesusabdullah>prolification
17:12:51  <dimadima>proliferation
17:12:57  <jesusabdullah>lulz
17:12:57  <dimadima>:D
17:13:11  <jesusabdullah>Yeah I suppose sub writes enough opan saurce that he can start a one man trend
17:14:23  <mbalho>hes the ralph lauren of node
17:15:06  <soldair>ha
17:15:18  <jesusabdullah>hahaha
17:15:37  <jesusabdullah>Remember Will Ferrel's character in Zoolander?
17:15:42  <jesusabdullah>I call dibs on being that guy
17:15:51  <jesusabdullah>the "will ferrel's character in Zoolander" of node
17:16:01  <soldair>=) lol
17:16:15  <jesusabdullah>**I** invented the **PIANO TIE of NODE**
17:16:23  * yorickjoined
17:17:27  <soldair>looks like both piano-tie and pianotie are free on npm better jump on it
17:17:45  * timoxleyjoined
17:19:38  * timoxley_joined
17:19:42  * timoxleyquit (Read error: Connection reset by peer)
17:21:19  * timoxleyjoined
17:22:34  * timoxleyquit (Read error: Connection reset by peer)
17:23:09  * timoxleyjoined
17:24:30  * timoxley_quit (Ping timeout: 276 seconds)
17:25:01  * timoxleyquit (Read error: Connection reset by peer)
17:25:23  * timoxleyjoined
17:27:02  * timoxley_joined
17:29:29  * mirkokiefer_joined
17:29:48  * timoxleyquit (Ping timeout: 268 seconds)
17:30:07  * timoxley_quit (Read error: Connection reset by peer)
17:31:50  * AvianFlujoined
17:32:14  * mirkokieferquit (Ping timeout: 240 seconds)
17:32:15  * mirkokiefer_changed nick to mirkokiefer
17:33:17  <dimadima>shit there's a 2-day sale at npm?
17:33:46  <dimadima>or is this the mid-month special?
17:36:19  * timoxley_joined
17:37:57  * timoxleyjoined
17:38:02  * timoxley_quit (Read error: Connection reset by peer)
17:39:18  * timoxleyquit (Read error: Connection reset by peer)
17:39:49  * timoxleyjoined
17:41:13  * timoxleyquit (Read error: Connection reset by peer)
17:41:31  * tmcwquit (Remote host closed the connection)
17:42:22  * tmcwjoined
17:42:58  * st_lukejoined
17:45:17  * fotoveritequit (Quit: fotoverite)
17:46:39  * fotoveritejoined
17:47:33  * timoxleyjoined
17:48:14  * fotoveritequit (Client Quit)
17:51:32  * AvianFluquit (Remote host closed the connection)
17:52:00  * timoxleyquit (Ping timeout: 268 seconds)
17:59:54  * dominictarrjoined
18:07:06  * jxsonjoined
18:10:32  * defunctzombie_zzchanged nick to defunctzombie
18:20:51  * kenperkinsquit (Quit: Computer has gone to sleep.)
18:20:59  * AvianFlujoined
18:25:34  <jesusabdullah>I wish I was leet enough to do emscripten builds
18:25:41  <jesusabdullah>I want vim in the browser
18:27:03  <mikolalysenko>jesusabdullah: it probably isn't worth it
18:27:23  <mikolalysenko>you'll end up with like some 20mb blob of unparseable js
18:27:57  <mikolalysenko>for example, here is the crap I got when I tried to compile a much smaller thing (qhull): https://github.com/mikolalysenko/qhull-js
18:28:00  * yorickquit (Remote host closed the connection)
18:28:23  <jesusabdullah>mikolalysenko: yeah probably :(
18:28:52  <jesusabdullah>how about nano? Still too bloaty?
18:28:53  <mikolalysenko>it created 5mb of js from 30kb of raw uncompressed c code
18:29:14  <jesusabdullah>ouch
18:29:24  <mikolalysenko>well, the bigger problem is really just emscripten and asm.js. they have a completely loopy linking and loading process
18:29:30  <jesusabdullah>aha
18:29:45  <Raynos>Does anyone know a good HTTP proxy?
18:29:55  <mikolalysenko>it would be nice one day to go through and split emscripten into smaller pieces
18:30:02  * st_lukequit (Read error: Connection reset by peer)
18:30:06  <mikolalysenko>like make one module for compiling and another for the llvm backend
18:30:14  <thlorenz>Raynos: no, but I know someone that does
18:30:16  <mikolalysenko>then you could have a javascript based llvm c compiler that runs in node
18:30:30  * st_lukejoined
18:30:33  <mikolalysenko>the advantage then would be that you could use c libraries without having to install any native dependencies at all
18:30:41  <thlorenz>so that makes me a good proxy :)
18:30:43  <Raynos>one for node.
18:31:36  <jesusabdullah>So you guys might find this amusing, weird and/or rage-inducing. https://github.com/idottv/Buff
18:32:18  <thlorenz>jesusabdullah: neither - just pretty damn useless
18:32:54  <jesusabdullah>heh
18:33:12  <jesusabdullah>thlorenz: "inspired by hoarders"
18:33:26  <jesusabdullah>slight facepalm, but I can kinda-sorta understand the rationale
18:33:28  <jesusabdullah>lol
18:33:43  <mikolalysenko>what happens if you want to update one of those libraries?
18:33:58  <jesusabdullah>*shrug*
18:34:07  <mikolalysenko>ah, it is probably just a joke anyway
18:34:07  <jesusabdullah>his use case is derping in the repl I think
18:34:12  <jesusabdullah>no he's 100% serious
18:34:22  <jesusabdullah>hoarders was in fact a joke
18:34:25  <jesusabdullah>but not this
18:35:32  <mikolalysenko>though it would be interesting to have a repl module that automatically gets stuff from npm
18:35:39  <mikolalysenko>probably something out there already does that
18:36:04  <mikolalysenko>but it could be like: npmrequire('bla') and if bla isn't there, it just grabs it in place
18:36:12  <mikolalysenko>in a sense requirebin already does this
18:36:21  <thlorenz>jesusabdullah: just install all the packs you want into a folder then start your repl from there
18:36:30  <thlorenz>and use replpad btw
18:36:43  <jesusabdullah>yeah I mean
18:36:47  <jesusabdullah>there are lots of ways to solve this
18:36:59  <thlorenz>then you can just have a file that requires it all which gets piped into the repl when you save it
18:37:06  <jesusabdullah>he was like, "have you ever thought about doing hoarders for a reasonable list of utils?" "uhh, no, but go knock yourself out"
18:37:37  * mirkokieferquit (Quit: mirkokiefer)
18:37:44  * AvianFlu_joined
18:37:46  <mikolalysenko>I can see where this is going. the next step is node-on-rails
18:37:57  <jesusabdullah>*shrug*
18:38:42  <thlorenz>so npmsearch.com is kinda broken: http://npmsearch.com/?q=repl
18:38:59  <thlorenz>why are repl-utils on top with 7.3 points?
18:39:14  <thlorenz>has almost no stars and is pretty much dead
18:40:36  <jesusabdullah>yeah, idk
18:40:50  <jesusabdullah>My own opinion on stars: Fucking Worthless.
18:40:52  <jesusabdullah>I hate stars.
18:41:10  <tmcw>jesusabdullah: github stars or stars in general?
18:41:15  * AvianFluquit (Ping timeout: 245 seconds)
18:41:45  <thlorenz>jesusabdullah: I like stars for the fact that others can signal that this module is worth me spending time to look into
18:41:57  <thlorenz>but we need unstars as well
18:42:17  <thlorenz>that remain visible (i.e something bad will have -999 stars)
18:42:33  <jesusabdullah>tmcw: npm stars.
18:42:54  <jesusabdullah>like, what's my incentive to star something on npm?
18:43:11  <tmcw>yeah, i agree
18:43:24  <jesusabdullah>in github I can at least get a solid list of shit I've starred and use it as a bookmarking system
18:43:25  <tmcw>github stars, fine - not a perfect way to represent 'goodness', but something
18:43:37  <jesusabdullah>with npm it's like, what, out of the goodness of my heart?
18:43:40  <mbalho>shama: you dont need "node_modules/.bin/napa username/repo" you can just do "napa username/repo" and npm will resolve 'napa'
18:43:53  <jesusabdullah>napa?
18:44:01  <mbalho>jesusabdullah: npmjs.org
18:44:04  <shama>mbalho: oh really? neat
18:44:20  <guybrush>a much needed thing would be to browse dependencies of a package
18:44:29  <jesusabdullah>-_-;
18:44:30  <guybrush>i have like 100 gh-tabs open in browser all the time
18:44:55  * kumavisjoined
18:46:27  <soldair>when stars were watchers i used it a lot more
18:47:27  <thlorenz>guybrush: for the readmes?
18:47:28  <soldair>it was only watch and no stars before right? confusing
18:48:03  * timoxleyjoined
18:48:12  <guybrush>thlorenz: maybe yes
18:48:53  <guybrush>i think guille made a browser plugin sometime ago
18:48:59  <thlorenz>guybrush: cause for those and to read sources all the code involved you should have a look at this video: http://thlorenz.github.io/replpad/#dox-and-src (shameless plug)
18:49:09  <guybrush>where you can click the dependencies when you browse the package.json on gh
18:50:20  <guybrush>thlorenz: that thing is not so usefull for me since i am developing in a vm where i connect to via putty :D
18:50:23  <thlorenz>guybrush: would it help to be able to do: 'var mymodule = require('mymodule'); mymodule.deps; ' to print all deps in a repl?
18:50:37  <thlorenz>ah
18:51:14  <thlorenz>and you couldn't start replpad from there and/or use replify with replpad?
18:51:15  <guybrush>but i think its great thing anyway! just not for my odd dev-environment
18:51:46  <thlorenz>thanks, sucks that you cannot use it though :(
18:51:50  <guybrush>also i like to use the browser to investigate all the things, im not the repl-guy
18:52:10  <thlorenz>ah, well then I'm barking up the wrong tree ;)
18:52:17  <guybrush>:D
18:52:43  <guybrush>maybe something like an enhanced requirebin is what im looking for
18:52:54  * timoxleyquit (Ping timeout: 276 seconds)
18:52:55  <thlorenz>I'm the exact opposite -- i.e. I refresh the browser without leaving vim (via a shortcut)
18:53:36  <guybrush>oh i see how your workflow looks like
18:55:20  <mikolalysenko>my workflow is probably not as efficient, but I just try to memorize the documentation
18:56:26  <mikolalysenko>for small modules it actually works pretty well, but for larger things it is not so easy to do
18:56:42  <guybrush>the problem is that there are a lot of small modules
18:57:22  <Raynos>thlorenz: modules are weighted between 0 & 5 or 5 & 10
18:57:26  * st_lukequit (Read error: Connection reset by peer)
18:57:29  * st_luke_joined
18:57:34  <Raynos>thlorenz: I think it has a weird author based algorithm to mark things as 5 <-> 10
18:57:42  <thlorenz>that's odd
18:57:58  <guybrush>nowadays substack's way of doing thing has propagated and you get a pretty huge dependency-tree :D
18:58:22  <Raynos>thlorenz: what was the proxy you were mentioning?
18:58:42  <thlorenz>mikolalysenko: I print readmes now from the repl and open by clicking on the link that gets emitted as well
18:58:47  <guybrush>so i spend _a lot_ time with just copy pasting module-names from package.json's into the browserbar
18:58:57  <thlorenz>Raynos: sorry was joking - never mind
18:59:17  <Raynos>For documentation I have a docs.mli file committed into the repo
18:59:27  <Raynos>and I use sublime's fuzzy file search to search for `{{name}} docs`
18:59:31  <thlorenz>mikolalysenko: I can do: 'var e = require('express'); e.dox()'
18:59:33  <thlorenz>that's it
18:59:45  <thlorenz>mikolalysenko: works offline as well
19:00:01  * thlorenzchanged nick to thlorenz_zz
19:01:36  * ednapiranhaquit (Remote host closed the connection)
19:05:35  <kumavis>does `npm update -g` include updating npm ?
19:08:18  * whit537quit (Quit: whit537)
19:16:28  * mikolalysenkoquit (Ping timeout: 256 seconds)
19:16:53  * mikolalysenkojoined
19:17:57  <guybrush>kumavis: no
19:18:07  <guybrush>oh actually im not sure
19:18:31  <kumavis>`npm update -g npm` is the correct way to update npm? c/d
19:18:40  <guybrush>npm i -g npm
19:18:42  <guybrush>is what i do
19:20:45  <kumavis>hmm yeah that did fetch a new version, implying that the above did not
19:24:47  * thlorenz_zzchanged nick to thlorenz
19:25:21  * whit537joined
19:28:04  * ednapiranhajoined
19:28:15  * jergasonquit (Read error: Connection reset by peer)
19:28:27  * ednapiranhaquit (Remote host closed the connection)
19:28:49  * jergasonjoined
19:28:53  * ednapiranhajoined
19:32:25  * ednapira_joined
19:32:56  * ednapiranhaquit (Read error: Connection reset by peer)
19:39:20  * jergasonquit (Read error: Connection reset by peer)
19:39:49  * jergasonjoined
19:46:15  <Raynos>I never use npm update
19:56:50  <jesusabdullah>yeah me neither but mostly cause I'm pretty lazy and don't care about updating unless something/someone yells at me about it (or if I know an update will make me less angry)
19:57:33  <dominictarr>jesusabdullah: just write a x86 emulator and then run vim directly
19:57:46  <dominictarr>or use that linux in the browser thing
19:58:16  <jesusabdullah>dominictarr: I'm just gonna use one of those "normal" text editor thingers for the browser and call it a day XD
19:58:25  <dominictarr>lame!
19:58:33  <jesusabdullah>not if I can help it!
19:58:43  <dominictarr>http://bellard.org/jslinux/
19:58:51  <dominictarr>^has vi! at least!
19:58:59  <jesusabdullah>no shit
20:00:23  <dominictarr>just make a build of vim that runs on the bare metal, and then ditch the linux...
20:06:36  <substack>run bash on the bare metal
20:07:10  * dominictarrquit (Ping timeout: 240 seconds)
20:07:32  * dominictarrjoined
20:08:24  <Raynos>run javascript on the bare metal
20:08:39  <substack>transpile javascript to bash
20:08:59  * rchhas now heard the word 'transpile'
20:11:57  <kumavis>congrats
20:17:34  * st_luke_quit (Read error: Connection reset by peer)
20:17:56  * st_lukejoined
20:21:36  <dominictarr>Raynos: have you seen this http://technical.io/
20:24:40  <Raynos>yes
20:24:52  <Raynos>i should buy one
20:25:08  <Raynos>how is it different from arduino?
20:25:34  <dominictarr>arduino can't run javascript
20:25:50  <dominictarr>this must be closer to an rpi
20:26:03  <dominictarr>but they don't mention an os
20:26:18  <dominictarr>apparently it's compatible with arduino expansion packs
20:26:20  <jesusabdullah>I'm skeptical <_<;
20:29:03  * AvianFlu_quit (Remote host closed the connection)
20:29:32  * AvianFlujoined
20:31:24  <tmcw>by 'right on the hardware' they mean 'right on the firmware' afaik
20:32:51  * st_lukequit (Ping timeout: 240 seconds)
20:41:38  <defunctzombie>dominictarr: I think that thing is awesome
20:41:50  <defunctzombie>dominictarr: am slightly concerned about perf on the weak processor
20:41:55  <defunctzombie>but am excited to see it!
20:43:07  <dominictarr>aha, we'll just get arm to build hardware support for dynamic type checks and other things to optimize javascript!
20:43:20  <dominictarr>like they where doing with the lisp machines!
20:44:14  * whit537quit (Ping timeout: 240 seconds)
20:47:11  * st_lukejoined
20:59:42  * ednapira_quit (Remote host closed the connection)
21:02:11  <tmcw>mikolalysenko: hey, have you tried using ndarray modules for combining images by basically bit-packing?
21:08:00  * jxsonquit (Remote host closed the connection)
21:08:16  * mikolalysenkoquit (Ping timeout: 264 seconds)
21:12:22  * whit537joined
21:16:24  * AvianFluquit (Remote host closed the connection)
21:19:06  * AvianFlujoined
21:19:48  * whit537quit (Ping timeout: 276 seconds)
21:30:01  * mikolalysenkojoined
21:31:46  <mikolalysenko>tmcw: yeah, it is pretty easy to do
21:31:52  <mikolalysenko>you just use slicing and assignment
21:35:30  <tmcw>mikolalysenko: also, would get-pixels be faster via node-canvas?
21:35:43  <tmcw>or is the bottleneck not in reading image data but in making the array?
21:40:38  * kevino80quit (Remote host closed the connection)
21:46:49  <tmcw>phew, ndarrays are mindbendy
21:48:06  <jesusabdullah>inorite :)
21:49:35  * fallsemoquit (Quit: Leaving.)
21:49:49  * timoxleyjoined
21:50:32  <mikolalysenko>tmcw: reading the pixels/allocating the array is pretty fast
21:50:33  <tmcw>ugh, too late in the day to understand
21:50:44  * fallsemojoined
21:50:44  <mikolalysenko>get-pixels is slow because it uses native png parsers
21:50:56  <mikolalysenko>the reason for that was to avoid the binary dependencies in node-canvas
21:51:00  <tmcw>gotcha
21:51:03  <mikolalysenko>which make installation a living hell
21:51:08  <mikolalysenko>but yeah, node-canvas would be way faster
21:51:12  <tmcw>but like I would write get-pixels-canvas
21:51:25  <tmcw>k, will queue up once I understand the next few steps :)
21:51:36  <mikolalysenko>yeah, you could totally do that and it would probably blow the current get-pixels out of the water in terms of perf
21:51:47  <mikolalysenko>though it is worth noting that the browser side get-pixels does use canvas
21:52:21  <mikolalysenko>like I said, the only reason it is like that is to avoid adding in more binary stuff, which tends to break a lot and not work across systems
21:52:41  <tmcw>ndarray ops are just a way different way of thinking about things - I basically want to sum [r, g, b] into a [val] for 3 images, and then generate [val1, val2, val3] for each pixel
21:53:50  <mikolalysenko>you may be better off using cwise to that than ndarray ops
21:53:54  <tmcw>okay, so like ndarray-ops's sup will probably do the first?
21:54:08  <mikolalysenko>sup will get the largest element in the array
21:54:24  <mikolalysenko>you should probably use this: https://github.com/mikolalysenko/cwise
21:54:54  * timoxleyquit (Ping timeout: 276 seconds)
21:54:57  <mikolalysenko>basically, you could make something that takes the 3 channels separately as an input
21:55:05  <mikolalysenko>and then sums them and writes the result to some output array
21:55:27  * nicholasfquit (Remote host closed the connection)
21:55:37  <mikolalysenko>var sumChannels = cwise({ args: ["array", "array", "array", "array"], body: function(out, r, g, b) { out = r + g + b } })
21:55:40  <mikolalysenko>then call:
21:55:48  <tmcw>whoah, wait how does it do that in the function body
21:55:57  <mikolalysenko>tmcw: magic...
21:56:00  <tmcw>like, is this an eval trick, or a .valueOf hack?
21:56:19  <mikolalysenko>well, so cwise is a little magical unfortunately
21:56:31  <mikolalysenko>but it was kind of the best work around I could come up with for generating fast loop operations
21:56:45  <mikolalysenko>basically you can think of it as a kind of "dsl" for loop operations
21:57:16  <mikolalysenko>the way it works is that it evals the code and recompiles it using esprima into an optimized loop
21:57:27  <mikolalysenko>that takes into account the striding and dimension of each array
21:57:44  <mikolalysenko>so you get an optimal cache efficient array traversal regardless how your input arrays are laid out in memory
21:57:45  * thlorenzquit (Remote host closed the connection)
21:58:13  <mikolalysenko>eventually I want to remove the esprima dependency for the browser by replacing this with a browserify transform
21:58:26  <mikolalysenko>but that is for a future project
21:58:41  <tmcw>okay, yeah
21:58:43  <mikolalysenko>so you can look at the guts here: https://github.com/mikolalysenko/cwise-parser
21:58:53  <mikolalysenko>and here: https://github.com/mikolalysenko/cwise-compiler
21:59:06  <mikolalysenko>eventually the optimized version will only include cwise-compiler for client side stuff
21:59:12  <mikolalysenko>but for now it just packages the whole thing together
21:59:17  <mikolalysenko>and on node of course it makes no difference
21:59:32  <mikolalysenko>also the compilation for the array operations is done using just-in-time compiling
21:59:47  <mikolalysenko>so if you call the thing with arrays that have a new type it regenerates an optimized loop based on the inputs
22:00:03  <mikolalysenko>basically before it runs it does a quick type check, if it has a compatible loop generated it runs that
22:00:06  <mikolalysenko>otherwise it builds a new one
22:00:34  <mikolalysenko>I want to eventually add support for generating optimized loops on run length encoded and other sparse arrays too
22:00:38  <tmcw>wow, okay. yeah, some serious business. I'll read through the parser & compiler
22:01:23  <mikolalysenko>this may be more helpful at explaining the idea: http://0fps.wordpress.com/2013/05/28/cache-oblivious-array-operations/
22:01:31  <tmcw>do loops in cwise always return scalars/numbers?
22:01:39  <mikolalysenko>only if you return from them
22:01:40  <tmcw>or, I mean, the 'body' function
22:01:50  <mikolalysenko>there are basically 3 parts to a cwise loop
22:01:57  <mikolalysenko>a pre block, a post block and a body block
22:02:06  <mikolalysenko>you can return from any of them and it will kill the whole loop
22:02:29  <mikolalysenko>you can also make global variables that are shared across the loops using "this"
22:02:37  <mikolalysenko>so doing: this.foo = 1
22:02:48  <mikolalysenko>will created a shared variable that is initialized to 1
22:03:51  <mikolalysenko>tmcw: this might be a simpler example to understand: https://github.com/mikolalysenko/luminance
22:04:02  <mikolalysenko>in particular here: https://github.com/mikolalysenko/luminance/blob/master/lum.js#L6
22:04:55  <mikolalysenko>hmm... though I just realized there is a bug in that module
22:06:07  <tmcw>huh, yeah, the usage of .pick here seems different than in ndarray's readme - .pick(-1, -1, 1) instead of .pick(null, null, 1)
22:06:21  <mikolalysenko>yeah
22:06:33  <mikolalysenko>that was how it used to work before I changed the api in 1.0.0
22:08:27  <mikolalysenko>basically that was a 1 off module I used in a few places to just convert images to grayscale
22:08:34  * dominictarrquit (Quit: dominictarr)
22:10:00  <mikolalysenko>one day once I have unlimited time, I want to go back and make a more general version of cwise that can handle arbitrary map reduce operations
22:10:06  <mikolalysenko>so you could do matrix/tensor algebra with it
22:10:28  <mikolalysenko>the current version though is kind of a compromise/smaller project since it only does component wise operations
22:11:16  <mikolalysenko>I think it is enough though to be useful for many image and volume processing tasks, as well as some basic vector arithmetic stuff
22:11:37  <mikolalysenko>but there is obviously a lot of room for improvement
22:12:03  <mikolalysenko>one thing I've been thinking about is repurposing the for...in loop in a js/dsl to define tensor contractions
22:12:33  * dominictarrjoined
22:13:27  <mikolalysenko>the main reason though for all this madness is that it is a headache to write your own optimized loops for arrays with different strides and layouts
22:13:50  <mikolalysenko>like you need to do block-by-block traversals, walk pointers, etc.
22:13:59  <mikolalysenko>and doing this by hand really sucks
22:14:07  <mikolalysenko>so cwise does all that stuff for you
22:14:19  <mikolalysenko>at the expense of being a crazy meta programming js hack
22:14:35  <mikolalysenko>I am not so happy about the last bit, but haven't come up with a better option yet
22:15:11  * mirkokieferjoined
22:15:17  <mikolalysenko>on the bright side though it is really fast: https://github.com/mikolalysenko/ndarray-experiments
22:16:50  <tmcw>yeah, it's a little tricky to first understand, at least from my point - right now I'm at https://gist.github.com/tmcw/6245471 and it generates an image, albeit black
22:17:51  <mikolalysenko>tmcw: it might be converting the pixels from 0/1 to 255
22:18:08  <mikolalysenko>you could try making the output array a Uint8Array, or else rescaling the input by 255
22:18:18  <mikolalysenko>like: out = g * 0.1 / 255.0
22:18:49  <mikolalysenko>not sure in retrospect if rescaling the float values was a good idea or not
22:18:57  <mikolalysenko>but most of the times I use float images they are in [0,1] range
22:19:06  <mikolalysenko>while when I use byte images they are in [0,255]
22:19:18  <tmcw>should console.log work in the body fn?
22:19:24  <mikolalysenko>yeah
22:19:27  <tmcw>right now it gives 'undefined' for the 'r' var
22:19:32  <mikolalysenko>hmm
22:20:03  <mikolalysenko>try replacing the nulls with undefined
22:20:46  <tmcw>woot! that's it
22:21:02  <tmcw>thanks
22:21:24  <mikolalysenko>I think that is because of how ndarray is checking the values and how the screwy type coersion works
22:21:25  <tmcw>I can pull req a quick fix to https://github.com/mikolalysenko/ndarray#arraypickp0-p1- unless that's a bug
22:21:35  <mikolalysenko>yeah, it is a bug in the docs
22:21:41  <mikolalysenko>but I will change it to work with nulls
22:21:52  <mikolalysenko>honestly the current behavior should be considered a bug
22:22:10  <mikolalysenko>I'll also make it work with negatives too
22:22:27  <mikolalysenko>so pick(-1, ...) is the same as pick(null, ...)
22:22:44  * mirkokieferquit (Quit: mirkokiefer)
22:24:00  <substack>dominictarr: b.external() is now fixed https://github.com/substack/node-browserify/issues/387
22:24:20  <dominictarr>nice!
22:27:59  <tmcw>mikolalysenko: okay, slowly approaching this 'combining images as channels' thing: https://gist.github.com/tmcw/6245471
22:29:07  * thlorenzjoined
22:29:38  <mikolalysenko>hmm
22:29:49  <mikolalysenko>that won't quite work, you need to split out into channels too
22:29:54  <mikolalysenko>like out_r, out_g, out_b etc.
22:30:01  <mikolalysenko>then write to each of those
22:30:13  <tmcw>could I munge it together with an index? https://gist.github.com/tmcw/6245471
22:30:34  <mikolalysenko>not really
22:30:42  <mikolalysenko>out would not be the same shape as the input arrays so it would break
22:31:11  <mikolalysenko>also I just pushed a new version of ndarrays that fixes the inconsistency in the argument checking for pick()
22:31:25  <mikolalysenko>so in ndarray 1.0.8 pick(null) ought to work as expected
22:34:25  <tmcw>so like to combine an r, g, b, a channel, ndarray([out_r, out_g, out_b, out_a], a.shape.slice(0))"
22:34:37  * wolfeidaujoined
22:35:00  <mikolalysenko>what you would do is allocate an array that is the right size and shape and then just copy them into that array
22:35:12  <mikolalysenko>or you could start out allocating that array and then slice the out views from it
22:35:27  <mikolalysenko>like: out = ndarray(new Float32Array(size), [width, height, depth])
22:35:29  <mikolalysenko>and then:
22:36:09  <mikolalysenko>processComponents(out.pick(-1, -1, 0), out.pick(-1, -1, 1), out.pick(-1, -1, 2), image.pick(-1, -1, 0), image.pick(-1, -1, 1), image.pick(-1, -1, 2))
22:36:36  <mikolalysenko>or you could make it easier doing:
22:36:49  <mikolalysenko>var out_t = out.tranpose(2, 0, 1), inp_t = input.transpose(2, 0, 1)
22:36:52  <mikolalysenko>and then do:
22:37:00  <mikolalysenko>out.pick(0) instead of passing in the dummy values
22:37:02  * thlorenzquit (Ping timeout: 240 seconds)
22:37:17  <mikolalysenko>err out_t.pick(0) to get red component
22:37:29  * timoxleyjoined
22:37:37  <mikolalysenko>slicing and picking views does not make a copy of the underlying ndarray
22:37:45  <mikolalysenko>and writing to a view also writes to the array that it is a view of
22:40:54  * AvianFluquit (Remote host closed the connection)
22:42:28  <tmcw>yess, I think there's something
22:42:42  <tmcw>thanks mikolalysenko!
22:42:48  <mikolalysenko>tmcw: you're welcome!
22:43:06  <mikolalysenko>I am still working on improving ndarrays and the related tools, so patches are welcome
22:43:14  <mikolalysenko>or issues if you find a bug somewhere
22:46:47  <tmcw>will do, once I'm past the noob stage
23:02:47  * Kesslerjoined
23:03:44  * ednapiranhajoined
23:07:50  * ednapiranhaquit (Remote host closed the connection)
23:23:25  * spionjoined
23:25:33  * kenperkinsjoined
23:27:15  * kenperkinsquit (Client Quit)
23:27:26  * fallsemoquit (Quit: Leaving.)
23:28:24  * dominictarrquit (Quit: dominictarr)
23:28:36  <tmcw>mikolalysenko: got it working! http://localhost:3000/
23:28:41  <tmcw>lol, no http://macwright.org/image-mux/
23:29:08  * timoxley_joined
23:32:02  * timoxleyquit (Ping timeout: 256 seconds)
23:34:09  * thlorenzjoined
23:38:20  * thlorenzquit (Ping timeout: 245 seconds)
23:38:41  * AvianFlujoined
23:40:58  <Raynos>isaacs: Is it worth it yet to start testing my apps / libraries in 0.11 ?
23:49:05  * jergasonquit (Remote host closed the connection)
23:53:40  * tmcwquit (Remote host closed the connection)
23:59:56  * AvianFluquit (Remote host closed the connection)