00:09:44  * arlolraquit (Quit: Linkinus - http://linkinus.com)
00:25:31  * isaacsjoined
01:09:59  * brsonjoined
01:23:59  * brsonquit (Quit: leaving)
01:38:09  * isaacsquit (Read error: Connection reset by peer)
01:38:50  * isaacsjoined
01:52:18  * bnoordhuisquit (Ping timeout: 276 seconds)
02:11:11  * isaacsquit (Quit: isaacs)
03:49:43  * piscisaureusquit (Ping timeout: 245 seconds)
06:06:38  * mralephjoined
07:05:34  * mralephquit (Quit: Leaving.)
07:32:19  * mralephjoined
07:32:23  * mralephquit (Client Quit)
13:44:23  * bnoordhuisjoined
14:04:05  <CIA-75>node: jkummerow@chromium.org master * rb5643cb / deps/v8/src/elements.cc :
14:04:06  <CIA-75>node: v8: remove unnecessary break-after-return in switch statement
14:04:06  <CIA-75>node: BUG=v8:1642
14:04:06  <CIA-75>node: Review URL: http://codereview.chromium.org/7781007
14:04:06  <CIA-75>node: This is a back-port of upstream r9043. Fixes build on OS X 10.5. - http://git.io/rhv4Uw
14:13:49  <bnoordhuis>ryah: i want to strip -Werror from v8/deps/SConstruct
14:54:13  * piscisaureusjoined
15:49:52  <bnoordhuis>piscisaureus: you there homie?
15:50:09  <piscisaureus>bnoordhuis: probably
15:50:23  <piscisaureus>to be or not to be
15:50:25  <bnoordhuis>piscisaureus: having an existential crisis again?
15:50:40  <piscisaureus>yes
15:50:55  <bnoordhuis>that's the great thing about being an avatarist
15:51:09  <bnoordhuis>everyone else is just a figment of my vivid imagination
15:51:31  <bnoordhuis>so figment, what does it feel like to be the release manager?
15:51:35  <piscisaureus>but does your imagination even exist?
15:52:06  <piscisaureus>*shrug*
15:52:22  <piscisaureus>I'm a stranger to feelings
15:52:56  <bnoordhuis>enough about you
15:52:59  <bnoordhuis>let's talk shop
15:53:56  <bnoordhuis>hah sorry, you can tell me everything bertje
15:54:00  <bnoordhuis>you know that, don't you?
15:54:12  <piscisaureus>hah
15:54:17  <piscisaureus>what's up ben?
15:54:26  <bnoordhuis>the opposite of down, i think
15:54:44  <bnoordhuis>what features do we want for the upcoming release?
15:55:06  <bnoordhuis>there's a bug where peer.address reports the server address
15:55:22  <bnoordhuis>requires getpeername to work right
15:55:36  <piscisaureus>hmm
15:55:36  <bnoordhuis>broadcast and multicast probably
15:56:59  <bnoordhuis>oh, and the uv_tp_* stuff
15:57:21  <bnoordhuis>you know, i always read that as uv_toiletpaper_*
15:58:54  <piscisaureus>bnoordhuis: the list is here: https://github.com/joyent/node/issues?state=open&milestone=2
15:59:15  <piscisaureus>if you want the getpeername bug in, pls add it there too
15:59:20  <bnoordhuis>sure
15:59:27  <bnoordhuis>but that's only what's been tagged so far
15:59:36  <piscisaureus>yes I know
16:00:02  <piscisaureus>I think there's a patch for a eio/darwin bug floating around on the ml as well
16:00:27  <bnoordhuis>i think jorge attached it to the issue
16:00:33  <piscisaureus>that's for test-fs-sir-writealot
16:00:56  <piscisaureus>yes
16:01:00  <piscisaureus>so what are you going to do?
16:01:15  <bnoordhuis>the unix side of uv_toiletpaper_*
16:01:16  <piscisaureus>I think ryah should do the npm bug
16:01:36  <piscisaureus>the paths issue should be fixed by igor or me
16:02:03  <piscisaureus>we can remove pthreads-win32 when there are bindings for uv_tp_
16:02:14  <bnoordhuis>i'll look at the https uncatchable errors thing
16:02:32  <bnoordhuis>i fixed that for http, it's probably related
16:02:58  <piscisaureus>I think you get that because uv_write fails immediately when the connection has been reset
16:03:06  <piscisaureus>we might rethink that, or check errno
16:03:12  <piscisaureus>after writing
16:03:47  <bnoordhuis>no, it also happens with 0.4.x
16:04:14  <piscisaureus>I'm going to need you and ryan to check the sunos and mac builds when the time comes btw
16:04:19  <bnoordhuis>sure
16:04:26  <piscisaureus>I can only test linux and various windows versions
16:04:34  <bnoordhuis>i'll do sunos and linux
16:05:18  <bnoordhuis>btw, how did that CreateSymbolicLinkA thing slip through?
16:05:26  <piscisaureus>shrug
16:05:27  <bnoordhuis>i compiled with mingw on xp sp3 and it worked fine
16:05:36  <piscisaureus>hmm
16:05:37  <piscisaureus>no idea
16:05:58  <piscisaureus>Oh
16:06:09  <DrPizza_>mingw has different #defines
16:06:24  <piscisaureus>mingw doesn't even have CreateSymbolicLinkA in its headers
16:06:27  <bnoordhuis>so it's a msvc issue?
16:06:37  <DrPizza_>bnoordhuis: no, it's a testing issue :)
16:06:46  <bnoordhuis>heh
16:06:54  <piscisaureus>bnoordhuis: I think when you compile with mingw it leaves out symlink support completely
16:06:54  <bnoordhuis>i'll install msvc next time around
16:06:55  <DrPizza_>bnoordhuis: MSVC is set to use newer versions for the Windows headers
16:07:03  <DrPizza_>because MSVC has a full set of up-to-date Windows headers.
16:07:05  <DrPizza_>mingw doesn't.
16:07:18  <bnoordhuis>open source software lagging behind? heresy!
16:07:20  <piscisaureus>we should leave out the createsymboliclinka call
16:07:27  <DrPizza_>piscisaureus: yes, we have
16:07:34  <piscisaureus>the eio implementation is bull anyway
16:07:39  <DrPizza_>piscisaureus: I mean we should probably have it when FS operations are implemented
16:07:40  <piscisaureus>since it creates only file symlinks
16:07:44  <DrPizza_>no
16:07:46  <DrPizza_>it tries both
16:07:50  <DrPizza_>it tries directory then falls back to file
16:07:57  <piscisaureus>oh it stats the target?
16:08:02  <DrPizza_>no
16:08:07  <DrPizza_>it just tries to create a dir symlink
16:08:12  <DrPizza_>and if that fails it tries a file symlink
16:08:19  <piscisaureus>that's stupid
16:08:26  <piscisaureus>then it'll just always create a dir symlink
16:08:44  <DrPizza_>I assume the logic is that you can't create dir symlinks to non-dirs
16:08:50  <DrPizza_>I assume that's true, but I have not tested myself.
16:08:55  <piscisaureus>no it's bull
16:09:02  <piscisaureus>the target doesn't need to exist
16:09:26  <DrPizza_>I would imagine that symlinking to non-existent files is a rare corner case
16:09:44  <bnoordhuis>dangerous assumption
16:09:45  <piscisaureus>DrPizza: you can happily create a dir symlink to a file
16:09:50  <DrPizza_>nobody uses symlinks on Windows anyway.
16:09:53  <DrPizza_>piscisaureus: you can? does it work?
16:10:26  <piscisaureus>well the creation work
16:10:31  <piscisaureus>the symlink doesn't work tho
16:10:44  <DrPizza_>that is idiotic
16:11:24  <piscisaureus>DrPizza: try this:
16:11:24  <piscisaureus>echo foo > foo.txt
16:11:24  <piscisaureus>mklink /d foo2 foo.txt
16:11:52  <piscisaureus>DrPizza: yes it's idiotic
16:11:57  <DrPizza_>C:\Temp\symlink>mklink /d foo2 foo.txt
16:11:57  <DrPizza_>You do not have sufficient privilege to perform this operation.
16:11:59  <DrPizza_>heh
16:12:07  <piscisaureus>DrPizza_: windows flaw
16:12:20  <piscisaureus>you need to run privileged to do this
16:12:54  <DrPizza_>C:\Temp\symlink>cd foo2
16:12:54  <DrPizza_>The directory name is invalid.
16:13:03  <piscisaureus>DrPizza_: ok
16:13:09  <piscisaureus>but mklink worked
16:13:19  <piscisaureus>only actually using the symlink fails
16:13:24  <DrPizza_>yes
16:13:26  <DrPizza_>how stupid.
16:13:36  <piscisaureus>DrPizza_: another think
16:13:44  <DrPizza_>though you realize
16:13:58  <DrPizza_>the permissions thing means that basically no node user will be able to create symlinks anyway
16:14:11  <piscisaureus>DrPizza_: you *can* create junction points when you're not privileged
16:14:19  <DrPizza_>lol
16:14:20  <piscisaureus>and these work on xp too
16:14:20  <DrPizza_>no way
16:14:24  <piscisaureus>try it
16:14:34  <piscisaureus>junctions work only for directories
16:14:46  <piscisaureus>but I guess that's enough for npm for example
16:15:22  <piscisaureus>DrPizza: (creating junctions programmatically is crazy hard btw. I have some code that does this)
16:15:36  <DrPizza_>are junctions reparse points?
16:16:05  <DrPizza_>I don't like junctions
16:16:14  <DrPizza_>delete on the junction recurses rather than deleting the junction
16:16:19  <DrPizza_>this is rarely the desired behaviour
16:19:06  <DrPizza_>(it's not impossible that they've changed the behaviour, at least to make Explorer recognize what you're doing, but in around the XP era, it was a big nasty gotcha)
16:20:23  <piscisaureus>DrPizza_: I heard a story like that, but I was unable to verify this
16:20:29  <piscisaureus>for me it seemed to work fine
16:21:14  <piscisaureus>also on xp
16:21:36  <CIA-75>node: Jann Horn master * r1a0edbc / src/node.js : module: remove 'is URL?' check in module loader, dead code - http://git.io/PZX3WQ
16:33:07  * bnoordhuislocks #1577
16:33:26  <piscisaureus>DrPizza_: hey
16:33:42  <piscisaureus>is it possible to have the msvs debugger attach automatically to a child process?
16:40:56  <DrPizza_>no
16:40:56  <DrPizza_>:(
16:41:18  <DrPizza_>that's why I proposed a change
16:41:22  <DrPizza_>let me dig out the source
16:41:25  <DrPizza_>maybe it got integrated
16:43:12  <DrPizza_>ah regrettably it has not been
16:44:17  <DrPizza_>piscisaureus: https://github.com/DrPizza/libuv/blob/master/src/win/process.c#L859 and https://github.com/DrPizza/libuv/blob/master/src/win/process.c#L875
16:44:30  <DrPizza_>piscisaureus: a similar change is also useful in the test-runner
16:44:43  <DrPizza_>set a breakpoint on the ResumeThread line
16:44:56  <DrPizza_>that gives you an opportunity to attach to the child process
16:44:58  <DrPizza_>before it's started
16:45:19  <piscisaureus>igorzi: spawn() doesn't let the child process use the console
16:45:31  <piscisaureus>DrPizza_: ok thanks
16:45:35  <piscisaureus>let me use that for a while
16:45:44  <piscisaureus>so I can judge it's usefullness
16:46:30  <piscisaureus>http://twitter.com/#!/FreshCode/status/108206060820631553
16:50:15  <bnoordhuis>^ how is that our problem?
16:50:25  <bnoordhuis>let socket.io update their examples
16:51:03  <piscisaureus>require.paths removal is pita
16:51:29  <bnoordhuis>it was for the greater good though, wasn't it?
16:52:12  * mralephjoined
16:52:16  <bnoordhuis>maybe i should write more node apps, see what it's like from the user's perspective
16:54:06  <piscisaureus>you should've done nko
16:55:15  <bnoordhuis>i'm rather out of the loop when it comes to webgl, canvas and socket.io
16:55:25  <piscisaureus>yes me too
16:55:34  <piscisaureus>haven't use socket.io ever
16:55:42  <DrPizza_>webgl is infuriating
16:55:56  <piscisaureus>agreed
16:56:17  <bnoordhuis>i thought it was just some javascript sauce over the opengl api?
16:56:25  <piscisaureus>yes
16:56:35  <bnoordhuis>so what's so bad about that?
16:57:33  <DrPizza_>the security implications weren't throughly assessed, and fixes for known problems weren't properly developed, but browsers went ahead and implemented it anyway
16:57:36  <DrPizza_>but more fundamentally
16:57:37  <DrPizza_>what the hell
16:57:45  <DrPizza_>why do we need OpenGL in the frigging Web browser.
16:58:01  <bnoordhuis>going out on a limb here: for 3d?
16:58:01  <DrPizza_>Can't we do something useful, like make HTML/CSS not awful first?
16:58:19  <bnoordhuis>what is html/css?
16:58:26  <DrPizza_>awful
16:58:26  * bnoordhuisducks
16:58:53  <piscisaureus>I don't agree with DrPizza's reasons.
16:58:53  <piscisaureus>WebGl is too low-level, inconvenient to work with. Google's O3D was much better
16:59:15  <piscisaureus>but afaik moz nuked it
16:59:24  <DrPizza_>piscisaureus: even higher-level frameworks are IMO pitched at fundamentally the wrong level for typical Web developers
16:59:28  <bnoordhuis>that's the same complaint most people had about opengl: 'too low-level'
16:59:35  <bnoordhuis>that's what libraries and frameworks are for
16:59:50  <DrPizza_>meh
16:59:59  <DrPizza_>then you end up with a bunch of different libraries and frameworks
17:00:03  <DrPizza_>all with different functionality
17:00:07  <DrPizza_>none of which play nicely together
17:00:13  <bnoordhuis>so? that the best one may win
17:00:23  <DrPizza_>there is rarely a singular "best one"
17:00:28  <bnoordhuis>see jquery vs. eh...
17:00:32  <bnoordhuis>those other ones
17:00:33  <DrPizza_>there is, however, an awful lot of duplication of effort
17:00:49  <bnoordhuis>i don't mind
17:00:52  <DrPizza_>yuo, mootools, prototype, dojo, scriptaculous, ...
17:01:01  <bnoordhuis>there is *always* a lot of duplication of effort
17:01:08  <bnoordhuis>it's what programmers are like
17:01:26  <bnoordhuis>like and are like
17:01:35  <DrPizza_>I don't think it's necessarily very useful or healthy
17:01:38  <DrPizza_>don't get me wrong
17:01:47  <DrPizza_>I certainly think that people should experiment and try to tackle problems in new ways
17:02:08  <DrPizza_>I'm just not convinced that, for example, various different WebGL or JavaScript frameworks are doing that
17:02:31  <DrPizza_>I think that for the most part, they're tackling basically the same problems, in basically the same ways, just with features that don't quite line up, and pisspoor interop
17:03:15  <bnoordhuis>i see your point
17:03:22  <bnoordhuis>i just don't agree with it :)
17:03:41  <bnoordhuis>well, we'll see how it plays out
17:03:58  <DrPizza_>I imagine the way it'll play out is that people will get 0wned by WebGL code
17:04:47  <bnoordhuis>that's always part of new technologies
17:04:56  <bnoordhuis>kind of exciting, isn't it? like the wild west
17:05:04  <DrPizza_>really, tohugh?
17:05:06  <DrPizza_>does it have to be?
17:05:29  <DrPizza_>haven't we learned enough about browsers to know that that's not the best way forward?
17:05:45  <bnoordhuis>hmm
17:06:08  <bnoordhuis>most technologies come into existence by tacking on new features onto existing stuff
17:06:13  <bnoordhuis>c.f. xmlhttprequest
17:06:39  <DrPizza_>bnoordhuis: sure, but like... how about not including shader programs until they've devised a way to stop them DoSing your PC?
17:07:01  <bnoordhuis>oh right, silly stuff like that should be fixed, no disagreement there
17:08:36  <piscisaureus>DoSing your pc?
17:08:55  <piscisaureus>sounds a little overstretched to me
17:09:14  <DrPizza_>piscisaureus: the detection and preventing of shader program infinite loops and other shenanigans was inadequate (it's a bit better now), which meant that WebGL could lock up your video card
17:09:19  <bnoordhuis>piscisaureus: webgl allows (allowed?) you to execute shaders that more or less lock up your GPU
17:09:39  <piscisaureus>yeah so
17:09:51  <bnoordhuis>slight nuisance
17:09:54  <DrPizza_>so, a locked up GPU is pretty disastrous for standard single-user desktop systems
17:10:02  <piscisaureus>javascript allows you to exec stuff that more or less locks up your cpu
17:10:04  <bnoordhuis>you windows people are probably better used to it
17:10:15  <DrPizza_>piscisaureus: CPUs are arbitrarily interruptible
17:10:18  <DrPizza_>GPUs aren't.
17:10:21  <DrPizza_>GPUs are getting better
17:10:33  <DrPizza_>but they don't--yet--allow any kind of convenient timeslicing
17:10:45  <DrPizza_>so if the GPU is stuck in a shader loop, that means your desktop doesn't get to draw.
17:11:06  <DrPizza_>Windows, for example, will reset the display driver it it hangs for 5 seconds
17:11:12  <piscisaureus>is there a demo site that does this to me?
17:11:20  <DrPizza_>which makes the desktop flicker as it reinitializes the video card
17:11:23  <DrPizza_>but allows recovery
17:11:24  <DrPizza_>HOWEVER
17:11:37  <DrPizza_>if your GPU driver performs a certain number of back-to-back hangs, Windows will blue-screen
17:12:03  <DrPizza_>(deliberately; if the GPU is stuck in an infinite loop of infinite loops, it assumes the shit has hit the fan, so a semi-orderly BSOD shutdown is its safest course of action)
17:12:43  <bnoordhuis>that sounds pretty sane, actually
17:12:57  <piscisaureus>I wonder if they couldn't just switch the driver to vga
17:13:10  <DrPizza_>piscisaureus: that's an interesting suggestion, I think they probably could
17:13:13  <DrPizza_>but I guess the problem is
17:13:19  <DrPizza_>the system doesn't know why the GPU driver keeps hanging
17:13:24  <DrPizza_>it might be indicative of something genuinely wrong
17:13:30  <DrPizza_>https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/extra/lots-of-polys-example.html
17:13:44  <DrPizza_>^^ on various versions of Chrome, that program will cause teh display driver to reset
17:13:49  <DrPizza_>or hang the Mac OS X desktop
17:14:00  * piscisaureussaves all
17:14:06  <DrPizza_>it may be that the latest Chrome detects it and stop sit
17:14:38  <piscisaureus>yes! boom!
17:14:47  <piscisaureus>firefox 6
17:14:52  <DrPizza_>what happens?
17:15:01  <DrPizza_>windows restarted the display driver?
17:15:11  <piscisaureus>didn't say so
17:15:22  <piscisaureus>but there are specks everywhere on my desktop
17:15:25  <DrPizza_>O_O
17:15:27  <DrPizza_>that sounds odd
17:15:30  <piscisaureus>seemingly got memory corruption
17:15:35  <DrPizza_>orly
17:15:41  <DrPizza_>that's even better than crashing
17:16:36  * bnoordhuisclicks the link
17:16:58  <bnoordhuis>FAIL Unable to fetch WebGL rendering context for Canvas <- hah!
17:17:24  <bnoordhuis>they laughed at me when i installed netscape 4 but who's laughing now?!
17:19:07  <DrPizza_>there are other issues it exposes; display drivers just aren't hardened, they don't do important things like properly zeroing memory to prevent data leakage
17:19:08  <piscisaureus>closing firefox doesn't even stop it :-/
17:22:13  <piscisaureus>drpizza_: http://twitpic.com/6d6tqv/full
17:22:17  <piscisaureus>gotta reboot now
17:22:21  <bnoordhuis>haha
17:22:21  <DrPizza_>bnoordhuis: I'm sure over time the various holes will be patched, and 3D graphics people might stop writing shitting drivers (lol, as if)
17:22:27  * DrPizza_changed nick to DrPizza
17:22:48  <DrPizza>but basically the entire thing is being done ass-backwards
17:23:06  <DrPizza>and all because somebody decided that 3D graphics in the browser was somehow essential
17:23:13  <DrPizza>piscisaureus: whoa
17:23:28  <bnoordhuis>awesome!
17:23:38  <piscisaureus>my computer still works right btw
17:23:44  <piscisaureus>just the screen is fucked up
17:23:47  <DrPizza>piscisaureus: if you kill dwm.exe
17:23:53  <DrPizza>does it recover?
17:24:04  <piscisaureus>no
17:24:09  <bnoordhuis>DrPizza: yeah, i did some contract work for the games industry a couple of years ago - you wouldn't believe how many driver hacks the average engine contains
17:24:21  <DrPizza>bnoordhuis: ugh, yes
17:24:21  <bnoordhuis>same goes for the x.org video drivers
17:24:26  <DrPizza>bnoordhuis: and here's the thing
17:24:31  <DrPizza>game devs want their games to work
17:24:33  <DrPizza>so they work around driver bugs
17:24:41  <DrPizza>hackers, however, want your browser to NOT work
17:24:45  <DrPizza>they WANT to provoke the bugs
17:24:50  <DrPizza>because that's how they can fuck your shit up
17:25:07  * piscisaureusquit (Read error: Connection reset by peer)
17:25:13  <DrPizza>so even thugh games are actually still quite unreliable a lot of the time
17:25:21  <DrPizza>they are kind of a "best case" for GPU drivers
17:25:53  <bnoordhuis>yep, they're playing nice
17:25:59  <bnoordhuis>biab, dinner time!
17:28:59  * piscisaureusjoined
17:33:17  * rmustaccjoined
17:34:20  * brsonjoined
17:34:37  <piscisaureus>fucking hell
17:34:46  <piscisaureus>firefox session-restored that page
17:34:53  <DrPizza>lollllll
17:36:34  <piscisaureus>so I opened the same page in chrome
17:36:42  <piscisaureus>then windows reset my driver
17:36:45  <piscisaureus>and it was all over
17:37:09  <DrPizza>piscisaureus: yeah. the trick is to keep reloading that page, so that windows resets the driver over and over :)
17:37:21  <piscisaureus>let me try
17:37:31  <piscisaureus>nothing to lose now anyway
17:39:29  <DrPizza>I don't know what the threshold is, I don't know how many crashes it needs in what time period
17:40:26  * piscisaureus_joined
17:40:37  * piscisaureusquit (Read error: Connection reset by peer)
17:41:04  <piscisaureus_>heh
17:41:08  <piscisaureus_>that was quick
17:41:18  <piscisaureus_>refreshed twice and the bsod hit
17:41:41  <bentkus>you mad bro
17:41:43  <DrPizza>haha
17:41:57  <DrPizza>piscisaureus_: so anyway, that's what I mean about DoS :)
17:42:40  <piscisaureus_>yes okay I agree
17:43:15  <piscisaureus_>still what firefox does is totally not okay
17:43:38  <DrPizza>yeah that's weird
17:43:39  <bentkus>what is firefox doing?
17:43:43  <DrPizza>I'm quite curious about how that happens
17:44:03  <piscisaureus_>bentkus: http://twitpic.com/6d6tqv/full
17:45:11  <bentkus>seems completly normal to me
17:45:20  <bentkus>:D
17:45:47  <bentkus>THIS is caused by firefox?
17:45:55  <bentkus>They are doing something seriously fucked up
17:46:18  <piscisaureus_>bentkus: I visited https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/extra/lots-of-polys-example.html in firefox6
17:47:36  <bentkus>microsoft warned us that this could happen
17:50:05  <piscisaureus_>seems they were right
17:53:01  <bentkus>my computer froze
17:53:04  <bentkus>under ubuntu/firefox5
17:53:15  <bentkus>is this a firefox bug only?
17:53:29  <piscisaureus_>bentkus: I tried with chrome too
17:53:32  <bentkus>and?
17:53:35  <piscisaureus_>windows resets the display driver
17:53:37  <piscisaureus_>then it's over
17:53:46  <piscisaureus_>unless I keep refreshing the page
17:53:54  <piscisaureus_>then windows BSODs
17:54:13  <bentkus>so much to the awesomeness of webgl
17:54:58  <bentkus>my dream of counter strike in the browser written with node.js!
17:55:00  <bentkus>forever gone!
17:55:22  <piscisaureus_>not rly
17:55:31  <piscisaureus_>you guys need to harden your stuff
17:56:03  <bentkus>"harden your stuff" :D
18:01:09  * isaacsjoined
18:07:28  * graydon1joined
18:18:26  * mralephquit (Quit: Leaving.)
18:21:24  * johnm1234joined
18:25:14  <ryah>piscisaureus_, bnoordhuis: i want to skip the call today
18:25:41  <ryah>i'm working on the uv_fs api
18:26:25  <piscisaureus_>right
18:27:27  * johnm1234quit (Ping timeout: 276 seconds)
18:48:19  <piscisaureus_>http://twitter.com/#!/Nodejs_m8y/status/108248833993080832
18:48:33  <piscisaureus_>Nice to see someone doing that
18:48:47  <piscisaureus_>But -1 for calling it node.net
18:48:53  <piscisaureus_>too confusing
18:49:07  <DrPizza>interesting.
18:49:27  <piscisaureus_>has no nonblocking writes yes tho
18:49:40  <DrPizza>I wish Microsoft would take scripting languages seriously.
18:49:41  * isaacsquit (Quit: isaacs)
18:50:03  <DrPizza>I want to see first-rate JavaScript, Python, Ruby (ugh) implementations.
18:50:05  <DrPizza>Use the DLR.
18:50:22  <piscisaureus_>I don't care about dlr
18:50:24  <DrPizza>And then make it have performance competitive with V8 or chakra
18:50:29  * isaacsjoined
18:51:00  <DrPizza>piscisaureus_: I want it to use the DLR mainly because it seems like it will be the most consistent/convenient way of bridging between different scripting languages and non-script code
18:51:14  <piscisaureus_>yes allright
18:51:23  <bnoordhuis>ironpython, ironruby?
18:51:42  <bnoordhuis>though they probably won't ever achieve near-v8 performance
18:51:43  <DrPizza>bnoordhuis: I want them as supported first-party options
18:53:26  <bnoordhuis>piscisaureus_: https://github.com/joyent/node/issues/1602
18:55:23  <DrPizza>I'm sure cygwin does some complex magic for fork()
18:55:46  <DrPizza>(unless it uses the built-in NT fork() support)
18:56:58  * isaacsquit (Quit: isaacs)
18:57:51  <piscisaureus_>bnoordhuis: i know why
18:58:01  <piscisaureus_>lets remove cygwin support
18:58:07  <DrPizza>++
18:59:31  <piscisaureus_>bnoordhuis: v8-cygwin uses the windows api to create memory mappings
18:59:53  <piscisaureus_>because using mmap/mprotect fails because the cygwin implementation of these have issues
19:00:11  <bnoordhuis>piscisaureus_: okay, so there's no helping it?
19:00:20  <piscisaureus_>no
19:00:33  <bnoordhuis>okay, close the issue
19:00:46  <ryah>yes - no reason to suppor cygwin, irght?
19:00:52  <piscisaureus_>removing all VirtualProtect calls from v8's platform-cygwin.cc would probably fix it
19:04:20  <piscisaureus_>[20:56] <DrPizza> (unless it uses the built-in NT fork() support)
19:04:26  <piscisaureus_>DrPizza: such does not exist
19:05:04  <ryah>btw igorzi finished the node bindings to uv_fs
19:05:19  <piscisaureus_>nice
19:05:39  <ryah>so we're just blocked on me - then we can land it all
19:05:58  <piscisaureus_>I thought bnoordhuis was doing that?
19:06:37  <ryah>bnoordhuis is looking into improving linux perf
19:06:57  <bnoordhuis>i am again, am i? :)
19:07:11  <ryah>or?
19:07:40  <bnoordhuis>no, i'm fine with that
19:07:46  <bnoordhuis>you mentioned the uv_tp stuff last week
19:07:50  <bnoordhuis>but i don't mind
19:08:23  <ryah>ah sorry - i guess a scrum call would have been useful after all :)
19:08:55  <ryah>did you make progress on that? i'm not so far but have done some stuff
19:09:38  <bnoordhuis>i haven't done anything really, just looked over igorzi's code
19:09:48  <bnoordhuis>so by all means take it
19:09:54  <ryah>ok
19:10:33  <ryah>bnoordhuis: before you do the accept stuff you were looking at - i'd be interesting to get profiles of the http-simple bnechmark
19:10:44  <ryah>the accept thing is kind of cheating
19:10:52  <bnoordhuis>ryah: what kind of profiles? with/without uv?
19:10:55  <ryah>(because we could do that to the v0.4 code base as well)
19:11:05  <ryah>bnoordhuis: yeah
19:11:07  <bnoordhuis>sure
19:11:26  <ryah>there must be something we're doing differently
19:11:32  <ryah>also strace both - see if the syscalls are the same
19:11:48  <bnoordhuis>i did some profiling last week
19:11:53  <ryah>but likely the regression is at the binding layer
19:11:56  <bnoordhuis>we seem to be hitting different spots of the gc
19:12:04  <bnoordhuis>but i'm not sure why
19:12:18  <ryah>we might try tweaking the buffer pool size
19:12:33  <ryah>in src/stream_wrap.cc
19:12:35  <piscisaureus_>look carefully at the slab allocator
19:12:44  <bnoordhuis>yes, that's what i've been doing :)
19:13:10  <ryah>in v0.4 the slabs are 64kb
19:13:26  <ryah>in master they're 1mb
19:22:00  <piscisaureus_>uv_process_options_t opt;
19:22:00  <piscisaureus_>opt.application = "foo.exe";
19:22:00  <piscisaureus_>uv_spawn(proc, opt);
19:22:00  <piscisaureus_>^-- uv_spawn tries to free opt.application
19:22:03  <piscisaureus_>is this intended?
19:22:07  * mralephjoined
19:22:45  <CIA-75>node: Mikeal Rogers master * r7c87e09 / lib/http2.js :
19:22:45  <CIA-75>node: Sockets should never be attached to a ClientRequest before nextTick().
19:22:45  <CIA-75>node: This way the API for interacting directly with the socket object is
19:22:45  <CIA-75>node: consistent before and after the Agent pool is exhausted.
19:22:45  <CIA-75>node: Fixes #1601. - http://git.io/OPYDmQ
19:24:53  <piscisaureus_>hmm nvm
19:27:47  <CIA-75>node: Abimanyu Raja master * rb5144b2 / src/node_stdio.cc : stdio: fix typo in doc comment - http://git.io/lMZIVw
19:37:14  * mralephquit (Quit: Leaving.)
19:45:44  <ryah>what's the preferred method of signing .exe ?
20:01:06  <piscisaureus_>I don't know
20:01:11  <piscisaureus_>ask igor or garrett
20:01:33  <piscisaureus_>ryah: ask at #coapp
20:01:51  <ryah>k
20:30:07  <ryah>755 people in #node.js crazy
20:35:41  * brsonquit (Ping timeout: 240 seconds)
20:38:04  <bnoordhuis>and all of them are bots :)
21:00:44  <pquerna>http://trac.tools.ietf.org/wg/httpbis/trac/ticket/311
21:01:54  <DrPizza>ryah: step 1: buy a code signing certificate step 2: sign code.
21:02:05  <DrPizza>ryah: I have no idea how hard step 2 is, however, because I've never got past step 1.
21:02:06  <CIA-75>node: Ryan Dahl master * rff7f7ae / src/node.cc : Fixes #1503. make libuv backend default on unix - http://git.io/sANkxQ
21:02:08  <ryah>DrPizza: is that different than a normal ssl cert?
21:02:22  <DrPizza>yes
21:02:37  <ryah>ok. i'll ask msft for one :)
21:17:26  <piscisaureus_>you sign with "signtool" btw
21:19:31  <piscisaureus_>node summit?
21:24:43  <ryah>it's an enterprise conference about node
21:30:55  <piscisaureus_>it targets managers over developers
21:30:57  <piscisaureus_>?
21:33:25  <ryah>larger companies
21:33:33  <ryah>e.g. vmware
21:37:52  <CIA-75>libuv: Ryan Dahl master * r3be275b / (9 files in 5 dirs):
21:37:52  <CIA-75>libuv: Begin implementation of UNIX uv_fs_ functions
21:37:52  <CIA-75>libuv: Adding this incomplete work now to ease rebase troubles later as it moves
21:37:52  <CIA-75>libuv: the functions to src/unix/fs.c and introduces src/unix/internal.h. - http://git.io/pP9ENQ
21:38:33  <piscisaureus_>ryah: I am adding a completely nonfunctional multiplicity for windows tomorrow
21:38:39  <piscisaureus_>so you can land yours
21:38:51  <piscisaureus_>I'll make it actually use the loop args later
21:39:16  <ryah>http://the-restless.nko2.nodeknockout.com/
21:39:20  <ryah>^-- this is pretty awesome
21:39:24  <ryah>piscisaureus_: great
21:39:28  <ryah>piscisaureus_: thank you!
21:39:46  <piscisaureus_>ryah: it's cloud9 ide light
21:40:32  <ryah>http://jobs.nodejs.org/a/jbb/job-details/551675
21:41:02  <piscisaureus_>heh
21:41:15  <piscisaureus_>I am genuinely surprised
21:41:29  <piscisaureus_>Didn't really expect msft to use node
21:41:43  <ryah>http://nodejs.org/ <-- love having msft, yahoo, justintv here :)
21:43:17  <piscisaureus_>I like the informal style in the job description
21:43:26  <piscisaureus_>Were also looking for a few specialists who can incorporate and innovate with research into new ways to manage ungodly amounts of dynamic UGC, kind of like a MMO where the world moves more than the players do.
21:55:02  <DrPizza>The team is hiring developers ranging from 3+ years of professional experience to veteran and very senior developers who are proven adaptable to new technologies and want to try something new.
21:55:05  <DrPizza>"3+ years"
21:55:11  <DrPizza>Minimum Qualifications:
21:55:11  <DrPizza>- 7+ years of strong software development and engineering expertise
22:03:49  <CIA-75>libuv: Ryan Dahl master * rdf0b483 / uv.gyp : Fix gyp build - http://git.io/1sNkJg
22:22:20  <CIA-75>libuv: Jorge Chamorro Bieling master * rcbbb254 / src/eio/eio.c : Fix for joyent/node#1506, OSX threaded write()s bug - http://git.io/UqmBDA
22:26:46  <CIA-75>node: Ryan Dahl master * r59fa16f / (20 files in 7 dirs):
22:26:46  <CIA-75>node: Upgrade libuv to cbbb254
22:26:46  <CIA-75>node: Fixes #1506 - http://git.io/JNcSGA
22:37:35  <ryah>bnoordhuis: assign https://github.com/joyent/node/issues/1500 to you
22:37:42  <ryah>*assigned
22:37:57  <bnoordhuis>ack
22:39:30  <ryah>fuck the new modificatins to v8.gyp are making it build twice again with the makefile backned
22:39:44  <ryah>it was okay for a while...
22:47:43  <bentkus>thats why people wait for some new technology to settle before using it
22:47:54  <CIA-75>node: Ryan Dahl master * rda00ff4 / (74 files in 13 dirs): Upgrade V8 to - http://git.io/_YU7jw
22:48:20  <ryah>bentkus: we're not end users
22:49:14  <bentkus>so you are developing on gyp?
22:51:15  <ryah>we are using gyp because v8 uses gyp
22:51:59  <ryah>and we live on the bleeding edge of v8 because it's intimately tied to node
22:52:29  <ryah>and yes - that means we fix thier build system occasonally
22:52:32  <ryah>and port v8 to other platforms
22:52:35  <ryah>and what not
22:52:51  <bentkus>thats good
22:53:15  <bentkus>When will libuv hit the stable versions? :>
22:53:52  <ryah>not for sevearl months
22:54:03  <ryah>we have to be able to change it quickly
22:54:07  <bentkus>I mean the last node.js libuv support commit
22:55:28  <ryah>also not for a while
22:58:23  <piscisaureus_>\o/
22:58:32  <piscisaureus_>prefork server trick works on windows!
22:58:52  <bnoordhuis>i like how everything old is new again
22:59:05  <bnoordhuis>i just know VMS will come back
22:59:25  <bentkus>VMS?
23:00:53  <bnoordhuis>the os that runs on vaxen
23:02:41  <bentkus>http://upload.wikimedia.org/wikipedia/en/b/b9/Vax780_small.jpeg
23:02:53  <bentkus>thats the portable one
23:03:13  <bnoordhuis>awesome, isn't it?
23:03:17  <bnoordhuis>we had a couple at college?
23:03:22  <bnoordhuis>minus the question mark :)
23:03:40  <piscisaureus_>bnoordhuis: damn, you're old
23:04:18  <bentkus>:D
23:04:39  <bentkus>i want a terminal emulator, a vat100!
23:04:51  <piscisaureus_>I kind of like the terminal that sits on the desk chair
23:04:53  <bentkus>tfu not a terminal emulator, but a real one
23:05:15  <piscisaureus_>it's completely wireless
23:05:22  <piscisaureus_>uses bluetooth 3.0
23:06:08  <bentkus>my guess it has a white apple painted on the back of it
23:08:14  <piscisaureus_>:D
23:10:39  <bentkus>I hate apple and apple product owners!
23:11:24  <bentkus>actually this is not true
23:11:32  <bentkus>i belittle apple product owners while I hate apple
23:12:18  <ryah>bentkus: do i know you from koeln?
23:12:40  <bentkus>we have not met
23:14:24  <bnoordhuis>ryah: why do you ask? where there people in koln belittling you?
23:14:41  <bentkus>because of having a mac? :D
23:14:49  <bnoordhuis>there were an awful lot of mac users there btw
23:16:11  <ryah>no i just searched bentkus and saw you were from aachen
23:16:50  <bentkus>I should use something less obvious before stating that I hate macs in a channel full of mac users
23:17:01  <bentkus>a less obvious nick I mean
23:17:11  <bnoordhuis>i think ryah is the only mac user here
23:17:25  <ryah>i only use it because of vmware
23:17:38  <ryah>joyent's dev setup is only in mac
23:17:57  <ryah>im a linux user
23:18:12  <ryah>bnoordhuis: https://github.com/mixu/nodeko
23:18:18  <ryah>bnoordhuis: this is really cool
23:18:53  <bnoordhuis>wow, that's pretty awesome
23:19:00  <bentkus>strange company policy, I would go for 'only on posix compatible systems'
23:21:01  <bnoordhuis>give the nwm guy an upvote from me, he deserves it
23:21:27  <ryah>well - we make a cloud operating system - so dev setup more than a couple posix syscalls
23:24:31  <bentkus>nevermind
23:24:42  <bentkus>is github down?
23:24:52  <bentkus>hm works again
23:25:36  <DrPizza>piscisaureus_: orly
23:26:12  <DrPizza>piscisaureus_: so how are you binding handles to the iocps, do they all go via one IOCP or what?
23:26:26  <bentkus>nice window manager
23:26:38  <piscisaureus_>DrPizza: I am "emulation" posting iocp packets
23:26:42  <bentkus>this is something I would actually prefer to awesome window manager
23:26:45  <piscisaureus_>emulating
23:26:51  <piscisaureus_>via events
23:27:31  <DrPizza>piscisaureus_: so everything bound to the parent process IOCP, using events and suppressed notifications in the child processes, and threadpool wait callbacks to post to the child IOCPs?
23:27:46  <piscisaureus_>yes
23:27:49  <piscisaureus_>exactly
23:27:53  <DrPizza>hmm, interesting
23:27:55  <DrPizza>how well is that working
23:28:05  <piscisaureus_>I'm trying to figure that out
23:28:08  <DrPizza>ah
23:28:08  <DrPizza>heh
23:28:13  <piscisaureus_>it works
23:28:18  <DrPizza>my next question is, could we do a design like this:
23:28:42  <DrPizza>parent waits for connection
23:28:53  <DrPizza>when connected, it does the WSADuplicateSocket thing
23:28:57  <DrPizza>gives that structure to the child
23:28:59  <DrPizza>child then creates the socket
23:29:03  <DrPizza>and binds to its own IOCP
23:29:16  <piscisaureus_>we could try
23:29:16  <DrPizza>I guess this would mean not having the parent bound to an IOCP
23:29:22  <piscisaureus_>yes
23:29:29  <piscisaureus_>that's one implication
23:29:35  <piscisaureus_>it's more complex to try out
23:29:41  <DrPizza>but it would mean we could then use events + threadpools only for the initial connection
23:29:46  <DrPizza>rather than for every single I/O operation
23:30:00  <piscisaureus_>DrPizza: we only use events for the listening sockets
23:30:05  <piscisaureus_>not for the sockets that get accepted
23:30:09  <piscisaureus_>s/we/i
23:30:18  <DrPizza>oh because the accepted socket isn't bound to the IOCP anyway
23:30:23  <DrPizza>?
23:30:23  <piscisaureus_>exactly
23:30:26  <DrPizza>oh even better
23:30:34  <DrPizza>so we just duplicate the accepting socket
23:30:36  <DrPizza>give that to the child
23:30:38  <DrPizza>let it bind to the IOCP
23:30:48  <DrPizza>it does have the downside of requiring passing the stupid structure to the child
23:30:52  <piscisaureus_>hmm
23:30:53  <DrPizza>(meh)
23:31:02  <piscisaureus_>DrPizza: the idea is to create 1 listening socket
23:31:07  <DrPizza>this would funnel all the listens through one process
23:31:08  <piscisaureus_>duplicate that to the child
23:31:20  <piscisaureus_>parent and child both accept connections on that 1 listening socket
23:31:27  <DrPizza>whereas your way all N processes can listen
23:31:38  <piscisaureus_>that's the prefork server idea
23:31:56  <DrPizza>I guess my idea is more have one dedicated listener, and then N workers
23:32:12  <piscisaureus_>yes
23:32:44  <piscisaureus_>what's the minimal http response that can be sent?
23:33:14  <DrPizza>to an arbitrary request?
23:33:24  <piscisaureus_>"HTTP 1.1 200 OK\nContent-Length: 1234\n\nHello World\n" ?
23:33:32  <piscisaureus_>just something that will satisfy ab
23:33:48  <DrPizza>ah
23:34:00  <piscisaureus_>ryah: --^
23:34:20  <piscisaureus_>#lazyquestion
23:36:01  <DrPizza>content-length is strictly speaking optional, I believe
23:36:04  <DrPizza>it's a should, not a must
23:36:16  <ryah>piscisaureus_: well - content length should be the size of the message :)
23:36:31  <piscisaureus_>I understand :-)
23:36:48  <ryah>"HTTP 1.1 200 OK\r\nContent-Length: 12\r\nConnection: close\r\n\r\nhello world\n"
23:36:50  <ryah>^-- good test
23:37:01  <piscisaureus_>ok, thanks
23:38:13  <DrPizza>so just "HTTP/1.0 200 OK\r\n\r\nHello World" I guess
23:39:11  <bentkus>it should be possible to use javascript only to create bindings for C libs
23:39:17  <ryah>that works too - but i think many clients (apache bench in particular?) don't like it when you terminate by EOF
23:39:46  <ryah>bentkus: https://github.com/rbranson/node-ffi/wiki/Node-FFI-Tutorial
23:39:52  <DrPizza>ryah: hm, perhaps, it may be required somewhere in this RFC, but it's far too long for me to read it all.
23:40:08  <ryah>DrPizza: it's legal to terminate with EOF
23:40:11  <bentkus>it has already ffi? Man that is awesome
23:45:21  <piscisaureus_>Server 0: accepted 43696 connections
23:45:21  <piscisaureus_>Server 1: accepted 56304 connections
23:45:27  <piscisaureus_>^-- reasonable multiplexing eh?
23:50:23  <bentkus>An application on a server with X cores should have exactly X threads
23:51:33  <bentkus>piscisaureus_: is that the count of the currently accepted connections?
23:52:01  <piscisaureus_>bentkus: server 0 is the first process, server 1 is the second
23:52:07  <piscisaureus_>so I am running 2 processes
23:52:21  <piscisaureus_>and it just prints a counter every second for now
23:52:24  <bentkus>well node.js has no support for threads
23:52:44  <piscisaureus_>these are processes
23:53:13  <piscisaureus_>we want to allow the user to spawn multiple node processes
23:53:17  <piscisaureus_>and share one listening socket