00:00:00
| * ircretary | quit (Remote host closed the connection) |
00:00:08
| * ircretary | joined |
00:01:26
| * AvianPhone | quit (Ping timeout: 240 seconds) |
00:09:00
| * ednapiranha | joined |
00:25:12
| * tmcw | quit (Remote host closed the connection) |
00:25:50
| * defunctzombie | changed nick to defunctzombie_zz |
00:30:14
| * i_m_ca | quit (Ping timeout: 240 seconds) |
00:31:40
| * jxson | quit (Remote host closed the connection) |
00:33:17
| <pkrumins> | that person who joined earlier with nickname PeterKrumins wasn't me |
00:33:25
| <pkrumins> | someone is stalking me |
00:35:20
| * dstokes | quit (Quit: dstokes) |
00:36:33
| * ednapiranha | quit (Remote host closed the connection) |
00:39:38
| * kevino80 | joined |
00:48:31
| * timoxley | joined |
00:50:02
| * timoxley_ | joined |
00:51:33
| <mbalho> | pkrumins: did you get their IP? |
00:52:09
| <rch> | 37.106.79.4 |
00:53:02
| * timoxley | quit (Ping timeout: 264 seconds) |
00:53:06
| <mbalho> | rch: howd you do that! |
00:53:41
| <rch> | logs! |
00:53:56
| <mbalho> | rch: does freenode have a log search api? or do you have your own |
00:54:14
| <rch> | heh, i'm using weechat |
00:54:26
| <rch> | i hope to god freenode isn't logging all our channels |
00:54:40
| <mbalho> | lol |
00:55:08
| <rch> | hey what thread were you and st_luke talking about earlier |
00:55:11
| <rch> | nodejs goog group? |
00:55:13
| * timoxley_ | quit (Ping timeout: 268 seconds) |
00:55:37
| <mbalho> | today? dont remember |
00:55:53
| <rch> | oh well |
01:01:58
| * jxson | joined |
01:05:47
| * mikolalysenko | joined |
01:06:32
| * kevino80 | quit (Remote host closed the connection) |
01:10:14
| * jxson | quit (Ping timeout: 240 seconds) |
01:20:34
| * AvianFlu | joined |
01:23:01
| * defunctzombie_zz | changed nick to defunctzombie |
01:28:58
| * thlorenz_zz | joined |
01:47:05
| * thlorenz_zz | changed nick to thlorenz |
01:49:30
| * timoxley | joined |
01:54:58
| * gwenbell | joined |
01:59:31
| * defunctzombie | changed nick to defunctzombie_zz |
02:01:04
| * defunctzombie_zz | changed nick to defunctzombie |
02:05:41
| * defunctzombie | changed nick to defunctzombie_zz |
02:17:47
| * AvianFlu | quit (Remote host closed the connection) |
02:40:53
| * jcrugzz | quit (Ping timeout: 250 seconds) |
02:42:48
| * gwenbell | quit (Ping timeout: 240 seconds) |
02:47:04
| * dstokes | joined |
02:51:11
| <Raynos> | isaacs: how should you open a conf talk in terms of saying who you are? |
02:51:39
| <Raynos> | isaacs: I have a feeling mentioning my github / twitter is useful to allow people to reach out after talk with questions / discussions asynchronously |
02:52:18
| <mbalho> | Raynos: put @Raynos on your first and last slide |
02:52:40
| <Raynos> | should I mention my name using voice or should it just be in text? |
02:52:50
| <Raynos> | I genuinely dont know what correct ettiquitte is |
02:53:47
| <mbalho> | most people use their real names and mention their online names via slides or as a side remark |
02:55:22
| <Raynos> | that makes sense |
02:59:48
| * dstokes | quit (Quit: dstokes) |
03:04:36
| * owen1 | quit (Ping timeout: 245 seconds) |
03:28:02
| * thlorenz | quit (Remote host closed the connection) |
03:30:20
| * AvianFlu | joined |
03:35:19
| * AvianFlu | quit (Ping timeout: 264 seconds) |
03:39:07
| * owen1 | joined |
03:39:54
| * dstokes | joined |
03:41:40
| * dstokes | quit (Client Quit) |
03:42:05
| * calvinfo | quit (Quit: Leaving.) |
03:43:17
| * dstokes | joined |
03:49:08
| * jcrugzz | joined |
03:52:50
| * mikolalysenko | quit (Ping timeout: 240 seconds) |
03:54:10
| * owen1 | quit (Ping timeout: 246 seconds) |
03:55:13
| * owen1 | joined |
03:56:22
| * dstokes | quit (Quit: dstokes) |
04:00:06
| * mikolalysenko | joined |
04:06:08
| * dstokes | joined |
04:10:55
| * AvianFlu | joined |
04:14:43
| * owen1 | quit (Ping timeout: 260 seconds) |
04:21:19
| * dstokes | quit (Quit: dstokes) |
04:22:11
| * dstokes | joined |
04:25:13
| * dstokes | quit (Client Quit) |
04:25:13
| * i_m_ca | joined |
04:25:17
| * thlorenz | joined |
04:28:35
| * owen1 | joined |
04:29:48
| * mikolalysenko | quit (Ping timeout: 256 seconds) |
04:34:59
| * AvianFlu | quit (Remote host closed the connection) |
04:38:51
| * kriskowal | quit (Quit: kriskowal) |
04:39:15
| * kriskowal | joined |
04:55:41
| * dguttman | quit (Quit: dguttman) |
05:02:46
| * thlorenz | quit (Remote host closed the connection) |
05:06:02
| * dguttman | joined |
05:08:18
| * jxson | joined |
05:12:30
| * jxson | quit (Ping timeout: 245 seconds) |
05:24:09
| * kriskowal | quit (Quit: kriskowal) |
05:40:40
| * mirkokiefer | joined |
05:45:51
| * wolfeidau | quit (Ping timeout: 260 seconds) |
05:46:44
| * dguttman | quit (Quit: dguttman) |
05:46:45
| * wolfeidau | joined |
05:48:09
| * mirkokiefer | quit (Quit: mirkokiefer) |
05:57:14
| * i_m_ca | quit (Ping timeout: 264 seconds) |
05:58:03
| * cubert | quit (Ping timeout: 276 seconds) |
06:02:12
| * cubert | joined |
06:09:51
| * mirkokiefer | joined |
06:18:35
| * shama | quit (Remote host closed the connection) |
06:27:16
| * djcoin | joined |
06:33:14
| * calvinfo | joined |
06:40:19
| * spolu | joined |
06:41:18
| * st_luke | joined |
06:52:50
| * ins0mnia | joined |
06:52:53
| * calvinfo | quit (Quit: Leaving.) |
06:54:59
| * stagas | joined |
07:15:31
| * st_luke | quit (Remote host closed the connection) |
07:22:55
| * calvinfo | joined |
07:30:25
| * maksimlin | quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302]) |
07:31:42
| * dominictarr | joined |
07:39:30
| * frankblizzard | joined |
07:54:12
| * calvinfo | quit (Quit: Leaving.) |
08:03:51
| * jcrugzz | quit (Ping timeout: 260 seconds) |
08:20:19
| * frankblizzard | quit (Remote host closed the connection) |
08:20:38
| * frankblizzard | joined |
08:27:05
| * johnkpaul | quit (Ping timeout: 245 seconds) |
08:27:30
| * harrow | quit (Ping timeout: 245 seconds) |
08:27:49
| * dominictarr | quit (Quit: dominictarr) |
08:28:12
| * mirkokiefer | quit (Quit: mirkokiefer) |
08:28:29
| * johnkpaul | joined |
08:28:49
| * harrow | joined |
08:37:49
| * mirkokiefer | joined |
08:54:35
| * dominictarr | joined |
09:51:05
| * mirkokiefer | quit (Quit: mirkokiefer) |
10:12:31
| * yorick | joined |
10:41:06
| * wolfeidau | quit (Ping timeout: 240 seconds) |
10:41:46
| * timoxley | quit (Remote host closed the connection) |
10:46:13
| * frankblizzard | quit (Read error: Connection reset by peer) |
10:46:33
| * frankblizzard | joined |
10:48:52
| * frankblizzard | quit (Read error: Connection reset by peer) |
10:49:11
| * frankblizzard | joined |
10:50:21
| * dominictarr | quit (Quit: dominictarr) |
10:50:34
| * frankblizzard | quit (Read error: Connection reset by peer) |
10:50:49
| * frankblizzard | joined |
10:51:37
| * frankbli_ | joined |
10:51:37
| * frankblizzard | quit (Read error: Connection reset by peer) |
11:08:20
| * fotoverite | joined |
11:35:42
| * mirkokiefer | joined |
12:25:44
| * jibay | joined |
12:29:28
| * frankbli_ | quit (Remote host closed the connection) |
12:36:22
| * jcrugzz | joined |
12:43:19
| * frankblizzard | joined |
12:56:57
| * dominictarr | joined |
13:11:44
| * kevino80 | joined |
13:33:13
| * fotoverite | quit (Quit: fotoverite) |
13:35:21
| * i_m_ca | joined |
13:51:52
| * thlorenz | joined |
13:54:14
| * mikolalysenko | joined |
14:10:55
| * tmcw | joined |
14:19:26
| * i_m_ca | quit (Ping timeout: 264 seconds) |
14:29:50
| * kevino80 | quit (Remote host closed the connection) |
14:30:07
| * kevino80 | joined |
14:31:02
| * jcrugzz | quit (Ping timeout: 240 seconds) |
14:41:16
| * kenperkins | quit (Quit: Textual IRC Client: http://www.textualapp.com/) |
14:43:22
| * kenperkins | joined |
14:44:18
| * AvianFlu | joined |
14:50:54
| * dguttman | joined |
15:00:50
| * mikolalysenko | quit (Ping timeout: 264 seconds) |
15:03:12
| <dominictarr> | chrisdickinson: hey, is there a good way to look at git objects (like trees and commits) and detect their type, compared to arbitary binary data? |
15:04:04
| * ins0mnia | quit (Ping timeout: 246 seconds) |
15:06:51
| * fotoverite | joined |
15:07:43
| * ins0mnia | joined |
15:12:14
| * dguttman | quit (Read error: Connection reset by peer) |
15:12:38
| * dguttman | joined |
15:14:20
| * fallsemo | joined |
15:21:36
| * frankblizzard | quit (Remote host closed the connection) |
15:22:54
| * calvinfo | joined |
15:39:17
| * calvinfo | quit (Quit: Leaving.) |
15:44:42
| * shama | joined |
15:48:31
| * mirkokiefer | quit (Quit: mirkokiefer) |
15:52:32
| * mikolalysenko | joined |
15:54:12
| * kevino80 | quit (Remote host closed the connection) |
15:58:38
| * gwenbell | joined |
16:02:47
| * kevino80 | joined |
16:04:22
| <hij1nx> | pkrumins: could node-image be used to add an arbitrary string as a header to an image without destroying the image? |
16:06:54
| * kriskowal | joined |
16:07:06
| * i_m_ca | joined |
16:09:42
| * calvinfo | joined |
16:10:45
| <pkrumins> | hij1nx, not really, node-image just unifies node-{png,gif,jpeg} |
16:11:52
| <pkrumins> | hij1nx, unfortunately you would neither be able to do that with those other libs because they only support writing the images and not reading them |
16:12:15
| <pkrumins> | hij1nx, however if someone added a read interface, that would be possible without destroying the image. |
16:22:46
| <hij1nx> | pkrumins: i've put together some hacky code for reading file and finding the `tEXt` field, as i understand it, this can hold multiple key/value pairs with each having up to 79 bytes |
16:23:45
| <hij1nx> | pkrumins: i need to encode it back again after adding the data, not sure if just "reversing" the process will work |
16:25:35
| <pkrumins> | which image format is that? |
16:28:00
| <hij1nx> | pkrumins: png, but... i dont know a lot about programming with png files |
16:29:45
| <pkrumins> | neither do i, i simply used libpng :) |
16:29:52
| <hij1nx> | pkrumins: what im thinking is that it might bork the file to add the new bytes, im sure there is a header that states the length of the file? |
16:30:56
| <hij1nx> | pkrumins: ok, let me go a little higher level, i want to embed some text into an image, thats all, not like steganography, just simply add it to the file |
16:31:17
| <hij1nx> | add it and then read it |
16:31:28
| <hij1nx> | seems like there should be some kind of cave man hack |
16:31:33
| <pkrumins> | looking up how the png header |
16:37:38
| * timoxley | joined |
16:37:54
| <pkrumins> | hij1nx: it's safe to add bytes, the header doesnt state the length of the whole file. |
16:38:02
| * i_m_ca | quit (Ping timeout: 264 seconds) |
16:38:28
| <pkrumins> | hij1nx: it looks like you could just add the tEXt field at the end of the file |
16:38:46
| <pkrumins> | hij1nx: the png image contains of chunks, where each chunk has its own header with its size |
16:40:19
| <hij1nx> | pkrumins: crazy |
16:40:40
| <hij1nx> | pkrumins: i just concat'd a buffer to the end of the file and i can still view the file normally, and view the text!!! |
16:41:08
| <hij1nx> | \o\|o|/o/ |
16:41:30
| * fotoverite | quit (Ping timeout: 264 seconds) |
16:41:44
| <pkrumins> | hij1nx: awesome! |
16:51:59
| * jibay | quit (Quit: Leaving) |
16:55:41
| * ednapiranha | joined |
16:56:49
| * ednapiranha | quit (Remote host closed the connection) |
16:57:03
| * ednapiranha | joined |
16:57:19
| <chrisdickinson> | dominictarr: depending on where the commits are located: node -e 'process.stdin.pipe(require("zlib").createInflate()).pipe(process.stdout)' < html/.git/objects/1a/e5447f0cec3b65dd919fc8137a15a8ec41a6b4 | head -n 1 |
16:57:22
| <chrisdickinson> | (ignoring the path specific parts) |
16:57:28
| <chrisdickinson> | those are only for loose objects though |
16:57:31
| <chrisdickinson> | vs. packed objects |
16:57:51
| <chrisdickinson> | in what context are you looking at git objects? over a readable stream? or on the filesystem? |
16:57:56
| <dominictarr> | chrisdickinson: thanks, I figured it out |
16:58:09
| <dominictarr> | except i used .createUnzip() |
16:58:12
| <dominictarr> | which also worked |
16:59:22
| <chrisdickinson> | ah cool, yeah -- it's just deflated data |
16:59:36
| <chrisdickinson> | (at least if it's loose objects -- packed objects are slightly more complicated) |
16:59:41
| <dominictarr> | chrisdickinson: it's for the cyphernet project, which is much like git, but trees of arbitary objects |
16:59:57
| <dominictarr> | that are linked to each other by containing hashes like in git |
17:00:04
| * chrisdickinson | nods |
17:00:16
| <dominictarr> | github.com/dominictarr/cyphernet |
17:00:23
| <dominictarr> | https://github.com/dominictarr/cyphernet |
17:00:42
| <chrisdickinson> | neat! |
17:03:35
| <dominictarr> | mirkok: hey, I have a question about smalltalk |
17:03:42
| <dominictarr> | how does the module system work? |
17:03:59
| <dominictarr> | does it use a classpath like thing or can modules be nested like in node? |
17:05:43
| * wolfeidau | joined |
17:06:59
| * dstokes | joined |
17:10:03
| <dominictarr> | mirkok: okay, reading… it's all about Classes, hmm, looks like the classes are global? |
17:11:15
| * dstokes | quit (Client Quit) |
17:14:08
| * jcrugzz | joined |
17:18:45
| * AvianFlu | quit (Remote host closed the connection) |
17:20:07
| * dstokes | joined |
17:21:04
| * dguttman | quit (Quit: dguttman) |
17:31:40
| * spolu | quit (Ping timeout: 245 seconds) |
17:31:47
| * AvianFlu | joined |
17:33:25
| <dominictarr> | isaacs: hey, when did you start working on npm? |
17:34:57
| <jez0990_> | dominictarr: https://github.com/isaacs/npm/commits/master?page=122 |
17:36:06
| <dominictarr> | jez0990_: thanks |
17:38:09
| * timoxley | quit (Remote host closed the connection) |
17:38:22
| * timoxley | joined |
17:43:09
| * timoxley | quit (Remote host closed the connection) |
17:43:51
| * defunctzombie_zz | changed nick to defunctzombie |
17:46:12
| * ednapiranha | quit (Remote host closed the connection) |
17:46:14
| <isaacs> | dominictarr: * 4626dfa isaacs Initial drop. Ugly, sketchy, and not even yet quite a "work in progress". (3 years, 11 months ago) |
17:46:29
| <isaacs> | dominictarr: i think the actual work started a few months before that |
17:46:59
| <isaacs> | dominictarr: and part of it was adapted from a bash script that i'd written for installing yinst packages, pre-node |
17:47:11
| * spolu | joined |
17:47:20
| <isaacs> | dominictarr: so, really, i started working on npm, without realizing it, probablyaround 2006 or 2007 |
17:47:42
| <rch> | heh, urf yinst |
17:47:46
| <isaacs> | but it wasn't called "npm" until september 2009 |
17:48:12
| <dominictarr> | at what point could you install a node module with it? |
17:49:19
| * jxson | joined |
17:55:29
| <isaacs> | dominictarr: well, i think even with that initial drop, you could, but it relied on a `npm-data` git repo which had a bigass json file of every module |
17:56:38
| * gwenbell | quit (Ping timeout: 264 seconds) |
17:56:55
| <dominictarr> | right |
17:57:23
| <dominictarr> | isaacs: when did it get the couchdb? |
17:57:32
| <dominictarr> | mikeal was responsible for that, right? |
18:00:31
| <isaacs> | yeah, that was mikeal's |
18:00:41
| <isaacs> | * f7f5c93 Mikeal Rogers Initial code. (3 years, 7 months ago) |
18:01:00
| <isaacs> | commit f7f5c93add620b313a150e04336f1cef6ed5c116 |
18:01:01
| <isaacs> | Author: Mikeal Rogers <mikeal.rogers@gmail.com> |
18:01:01
| <isaacs> | Date: Fri Feb 19 17:06:36 2010 -0800 |
18:01:01
| <isaacs> | Initial code. |
18:01:27
| <dominictarr> | isaacs: do you still have the data-npm repo? |
18:02:32
| * mk30_ | joined |
18:03:42
| * mikolalysenko | quit (Ping timeout: 264 seconds) |
18:04:41
| <isaacs> | nah |
18:04:44
| <isaacs> | it didn't last long |
18:05:04
| <isaacs> | i think 0.0.5 or 0.0.6 was the first npm where you could publish to the registry, and then install from the registry |
18:05:08
| <isaacs> | there were no user accounts. |
18:05:12
| <isaacs> | it was all just the honor system :) |
18:07:11
| <dominictarr> | isaacs: haha, nice |
18:07:38
| <dominictarr> | did you upgrade those modules to having maintainers later? |
18:08:35
| <isaacs> | yeah |
18:08:37
| <isaacs> | i took them over |
18:08:51
| <isaacs> | or deleted a lot of them, since none of them worked anyway |
18:09:57
| * ednapiranha | joined |
18:10:30
| <dominictarr> | isaacs: right. you mentioned that you made pull requests to modules to add package.jsons? when was that? |
18:10:47
| <dominictarr> | do you remember any projects that are still used that you added a package.json to? |
18:12:03
| <isaacs> | hmmm.... |
18:16:29
| <isaacs> | dominictarr: here's one: https://npmjs.org/package/ndb https://github.com/isaacs/ndb/commit/880020e3f7d448a28ffa5d4c470277d01b2aa8a3 |
18:17:34
| <isaacs> | oh, and jake, i did the original package.json for that |
18:17:38
| <isaacs> | that ones actually popular |
18:18:40
| <isaacs> | dominictarr: https://github.com/mde/jake/commit/8b8be31685edc88215ed4f7d1fadace2942520d8 |
18:19:08
| <isaacs> | dominictarr: node-ncurses: https://github.com/isaacs/node-ncurses/commit/b6ee5ec766bf696ea728786de8773872d35ed026 |
18:19:58
| <isaacs> | dominictarr: node-solr: https://github.com/isaacs/node-solr/commit/fe2c98de9c168e2477f2de0b537e7c610d9c5aab |
18:20:12
| * isaacs | going through list of github repos, looking for ones that i don't use or remember writing |
18:20:54
| <isaacs> | dominictarr: node-xml https://github.com/isaacs/node-xml/commit/fe3350879f0ac93a84a001f6437ca5bd661742e8 |
18:28:16
| <dominictarr> | isaacs: thanks |
18:28:58
| <dominictarr> | this one is the best https://github.com/smtlaissezfaire/ndb/pull/5 |
18:42:13
| * tmcw | quit (Remote host closed the connection) |
18:42:46
| * tmcw | joined |
18:46:19
| * tilgovi | joined |
18:47:06
| * tmcw | quit (Ping timeout: 245 seconds) |
18:50:07
| * mikolalysenko | joined |
18:53:01
| <jcrugzz> | substack: substack.net is down |
18:53:12
| * tmcw | joined |
18:57:02
| * ednapiranha | quit (Remote host closed the connection) |
18:58:11
| * jxson | quit (Remote host closed the connection) |
18:58:19
| * jxson | joined |
19:00:34
| * itpro | joined |
19:00:34
| * itpro | changed nick to ITpro |
19:07:16
| * mirkokiefer | joined |
19:14:16
| * ins0mnia | quit (Ping timeout: 256 seconds) |
19:14:18
| * ITpro | quit (Ping timeout: 276 seconds) |
19:14:35
| * mirkokiefer | quit (Quit: mirkokiefer) |
19:15:04
| * ins0mnia | joined |
19:17:51
| <shama> | Anyone familiar with getting "Error: spawn ENOENT" when running testling locally? I have browserify/testling installed globally and running $ testling on this branch: https://github.com/maxogden/level.js/pull/18 |
19:19:34
| <jesusabdullah> | http://arcticfibre.com/ wat |
19:21:15
| <Raynos> | https://idea.popcount.org/2013-09-05-it-aint-about-the-callbacks/ |
19:21:32
| <Raynos> | ^ is that basically "we are reading & writing in parallel for efficienciy and have to buffer more?" |
19:22:54
| <jesusabdullah> | To me it looks like, "callbacks vs promises is stupid when we have streams to argue about" |
19:23:31
| * stagas | quit (Read error: Connection reset by peer) |
19:24:15
| * mikolalysenko | quit (Ping timeout: 260 seconds) |
19:24:19
| <Raynos> | well hes talking about pull vs push |
19:24:34
| <Raynos> | and im curious how you can make the buffering (2) better |
19:25:45
| <jesusabdullah> | I mean, isn't that just backpressure 101? |
19:25:59
| <jez0990_> | shama: have you tried `killall node`? |
19:26:46
| * dominictarr | quit (Quit: dominictarr) |
19:27:22
| <shama> | jez0990_: thanks, I get: No matching processes belonging to you were found |
19:28:09
| * ednapiranha | joined |
19:29:35
| * Ralt | quit (Ping timeout: 245 seconds) |
19:30:00
| <jez0990_> | shama: and presumably you're not running node using sudo...? I'm all out of ideas after that, sorry :) (that error message is just very familiar recently!) |
19:30:42
| * Ralt | joined |
19:31:00
| <jesusabdullah> | how many times did you reboot? |
19:31:09
| <shama> | jez0990_: nope, as a user. Node v0.10.17 |
19:32:10
| <thlorenz> | did you know that with streams2 if you use objectMode and you happen to push Number 0, that kills your stream? |
19:32:20
| <shama> | I guess Ill just open my browser until I get that figured out... *drags his mouse dramatically over to the chrome icon* |
19:33:48
| <thlorenz> | but somehow you only see that if you put a transform in the middle - I guess this is not intended right isaacs? |
19:36:05
| * mikolalysenko | joined |
19:36:22
| * ednapiranha | quit (Ping timeout: 256 seconds) |
19:37:39
| * fotoverite | joined |
19:39:26
| * fotoverite | quit (Read error: Connection reset by peer) |
19:41:16
| * fotoverite | joined |
19:41:31
| * jxson | quit (Remote host closed the connection) |
19:42:19
| * jxson | joined |
19:43:46
| * fotoverite | quit (Read error: Connection reset by peer) |
19:44:35
| <thlorenz> | isaacs: made a repro repo: https://github.com/thlorenz/Streams2TransformPush0Bug |
19:54:13
| <isaacs> | thlorenz: sounds like a bug, i'll dig into it after lunch |
19:54:26
| <isaacs> | thlorenz: it'd help if you had an example that didn't use any external modules. |
19:54:33
| <isaacs> | thlorenz: like, just a script that only uses node stuff. |
19:57:35
| <thlorenz> | isaacs: cool - yeah that example is pure node :) |
20:00:40
| <thlorenz> | isaacs: made an issue https://github.com/joyent/node/issues/6183 that also links to my reproduction repo |
20:01:15
| * AvianFlu | quit (Remote host closed the connection) |
20:04:31
| <mikolalysenko> | if anyone has a spare set of eyeballs, could someone give these lecture notes a look over to spot check them for errors? https://github.com/CS558/technology-lecture-2-node |
20:05:22
| * gwenbell | joined |
20:05:34
| <isaacs> | thlorenz: fwiw, it's fixed in master |
20:05:51
| <isaacs> | thlorenz: simpler example script: https://gist.github.com/isaacs/6455434 |
20:05:55
| <thlorenz> | isaacs: was fixed or just now got fixed? |
20:05:58
| * gwenbell | quit (Client Quit) |
20:06:05
| <isaacs> | thlorenz: works as of current master. |
20:06:16
| <isaacs> | thlorenz: probably fixed in the stream3 refactor |
20:06:20
| <isaacs> | by accident, i mean |
20:06:33
| <thlorenz> | isaacs: any chance of that fix landing for stream2 as well? |
20:06:43
| <isaacs> | yes |
20:06:45
| <isaacs> | looking |
20:06:50
| <isaacs> | thlorenz: well, not THAT fix |
20:06:53
| <isaacs> | thlorenz: but A fix, sure. |
20:07:28
| <thlorenz> | isaacs: :) it's not that crucial - isn't blocking me or anything, just ran into it while digging into streams a bit |
20:07:40
| * evbogue | joined |
20:08:05
| <thlorenz> | isaacs: btw streams2 and streams3 API is identical just some subtle behavior changes right? |
20:08:44
| <isaacs> | thlorenz: found the bug |
20:08:49
| <isaacs> | thlorenz: yes |
20:08:55
| <isaacs> | thlorenz: streams3 is strictly additive |
20:08:55
| <thlorenz> | that was quick :) |
20:09:00
| <isaacs> | yeah, it was what i suspected |
20:09:09
| * AvianPhone | joined |
20:11:49
| <thlorenz> | isaacs: I like that short example - so a PassThru is basically a noop Transform - is that's why it exposed the same problems? |
20:13:51
| <isaacs> | yep |
20:14:31
| <thlorenz> | cool - still trying to wrap my head around things - especially how backpressure works now and such |
20:15:03
| * jxson | quit (Remote host closed the connection) |
20:18:29
| * intabulas | joined |
20:20:24
| <isaacs> | thlorenz: landed in v0.10. it'll be in the next release. thanks for finding it :) |
20:21:06
| <thlorenz> | isaacs: awesome and my pleasure -- next time I'll try to go the extra step and supply at test and fix ;) |
20:21:16
| <isaacs> | no probs |
20:21:27
| * ednapiranha | joined |
20:21:49
| <Raynos> | isaacs: https://idea.popcount.org/2013-09-05-it-aint-about-the-callbacks/ that second issue is just a complaint about pipe() making the "wrong" default tradeoff ? |
20:22:11
| <Raynos> | i believe the author is just being full of shit and should implement his own pipe for his own tradeoff |
20:27:26
| <isaacs> | Raynos: well, he's upset that there's such a thing as a high water mark |
20:27:40
| <Raynos> | yes |
20:27:40
| <isaacs> | his assertions are false, though |
20:27:53
| <Raynos> | specifically he is upset that in a.pipe(b).pipe(c).pipe(d) b and c have their own hwm |
20:28:08
| <Raynos> | if b & c are not complex buffering async transforms then thats overkill |
20:28:18
| <isaacs> | ight |
20:28:36
| <Raynos> | but that might be solved by setting hwm to 0 on b & c |
20:30:00
| <thlorenz> | Raynos: since we are talking about streams do you have a link to a good explanation of a.pipe(b).pipe(a)? |
20:30:11
| <Raynos> | thlorenz: not realy |
20:30:15
| <thlorenz> | I don't get it - what if a is a readstream - how can I write to it? |
20:30:21
| <isaacs> | Raynos: i'd correct him, but i'm trying to not take responsibility for the correctness of the internet. |
20:30:28
| <isaacs> | Raynos: duty calls and all that. |
20:30:37
| * isaacs | fooding |
20:31:16
| <Raynos> | isaacs: is it possible to configure streams to have the one buffer flows from Readable to Writable at a time? or is it stupid to not have Readable fill up to hwm pre-emptively ? |
20:31:31
| <thlorenz> | Raynos: or maybe we can take some time @nodedonfeu and you help me get my head straight with all that streams stuff that has me confused at this point? |
20:31:41
| <Raynos> | thlorenz: for sure |
20:31:50
| <thlorenz> | cool :) looking forward to it |
20:31:52
| <Raynos> | thlorenz: the answer for a.pipe(b).pipe(a) is that it only works for TWO duplex streams |
20:32:13
| <thlorenz> | Raynos: ok, but then wouldn't that keep going forever? |
20:32:34
| <Raynos> | thlorenz: no because duplex streams are { in: Readable, out: Writable } |
20:32:37
| <Raynos> | conceptually |
20:32:47
| <Raynos> | and its a.in.pipe(b.out), b.in.pipe(a.out) |
20:33:01
| <Raynos> | for a through stream its an infinite loop |
20:33:36
| * mikolalysenko | quit (Ping timeout: 256 seconds) |
20:33:41
| <Raynos> | basically through means `stream.write(a) => stream.emit("data", a)` and duplex means `stream.write(a) => someone over the network gets a` |
20:34:56
| <thlorenz> | so you are saying a.out doesn't go back into a.in and therefore the loop is broken right there? |
20:35:18
| <Raynos> | yes |
20:35:32
| <Raynos> | unless you have net.createServer(function (s) { s.pipe(s) }) |
20:35:42
| <Raynos> | if the guy on the other end is an echo server you still get an infinite loop |
20:35:52
| <Raynos> | thlorenz: I think figure of eight is a good example of duplex |
20:36:12
| <Raynos> | thlorenz: but basically duplex is two directed edges and thruogh is a single directed edge |
20:36:27
| <Raynos> | duplex obvouisly has two directed edges where they are the same edge but in the other direction |
20:37:16
| <thlorenz> | thanks, that helps -- will still ask a bit more when we meet though ;) |
20:41:50
| * AvianPhone | quit (Ping timeout: 240 seconds) |
20:42:06
| * mikolalysenko | joined |
20:45:38
| <thlorenz> | Raynos: after staring at this for another minute I think it finally clicked |
20:46:05
| <thlorenz> | so I'd use this to get some data from a client, transform it and pipe the results back out for instance right? |
20:46:05
| <Raynos> | thlorenz: :) |
20:46:21
| <Raynos> | yes |
20:46:23
| <Raynos> | thats one thing you can do |
20:46:27
| <Raynos> | you can also move the data somewhere |
20:46:32
| <Raynos> | like |
20:46:51
| <Raynos> | req.pipe(request("http://lulz.com" + req.url)).pipe(res) |
20:46:55
| <Raynos> | or you can do |
20:47:02
| <Raynos> | req.pipe(UPPERCASE()).pipe(res) |
20:47:15
| <thlorenz> | but req != res ? |
20:48:08
| <jesusabdullah> | yeah well |
20:48:19
| <thlorenz> | I mean that part was clear to me, just not version where you pipe back out into the same stream that piped you the data in in the first place |
20:48:40
| <thlorenz> | but I think now I get it - it just functions as both |
20:49:23
| <thlorenz> | and reads come from the other party and writes go to it and at that point the connection is interrupted unless it echos my writes back at me |
20:55:55
| * AvianPhone | joined |
20:58:32
| * djcoin | quit (Quit: WeeChat 0.4.0) |
21:15:22
| * jxson | joined |
21:19:36
| * jxson | quit (Ping timeout: 245 seconds) |
21:34:21
| * kevino80 | quit (Remote host closed the connection) |
21:36:50
| * jcrugzz | quit (Ping timeout: 264 seconds) |
21:37:14
| * jxson_ | joined |
21:48:33
| * itpro | joined |
21:48:33
| * itpro | changed nick to ITpro |
21:49:26
| * AvianPhone | quit (Ping timeout: 240 seconds) |
21:52:44
| * intabulas | quit (Remote host closed the connection) |
21:57:08
| * maksimlin | joined |
22:04:45
| * tmcw | quit (Remote host closed the connection) |
22:07:05
| * thlorenz | quit (Remote host closed the connection) |
22:07:44
| * AvianPhone | joined |
22:14:09
| <Raynos> | thlorenz: sure but you can do `var socket = duplex(req, res); socket.pipe(UPPERCASE()).pipe(socket)` |
22:14:14
| * AvianPhone | quit (Ping timeout: 240 seconds) |
22:15:59
| * mikolalysenko | quit (Ping timeout: 246 seconds) |
22:27:29
| * dominictarr | joined |
22:30:38
| * AvianPhone | joined |
22:37:39
| * thlorenz | joined |
22:41:07
| * mirkokiefer | joined |
22:41:21
| * spolu | quit (Remote host closed the connection) |
22:42:26
| * gwenbell | joined |
22:47:30
| * thlorenz | quit (Ping timeout: 276 seconds) |
22:48:39
| * mikolalysenko | joined |
23:00:38
| * AvianPhone | quit (Ping timeout: 240 seconds) |
23:01:09
| * defunctzombie | changed nick to defunctzombie_zz |
23:01:21
| * fallsemo | quit (Quit: Leaving.) |
23:01:34
| * AvianPhone | joined |
23:04:38
| * defunctzombie_zz | changed nick to defunctzombie |
23:08:54
| * AvianPhone | quit (Read error: Connection reset by peer) |
23:09:07
| * defunctzombie | changed nick to defunctzombie_zz |
23:09:14
| * AvianPhone | joined |
23:14:44
| * mirkokiefer | quit (Quit: mirkokiefer) |
23:14:56
| * dominictarr | quit (Quit: dominictarr) |
23:17:51
| * dominictarr | joined |
23:17:57
| * maksimlin | quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0/20130803215302]) |
23:27:00
| * yorick | quit (Remote host closed the connection) |
23:30:19
| * thlorenz | joined |
23:35:37
| * tilgovi | quit (Remote host closed the connection) |
23:37:02
| * ednapiranha | quit (Remote host closed the connection) |
23:37:54
| * mikolalysenko | quit (Ping timeout: 264 seconds) |
23:40:36
| * thlorenz | quit (Remote host closed the connection) |
23:42:45
| * thlorenz | joined |
23:43:58
| * dominictarr | quit (Quit: dominictarr) |
23:47:57
| * thlorenz | quit (Ping timeout: 276 seconds) |