[00:00] maushu has joined the channel [00:00] AAA_awright: I mean, I can figure it out, but it's cringe-worthy... (time == 5 * 60 * 60) anyone can figure out what that means, that's 5 hours [00:00] noahcampbell has joined the channel [00:03] desaiu has joined the channel [00:03] shaver: AAA_awright: so what do you work on? [00:04] jimt has joined the channel [00:05] AAA_awright: shaver: I'm working on integrating Javascript and RDF [00:05] AAA_awright: Like what E4X did for XML but without being stupid [00:05] shaver: URL me [00:05] AAA_awright: shaver: You know what RDF is about? [00:05] shaver: yes [00:06] shaver: though I've mostly been able to avoid it for the last decade [00:06] AAA_awright: https://github.com/Acubed/sparql-spin-js3 https://github.com/Acubed/js3 [00:07] AAA_awright: And a semantic-aware CMS that's in the works [00:07] AAA_awright: semantically-aware? [00:15] synoptase` has joined the channel [00:16] jimt has joined the channel [00:20] zemanel has joined the channel [00:20] tomhsx has joined the channel [00:21] ryah: mraleph: yes [00:21] ryah: mraleph: it was helpful :) [00:22] mraleph: ryah: great. I am trying to figure out with gdb folks how make it faster. but there is nothing definitive yet. [00:24] ben_alman has joined the channel [00:25] synoptase` has joined the channel [00:32] vineyard has joined the channel [00:34] desaiu: can someone help me fix this? [00:34] desaiu: the make test for node failed: http://pastebin.com/QGhQ3k92 [00:34] desaiu: and what is the program node-waf? [00:34] desaiu: if fails when i try to execute it: http://pastebin.com/74HArgDj [00:39] CIA-121: node: 03Ryan Dahl 07master * r1c7cd4a 10/ (src/node.js src/node_script.cc): [00:39] CIA-121: node: Make syntax error display optional [00:39] CIA-121: node: Fixes GH-543 - http://bit.ly/eEbXy6 [00:40] pyrotechnick has joined the channel [00:40] pyrotechnick: what IDE does everyone use? [00:40] robertpitt has joined the channel [00:41] ryah: vim [00:41] robertpitt: Can anyone provide some support installing NodeJS On Windows 7 x86 ? [00:42] pyrotechnick: robertpitt: get virtualbox lol [00:42] CIA-121: node: 03Ryan Dahl 07master * r8f5f213 10/ (doc/api/streams.markdown lib/stream.js): [00:42] CIA-121: node: Revert "Add optional filters to stream.pipe()" [00:42] CIA-121: node: This reverts commit 24aded078fd6838d2f21934e57c7cc8dfd7303d1. - http://bit.ly/fni6DJ [00:42] pyrotechnick: it will be a much better experience [00:42] aurynn: robertpitt, sorry, I don't use Windows [00:42] pyrotechnick: virtualbox + ubuntu server [00:42] pyrotechnick: = win [00:42] aurynn: Virtualbox is a good way to get a linux system without formatting, etc. [00:42] robertpitt: Hmm, I only wanted to test it, didn't want to go threw the whole shabang for now [00:43] robertpitt: yea im an ICT Techie, I have Virtual Box etc and know how to use them, just wanted to test on my current install [00:43] aurynn: ACTION just learned about Mootools Mobile [00:43] pyrotechnick: whats that [00:43] pyrotechnick: link... [00:43] pyrotechnick: we really like mootools but we made the switch to jquery [00:43] aurynn: https://github.com/cpojer/mootools-mobile [00:44] aurynn: Some touch events for mootools [00:44] aurynn: rather [00:44] pyrotechnick: robertpitt: node.js is really meant to live in a real OS [00:44] desaiu: pyrotechnick: i prefer vim or the vim plugin for kate, but i've been using the aptana plugin for eclipse since i'm having to work with others who don't regularly use vim [00:44] aurynn: better touch support for mootools [00:44] aurynn: swipe and pinch, looks like [00:44] robertpitt: jQuery is too simple, Prototype for larger projects [00:44] desaiu: helps to use the same IDE so i can troubleshoot problems they may be having [00:44] robertpitt: What you mean by Real Os ? [00:44] pyrotechnick: we're targeting "WebGL" grade browsers and we use coffeescript [00:45] softdrink has joined the channel [00:45] pyrotechnick: robertpitt: something POSIX compliant [00:45] aurynn: I'm just trying to do some very basic touchable apps [00:45] pyrotechnick: aurynn: keep us posted [00:45] aurynn: pyrotechnick, I will [00:45] robertpitt: Ahh ok, So your strongly advising me to setup a VM With Ubuntu + NJS ? [00:45] pyrotechnick: desaiu: we actually all installed kubuntu today [00:45] pyrotechnick: been using it ever since. it's brilliant [00:45] pyrotechnick: i'm really impressed [00:46] pyrotechnick: it's slightly unstable [00:46] pyrotechnick: but not enough to make me not want to keep using it [00:46] desaiu: kde is brilliant, not so much kubuntu. kde seems like an afterthought with that group [00:46] pyrotechnick: robertpitt: unforunately yes [00:46] pyrotechnick: its a good idea anyway [00:46] pyrotechnick: you can use snapshots etc [00:46] pyrotechnick: move it between computers [00:46] pyrotechnick: keeps everything 'prestine' [00:46] robertpitt: No problem, ill sort one out now, thanks for the advice [00:46] pyrotechnick: i mean it can be done in windows [00:46] pyrotechnick: but once it's installed [00:47] pyrotechnick: you're not going to be able to use some npm [00:47] desaiu: nixos ftw when it becomes somewhat stable [00:47] pyrotechnick: because most just blindly assume you're on POSIX [00:47] robertpitt: Ahh, so its not fully compliment with windows based os [00:48] pyrotechnick: by design. [00:48] pyrotechnick: not because we're too lazy or anything [00:49] robertpitt: Yea its a relativly new project [00:49] pyrotechnick: its not that [00:49] pyrotechnick: it's trying to do the right thing [00:49] robertpitt: Fair enough, So the compiler and so forth is in C++ ? [00:50] pyrotechnick: its just v8 [00:50] pyrotechnick: google's v8 [00:50] pyrotechnick: the js engine of chrome [00:50] robertpitt: yea i read that somewhere [00:50] pyrotechnick: yep [00:50] robertpitt: I take it your using Chrome :) [00:50] pyrotechnick: yeah we are doing webgl dev [00:50] pyrotechnick: chromium nightles, webkit nightlies, ff4 [00:50] desaiu: who is this we? [00:50] pyrotechnick: github.com/feisty [00:51] pyrotechnick: please watch anything you're interested in [00:51] pyrotechnick: even if it doesnt look that good, because we'll be allocating time to the most popular projects [00:52] robertpitt: So Nick, Whats your status on this project [00:52] desaiu: i'm guessing the only code in TOE is console.log("42") [00:52] pyrotechnick: desaiu: ;) i wish [00:52] pyrotechnick: robertpitt: elaborate? [00:52] pyrotechnick: robertpitt: do you just want the 411? [00:52] robertpitt: Do you take a major part in the Node.js Team or are you part of the community who is pretty experienced in the project ? [00:53] pyrotechnick: the latter [00:53] pyrotechnick: the only thing i've commited is some docs [00:53] pyrotechnick: but i like to think i can offer help in different ways [00:53] gf3 has joined the channel [00:53] pyrotechnick: like promotion, building the community, being a generally nice and objective and informative noder etc [00:54] pyrotechnick: node needs both types of contributors [00:54] robertpitt: Very nice to meet you, Its great to find committed community members like your self [00:54] pyrotechnick: yeah it's very refreshing [00:54] robertpitt: Hopefully i can get more involved as time goes on [00:54] robertpitt: brb [00:54] pyrotechnick: TBH we've been a bit quiet on the game front, hit a roadblock with physics on the server so we've been doing some other stuff, xmpp server, proxies etc some for clients [00:55] jamund has joined the channel [00:56] desaiu: reinstalling node.js [00:56] pyrotechnick: why is that [00:56] desaiu: i'm hoping it was just problems with the latest git code :( [00:57] aurynn: I'm liking that I can develop callback-driven web applications without needing to know a lot about callbacks [00:57] desaiu: /lastlog ftw [00:57] aurynn: I feel that's a mark of I implemented postgres.js's asynch stuff well. [00:57] robertpitt: I looked into Node.js before and had a browse of the homepage, thought it was interesting but was a busy time for me, then the other day i was on StackOverflow and had am member asking if it was node.js was stable so had to do a little more research to give him an answer [00:57] pyrotechnick: robertpitt: the answer is no but that's not stopping anyone [00:58] pyrotechnick: for instance it's on webos [00:58] pyrotechnick: has been for about 90 days [00:58] pyrotechnick: there's proper hosting popping up just now through joynet (sponsors of node) and others [00:58] pyrotechnick: npm is very good and the amount of modules is just insane [00:59] pyrotechnick: the toolkits getting a little better not that javascript is a new thing anyway so that wasnt such a struggle [00:59] Ond has joined the channel [00:59] robertpitt: Does Node.js have GUI Capabilities ? [00:59] pyrotechnick: it can [00:59] pyrotechnick: there are bindings to alot of toolkits [00:59] pyrotechnick: but i think if you can do it as a webapp you're much better off [00:59] shaver: yeah, even if you run it locally [00:59] pyrotechnick: yep [01:00] pyrotechnick: and maybe use like a SSB [01:00] pyrotechnick: to make the whole native app installation thing feel real [01:00] shaver: yeah, xulrunner or a webkit wrapper or something [01:00] desaiu: i'd like to know where to get kqueue, event.h, and port.h, apt-file doesn't know either [01:00] pyrotechnick: what dor [01:00] pyrotechnick: for* [01:00] OND has left the channel [01:01] vineyard has joined the channel [01:02] masahiroh has joined the channel [01:02] pyrotechnick: that mootools thing is cool whoever linked it [01:02] pyrotechnick: aurynn: [01:03] pyrotechnick: i wish mootools did more sometimes [01:03] pyrotechnick: i dont know, we used to be fans. but since learning more JS the class system is kind of overweight [01:04] pyrotechnick: which wouldnt seem like such a problem if it was optional and wasnt used in mootools core itself [01:04] aurynn: I like the addon methods you get on elements [01:04] aurynn: and the selectors are nice [01:04] desaiu: pyrotechnick: the reason i'm reinstalling node.js is because the make test failed and node-waf doesn't run [01:05] desaiu: i'm building the source now, we'll see how make test goes in a bit [01:05] pyrotechnick: dodgy build desaiu [01:05] pyrotechnick: today i used nave [01:05] pyrotechnick: seemed nice [01:05] pyrotechnick: it makes the stacktraces more verbose since the path is so deep [01:05] jamund has joined the channel [01:06] pyrotechnick: but its nice since we have to target multiple node versions and i was just make installing everytime i needed a diff version [01:06] desaiu: i look forward when i get to that point, wishfully, that would be tonight :) [01:07] robertpitt: Installing Ubuntu now, What kind of starter projects to learn the system would you recommend ? [01:07] dguttman has joined the channel [01:07] pyrotechnick: robertpitt: node? [01:08] pyrotechnick: or ubuntu [01:08] binarypie has joined the channel [01:08] pyrotechnick: i assume you mean node [01:08] pyrotechnick: umm [01:08] pyrotechnick: my comrade started off with an xml parser and a commonjs "require()" library packer thing [01:08] pyrotechnick: that was a pretty intense start [01:09] pyrotechnick: i did proxies and chat servers [01:09] pyrotechnick: some payment gateway stuff [01:09] pyrotechnick: and then game servers [01:09] pyrotechnick: i think the first two are more useful but not as fun [01:10] pyrotechnick: the results arent all that amazing [01:10] robertpitt: Nice, I might start with a web server as im coming from PHP,C# etc [01:10] pyrotechnick: yeah i would just hack away at some web server stuff [01:10] davidc_ has joined the channel [01:10] davidc_ has joined the channel [01:10] nonnikcam has joined the channel [01:10] pyrotechnick: probably dont attempt to use it in production though, i mean unless you're amazingly productive there are a few good solutions already [01:10] pyrotechnick: but that is a good start [01:11] pyrotechnick: it's where node really shines [01:11] desaiu: sweet! 2010.12.30 node-v0.2.6 was built successfully! [01:11] pyrotechnick: yay [01:11] pyrotechnick: robertpitt: now i'm doing an xmpp server [01:11] pyrotechnick: you could help if you're interested :P [01:11] desaiu: node-repl works too :) [01:11] desaiu: node-waf doesn't though :( [01:11] pyrotechnick: yay [01:11] pyrotechnick: desaiu++ [01:11] v8bot: pyrotechnick has given a beer to desaiu. desaiu now has 1 beers. [01:11] desaiu: still same message [01:11] pyrotechnick: hmm [01:11] robertpitt: well im fairly new to Node, haven't done anything yet [01:12] pyrotechnick: v8: for (var i = 0; i < 1e10; i++) { console.log('*'); } [01:12] v8bot: pyrotechnick: Error: Timeout [01:12] pyrotechnick: v8: for (var i = 0; i < 1e3; i++) { console.log('*'); } [01:12] desaiu: http://pastebin.com/22sNCwzh for the error [01:12] v8bot: pyrotechnick: CONSOLE: ["*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*", "*" [Output truncated...] [01:13] pyrotechnick: v8: var b = new String; for (var i = 0; i < 1e3; i++) { b += '*'; } console.log(b); [01:13] v8bot: pyrotechnick: CONSOLE: ["*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** [Output truncated...] [01:13] pyrotechnick: v8: var b = new String; for (var i = 0; i < 1e3; i++) { b += String.fromCharCode(i); } console.log(b); [01:13] pyrotechnick: lol [01:14] pyrotechnick: it didnt like that [01:14] desaiu: is this the file it's missing? http://code.google.com/p/v8/source/browse/branches/bleeding_edge/tools/visual_studio/js2c.cmd?r=4225 [01:14] pyrotechnick: v8: var b = new String; for (var i = 65; i < 50; i++) { b += String.fromCharCode(i); } console.log(b); [01:14] v8bot: pyrotechnick: CONSOLE: [{}], OUTPUT: undefined [01:14] desaiu: i was looking for js2c.py on google [01:14] pyrotechnick: v8: var b = new String; for (var i = 65; i < 150; i++) { b += String.fromCharCode(i); } console.log(b); [01:14] v8bot: pyrotechnick: CONSOLE: ["ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•"], OUTPUT: undefined [01:14] desaiu: aha [01:14] desaiu: http://v8.googlecode.com/svn/trunk/tools/js2c.py [01:15] pyrotechnick: v8: var b = new String; for (var i = 65; i < 200; i++) { b += String.fromCharCode(i); } console.log(b); [01:15] v8bot: pyrotechnick: CONSOLE: ["ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇ"], OUTPUT: undefined [01:17] desaiu: okay, fixed the error by fetching two files: jsmin.py and js2c.py from http://v8.googlecode.com/svn/trunk/tools/ [01:18] desaiu: but i still don't understand what node-waf does :) [01:19] benburkert has joined the channel [01:21] desaiu: oh, it's a build system [01:21] desaiu: http://code.google.com/p/waf/ [01:22] softdrink has joined the channel [01:26] MikhX_ has joined the channel [01:30] desaiu: so i'm guessing node-waf is necessary for npm [01:30] ayalque has joined the channel [01:31] desaiu: yep [01:31] ayalque: herlo! is there a way to add a header to each response even before connect/express staticprovider intercept it? [01:32] desaiu: ayalque: i wouldn't know [01:32] ayalque: oh is this maybe not the right place to ask? [01:33] pyrotechnick: can u pm v8bot? [01:33] desaiu: heh, no i just suck [01:33] stride: pyrotechnick: yes [01:33] pyrotechnick: okay [01:33] pyrotechnick: im going to make my coffee bot pm it [01:33] ayalque: desaiu: oh don't we all [01:35] stride: ayalque: I guess the all() method together with a catch-all route and calling next() in that route may allow you to do so [01:35] stride: ayalque: for a more qualified answer just hang around here a bit.. :) [01:37] ayalque: stride: i am using the all method with a * as a route but it does not seem to be called [01:37] ayalque: for static files that is [01:39] desaiu: ayalque: some more than others [01:41] stride: ayalque: do you use() app.router in your configuration function? [01:42] stride: not 100% sure but I guess you have to call use(app.router) before the staticProvider. at least I don't see another way to specify any execution order in the express docs [01:44] CIA-121: node: 03Ryan Dahl 07master * rce5ddac 10/ src/platform_sunos.cc : [01:44] CIA-121: node: Fix solaris build [01:44] CIA-121: node: Stub out new platform functions. - http://bit.ly/fLtXEo [01:44] binarypie_ has joined the channel [01:46] ayalque: stride: no, should i [01:46] ayalque: ? [01:47] stride: ayalque: I think so, otherwise it loads the router on the first request and after all the middlewares I believe [01:47] stride: http://expressjs.com/guide.html#Configuration like the first example (notice staticProvider being use()d after app.router) [01:47] stride: maybe that helps [01:52] cagdas has joined the channel [01:54] KyleXY has left the channel [01:54] KyleXY has joined the channel [01:55] mikeal has joined the channel [01:55] modular has joined the channel [01:56] CIA-121: node: 03Ryan Dahl 07master * rb45698e 10/ lib/repl.js : (log message trimmed) [01:56] CIA-121: node: Improve how REPL commands are evaled [01:56] CIA-121: node: Before: [01:56] CIA-121: node: > {a: 1} [01:56] CIA-121: node: 1 [01:56] CIA-121: node: > (function() { [01:56] CIA-121: node: ... // foo [02:01] pyrotechnick: hey [02:01] rsms has left the channel [02:02] pyrotechnick: is there anyway i could get the source for v8bot? [02:02] pyrotechnick: #coffeescript [02:02] pyrotechnick: coffee: [COFFEE] [02:02] galaxywatcher has joined the channel [02:02] pyrotechnick: i want to know how the timeout and console capturing is done [02:03] pyrotechnick: i guess it's just setTimeout and stdout of the child process [02:03] stride: the maintainer is most likely to be found in #v8bot - at least what its help text says [02:04] pyrotechnick: cool the source link was there [02:04] pyrotechnick: cheers [02:04] ryah: v8: ( throw new Error('test error');) [02:04] v8bot: ryah: SyntaxError: Unexpected token throw [02:04] benburkert has joined the channel [02:04] ryah: ^-- someone explain that to me [02:05] ryah: v8: throw new Error('test error'); [02:05] v8bot: ryah: Error: test error [02:05] ryah: javascript- [02:05] ryah: javascript-- [02:05] v8bot: ryah has taken a beer from javascript. javascript now has -1 beers. [02:05] pyrotechnick: LOL [02:05] pyrotechnick: javascript-- [02:05] v8bot: javascript is getting too many beers. Don't let javascript get drunk! [02:05] pyrotechnick: right [02:06] pyrotechnick: javascript: a [02:08] jacobrelkin has joined the channel [02:10] jchris has joined the channel [02:15] stride: ryah: no statements within () maybe? [02:16] stride: can't find a rule in the ecma5 spec that would allow it right now, only for expressions [02:19] iFire has joined the channel [02:20] ryah: how about this one. [02:20] ryah: v8: (function () { return throw new Error('test error'); })(); [02:20] v8bot: ryah: SyntaxError: Unexpected token throw [02:20] jwcooper_ has joined the channel [02:20] stride: return is illegal as well [02:20] RichardJ: ryah: throw is a statement, not an expression [02:21] coffee has joined the channel [02:21] jwcooper__ has joined the channel [02:21] RichardJ: "(" starts an expression as well, of course [02:21] RichardJ: so throw isn't allowed there as well [02:21] pyrotechnick: coffee: do -> throw new Error 'test error' [02:21] coffee: (function() { [02:21] coffee: throw new Error('test error'); [02:21] coffee: })(); [02:22] ryah: what else is a statement but not an expression? [02:22] MikhX has joined the channel [02:22] Druid_ has joined the channel [02:22] RichardJ: a lot of things... [02:22] mikew3c has joined the channel [02:22] pyrotechnick: yeah that's true ryah [02:22] pyrotechnick: they're a bit different [02:22] RichardJ: every loop, the var statement, break, continue, return, function statement [02:23] ryah: ah, ok [02:23] RichardJ: throw, try...catch, &c. [02:24] RichardJ: you can put it simple: everything that has a value is an expression [02:25] pyrotechnick: coffee: try a catch e then 'caught...' [02:25] coffee: try { [02:25] coffee: a; [02:25] coffee: } catch (e) { [02:25] coffee: 'caught...'; [02:25] coffee: } [02:25] pyrotechnick: coffee: if try a then 'tried' [02:25] coffee: Error: Parse error on line 1: Unexpected 'INDENT' [02:26] pyrotechnick: see try isnt an expression [02:27] RichardJ: little quiz: why *must* the lexing and parsing of JavaScript work together tightly? [02:29] mikeal has joined the channel [02:29] EyePulp has joined the channel [02:30] shaver: regular expressions [02:30] RichardJ: could you be more specific? :) [02:31] shaver: there's a different parse context inside regular expression literals [02:31] shaver: and they can only appear in rvalue position [02:32] phish has joined the channel [02:32] phish: im getting an error when i try to compile node [02:32] RichardJ: shaver: right [02:32] phish: can anyone help? [02:32] RichardJ: phish: depends on what happens [02:32] shaver: why do you ask? [02:32] phish: im on windows using cygwin [02:33] RichardJ: then I'm of no use, no experience using cygwin :) [02:33] phish: lol [02:33] RichardJ: no use at all, seeing i've had quite a few beers [02:33] RichardJ: off to bed now [02:33] shaver: what is the error? [02:33] phish: how much of the error can i paste here? [02:33] pyrotechnick: coffee: "goodnight RichardJ" [02:33] coffee: "goodnight RichardJ"; [02:33] RichardJ: thanks ;) [02:33] phish: i dont want to flood myself off [02:33] shaver: phish: pastebin if it's more than a couple lines [02:35] phish: http://pastebin.com/eTbrvY3S [02:35] shaver: mm [02:35] shaver: sounds like the cygwin port isn't kept up to date, if that's the whole set of errors [02:35] shaver: I have to bathe a toddler, bbiab [02:36] okuryu has joined the channel [02:37] phish: http://pastebin.com/FFNqw052 [02:37] phish: here [02:37] phish: this is more of the error [02:37] coffee has joined the channel [02:38] AAA_awright: If you're going to use an XULRunner frontend you may as well do the entire thing with XULRunner [02:38] AAA_awright: woa massive backlog [02:39] coffee has joined the channel [02:41] possibilities has joined the channel [02:41] mikeal has joined the channel [02:45] coffee has joined the channel [02:45] ayalque: me think the staticprovider disregards all previous headers [02:46] micheil: doing network IO with xulrunner isn't too bad, just a little painful [02:48] ayalque: wow dnode [02:49] ayalque: wow [02:51] prettyrobots has joined the channel [02:58] dthompson has joined the channel [03:00] possibilities has joined the channel [03:01] jamescarr has joined the channel [03:02] mikeal has joined the channel [03:05] binarypie has joined the channel [03:06] JojoBoss has joined the channel [03:09] possibilities has joined the channel [03:10] arrty has joined the channel [03:12] apipkin has joined the channel [03:12] hdon has joined the channel [03:12] apipkin: i have node version 0.2.5 and i'm curious of how to update to 0.2.6 [03:13] jacobrelkin has joined the channel [03:17] Bloc has joined the channel [03:18] JojoTheBoss has joined the channel [03:19] pyrotechnick: apipkin: there is no 0.2.6 [03:20] apipkin: pyrotechnick: nodejs.org says 0.2.6 is the latest stable [03:20] chapel: https://github.com/ry/node/tree/v0.2.6 [03:21] eml-mobile has joined the channel [03:27] CrypticSwarm has joined the channel [03:29] softdrink has joined the channel [03:30] apipkin: thanks chapel [03:32] apipkin has left the channel [03:32] [[zz]] has joined the channel [03:34] SwiftLayer: anyone have any experience with OrientDB? Is there a node.js boilerplate for the binary communication with OrientDB that anyone knows of? [03:37] themiddleman has joined the channel [03:40] JojoBoss has joined the channel [04:02] binarypie has joined the channel [04:03] softdrink has joined the channel [04:08] hornairs has joined the channel [04:21] isaacs has joined the channel [04:25] softdrink has joined the channel [04:28] jpld has joined the channel [04:32] creationix has left the channel [04:33] jamescarr: for those that might care, sorry for my absence in a variety of my projects lately [04:33] mikeal has joined the channel [04:34] TooTallNate has joined the channel [04:39] robotarmy has joined the channel [04:44] spetrea has joined the channel [04:45] jakehow has joined the channel [04:47] dthompson has joined the channel [04:49] arrty_ has joined the channel [04:52] sechrist has joined the channel [04:54] sechrist has joined the channel [04:57] sveimac has joined the channel [05:01] isaacs: hello, node [05:01] pkrumins: node! [05:01] pkrumins: i mean, hello isaacs. [05:01] pkrumins: happy new year! [05:01] jimt_ has joined the channel [05:01] spetrea: hi pkrumins [05:02] pkrumins: hi [05:02] isaacs: happy new year to you as well [05:02] isaacs: 1111 [05:02] isaacs: !!! [05:02] pkrumins: 1111! [05:03] sveimac_ has joined the channel [05:05] mikeal has joined the channel [05:05] CIA-121: node: 03Ryan Dahl 07master * r00974df 10/ lib/repl.js : Allow for evaling statements in REPL too - http://bit.ly/dX9x10 [05:05] ryah: okay. i think the repl now should act as expected. [05:06] Aria: Sweet! [05:06] isaacs: nice [05:06] vborja has joined the channel [05:06] Blink7 has joined the channel [05:06] ryah: % ./node [05:06] ryah: > {a : 1} [05:06] ryah: { a: 1 } [05:06] ryah: > for (var i = 0; i < 10; i++) console.log(i) [05:06] ryah: 0 [05:06] ryah: 1 [05:06] ryah: 2 [05:06] ryah: etc [05:07] isaacs: ryah: nice [05:07] isaacs: though, i still maintain that adding the parens around something that is clearly a numeric expression on a labelled line inside a code block is a crime against javascript's crime against sanity. [05:07] zentoooo has joined the channel [05:08] ryah: ;) [05:08] Aria: Wow. That seems a lot better, ryah. [05:11] herbySk has joined the channel [05:15] CIA-121: node: 03Ryan Dahl 07master * r8b352bd 10/ test/simple/test-repl.js : Add '{a:1}' to REPL tests - http://bit.ly/eRPVsP [05:15] CIA-121: node: 03Ryan Dahl 07master * r29626d8 10/ src/node.js : Syntax error hack for modules. - http://bit.ly/hXJkvi [05:21] ryah: the repl is pretty fancy [05:22] ryah: now that it can do "{a:1}" im going to use it [05:22] ryah: :) [05:25] ceej has joined the channel [05:25] isaacs: haha [05:26] shaver: heh [05:26] AAA_awright: Yes FINALLY [05:26] AAA_awright: :p [05:26] isaacs: ryah: +1 on the syntax error hack, rather than breaking the repl [05:27] shaver: oh, you did the naughty thing when you start with { ? [05:27] shaver: tsk, tsk! [05:28] masahiroh has joined the channel [05:28] wookiehangover has joined the channel [05:29] AAA_awright: Wow that fixes things for me [05:29] AAA_awright: From yesterday when I complained about the REPL doing bizzare things [05:31] isaacs: ryah: you ever take a look at that uid/gid thing? [05:31] isaacs: ryah: or were you waiting on something from me? [05:31] sveimac has joined the channel [05:32] ryah: not yet [05:33] SwiftLayer has joined the channel [05:35] isaacs: ryah: how would you feel about a "process" api, sort of like how we have a "Stream" api [05:36] isaacs: like, a "process" represents a program running, with {execPath, getcwd(), getgid(), getuid(), setgid(), setuid(), argv, stdout, stdin, stderr} [05:36] creationix_ has joined the channel [05:36] isaacs: and then have "process" and "child_process" mimic one another [05:36] pquerna: hmm. interesting. [05:36] isaacs: not quite as ubiquitous as streams, but it'd be handy for what i find myself doing a lot [05:37] isaacs: also, it'd let the controlling process change the working directory when it gets a message or something [05:37] pquerna: having all the same methods wherever applicable does seem to make sense. [05:38] isaacs: pquerna: yeah, and then we could just say that child_process.spawn() returns a "process" object [05:38] isaacs: and the global "process" object is the process object for the current proces [05:38] pquerna: well you can't setuid etc on a remote process [05:38] creationix_: isaacs: sounds good to me [05:39] isaacs: true that [05:39] sudoer has joined the channel [05:39] isaacs: but we could make the api a little bit magical around the patch i sent to be able todo {uid:-2} [05:39] isaacs: in the spawn config obj [05:41] ryah: isaacs: the streams go in the opposite directions [05:41] isaacs: hmm.. yeah... that's true [05:42] CIA-121: node: 03Ryan Dahl 07master * rc82fe30 10/ lib/repl.js : repl.js style - http://bit.ly/dJNtqV [05:44] isaacs: what if that was the only difference? [05:45] isaacs: you'd have readable processes and writable processes. [05:49] ryah: you can't setuid after the process is spawned [05:50] spetrea has joined the channel [05:50] shaver: why not? [05:50] shaver: the child could do it [05:51] shaver: oh [05:51] ryah: how [05:51] shaver: child gets a message, calls setuid in response? [05:51] ryah: what if the child is 'tail' ? [05:51] shaver: yeah, you'd need to setuid before the exec, but after the fork still [05:52] shaver: setuid *before* the process is spawned means you're changing the uid of the parent, after all, because that's the only process that exists at that point! [05:52] shaver: I felt so strongly about that that I exclaimed! [05:52] isaacs: LOUD NOISES!! [05:53] shaver: SUDDEN MOVEMENT [05:53] isaacs: shaver: well, that's why after the fork [05:53] chapel: EXCLAMATION POINTS [05:53] pkrumins: ryah: so what did we talk about? ;) [05:53] alexfner has joined the channel [05:53] ryah: for those of us still recovering from last night - less caps [05:53] isaacs: it'd just be a function that sets it on the config object, so that it has a similar api [05:54] ryah: pkrumins: yeah - who were you? the drunk latvian guy? [05:54] isaacs: ryah: when capital letters hurt your ears, you've internalized the rules of netiquette too much [05:55] bingomanatee_: If YoU ThOuGhT tHaT wAs BaD..... [05:55] pkrumins: ryah: yeah that was me [05:55] pkrumins: had a bit too much [05:55] creationix_: ACTION drunk nothing, but wrote lots of code instead [05:55] pkrumins: i shouldn't have drunk [05:55] pkrumins: got taken to ER -_- [05:55] creationix_: had to stay home with sick kiddos [05:55] ryah: pkrumins: heh. i didn't realize it was you [05:56] ryah: pkrumins: huh? really [05:56] pkrumins: yeah, i fell down the stairs :( [05:56] creationix_: pkrumins: ouch [05:56] pkrumins: i now have a black eye and a scar [05:56] CIA-121: node: 03Ryan Dahl 07master * r2e3e95e 10/ (4 files in 2 dirs): add process.stdin - http://bit.ly/fz1nEq [05:57] pkrumins: ryah: i dont even remember meeting you :( SubStack told me only later that we met [05:57] ryah: i feel dwon the stairs too [05:57] pkrumins: next time we meet i'll be sober [05:57] pkrumins: ryah: you didn't get hurt, did you? [05:57] pkrumins: man, i hope I dont have to pay like $5000 for the ER [05:57] ryah: not bad [05:58] pkrumins: i have been hearing that's a price here in the US for that [05:58] pkrumins: ER + CAT scan = $5000 to $10000. [05:58] ryah: yeah :/ [06:00] EyePulp has joined the channel [06:00] smerrell has joined the channel [06:00] creationix_: Sweet, I got node running on my CR48 [06:00] creationix_: had to compile on another machine and disable openssl [06:03] isaacs: ryah: you fell down stairs? [06:03] isaacs: pkrumins: you fell down stairs, too? [06:03] isaacs: jeez... the party i was at sounds really tame now. [06:03] isaacs: you san franciscans are crazy [06:03] pkrumins: yep, went head first [06:03] isaacs: yikes [06:03] isaacs: were you drunk enough to not care, at least? [06:03] pkrumins: absolutely [06:03] mikeal: sweet [06:04] isaacs: well that's good [06:04] mikeal: complaining on email list leads to improvement! [06:04] isaacs: hhaha [06:04] mikeal: god i'm hung over [06:04] mikeal: how are you feelin isaacs [06:04] mikeal: i wasn't paying much attention, did you get as drunk as I did? [06:04] pkrumins: man i shouldnt have drunk [06:04] isaacs: mikeal: i'm fine. i was nowhere NEAR as drunk as you were. [06:04] mikeal: i figured [06:05] mikeal: the dude with a grow in his loft [06:05] isaacs: yeah [06:05] mikeal: oh shit [06:05] mikeal: that was a PM [06:05] isaacs: hahah [06:05] isaacs: a little :) [06:05] mikeal: stupid growl [06:06] mikeal: anyway, mjr_ thanks for that stdio work [06:06] chapel: isaacs: whats the link to your bot code again? [06:06] chapel: that and your parser? [06:06] isaacs: chapel: which bot whatnow? [06:06] ewdafa has joined the channel [06:07] isaacs: oh, ircretary? [06:07] chapel: secretary or whatever [06:07] isaacs: http://github.com/isaacs/ircretary [06:08] mikeal: is secratary a gender neutral term? [06:08] mikeal: secretarian? [06:08] isaacs: mikeal: yes. it is. [06:08] isaacs: mikeal: but ircretary is, in fact, female. [06:08] isaacs: ovaries and everything. [06:08] mikeal: sexist. [06:09] isaacs: well, i woudln't've put ovaries in her if she was male. [06:09] chapel: seems your db isn't working right isaacs [06:09] chapel: http://irc.npmjs.org/_utils/ [06:09] isaacs: chapel: yeah, it got too big for the view functions i wrote [06:09] chapel: ah [06:09] chapel: I wanted to parse some existing logs into couch and use your view stuff [06:09] isaacs: chapel: http://isaacs.couchone.com/_utils/ [06:09] isaacs: chapel: it doesn't work that way [06:10] mikeal: huh? [06:10] isaacs: there ARE no "existing logs" that she parses. [06:10] isaacs: she parses irc [06:10] isaacs: not logs [06:10] chapel: well I know that [06:10] chapel: Im saying [06:10] mikeal: oh, yeah [06:10] chapel: I want to do the parsing myself [06:10] chapel: and use your display views [06:10] mikeal: you should encode the room and timestamp in to the _id [06:10] mikeal: then you won't need views [06:10] mikeal: you can just do a start/end query against all_docs [06:11] isaacs: mikeal: ok. [06:11] isaacs: mikeal: i don't know how to do that [06:11] chapel: set id to timestamp :P [06:11] isaacs: i mean, i know how to put the room and whatnot in the id [06:12] isaacs: i dont' know how to do the start/end query against all_docs and then pretty it up [06:12] mikeal: _id: room+'/'+timestamp+'/'+uuid [06:12] mikeal: ah [06:12] isaacs: also, / chars in _ids are The Fail. [06:13] mikeal: GET /db/_all_docs?startkey=1&endkey=3&include_docs=true [06:13] isaacs: but "-" is ok [06:13] isaacs: mikeal: take it to #couchdb? [06:13] mikeal: you might just wanna do [06:13] chapel: :) [06:13] chapel: hmm seems odd the way you have it logging [06:14] cardona507 has joined the channel [06:14] mikeal: _id: JSON.stringify([room, timestamp, uuid]) [06:14] chapel: a document per line? [06:14] chapel: guess its not too odd [06:14] isaacs: chapel: yeah [06:14] isaacs: a doc per message [06:14] chapel: but not how I would have approached it [06:14] chapel: (not that my way would be better or correct) [06:14] isaacs: from couch's pov i dont' think it matters much [06:14] chapel: yeah most likely not [06:14] isaacs: it's either a doc per message, or a doc per room with a rev per message [06:15] isaacs: but i guess then you can compact out the old data [06:15] peteatolia has joined the channel [06:15] mikeal: isaacs: GET /db/_all_docs?startkey=1&endkey=3&include_docs=true [06:15] mikeal: 10:13:11 PM [06:15] mikeal: isaacs [06:15] mikeal: ‣ [06:15] mikeal: b [06:15] mikeal: whoop [06:15] mikeal: adium copy/paste is horrid [06:15] isaacs: yep [06:15] isaacs: i gave up on adium for irc [06:15] isaacs: colloquy is just better at it [06:15] mikeal: colloquy is practially abandoned [06:16] mikeal: and i hate running more apps [06:16] chapel: Linkinus [06:16] chapel: :) [06:16] chapel: appreciate the links isaacs [06:16] chapel: ACTION is off to work [06:16] isaacs: chapel: np [06:17] isaacs: mikeal: colloquy is abandoned because it's *done* [06:17] mikeal: it's not done [06:17] isaacs: ;) [06:17] mikeal: it's crashy [06:17] isaacs: really? i haven't found that to be the case. [06:17] mikeal: it's done like iTerm was done [06:17] isaacs: hhaha [06:17] isaacs: oh, iTerm is very not done [06:18] mikeal: iTerm2! [06:22] mikeal: i read that wrong, ry committed the stdio changes [06:22] ryah: :) [06:23] jimt has joined the channel [06:29] isaacs has joined the channel [06:34] stagas has joined the channel [06:34] shaver: write an apache module makes me really appreciate node's documentation [06:36] andrewfff has joined the channel [06:41] sstephenson has joined the channel [06:41] mikeal has joined the channel [06:42] mrkurt has joined the channel [06:43] wookiehangover has left the channel [06:44] jimt_ has joined the channel [06:46] softdrink has joined the channel [06:50] pquerna: shaver: questions about making an apache module? [06:51] shaver: yeah, questions like "why didn't they update the docs after *1.3*" [06:51] shaver: I figured it out [06:51] shaver: I think [06:52] shaver: I'll test it tomorrow [06:52] shaver: when I hate a little less :-) [07:00] jimt has joined the channel [07:03] Ond has joined the channel [07:06] TheEmpath has joined the channel [07:06] TheEmpath: howdy kids [07:06] TheEmpath: so process.nextTick sends my CPU to 100% :( [07:06] TheEmpath: and me no likey :( [07:09] temp01: how would I decode a base64 string into an arraybuffer? [07:09] herbySk has joined the channel [07:10] jimt has joined the channel [07:14] temp01: :/ [07:18] devdrinker has joined the channel [07:19] TheEmpath: function wat() { process.nextTick(wat); } wat(); = 100% CPU [07:21] micheil: TheEmpath: yeah, recursion [07:22] shaver: not recursive [07:22] shaver: oh [07:22] shaver: mmmm [07:22] shaver: I *think* that unwinds [07:22] TheEmpath: its not recursive, technically. technically. the nextTick queue pops the function, runs it, and then nextTick sets it again for the next tick [07:22] TheEmpath: so its not recursive per say [07:22] TheEmpath: but it is obliterating mah precious CPU :( [07:23] shaver: what do you expect? [07:23] TheEmpath: i expected it to pop the nextTick queue, run it, and then run Node's main loop [07:24] shaver: ah [07:24] TheEmpath: then repeat that process over and over again [07:24] shaver: but that would still be 100% CPU, right? [07:24] TheEmpath: i dont know why it would be 100% cpu thou [07:24] shaver: because you will always have a way in the queue [07:24] shaver: it'll never block on anything [07:24] TheEmpath: that's like saying if i put anything in the main i/o loop, node will jack to 100% cpu [07:24] shaver: if you put something in there that means it always has work to do, yes [07:25] shaver: it will [07:25] shaver: that's what it's supposed to do! [07:25] shaver: if you had work to do (like an entry in the queue for wat()) and it wasn't using all the CPU available to it, you should complain to your OS vendor [07:25] shinmei has joined the channel [07:26] TheEmpath: i guess im at a loss then because my understanding of the nexttick queue was that it was ran pre-main loop [07:27] TheEmpath: continually putting something onto nexttick shouldn't result in a run-away CPU hog. [07:27] shaver: the main loop is basically waiting until there are thing in the queue, and running them [07:27] shaver: continuously putting something on nextTick is like running a for loop [07:27] TheEmpath: a 1 iteration for loop that ends pretty abruptly. [07:27] shaver: you're doing non-stop computation, and never waiting for anything (I/O, netowrk, etc.) [07:28] shaver: no, it's not 1 iteration, that's my point [07:28] shaver: the main loop is a big for loop [07:28] shaver: for/while/etc. -- they're isomorphic [07:28] TheEmpath: hrmm [07:28] shaver: you're basically doing while(queueNotEmpty) { run(removeFromQueue()) } [07:28] shaver: that's the main loop [07:29] shaver: but when you run wat! [07:29] TheEmpath: ACTION damns the presense of wat()! [07:29] shaver: it is doing "add me to queue, then return" [07:29] shaver: so you have while(queueNotEmpty) { run(trivialFunc); addToQueue(trivialFunc); } [07:30] TheEmpath: ahhh [07:30] benburkert has joined the channel [07:30] TheEmpath: i guess i read the node.js source wrong [07:30] TheEmpath: with that said [07:30] TheEmpath: i need to reevaluate what i want to do [07:31] desaiu: favorite talks on node.js that are available online? [07:31] shaver: desaiu: ryah's google tech talk [07:31] desaiu: thanks, have watched it :) [07:31] desaiu: anything on the express framework? [07:31] TheEmpath: basically, i don't want the node.js server to be working only when it has activity coming at it. i want node.js to process things in the background on its own without waiting for external users [07:32] TheEmpath: so think of a game server where players can connect and interact and junk. now imagine that i have AI monsters running amok, but their activity is generated on the server and broadcasted to all connections [07:33] TheEmpath: the monster motion and activity needs to be continually updated, regardless of if a player is sending requests to the server or not [07:33] shaver: well, no [07:33] shaver: it needs to be updated every frame [07:34] TheEmpath: on the client, yes [07:34] shaver: server too, really [07:34] shaver: that's how they all work [07:34] TheEmpath: i can settle for every 200 milliseconds and then have the client "tween" transitions between activity [07:34] shaver: they do some work in each frame [07:34] shaver: and sleep until the end of the frame budget [07:35] shaver: (many games used to not do that, and would just run at 100% CPU all the time) [07:35] TheEmpath: ugh [07:35] TheEmpath: bad news bears [07:35] TheEmpath: basically, i need the mechanism in node.js that can do continual updates without hammering the CPU [07:35] TheEmpath: i figured process.nextTick would work, but alas [07:36] shaver: the good news is that AI operating on about a quarter-to-half-second delay is more realistic anyway [07:36] TheEmpath: then i tried setInterval, but eventually, that pegs at 100% CPU over time as well [07:36] TheEmpath: aye, i figured as much [07:36] shaver: if you have more computation to be done than you have time in the interval, you are at 100% CPU, yeah [07:36] alexfner has joined the channel [07:37] TheEmpath: even at a 2000ms interval, the CPU eventaully kicked over [07:37] shaver: o [07:37] shaver: were you setting the interval in each tick? [07:38] shaver: that is a common error, and it leads to timer explosion [07:38] shaver: setInterval repeats on its own [07:38] shaver: setTimeout is single-shot [07:39] shaver: so function f() { doSomeWork(); setInterval(2000, f); } will quietly double the number of timers every two seconds [07:39] shaver: I think I will now experiment with sleep [07:39] shaver: unconsciousness, that is; not a scheduling trick [07:39] TheEmpath: function watwat() { setInterval(watwat, 2000); } watwat(); [07:40] shaver: yeah, don't do that [07:40] TheEmpath: doh [07:40] chapel: heh [07:40] shaver: just do [07:40] chapel: yeah [07:40] shaver: function watwat() { wat("wat!"); } setInterval(watwat, 2000); [07:40] fangel has joined the channel [07:40] TheEmpath: ahhh [07:40] TheEmpath: right [07:40] TheEmpath: yes of course [07:40] chapel: honestly I have been looking into writing a utility for my apps that just uses an interval and a queue [07:41] shaver: I told brendan he should have called it setRepeatingTimeout, but I was too late by a couple of years [07:41] shaver: chapel: that's how all these systems work [07:41] chapel: so if you have a lot of things that need to be done on a regular basis, but aren't added at a regular interval, you can queue them without overloading interval or timeouts [07:41] shaver: yeah [07:41] shaver: like idle timers [07:41] TheEmpath: i think thats the moneyshot, shaver [07:41] chapel: I had a simple proof of concept that would clear the interval when not in use, and restart it as needed [07:42] TheEmpath: while nextTick is 3 times faster than setInterval, setInterval(0) won't obliterate the CPU [07:42] chapel: but I am still new to js as and so I am sure there are easier/better ways to handle it [07:42] shaver: chapel: that sounds architecturally sound [07:42] TheEmpath: this may be the ticket [07:43] SamuraiJack has joined the channel [07:43] shaver: well good, I'm glad I didn't entirely waste my youth on JS [07:43] chapel: :) [07:43] shaver: gnight, noders [07:44] TheEmpath: tahts it! [07:44] TheEmpath: thanks man [07:44] TheEmpath: you just turned my server into something decent [07:44] chapel: heh TheEmpath [07:45] TheEmpath: finally!!! the CPU optimization is on its way!!!!! [07:45] TheEmpath: yesssssssssssssssssssss [07:45] TheEmpath: now i can get more than 18 users on my server [07:45] TheEmpath: i was able to get 18 users even at 100% CPU :X [07:46] TheEmpath: now i should get WAAAAY more [07:46] chapel: what are you doing? [07:46] unomi has joined the channel [07:46] TheEmpath: github.com/cainiac/imhotep [07:46] chapel: oh yeah that [07:46] TheEmpath: its coming along! [07:47] TheEmpath: if i can get over 200 users in real time on this box, i got me a nifty game company lined up that may give it a trial [07:48] shaver: 200 should be easy [07:48] TheEmpath: super easy [07:48] TheEmpath: the CPU thing baffled me because i misread how the nexttick queue worked [07:48] TheEmpath: now i stand before you an unbaffled man [07:48] shaver: truly, glory shines upon us [07:48] shaver: as soon as I find my kindle, I will shine on my pillow [07:49] TheEmpath: all thanks to you sir [07:51] wilken has joined the channel [07:52] steffkes has joined the channel [08:03] tlrobinson has joined the channel [08:04] ewdafa has joined the channel [08:05] psalms has joined the channel [08:13] wilken has joined the channel [08:14] mikeal has joined the channel [08:23] mikew3c has joined the channel [08:32] micheil: have secure streams landed yet? /cc ryah, pquerna [08:37] devdrinker has joined the channel [08:46] coffee has joined the channel [08:57] devdrink_ has joined the channel [08:59] derren13 has joined the channel [08:59] micheil: no tj :( [09:00] aurynn has joined the channel [09:00] dthompson has joined the channel [09:00] chapel: question for anyone that might know [09:01] chapel: if you do use node as a proxy of sorts, will it just pass through ssl content? [09:06] Iszak has joined the channel [09:06] Iszak has joined the channel [09:12] micheil: hmm.. not sure [09:14] ryah: micheil: no [09:14] CIA-121: node: 03Ryan Dahl 07master * r1345103 10/ src/node_script.cc : Fix typos - http://bit.ly/faMOPL [09:14] micheil: ryah: also, I'm going to send you a patch on querystrings. [09:14] micheil: noticed how they use a Buffer each time you decode? [09:15] micheil: for what it's actually doing, we could just use an array or a string. [09:15] chapel: I was thinking about a simple proxy that you use for browsing, but what it does is stores all sites you visit, so you can easily see where you have been and is a consistent history across browsers and sessions [09:15] micheil: I think. [09:16] micheil: also, we're making heaps of unnecessary function calls in there [09:16] daglees has joined the channel [09:16] daglees has joined the channel [09:19] micheil: ryah: is querystring.unescapeBuffer ever used by anything outside of the querystring module? [09:19] adambeynon has joined the channel [09:19] ryah: yes [09:19] micheil: hmm, what? [09:20] wilken has joined the channel [09:20] ryah: someone's bittorrent server [09:20] micheil: oh, okay [09:21] micheil: well, is there a reason it returns a buffer? [09:21] ryah: well, because they can encode raw bytes [09:23] micheil: hmm, okay. [09:23] micheil: I think for most cases we shouldn't be allocating a buffer there, it seems a bit too expensive [09:24] micheil: can't they just take the string and do: new Buffer(str) [09:24] mikeal has joined the channel [09:24] ryah: it's not really a hot path - and allocing buffers is relatively cheap [09:27] herbySk has joined the channel [09:28] micheil: I guess, but it doesn't seem right to be using a buffer when a string or array could suffice. [09:28] micheil: bbiab. dinner. [09:31] slmr has joined the channel [09:33] slmr has left the channel [09:34] slmr has joined the channel [09:37] vineyard has joined the channel [09:37] herbySk has joined the channel [09:39] masahiroh has joined the channel [09:44] femtoo has joined the channel [09:45] CIA-121: node: 03Ryan Dahl 07master * rcd1ec27 10/ src/node.cc : Add openssl version to process.versions - http://bit.ly/hKrHc7 [09:53] hellp has joined the channel [09:53] skm has joined the channel [09:54] CIA-121: node: 03Ryan Dahl 07master * r7e831bf 10/ (5 files): Disable TLS tests when node doesn't have OpenSSL. - http://bit.ly/e62iqJ [10:10] qFox has joined the channel [10:16] beta_ has joined the channel [10:20] andrewfff has joined the channel [10:30] markwubben has joined the channel [10:38] hassox has joined the channel [10:42] femtooo has joined the channel [10:43] stevemc has joined the channel [10:46] wilken has joined the channel [10:46] fly-away has joined the channel [10:50] kolor has joined the channel [10:53] zorzar_ has joined the channel [10:54] matjas has joined the channel [11:01] stagas: hey guys wanna help me test http://swos.stagas.com ? run with ijkl or arrows and z short to pass, z long to shoot [11:01] emorins has joined the channel [11:04] chapel: stagas [11:04] chapel: nice [11:04] stagas: aftertouch with inverse direction to lob or swerve the ball [11:04] stagas: after shooting [11:04] chapel: though whoever else that is active, is just randomly popping in and out in different areas [11:05] devdrinker has joined the channel [11:05] stagas: chapel: it's the client prediction doing funny things :) it needs more work but it is a lot better now from what I saw [11:07] stagas: chapel: basically every event on the socket has a frame position, and every client is synced to that, so if your movement is 10 frames back in time, it advances the physics 10 frames forward so in rapid movements it'll be funny [11:08] stagas: it needs smoothing out [11:08] chapel: well I am also on a mobile connection [11:09] pekim: stagas: "No sockets, man. ..." - This is with Chrome. It worked fine yesterday, and I'm using the same version of Chrome as yesterday. [11:11] pekim: stagas: Ignore me. Wrong browser. [11:11] stagas: pekim: :) [11:13] bugcatcher has joined the channel [11:14] pekim: stagas: Very nice. [11:15] stagas: pekim: thanks :) it needs work still too many racing conditions when everybody's on the ball :/ [11:20] mr_daniel has joined the channel [11:23] pdcawley has joined the channel [11:26] chapel: well like what you have, cant wait to see more of it [11:26] coffee has joined the channel [11:27] Iszak has joined the channel [11:28] bugcatcher: Hi there everyone. I set up cygwin, installed node.js, made a testrun and tried the hello world script. localy it runs smooth via localhost or 127.0.0.1 ... happy happy joy joy. [11:28] darthdeus has joined the channel [11:29] bugcatcher: then I set up my router to portforwarding port 8124 to my local pc, set the local firewall straight and tried to change the hostname for listen() to my external IP, and well.. receive a DNS lookup problem of some kind I think. [11:29] bugcatcher: some time ago I set up an xampp environment and configurated it the way it would responce to calls from my dyndns domain. I needed to modifiy a apache config file, so i guess I need to do this in node.js, too. [11:29] bugcatcher: but where/how? any tutorial around I was just unable to find? I am more the frontend developer, so all these network related stuff ist quite uncommon for me. ^^ [11:30] chapel: if you only assign a port and not a domain/ip when you setup the server, it should listen to the external one fine [11:31] sveimac has joined the channel [11:31] bugcatcher: sounds too simple to be true. i will try. thanx : ) [11:32] bugcatcher: damn. it works. your my hero. [11:32] dthompson: bugcatcher: also keep in mind if you have a firewall running to open the port [11:33] dthompson: stagas: awesome game, btw, cant wait to see more [11:33] chapel: no problem bugcatcher, if you want to keep the server local, just assign it 127.0.0.1 [11:33] chapel: wont listen to any thing else [11:34] chapel: and if you have multiple IPs you just assign whatever IP you want it to listen to [11:34] stagas: dthompson: thanks :) [11:35] chapel: did you do the art stagas / [11:35] chapel: ? [11:35] stagas: it's supposed to be a clone of swos, http://www.youtube.com/watch?v=kL2T4Yn2Tq8 [11:35] stagas: chapel: no and it's probably illegal to use it also :) [11:36] chapel: ah [11:36] chapel: btw [11:36] stagas: chapel: will have to paint my own [11:36] chapel: chaos, see its 0.1.6-pre on npm [11:36] chapel: but not seeing that on github [11:37] chapel: whats different? [11:37] bugcatcher: chamel: thanx again im pretty happy right know. bye everyone. back to my new playground. ^^ [11:38] stagas: a small bugfix on hgetall not calling back if the hkey isn't there or it's empty [11:38] bugcatcher has left the channel [11:45] hobodave has joined the channel [11:46] unomi has joined the channel [11:54] alexandere has joined the channel [11:55] sveimac: how do you shoot stagas :P [11:55] stagas: sveimac: z long press [11:55] stagas: sveimac: and after touch keeping pressed z, change direction to lob or swerve [11:55] markwubben has joined the channel [11:55] sveimac: :) [11:56] sveimac: awesome :) [11:57] sveimac: quite some lag in my Chromebrowser, any other thats better :)? [11:57] stagas: no chrome is best, the lag is software's fault :) [11:58] femtoo has joined the channel [11:58] stagas: sveimac: nice :) [12:00] masahiroh has joined the channel [12:00] stagas: sveimac: you can't just change direction, it needs a circular movement to keep the ball in your feet [12:00] sveimac: :) [12:02] sveimac: damn yooo [12:04] sveimac has joined the channel [12:12] sveimac: stagas: How often does the server correct the ball position? [12:13] stagas: sveimac: it doesn't, physics are client side, ball owner client controls the ball position [12:13] herbySk has joined the channel [12:14] stagas: sveimac: hackable but it's a lot smoother if you're the owner of the ball, you don't need to wait for roundtrip [12:14] aklt has joined the channel [12:15] stagas: but also has a lot of racing conditions when everybody's trying to get the ball :) [12:15] sveimac: stagas: true, so hard when your triying to fetch it tho :) [12:15] sveimac: hehe, yeah :) [12:16] stagas: it needs to be better for the ball owner and worse for the others [12:17] Max-Might has joined the channel [12:17] stagas: ball owner has the advantage of having the ball so he should be favored [12:17] matjas has joined the channel [12:17] sveimac: seams reasonable [12:21] sveimac: you could maybe make the closest player the "owner" earlier .:) [12:23] stalled has joined the channel [12:25] stagas: sveimac: reverse direction after shooting lobs [12:26] sveimac: ouhh :) [12:26] sveimac: wow, alot of power when doing that :P [12:27] daveyjoe has joined the channel [12:28] stagas: sveimac: if you learn the lobs and swerves you can control the ball while in the air and score some great goals :) [12:28] sveimac: inspecting code .) [12:29] sveimac: cpu players not ready yet :)? [12:30] stagas: sveimac: I had some code in but left it out on this, see http://swwwos.stagas.com [12:30] stagas: sveimac: I refactored a lot of the code into separate modules because it was getting quite large [12:32] sivy has joined the channel [12:32] stagas: might need to put it in I guess it's better if you control a team rather than one player only [12:32] sveimac: the player control is sweet though, nice work there :). Long time since I play the org to be honest, but feels the same [12:33] sveimac: you should work on some of the lagg issues tho, should be some smart tricks/-trottling for that [12:35] sveimac: but may be hard because of the scrolling smothness or smth [12:35] stagas: sveimac: yeap the multiplayer thing is only 2 days old :) it needs work and I'll open source it so anyone can mess with it [12:35] sveimac: neat [12:36] stagas: it's actually also like a framework for physics mmo games [12:36] stagas: so parts of it can be reused into other games [12:39] sveimac: ah, neat... what part? [12:39] sveimac: btw, im gonna hack my kickpower :) [12:39] sveimac: Whats the old sega game where the players had special kick combos? [12:40] sveimac: (waaaay back ...) [12:40] stagas: lol dunno I had an amiga [12:41] stagas: only remember microprose soccer, kick off and swos [12:41] chapel: sveimac [12:41] chapel: you ever play the soccer game on nes [12:41] chapel: where you were short and squat [12:41] sveimac: think so, there was one turn based I remeber [12:41] chapel: was apart of a dual game [12:42] chapel: party volley ball [12:42] chapel: part soccer [12:42] sveimac: those japs make some weird games :s [12:42] chapel: anyways [12:42] chapel: the soccer game was fun [12:42] sveimac: whats the name? [12:43] chapel: you could do flip kicks and stuff [12:43] Ori_P has joined the channel [12:43] under_ has joined the channel [12:44] maru_cc_ has joined the channel [12:44] maru_cc_ has joined the channel [12:44] chapel: http://www.youtube.com/watch?v=GFCJ0cX8et4 [12:45] maru_cc_ has joined the channel [12:45] maru_cc_ has joined the channel [12:46] maru_cc_ has joined the channel [12:46] micheil: is it possible to do Buffer::Utf8Slice purely in userland? [12:46] sveimac: chapel: lol, never played that :P [12:46] maru_cc_ has joined the channel [12:46] micheil: like, through say string_decoder? [12:46] maru_cc_ has joined the channel [12:47] maru_cc_ has joined the channel [12:47] maru_cc_ has joined the channel [12:47] maru_cc_ has joined the channel [12:48] maru_cc_ has joined the channel [12:48] maru_cc_ has joined the channel [12:48] maru_cc_ has joined the channel [12:49] maru_cc_ has joined the channel [12:49] maru_cc_ has joined the channel [12:51] chapel: hmm [12:51] chapel: with 0.3.x what replaces .close on http server? [12:52] chapel: https://github.com/pkrumins/nodejs-proxy/blob/master/proxy.js#L103 << when running this code, says object doesn't have .close() [12:52] derren13 has joined the channel [12:54] herbySk has joined the channel [12:57] vineyard has joined the channel [13:01] nook has joined the channel [13:04] stagas: chapel: try catch it [13:07] chapel: well not sure what to do with the output of the catch [13:09] stagas: chapel: nothing [13:09] stephank has joined the channel [13:10] stagas: chapel: probably .end() also destroys the instance so that's why .close() fails https://github.com/pkrumins/nodejs-proxy/commit/594ff347cafcbb02a9ef4ecd6e18551062560ce9 [13:10] chapel: well the problem is that the proxy server eventually dies [13:10] chapel: because of too many open connections [13:15] jimt_ has joined the channel [13:18] chapel: net.js:658 [13:18] chapel: self.fd = socket(self.type); [13:18] chapel: ^ [13:18] chapel: Error: EMFILE, Too many open files [13:23] Wizek has joined the channel [13:30] nagnatron has joined the channel [13:30] micheil: ryah: I think this will be a little bit faster / more efficient for the querystring parser: https://gist.github.com/762530 [13:31] micheil: looks like to be inline with the browser's decodeURIComponent, I need to use Buffers [13:32] micheil: unless I want to write out the ECMA 262 instructions into JS [13:37] matjas_ has joined the channel [13:39] matjas has joined the channel [13:43] oal has joined the channel [13:48] matjas_ has joined the channel [13:50] d0k has joined the channel [13:51] nejucomo has joined the channel [13:57] nejucomo: Hello. Is anyone familiar with Caja, Cajita, Jacaranda, or AdSafe? [13:58] nejucomo: All of those restricted language subsets seem to focus on browser-side js. Does anyone have experience applying them to node.js? [14:04] nejucomo: ACTION reads about ecma262 5, strict mode, and v8 support. [14:04] micheil: nup [14:07] V1 has joined the channel [14:12] Wizek: can I have string variables like this: "%1 has logged in at %2.", "User", new Date() [14:12] Wizek: like C's printf [14:14] mikew3c_ has joined the channel [14:15] slmr has left the channel [14:17] under_: nejucomo: you planning to let users upload executable code? [14:17] nejucomo: under_: Yes. [14:18] javajunky has joined the channel [14:18] b_erb has joined the channel [14:20] shimondoodkin has joined the channel [14:23] sveimac has joined the channel [14:24] stride: Wizek: console.log("%s logged in", "user"); [14:25] Wizek: stride: I don't want it to be consol.logged [14:25] Wizek: just manipulate the string this way [14:30] unomi has joined the channel [14:30] wilken has joined the channel [14:31] stride: don't think the format function in /src/node.js is exposed to usercode [14:31] stride: you might want to double check that though :) or copy it or use the sprintf function on phpjs.org or something [14:33] nejucomo has joined the channel [14:33] alek_br has joined the channel [14:38] jimt has joined the channel [14:39] slmr has joined the channel [14:42] sivy has joined the channel [14:45] Sbioko has joined the channel [14:49] wilken has joined the channel [14:54] skm has joined the channel [14:54] Druid_ has joined the channel [15:00] tux21b has joined the channel [15:02] tux21b: I'm having some troubles with the http client and https. the following script generates no output at all: http://paste.pocoo.org/show/313145/ [15:03] tux21b: (but it works as expected when i use port 80 and set secure=false) [15:04] under_: whats the error you get? [15:05] tux21b: none, thats the problem ;) [15:05] frodenius: you're using port 443 [15:06] b_erb: what is the difference between stream, WritableStream and ReadableStream? [15:09] tux21b: frodenius: i know, 443 is the default port for https. but i am wondering, why i don't get any result (no response and no error) with port 443 and secure=true (unfortunately, the fb graph api requires https) [15:10] frodenius: because node doesn't handle https yet [15:10] frodenius: it can do a tls connection but no https yet [15:11] tux21b: so it can do http and tls but not http+tls? 0o [15:11] jimt_ has joined the channel [15:12] frodenius: hm wait, it seems somebody got it working [15:12] frodenius: (but after 60kb the connection died for him, why ever) [15:14] frodenius: tux21b㇀ http://groups.google.com/group/nodejs/browse_thread/thread/e01bb8cccafa9211/5de018ce172ce312 [15:15] HAITI has joined the channel [15:16] jonaslund: b_erb: Readable/Writeable are defintions of functions needed to be such a stream, stuff like TCP streams f.ex. are bidirectional so they support both [15:18] b_erb: jonaslund: so if i want to add an intermediate filter that takes an incoming stream, transforms it and writes it to a outgoing stream, in need to inherit from stream and extend it with methods for both [15:18] derren13 has joined the channel [15:19] slmr has left the channel [15:21] stepheneb has joined the channel [15:24] jonaslund: b_erb: no, simply add listener to a incomming stream, process the data and send it along to the output [15:24] tux21b: frodenius: still no luck, but thanks for your help anyway [15:25] galaxywatcher has joined the channel [15:26] tux21b: interestingly there are a lot of snipptes using http.createClient(443, 'graph.facebook.com', true') available on the web, so i am guessing there must be (many?) system on which https is already working... [15:27] b_erb: is there a way to narrow down the type of something that has been mixed using inherits()? Suppose I have an object that is inherits(a,b), but I want to give access to the b methods? do i need a proxy object? [15:29] javajunky: frodenius: it can do https [15:29] Sbioko has left the channel [15:29] nejucomo has joined the channel [15:29] javajunky: tux21b: whats your issue I've node code that works with facebook over https [15:30] tux21b: javajunky: http://paste.pocoo.org/show/313145/ - this code does neither raise an error nor it outputs anything [15:32] tux21b: javajunky: which version of node are you using? 3.2 or git? [15:32] tux21b: * 0.3.2 ;) [15:34] javajunky: neither, but not relevant older version [15:35] heavysixer has joined the channel [15:35] javajunky: you might need to pass some credentials as the last argument of that createClient [15:36] javajunky: trty crypto.createCredentials({ }) [15:36] under_: tux21b: that is weird. playing with node's tls has been on my todo. can't figure out why your code fails [15:37] under_: clients don't require credentials (or shouldn't) [15:37] tux21b: i already tried crypto.createCredentials({}) as 4th argument, but same behavior... i am now upgrading to the git version (i've used 0.3.2 before) to give it another try [15:38] under_: i tried tux21b's code on 0.3.2 with same (null) result [15:38] javajunky: it could be broken in 0.3 I guess i'm on a 0.2 stream [15:38] javajunky: (but I doubt it, theres tests covering it) [15:39] chapel: pkrumins [15:39] chapel: pkrumins: ping [15:40] Ori_P has joined the channel [15:42] pdcawley has joined the channel [15:42] under_: docs on nodejs.org for tls for 3.2 are borked, thats for sure [15:43] meandi has joined the channel [15:44] javajunky: such are the perils of following an unstable release I guess ;) [15:47] tux21b: hmm, so using 0.2.6 might help? :) [15:50] mikew3c_ has joined the channel [15:50] MattDiPasquale has joined the channel [15:53] javajunky: well its worth a try, this woks for me in my libraries (node-oauth, connect-auth etc.) [15:54] under_: yeah ssl interface looks to have totally changed from .2 to .3. in .2 its integrated into net.Stream, in .3 its in a separate tls module. http.js doesn't actually seem to use it at all [15:54] herbySk has joined the channel [15:54] nejucomo has joined the channel [15:55] rsms has joined the channel [15:56] javajunky: I need to start using 0.3 at some point, may create some 0.3 branches of my libs [16:04] under_: looking at code quickly (.3.2) i don't even see an easy way to monkeypatch tls into http.js [16:04] under_: tls module defines a 'crpptostream' but doesn't export it, only way to use it is to call the factories (connect,etc). but http.js doesn't. [16:05] wilken has joined the channel [16:07] tux21b: 0.2.6 is working fine. under_: i'm hoping that you will find a way to support it in .3.2 too. that would be really nice :) [16:08] micheil: ryah: I think I've worked out how to do the querystrings without buffers. [16:10] pdcawley: TLS/https has given me nothing but pain when trying to do non-blocking stuff in Perl. I ended up punting on going non-blocking immediately and to use stunnel to set up tunnels to the things I needed to talk to and just talk http through the tunnel. [16:10] under_: perl? there's your prob [16:11] pdcawley: under_: Do me a favour, stop the knee jerking. [16:11] under_: pdcawley: sure thing boss [16:11] pdcawley: Thanks. [16:12] under_: i had similar hairy experience with async tls in python (especially handshaking) but recently there's a good third party implementation that works. hopefully node can get it right [16:13] pdcawley: under_: Ooh? C based library that plays nice with libev, or something else? [16:13] under_: not that nice hah [16:13] pdcawley: We live in hope :) [16:13] under_: just an openssl port that doesn't block on its own [16:13] pdcawley: Definitely a start. [16:13] under_: unlike python's built in ssl module (or, it blocked sometimes last i checked) [16:14] under_: unlike python's built in ssl module (or, it blocked sometimes last i checked) [16:14] pdcawley: ACTION has had this feeling of deja vu before. [16:14] under_: eeek unknown why that happened hopefully it doesn't become a habit [16:15] pdcawley: ACTION has had this feeling of deja vu before [16:15] pdcawley: ACTION ducks, covers. [16:15] under_: eeek unknown why that happened hopefully it doesn't become a habit [16:15] frodenius: wait, what? [16:15] pdcawley: ACTION grins. Shall we stop this farrago now? [16:15] frodenius: wait, what? [16:16] frodenius: omg [16:16] frodenius: omg [16:16] pdcawley: Oh bollocks! It's catching. [16:17] under_ has left the channel [16:17] pdcawley: ACTION mutters, there has to be a neater way of doing pythonic ' ' * 3 or perlish ' ' x 3 in Javascript than an explicit loop, surely? [16:18] sstephenson: Array(4).join(' ') [16:18] under_ has joined the channel [16:19] pdcawley: Neat. [16:19] pdcawley: Faintly obscene, but neat. [16:19] sstephenson: yeah, pretty gross [16:24] jpld has joined the channel [16:24] sveimac has joined the channel [16:30] flowlo has joined the channel [16:30] flowlo: hi [16:31] flowlo: when running this part of my code it says body is "
" so i'm missing all the contents. could anybody check it? https://gist.github.com/762630 [16:33] liar has joined the channel [16:35] ceej has joined the channel [16:38] Tidwell has joined the channel [16:39] V1 has joined the channel [16:40] nonnikcam has joined the channel [16:41] possibilities has joined the channel [16:42] dnolen has joined the channel [16:44] javajunky: painful [16:44] javajunky: ACTION apologises, wrong window [16:46] nejucomo: flowlo: I'm not too familiar with node, but I believe your callback function is called *after* the containing function returns. [16:47] flowlo: oh god yeah ... [16:47] nejucomo: Thus you need to move var body and console.log into the callback. [16:47] flowlo: nejucomo: yup thanks :) [16:53] SamuraiJack_ has joined the channel [16:58] EGreg_: hey people [16:58] flowlo: hi [17:00] femtooo has joined the channel [17:00] softdrink has joined the channel [17:02] noahcampbell has joined the channel [17:10] wilken: hi, i use express to post a form to the server. when i examine the request, the request.body is undefined? has anyone seen this? it has worked in the past, so i must have tinkered somewhere i shouldnt have [17:10] wilken: which middleware populates the request.body? bodydecoder? [17:10] RichardJ: wilken: believe so, yes. [17:11] wilken: hm.. i have that in my chain, and havent touched it :( [17:13] markstory has joined the channel [17:15] slaskis has joined the channel [17:16] themiddleman has joined the channel [17:19] Hello71 has joined the channel [17:19] Hello71 has joined the channel [17:19] sveimac has joined the channel [17:21] spetrea has joined the channel [17:21] unomi has joined the channel [17:22] spetrea has joined the channel [17:22] aaron_ has joined the channel [17:23] slaskis_ has joined the channel [17:23] aaron_: anyone familiar w/ some sort of bug serving up images via express/connect/node? Works great in dev, but in prod it mutates the file in some terrible way, corrupting the display [17:27] SubStack: aaron_: it could be an encoding issue [17:27] SubStack: aaron_: is it just a static file? [17:27] aaron_: I don't believe so, [17:27] aaron_: SubStack: the first 75% of the image is correct, [17:27] aaron_: SubStack: and a binary diff shows things go nuts later on. Also, its intermittent (80% failure rate) [17:28] aaron_: SubStack: it is a static file [17:28] aaron_: SubStack: proxlet.com (main center screenshot) [17:28] xSmurf: hey nodites, does node even support UDP?? [17:28] SubStack: I would just use staticProvider to host it then [17:28] aaron_: SubStack: it is using staticProvider to serve it :/ [17:28] SubStack: I haven't had any corrupt image problems with it [17:28] SubStack: oh that is super strange then! [17:28] stride: xSmurf: yeah, see docs on datagram [17:29] xSmurf: tjx [17:29] xSmurf: *thx [17:29] aaron_: SubStack: ya, I'm totally confused and it's a bummer [17:29] xSmurf: I was looking at streams couldn't find it [17:32] tg has joined the channel [17:33] jacobrelkin has joined the channel [17:34] Alex3000 has joined the channel [17:34] slaskis has joined the channel [17:36] femtoo has joined the channel [17:39] robotarmy has joined the channel [17:42] davidc_ has joined the channel [17:42] davidc_ has joined the channel [17:46] cheney has joined the channel [17:46] cheney: hello [17:46] flowlo: hi [17:47] cheney: why is that I can assign the chunk data from a HTTP server request to a variable, but I cannot assign the chunk data to a variable if it is from a HTTP client response [17:47] possibilities has joined the channel [17:49] steffkes has joined the channel [17:50] tlrobinson has joined the channel [17:55] b_erb: ain't ServerRequest a Readable stream? [17:59] daglees has joined the channel [17:59] daglees has joined the channel [18:00] Eber has joined the channel [18:01] kolor has joined the channel [18:06] cheney: is it safe to say that Node cannot make a HTTP client request in the middle of a HTTP server response? [18:06] SamuraiJack_ has joined the channel [18:07] desaiu has joined the channel [18:08] micheil: ryah: okay, all that I can't get working now is the Buffer variant [18:08] micheil: the rest of the tests pass [18:08] b_erb: cheney: why not? [18:08] slaskis: micheil: what are you working on? [18:08] ceej_ has joined the channel [18:09] sivy has joined the channel [18:09] micheil: trying to make the querystring module not allocate a buffer every time it needs to unescape a string [18:10] slaskis: oh, nice [18:10] SubStack: handy [18:11] b_erb: i thought one can pump a request as a readable stream, but i don't get it running. am i wrong with that intention? [18:12] bingomanatee_: is there an interface definiiton for creating a valid stream reader? [18:12] benburkert has joined the channel [18:13] mlins has joined the channel [18:13] bingomanatee_: b_erb: I used pump for a while to read files - the catch is that if any errors are thrown during the read process the whole game breaks. [18:13] aaron_ has joined the channel [18:14] SamuraiJack__ has joined the channel [18:14] b_erb: bingomanatee_: that use case works for me either. now i want it vice versa to accept incoming uploads, but it silently fails [18:15] bingomanatee_: so you want a biderectional stream? [18:15] wilken has joined the channel [18:15] b_erb: bingomanatee_: i want to write a request entity into a file [18:15] isaacs has joined the channel [18:15] bingomanatee_: is the entity a string? [18:16] bingomanatee_: or are you trying to serialize it in binary? [18:16] wilken: weird, my problem related to my session timing out immediately [18:16] micheil: ryah: thoughts? https://gist.github.com/762705 [18:17] b_erb: bingomanatee_: it acutally should not matter. because the binary content of the entity should become the file content, whether it's actually a string or not… [18:17] b_erb: bingomanatee_: but in my test cases, it is a string [18:18] bingomanatee_: so you are trying to use pump to write a string into a file reading stream? [18:18] b_erb: bingomanatee_: no, the pump source is the ServerRequest object [18:18] bingomanatee_: can you gist your use case? [18:19] bingomanatee_: ah - so you are trying to write data from, say, the raw body of a post to a file? [18:19] rsms has joined the channel [18:20] b_erb: bingomanatee_: exactly [18:20] bingomanatee_: I've done that [18:20] bingomanatee_: hold on I'll get you some source. [18:21] cheney: b_erb: I cannot get it working correctly in the code, the problem appears to be a sequencing problem [18:22] b_erb: cheney: perhaps you are chaining your callbacks in the wrong way [18:22] cheney: it seems the http client request is executing far later into the code than where the execution is called [18:23] cheney: I am looking at why this sequence issue is occurring [18:23] b_erb: cheney: but it should definitely work. i am using couchdb for some of my node apps, and the database calls are actually also http client requests [18:24] cheney: but are those http client requests in side, as in nested, in a different http client request or a http server response? [18:24] b_erb: cheney: do you have the code (gist…), if you want us to have a look at? [18:24] cheney: yeah, one moment. [18:24] b_erb: cheney: the client requests are inside a server callback [18:24] jchris has joined the channel [18:25] nook has joined the channel [18:26] bingomanatee has joined the channel [18:26] bingomanatee: b_erb: https://gist.github.com/762715#comments [18:26] devdrinker has joined the channel [18:26] bingomanatee: The trick is - you have to force the body stream to text using __toString(); [18:27] b_erb: bingomanatee: thx, i'll have a look at [18:28] b_erb: bingomanatee: hmm it though pump should work as well: at least it does so in this case: https://gist.github.com/762719 [18:29] blaines has joined the channel [18:29] b_erb: bingomanatee: whatever got transmitted as request entity is returned in response [18:29] cheney: b_erb: http://pastebin.com/AFy6qtn9 [18:29] daglees has joined the channel [18:29] daglees has joined the channel [18:30] b_erb: bingomanatee: now i wanted to change the pump sink to a file, using fs.createWriteStream(). the file gets created, but the pump process does not fill the file, nor is the 'end' callback of pump exectued [18:32] b_erb: cheney: in line 100 the first client response is completed. that's where you should continue with your server code. otherwise, the client response is not yet available. although the next code is below, it gets executed before [18:34] tlrobinson has joined the channel [18:40] tswicegood: the REPL not supporting non-anonymous functions is a regression, correct? [18:41] shaver: sounds like it [18:41] tlrobinson has joined the channel [18:43] jakehow has joined the channel [18:43] tswicegood: figured as much - I'm recompiling v0.3.1 to see if that supports it [18:43] tswicegood: ACTION thinks it did [18:43] tswicegood: ahh - 0.3.2 supports it [18:44] flashingpumpkin has joined the channel [18:47] beta_ has joined the channel [18:47] meandi2 has joined the channel [18:49] cheney: thank you b_erb [18:49] b_erb: cheney: you're welcome [18:49] cadrlife has joined the channel [18:50] tlrobinson has joined the channel [18:50] tswicegood: #546 for anyone who's interested [18:53] b_erb: bingomanatee: ok, i traced it down, it's may be a node bug. but i am not that much into node, so i don't really know: when i use pump() within a path.exists() callback, it does not work anymore [18:53] dnolen has joined the channel [18:56] modular has joined the channel [18:58] shinmei has joined the channel [19:00] blueadept has joined the channel [19:00] jetienne has joined the channel [19:01] jacobrelkin has joined the channel [19:01] jchris has joined the channel [19:02] b_erb: seems to be a bug, will try 0.3.2 now [19:03] bingomanatee_: b_erb pump is not stable as Issacs told me when I started off - low level streaming gives you an error handling hook that pump does not. [19:03] sudoer has joined the channel [19:04] b_erb: bingomanatee_: i thought pump is just candy around the low level streaming events and methods. and i now its experimental, but thats again a reason to trace it down, if there is a bug [19:04] bingomanatee_: Thats why when I pumped the request it doesn't work - for instance, the data parameter returned to the sream.on('data', fn) hook is not a string - its a buffer. [19:05] tswicegood: for anyone playing along with the non-anonymous function bug, tracked it down (noted in the comments https://github.com/ry/node/issues/issue/546) [19:05] bingomanatee_: You can do both of course. [19:05] bingomanatee_: my solution was, don't use it now... the socially conscious option I leave to you :D [19:05] bingomanatee_: but Isaacs already knows and he's Joyent. [19:06] b_erb: bingomanatee_: thanks for your help, i'll fall back on your approach ;-) [19:08] bingomanatee_: what do you get when you put a wizard in a bag and catapult the bag over a village? [19:08] bingomanatee_: A FLYING SORCERER! [19:09] Me1000 has joined the channel [19:10] b_erb: bingomanatee_: ok, there must be a bigger problem or my code is badly broken. req.on('data') does not work either [19:12] bingomanatee_: console.dir (req) ... what do you get? [19:13] b_erb: bingomanatee_: a huge object literal of the request object [19:13] bingomanatee_: okay -- can you gist your source? [19:16] b_erb: bingomanatee_: https://gist.github.com/762748 [19:17] maushu has joined the channel [19:17] b_erb: bingomanatee_: is there anything wrong with the callback inside path.exists()? [19:17] bingomanatee_: and you get something on the order of [19:17] bingomanatee_: right [19:17] bingomanatee_: ? [19:17] bingomanatee_: try console.log(chunk.__toString()); [19:18] markwubben has joined the channel [19:18] b_erb: bingomanatee_: the problem is, i get nothing at all [19:18] b_erb: bingomanatee_: if i move the console writing stuff out of the path.exists-callback, it works [19:20] bingomanatee_: ah well not all posts HAVE body. [19:20] bingomanatee_: that is not all requests have body. [19:21] bingomanatee_: Are you sure you are sending a request with a raw body? [19:21] slaskis: is there a way to get the filename of the script? if i use __dirname i get the dirname of the script that was started by node, but i'd like dirname of the one it requires, i.e. __dirname+"lib/test", but more generic [19:23] frodenius: slaskis㇀ module.filename [19:23] wilken: is anyone using connect-auth? is there a way to authenticate a user given a uname and password, which just returns an error if it isnt a correct user, as opposed to trying to redirect etc. [19:23] b_erb: bingomanatee_: i'm executing the same request with a body all the time. if the listener gets registered within the path.exists callback, i get nothing. if i do so in outside, i get the buffer numbers, as expected. [19:24] slaskis: frodenius: great, i'll check that one out, thanks [19:24] Ond has joined the channel [19:25] arrty has joined the channel [19:26] bingomanatee_: b_erb - I threw my client test code onto the gist. Pass it a file path to atext file and see what happens. [19:27] bingomanatee_: one word of caution - I replaced a literal domain with "localhost" - you might have to use "127.0.0.1" instead. [19:29] stagas has joined the channel [19:32] isaacs: bingomanatee: yo [19:32] isaacs: what's this i already know and am joyent? [19:33] isaacs: bingomanatee: something about pump()? [19:34] bingomanatee_: yep - you advised me earlier that pump was not as stable as event hooks on a file stream? [19:35] bingomanatee_: If its of great concern for you I can try to find the info from IRC log. [19:36] muk_mb has joined the channel [19:37] daglees has joined the channel [19:37] daglees has joined the channel [19:38] b_erb: bingomanatee_: sorry, couldn't find your updated gist [19:38] bingomanatee_: one sec [19:38] bingomanatee_: https://gist.github.com/762715 [19:38] bingomanatee_: client to test with in in comment [19:39] isaacs: bingomanatee: ah, yearh [19:40] isaacs: so, if you have inStream and outStream, and then do sys.pump(inStream, outStream) (or in 0.3.x inStream.pipe(outStream)) then you still need to add "error" event handlers to both [19:40] bingomanatee_: yep due to the jerkey nature of the net. [19:40] bingomanatee_: et al.. [19:40] isaacs: i think they propagate trough the pump chain, as well [19:40] isaacs: anyway, since i told you that, there's been a lot of debugging and development on fs streams streams in general [19:41] bingomanatee_: cool [19:41] vineyard has joined the channel [19:41] isaacs: it should work fine now [19:41] b_erb: b_erb: and it's just cool to "pump()" ;) [19:41] isaacs: but, like i said, make sure that you listen to error events [19:41] bingomanatee_: what do we need to do to keep our local nodes up to date with said development? [19:41] isaacs: bingomanatee: keep installing the new versions :) [19:41] isaacs: bingomanatee: nave and nvm are handy for that. [19:42] bingomanatee_: nave is new to me. [19:42] bingomanatee_: npm install node [19:42] bingomanatee_: ? [19:42] isaacs: nave use stable [19:42] isaacs: nave use latest [19:42] isaacs: nave use 0.2.3 [19:42] isaacs: etc [19:42] Bloc has joined the channel [19:42] bingomanatee_: oic [19:43] bingomanatee_: where do I get nave? [19:43] isaacs: you can npm install nave. or you can just download the shell script from github. http://github.com/isaacs/nave [19:44] b_erb: bingomanatee_: ok, but now I ended up with a totally different error: https://gist.github.com/762748 has nothing to do anymore with pump(). [19:44] vborja has joined the channel [19:44] isaacs: b_erb: you have to attach the on("data") listener before doing anything async [19:44] Sembiance: Anyone try and use Traits with node.js much? [19:45] isaacs: Sembiance: isn't Joose some traits-thing? [19:45] b_erb: isaacs: ok, same then goes for pumping? [19:45] isaacs: b_erb: yeah, you have to attach the pump right away [19:45] Sembiance: isaacs: I've only seen http://howtonode.org/traitsjs [19:45] isaacs: oh, or that [19:46] boaz has joined the channel [19:46] isaacs: Sembiance: npm ls trait <-- shows a buncha stuff [19:48] b_erb: hmm, doing nothing async before pumping is tough for file uploads if you want to prevent overriding existing files [19:49] bingomanatee_: oh man.... [19:49] Ond: You mean nothing sync [19:49] isaacs: b_erb: you have a few options. you can pause() the request right away, and then resume() only if it's not there, or kill it otherwise [19:49] bingomanatee_: that was pretty awesome. [19:50] Sembiance: hm [19:51] bingomanatee_: You can always branch using path.exists(target, fn), b_erb [19:52] b_erb: isaacs:can i use util.pump() and still manually pause the pump-source? [19:53] isaacs: b_erb: sure [19:54] b_erb: bingomanatee_: sorry for that confusion. i wasn't aware of that requirement for using request as stream :( [19:54] bingomanatee_: np - glad to see you get qualified help:D [19:54] proppy has joined the channel [19:55] b_erb: well, we both screwed time thanks to that tiny little fault ;) [19:55] proppy: Hi, is there node binaries for linux available somewhere ? [19:55] bingomanatee_: all code problems are equally existential. [19:55] proppy: (i.e static binaries, not package) [19:56] proppy: I was wondering if the binary output of the buildbot was publicy available [19:57] b_erb: isaacs: so when i first pause the request, then register the pump sink, i can be sure that nothing is touched at the pump sink unless i resume the request? [19:58] bingomanatee_: isaacs: I've seen people do redundant require('foo') calls (specif. in christkov/mongo libs) - is there any functional diffeerence between calling a require('foo') repeatedly and calling it once and using the assigned variable repeatedly? [20:00] isaacs: b_erb: req.pause(); fs.stat(filename, function (er, s) { if (er) { sys.pump(req, stream) ; stream.on("error", send500(res)); stream.on("close", send209(res)); req.resume() } else { send409(res) } }) [20:00] isaacs: bingomanatee: every time you call require() it does some stats. it's better to assign it to a var. but it's not the end of the world either way. [20:01] b_erb: isaacs: now i'm confused. fs.stat() is async as well. or is the only important thing to pause at first? [20:01] bingomanatee_: thx. [20:02] mjr_: stats can be surprisingly expensive if the thing you want to stat isn't in cache yet, but in this case it probably is still in cache. [20:02] isaacs: b_erb: fs.stat is async, yes [20:02] isaacs: b_erb: that's why you need to pause, do the stat, and when the stat returns, deal with it [20:02] mjr_: Sometimes I type things and Colloquy displays different things. [20:03] isaacs: b_erb: for bonus points, you can save the stats and look it up from a cache object or something [20:03] bingomanatee_: like, for instance, on new year's eve? [20:03] isaacs: b_erb: so you can respond faster after the first time [20:03] bingomanatee_: ^^ mjr_ [20:03] mjr_: bingomanatee_: I stayed away from my computer on NYE, and all of yesterday. [20:04] bingomanatee_: mjr_: sounds like you are just out of practice :D [20:04] mjr_: no, I just didn't get home until 9AM, and I slept all day. [20:04] tapwater has joined the channel [20:04] b_erb: isaacs: ok thanks, now i got it. initially i understood, that you can never handle streams once you are one level of callback below. but you only have to pause them first. makes sense. thanks [20:13] saikat has joined the channel [20:14] bingomanatee_: mjr_: the simplest solution would be for you to just get rid of your mac and program on ubuntu/linux like a real programmer. [20:14] proppy: will try to copy a compiled node from a debian system, and see if it runs in chromium os [20:15] cardona507 has joined the channel [20:17] vborja has joined the channel [20:21] baoist has joined the channel [20:22] tswicegood: general question: for local development/testing on a Windows box, would you recommend VirtualBox + Linux or cygwin? [20:22] stride: putty *ducks* [20:24] tswicegood: stride: VB + Linux pretty much means putty unless you've got a beefy machine :-) [20:24] bingomanatee_: can someone tell me the implications of Foo.prototype.__proto__ = bar.prototype? [20:25] bingomanatee_: Specifically - working on form library, want all my fields to be identifed as fields by passing the (field.prototype == require('./fields/').Field.prototype) test [20:25] bingomanatee_: is this possible? [20:25] flowlo has left the channel [20:28] CrypticSwarm has joined the channel [20:30] bingomanatee_: twicegood: have blogged response at http://wonderlandlabs.com/wll_drupal/os/os.html [20:31] bingomanatee_: virtual box is actually acceptable if you must... [20:31] bingomanatee_: however I've yet to hear why VB is better than an actual virtual machine unless you are concerned about working away from a wireless connection. [20:31] coffee has joined the channel [20:31] herbySk has joined the channel [20:31] pyrotechnick has joined the channel [20:35] dspree has joined the channel [20:36] sechrist has joined the channel [20:36] fly-away has joined the channel [20:38] CIA-121: node: 03Ryan Dahl 07master * rb563717 10/ test/simple/test-tls-securepair-client.js : Fix openssl version check - http://bit.ly/givj0l [20:39] matjas has joined the channel [20:40] dspree has joined the channel [20:40] apipkin has joined the channel [20:41] femtoo has joined the channel [20:42] apipkin: i'm trying to upgrade from 0.2.5 to 0.2.6 in Unbuntu 10.4 Desktop. It's possible i'm doing it wrong, but when i pull the update from github, configure, make, make install I get the following error: Could not install the file '/usr/local/include/node/eio.h' [20:43] robotarmy has joined the channel [20:43] possibilities has joined the channel [20:43] vborja has joined the channel [20:44] bingomanatee_: you are of course talking node 0.2.x right [20:44] bingomanatee_: to be clear. not that I'm qualified to answer the question... [20:44] apipkin: yes, 0.2.5 to 0.2.6 [20:44] Sembiance: hrm... trying to write some node code that will end up invoking other node code (plugins). Trying to decide if I should go with 'events' back and forth, or expect the target node plugins to have certain functions exported and vice versa [20:44] bingomanatee_: do you use nave? Isaacs just put that out in pub a few ago [20:45] apipkin: bingomanatee_: me? i'm not sure what nave is [20:45] Sembiance: or maybe I should go crazy and use traits ;) [20:45] pyrotechnick: https://github.com/isaacs/nave [20:45] bingomanatee_: nave is a node upgrading utility - npm install nave ... I can repeat what Isaacs told me but its in IRC - check logs c. 11:30 today [20:45] apipkin: Sembiance: generally plugins only know about themselves and host prop/methods [20:46] apipkin: bingomanatee_: oh cool one sec i'll install it with npm and see how that goes :) [20:46] bingomanatee_: "take not the words of the prophet unto your own..." etc. [20:46] pyrotechnick: Sembiance: if it's a 1:1 relationship between callers and 'listeners' then use methods otherwise use events [20:47] pyrotechnick: Sembiance: are you talking about between node instances or between plugins on a single node? [20:47] Sembiance: pyrotechnick: single node instance [20:48] pyrotechnick: events are a great part of the language. what's your usual language? [20:48] vborja has joined the channel [20:49] Sembiance: pyrotechnick: heh, uhm. javascript :) [20:49] bingomanatee_: one question I was wondering about events - is there a way to stop an event from percolating through to a listener or is it all asynchronyous? [20:49] bingomanatee_: i.e., with DOM events you can stop a listener at a specific DOM object or let it pass through - can you do that in node? [20:50] pyrotechnick: on the client there is bubbling and u can cancel or avoid it with a flag to addeventlistener [20:50] pyrotechnick: but i cant vouch for the server itself i imagine it's the same [20:50] bingomanatee_: okie [20:50] Sembiance: bingomanatee_: I really like how YUI3 handles events, very powerful and straight forward. [20:50] pyrotechnick: yeah that's one thing they did get right [20:50] apipkin: Sembiance++ [20:50] v8bot: apipkin has given a beer to Sembiance. Sembiance now has 2 beers. [20:50] pyrotechnick: jquery isnt half bad either i was looking yesterday [20:50] bingomanatee_: YUI3 !== DOM events !== node events? [20:51] pyrotechnick: he's just saying. [20:51] pyrotechnick: still havent been able to beat mootools on the client for me [20:51] pyrotechnick: ^w^ [20:52] Sembiance: bingomanatee_: actually, you can use YUI3 and it's modules with node.js :) [20:52] bingomanatee_: Thats what I was hoping [20:52] Sembiance: bingomanatee_: http://www.yuiblog.com/blog/2010/12/01/video-yuiconf2010-glass/ [20:52] apipkin: yes thank you dav [20:53] c4milo1 has joined the channel [20:53] isaacs: imo, yui3 is the answer to that whole "how do you share modules" [20:54] pekim: wilken: re connect-auth - It should be under your control in your auth strategy - see https://github.com/ciaranj/connect-auth/wiki/creating-a-form-based-strategy for an example of a custom strategy. I had to read it about three time,s and play around a lot with my own implementation, before I even started to understand. The API isn't very well documented. [20:54] pyrotechnick: coffee-eval: 'hello noders' [20:54] coffee: "hello noders" [20:54] isaacs: coffee-eval: i: "like javascript better" [20:54] coffee: {"i":"like javascript better"} [20:54] apipkin: just did nave install 0.2.6 and it says it has finished, but node -v returns v0.2.5 [20:54] tswicegood: isaacs: any plans for nave to support installing from github? [20:55] pyrotechnick: coffee-eval: 'that is fine isaacs, there is a place for both of us within the node community, we do not judge you, you should not judge us' [20:55] coffee: "that is fine isaacs, there is a place for both of us within the node community, we do not judge you, you should not judge us" [20:55] isaacs: tswicegood: i think there's some thing like that... [20:55] pekim: apipkin: nave use 0.2.6 [20:55] gf3 has joined the channel [20:55] isaacs: oh, no wait [20:55] apipkin: \o/ [20:55] wilken: pekim: hehe no.. i have my own strategy that works, but i want to be able to log in using a rest api as well.. for now i just manually set the cookie in the rest api. it is the picked up by connect-auth, so my pages can be accessed.. and i agree, its not very lucid (ive read throug the link three times as well) [20:55] apipkin: thanks guys :) now to figure out what i want to do with this thing [20:55] tswicegood: isaacs: is it called `git fetch && configure && make install`? :-) [20:56] isaacs: tswicegood: haha, yeah [20:56] isaacs: exactly [20:56] tswicegood: heh [20:56] apipkin: oh. is there a "best" db to use with node? [20:56] isaacs: tswicegood: nono, i mean, it'd be nice to be able to say "nave use-git ry/master" and then have it in asubshell [20:56] SubStack: ACTION drinks coffee [20:56] tswicegood: I was just tracking down a bug to figure out which version was in it and thinking "ya know, I could write a shell script that'd let me just do `node-version ` and have it compile (if needed) and launch [20:56] isaacs: tswicegood: and then rather than fetching a tarball, it'd do a git checkout [20:57] freeformz has joined the channel [20:57] tswicegood: isaacs: yup - exactly what I'm thinking [20:57] wilken: join #android [20:57] wilken: oops [20:57] tswicegood: isaacs: that + hub if there's a / in the commit'ish value and you'd be set [20:58] pekim: wilken: Sounds like you're ahead of me in understanding connect-auth. [20:58] isaacs: tswicegood: yeah, then it could also hook into all the other nave goodies, like "nave use ry/master something.js [20:58] wilken: pekim: well ask away, if you have questions :-D [20:59] tswicegood: isaacs: looking at the nave.sh, looks like nave_fetch just needs to be able to create a repo somewhere then do a git archive to get the repo at a given commit into the correct directory [20:59] pekim: wilken: I think that I've just about beaten it in to submission now. It works well enough for me, for now. [21:00] wilken: pekim: cool [21:00] wilken: pekim: im approximately at the same point [21:00] tswicegood: isaacs: only tricky part is determining when `master` isn't still the same, though I guess you could just go for the scorched earth approach (i.e., always re-archive) [21:03] tswicegood: isaacs: would you do `nave use-git ry/master` or `nave use git:ry/master`? [21:04] isaacs: tswicegood: not sure [21:05] pdcawley: ACTION swears vigorously as a process dies with console.log undrained so no way to work out what's failing. [21:05] isaacs: tswicegood: i'd prefer use-git [21:05] isaacs: tswicegood: just so it's a different command, since i use nave a few places where i don't have git [21:07] robotarmy has joined the channel [21:07] isaacs: tswicegood: what about "nave git ry/master"? [21:08] isaacs: or "nave gh ry/master" [21:08] tswicegood: isaacs: that could work too -- looking at the code it appears that the only change needs to be in nave_fetch, which could just parse the version [21:08] tswicegood: that's where my "git:/" idea came from [21:09] isaacs: yeah [21:09] isaacs: it's not a huge program, really [21:09] isaacs: i just worry about some of the things in the api that assume X.Y.Z versioning [21:09] isaacs: like ls and stuff [21:09] cafesofie has joined the channel [21:10] benburkert has joined the channel [21:10] isaacs: tswicegood: also, i'm intended to get back to finish up that "named env" thing soon. if you feel like taking a look at that, feel free. [21:10] SubStack: lots of coffee-related nicks today [21:14] pyrotechnick: coffee-eval: 'yay' [21:14] coffee: "yay" [21:14] apipkin has left the channel [21:15] ttpva has joined the channel [21:16] fmeyer has joined the channel [21:17] fmeyer has joined the channel [21:17] tilgovi has joined the channel [21:18] bingomanatee_: Its "Mr. Coffee"! [21:18] pyrotechnick: coffee: 'sure is' [21:18] coffee: 'sure is'; [21:20] aurynn: does npm have a way to read a package.json and just resolve the deps, not "install" a given package? [21:20] isaacs: aurynn: npm bundle [21:20] isaacs: aurynn: that'll install them to ./node_modules [21:20] isaacs: aurynn: i have a patch sitting in my queue from micheil to add npm install-deps [21:20] isaacs: just haven't gotten to it yet [21:21] aurynn: Woot. [21:21] isaacs: aurynn: you know, you can also just do `npm install` and then `npm rm whatever` [21:21] isaacs: aurynn: or `npm link` which adds almost nothing to your system [21:21] aurynn: That also works. [21:21] hornairs has joined the channel [21:22] pyrotechnick: npm link is the bomb [21:22] isaacs: pyrotechnick: yes, it is like a bomb in many ways, unfortunately. [21:22] isaacs: ;) [21:22] aurynn: hehe [21:24] SubStack: that npm link, breakin' my deps... [21:24] pyrotechnick: that's why you just roll on the edge [21:24] pyrotechnick: and fix the breaks [21:24] pyrotechnick: sure it may take a while longer but its 1000x awesomer [21:24] SubStack: ACTION assembles a rag-tag team to defuse the situation [21:25] bingomanatee_: <-- specializes in explosives [21:25] pyrotechnick: coffee: class named_function [21:25] coffee: var named_function; [21:25] coffee: named_function = (function() { [21:25] coffee: function named_function() {} [21:25] coffee: return named_function; [21:25] coffee: })(); [21:25] bingomanatee_: er... setting them off anyway. [21:27] aurynn: What does thta do? I've seen that pattern a bit [21:27] SubStack: aurynn: it's a trick for closing over definitions in function scope [21:28] aurynn: ? [21:28] aurynn: ACTION is critted by the dub [21:28] aurynn: dumb [21:28] aurynn: (my own dumb) [21:28] aurynn: ((not yours)) [21:28] SubStack: closures! http://en.wikipedia.org/wiki/Closure_(computer_programming) [21:28] isaacs: SubStack: If you have a problem, and no one else can help, and you can find them, maybe you can hire: the Node Team [21:29] pyrotechnick: lol [21:29] SubStack: fuck yes [21:29] hornairs: anyone know how to synchronously require a script in the browser? [21:29] pyrotechnick: i pitty the java fool [21:29] pyrotechnick: hornairs: yes [21:30] pyrotechnick: let me dig it up [21:30] pyrotechnick: my comrade wrote it a while back [21:30] hornairs: pyrotechnick thanks [21:30] aurynn: ah hah [21:30] pyrotechnick: https://github.com/DaNCeR/requisition [21:31] pyrotechnick: hornairs: https://github.com/DaNCeR/requisition/blob/master/lib/require.js#L81 [21:31] pyrotechnick: you may also want to check out github.com/feisty/requisition which is a new version i wrote [21:31] hornairs: everything is wonderful! [21:31] hornairs: pyrotechnick thanks a bunch. [21:32] pyrotechnick: it's synchronous too but it uses a packed library [21:32] pyrotechnick: so you run `requisition` in your project and it builds a library.js which the client-side loader uses [21:32] pyrotechnick: it only works with coffee ATM but it wouldnt take much hacking [21:33] SubStack: it could use an example usage all up in that readme [21:33] SubStack: sounds neat from what you've described, but it's not clear how to start [21:33] pyrotechnick: err [21:33] pyrotechnick: did you even read the readme [21:33] pyrotechnick: oh maybe you went to the first one [21:33] pyrotechnick: goto the second one [21:33] themiddleman has joined the channel [21:33] pyrotechnick: yeah [21:34] pyrotechnick: i just got sick and tired of the state of commonjs requiring on the browser [21:34] pyrotechnick: its such a simple concept and yet people manage to turn it into a 10000 line system [21:35] pyrotechnick: please watch it if you're interested [21:35] pyrotechnick: even if you dont use it [21:35] pyrotechnick: because i'll be working on the most watched projects [21:35] pyrotechnick: if it gets to like 10 watchers ill make it work with js [21:35] SubStack: ah I see from the second [21:35] pyrotechnick: yeah [21:36] pyrotechnick: and if there's anything you'd change open an issue [21:36] SubStack: I wrote something like that a while back but the synchronous loading would get killed if the dependency depth got too deep [21:36] pyrotechnick: we do the deps at pack time [21:36] pyrotechnick: we thought about that [21:37] pyrotechnick: but it blocks the page too long [21:37] pyrotechnick: this seemed like a nice trade-off [21:37] MattDiPasquale has joined the channel [21:38] sstephenson: we have a similar thing: https://github.com/sstephenson/stitch [21:38] SubStack: another handy way to do it might be to cat all the js files in a directory together and wrapped in functions [21:38] pyrotechnick: ahh thats cool sstephenson do you proxy it into your main app? [21:38] unomi has joined the channel [21:38] SubStack: on the node.js side of things [21:39] pyrotechnick: SubStack: that's what it does... [21:39] SubStack: ah sweet [21:39] sstephenson: pyrotechnick: we use the express server for development [21:39] pyrotechnick: yeah [21:39] AAA_awright_ has joined the channel [21:39] sstephenson: in production we write it to a file [21:39] pyrotechnick: check out umm [21:39] pyrotechnick: i guess its hard to see because theres no packed library in the repo [21:39] pyrotechnick: ill gist one [21:39] fangel has joined the channel [21:40] SubStack: sstephenson: package.createServer() seems a silly name if all it does is packing [21:40] pyrotechnick: its a server [21:40] pyrotechnick: for the packages [21:40] pyrotechnick: i like that idea [21:40] pyrotechnick: dancer did that too [21:40] SubStack: but app.get('/application.js', package.createServer()) [21:40] pyrotechnick: in his original requisition [21:41] pyrotechnick: its a connect submodule isnt it [21:41] sstephenson: SubStack: you can also package.compile(function(err, source) { fs.writeFileSync('...', source) }) [21:41] pyrotechnick: SubStack: https://gist.github.com/53c0b7dee489b32eec86 is github.com/feisty/math [21:41] samwierema has joined the channel [21:41] sstephenson: the server regenerates the source on each request [21:41] pyrotechnick: so it wraps modules in modules['./matrix3'] = function(require, module, exports) { [21:41] pietern has joined the channel [21:41] pyrotechnick: and it packs in a window.require = (function() { [21:42] dspree has joined the channel [21:42] pyrotechnick: SubStack: make sense? [21:42] pyrotechnick: ill add that to the readme [21:42] pyrotechnick: thanks for your feedback [21:42] proppy has joined the channel [21:43] proppy: isaacs: it is possible to install npm without 'make' ? [21:43] isaacs: proppy: yes. get the code, and do `node cli.js install npm` [21:44] SubStack: yeah makes sense [21:44] pyrotechnick: cool [21:44] proppy: isaacs: got it [21:45] jacoblyles has joined the channel [21:46] proppy: isaacs: is there an envvar for telling it to install in /usr/local instead of /usr ? [21:46] isaacs: proppy: node cli.js help json [21:46] isaacs: er, help config [21:46] proppy: isaacs: thanks [21:47] isaacs: proppy: all the info you want is in npm help config [21:47] isaacs: proppy: or you can read about it here: http://flurp.no.de/npm/0.2.13-3/config [21:47] proppy: isaacs: it needs permission to /usr/lib/node in order to execute node cli.js help config [21:48] proppy: isaacs: ok thanks [21:48] isaacs: proppy: hah, fail. that sucks. [21:48] isaacs: proppy: lazy lazy coder... sorry [21:49] proppy: node cli.js set root /usr/local [21:49] proppy: will do if I understand the doc you linked correctly [21:49] proppy: isaacs: thanks a lot for your help :) [21:49] isaacs: proppy: yeah, or you can just write the ~/.npmrc yourself [21:49] amerine has joined the channel [21:50] isaacs: proppy: also set binroot and manroot [21:50] proppy: yes, node cli.js set root /usr/local also need access to /usr/lib :) [21:50] isaacs: right [21:50] proppy: isaacs: thanks for the suggestion [21:52] piscisaureus has joined the channel [21:52] possibilities has joined the channel [21:52] pietern has joined the channel [21:53] lwille has joined the channel [21:53] proppy: isaacs: ahah I cannot node cli.js help either, snce I have no 'man' :) [21:53] isaacs: proppy: yikes!! [21:53] lwille: hi there! Does anybody know about a WebDAV/CalDAV implementation/library for node.js? [21:54] proppy: isaacs: but node cli.js install worked thanks [21:54] proppy: now I can play with node.js on chromium os yeah [21:54] proppy: \o/ [21:54] isaacs: proppy: yeah, you might wanna do this: echo usage = true >> ~/.npmrc [21:54] lwille: (CardDAV would also be nice) [21:54] isaacs: proppy: then you can at least get the usage lines by doing `npm help` [21:55] isaacs: proppy: also, npm -h always shows the options and args [21:55] proppy: isaacs: nice to know ~ [21:55] cheney has joined the channel [21:57] eml-mobile has joined the channel [21:58] proppy: isaacs: also I had to compile node for linux 32bit in a debian host, in order to get bootstraped, do you know if there is plan to ship linux 32bit binaries on npmjs.org ? [21:58] vborja has joined the channel [21:58] isaacs: proppy: not on npmjs.org, but i think there is for nodejs.org [21:58] proppy: isaacs: maybe the buildbot could be configured to provide access to the build result directory [21:58] isaacs: proppy: talk to ryah [21:58] isaacs: proppy: there are a few buildbots doing that [21:58] mikew3c has joined the channel [21:58] isaacs: i don't know how far along that effort is [21:59] proppy: ryah: is there plan to ship linux 32bit binaries on nodejs.org ? [21:59] proppy: I know http://buildbot.nodejs.org:8010/ :) [21:59] proppy: isaacs: I meant nodejs.org (not npm) sorry for the noise [21:59] isaacs: np :) [22:01] markwubben has joined the channel [22:02] hornairs has joined the channel [22:02] tg has joined the channel [22:03] muhqu has joined the channel [22:04] dthompson has joined the channel [22:06] beawesomeinstead has joined the channel [22:06] beawesomeinstead has joined the channel [22:07] gf3 has joined the channel [22:07] proppy: isaacs: is there a npmflag for package that are not pure js ? [22:07] isaacs: proppy: no [22:07] proppy: or for package that require external command / dependencies [22:07] isaacs: proppy: why do you ask? [22:08] proppy: isaacs: because I don't have a build system :( [22:08] isaacs: oh, right [22:08] proppy: maybe I could grep npm view output [22:08] isaacs: you're not on a computer, you're on a web browser, i forgot [22:08] isaacs: ;P [22:08] proppy: isaacs: :) [22:09] isaacs: no, there isn't. [22:09] isaacs: you could get most of the way there by sniffing for a "scripts" hash, but even then, npm does "node-waf configure build" if there's a wscript [22:10] proppy: yes for example npm view expresso | grep scripts | grep make [22:10] tg has joined the channel [22:10] proppy: isaacs: thanks for this informaton [22:11] isaacs: proppy: aha, when it adds the default node-waf thing, it does so prior to publishing, so you'l see it there [22:11] isaacs: proppy: npm view scripts != "", then you've got a problem [22:11] proppy: nice that npm view support sub querying [22:12] isaacs: yeah, that's handy [22:13] MikhX has joined the channel [22:14] pyrotechnick: can i ask you guys [22:14] pyrotechnick: for just a single sentence [22:14] pyrotechnick: 10 words [22:14] pyrotechnick: on why you use node [22:14] pyrotechnick: ours is [22:14] pyrotechnick: "We recognise the potential of a "wall-to-wall" JavaScript ecosystem" [22:14] pyrotechnick: id appreciate yours [22:14] pyrotechnick: and permission to put on our site [22:15] derren13 has joined the channel [22:16] strmpnk has joined the channel [22:16] ryah: proppy: i was thinking about distributing deb packages [22:17] ryah: proppy: but i think about doing many things... [22:17] shaver: preach it, brother [22:17] shaver: I have a little notebook now [22:17] proppy: ryah: there is already a maintainer for node.js in debian IIRC [22:17] shaver: I crossed two things off it yesterday [22:17] proppy: jeremy lal [22:17] ryah: proppy: yeah, i know [22:17] ryah: i just thought it'd be nice to not wait for debian [22:17] ryah: have my own apt repo [22:18] proppy: you can get upload to debian experimental or unstable pretty easily [22:18] proppy: just need a debian maintainer / developer to upload the package for you [22:19] proppy: ryah: I know that jetienne maintain a ppa for ubuntu [22:19] shaver: jerome? [22:19] proppy: I don't know if his work is based on jeremy thought [22:20] proppy: https://launchpad.net/~jerome-etienne/+archive/neoip [22:21] proppy: yes, last version on nodejs deb there is 0.2.5 [22:22] ryah: should just maintain the deb scripts in the node repo [22:22] proppy: so more recent that debian (0.2.2 exp, 0.2.0 unstable) [22:22] slaskis has joined the channel [22:23] proppy: ryah: and run debuild with the buildbot :) [22:24] proppy: ryah: is there a way to access to the build result of http://buildbot.nodejs.org:8010/ [22:24] proppy: by result I mean files ;0 [22:24] proppy: :) [22:25] ryah: no [22:25] ryah: would be good though [22:25] proppy: ryah: maybe the file stays on the slaves [22:26] proppy: it seems there is something for that in buildbot http://trac.buildbot.net/ticket/393 [22:27] ryah: i think it does [22:28] proppy: yes http://buildbot.net/buildbot/docs/latest/Transferring-Files.html [22:28] under_: proppy: can you pastie a list of steps to get node working on chromium os? [22:28] pyrotechnick: node on chromium? [22:28] pyrotechnick: wtf [22:28] pyrotechnick: isnt that like [22:28] pyrotechnick: not the idea [22:29] under_: maybe not google's idea [22:30] proppy: under_: just copy the binary to /usr/bin [22:30] pyrotechnick: ryah: are we allowed to use the logo on our consulting sites? [22:30] proppy: you have to get the binary compiled on another linux host [22:30] pyrotechnick: are we allowed to use the node logo on our consulting sites? [22:30] under_: yeah np [22:31] kolor has joined the channel [22:31] under_: proppy: been meaning to give it a try, cool to know it works [22:32] bingomanatee_: as in, why run v8 in an environment with a javascript interpreter built in? I can think of one reason - if you can run it on all major platforms then you'd have the SAME version of js on all 3 platforms. Plus, handy module loading. [22:32] sechrist has joined the channel [22:32] pyrotechnick: i dont think you're supposed to be augmenting the platform beyond what's possible in chrome, the browser itself [22:32] pyrotechnick: if you need something on the platform its supposed to be in chrome [22:33] pyrotechnick: you're not meant to be doing native networking or file i/o [22:33] pyrotechnick: theyre supposed to be services of chrome [22:33] pyrotechnick: anyway dont let me discourage you [22:33] pyrotechnick: i just things its a strange concept [22:33] bingomanatee_: I don't have a use case myself [22:33] pyrotechnick: maybe if you do it [22:34] pyrotechnick: it will convince google to ship node with it and expose it as services [22:34] under_: use case is fun [22:34] Alex3000 has joined the channel [22:34] bingomanatee_: It would make it a lot easier to write viruses. [22:34] under_: plus, i lik repl's [22:34] under_: they are my calculators [22:34] pyrotechnick: yeah we love repls [22:34] pyrotechnick: dont we bingo ;) [22:34] under_: choromium already has python, but im trying to learn node [22:36] gf3 has joined the channel [22:36] proppy: under_: http://pastie.org/1424283 [22:37] bingomanatee_: Well I do like the module model of node - might simplify client side stuff. But it would be a win to have Chromium provide it as a native service. [22:37] SubStack: ACTION can't figure out a nice way to do conditional classes in jade [22:37] Ond: http://www.youtube.com/watch?v=vajAu9OWXs0 [22:37] Ond: Don't make fun of me. [22:37] pyrotechnick: chromium has python wtf? [22:38] proppy: pyrotechnick: yes chromium os is a stripped gentoo distro :) [22:38] pyrotechnick: ohh [22:38] pyrotechnick: i thort u meant like [22:38] pyrotechnick: to script against the dom [22:39] pyrotechnick: is it gentoo really? [22:39] pyrotechnick: thats cool [22:39] pyrotechnick: we used to run gentoo [22:39] proppy: you can install .ebuild and stuff if you got them on the devserver [22:39] pyrotechnick: emerge is sweet [22:39] proppy: http://www.chromium.org/chromium-os/how-tos-and-troubleshooting/add-a-new-package [22:39] pyrotechnick: on the list. [22:40] meder has joined the channel [22:42] proppy: ryah: f.addStep(FileUpload(slavesrc="node",masterdest="~/public_html/node-latest")) could do the trick [22:43] proppy: maybe adding arch/slave as a directory [22:43] SubStack: oh hah I can just do (class=somevar) >_< [22:45] Ond: Goodness gracious [22:45] under__ has joined the channel [22:45] strmpnk has joined the channel [22:45] hornairs has joined the channel [22:45] dspree has joined the channel [22:45] c4milo1 has joined the channel [22:45] tapwater has joined the channel [22:45] arrty has joined the channel [22:45] Me1000 has joined the channel [22:45] jchris has joined the channel [22:45] jacobrelkin has joined the channel [22:45] beta_ has joined the channel [22:45] wilken has joined the channel [22:45] davidc_ has joined the channel [22:45] jpld has joined the channel [22:45] stepheneb has joined the channel [22:45] oal has joined the channel [22:45] qFox has joined the channel [22:45] adambeynon has joined the channel [22:45] JojoBoss has joined the channel [22:45] ben_alman has joined the channel [22:45] namelessnotion has joined the channel [22:45] omni5cience has joined the channel [22:45] yrashk has joined the channel [22:45] marlun has joined the channel [22:45] volve has joined the channel [22:45] kawaz_work has joined the channel [22:45] cainus has joined the channel [22:45] janne has joined the channel [22:45] mgc has joined the channel [22:45] joeshaw___ has joined the channel [22:45] zhesto has joined the channel [22:45] huh has joined the channel [22:45] siong1987_ has joined the channel [22:45] SvenDowideit has joined the channel [22:45] naneau has joined the channel [22:45] nefD has joined the channel [22:45] persson has joined the channel [22:45] tswicegood has joined the channel [22:45] nolan_d has joined the channel [22:45] matt_c has joined the channel [22:45] phiggins_ has joined the channel [22:45] Sembiance has joined the channel [22:45] case__ has joined the channel [22:45] ddollar` has joined the channel [22:45] sth_ has joined the channel [22:45] su_aska has joined the channel [22:45] mojombo has joined the channel [22:45] v8bot has joined the channel [22:45] inarru has joined the channel [22:45] ashb has joined the channel [22:45] wereHamster has joined the channel [22:45] kgf has joined the channel [22:45] __sri has joined the channel [22:45] jvolkman-work has joined the channel [22:46] kjeldahl has joined the channel [22:46] mriley has joined the channel [22:46] PyroPeter has joined the channel [22:46] cognominal has joined the channel [22:46] sstephenson has joined the channel [22:46] under__ has joined the channel [22:46] bruse has joined the channel [22:46] beawesomeinstead has joined the channel [22:46] piscisaureus has joined the channel [22:46] maushu has joined the channel [22:46] b_erb has joined the channel [22:46] aurynn has joined the channel [22:46] rwaldron has joined the channel [22:46] mfb has joined the channel [22:47] qFox: node doesnt utilize multiple cores, right? [22:47] qFox: i mean, no voodoo going on in the background or anything..? [22:47] sstephenson has joined the channel [22:47] under__ has joined the channel [22:48] xSmurf: qFox: not as far as I understand [22:48] qFox: ye ok, just checking [22:49] gkatsev: qFox: nope. But a lot of people run multiple instances of node and use a load balancer to mitigate requests to the various instances and thus get that. There are also webworker implementations available [22:49] qFox: ya [22:50] xSmurf: ACTION is trying to implement simple socks5 bytesream [22:50] xSmurf: sadly trying and not succeeding [22:50] ezmobius has joined the channel [22:50] jasperla_ has left the channel [22:50] ossareh has joined the channel [22:51] xSmurf: for one thing, I'm not sure how to sent the encoding value, cause it's mostly hex going through. If I don't set it I get the data as a buffer which seems perfect, but I can't see to write back as it spits out "Second argument should be a buffer" [22:53] Kami has joined the channel [22:53] isaacs: Whoa, this is crazy! args.Length() in my C++ module is showing 1606410888 instead of 2 when i call it with 2 args [22:54] shaver: is that a stack address? [22:54] Stephen has joined the channel [22:54] Roelven has joined the channel [22:55] pdcawley has joined the channel [22:55] isaacs: shaver: i have no idea [22:55] isaacs: shaver: it's very consistent [22:56] SubStack: did you pass in 1606410888 arguments? [22:56] isaacs: SubStack: Good question!! [22:56] isaacs: no. [22:57] modular has joined the channel [22:57] pyrotechnick has left the channel [22:57] shaver: my guess is something's uninitialized [22:57] isaacs: hm, i rebuilt node, and now it's saying 1606410856 [22:57] isaacs: yeah [22:57] Kami_ has joined the channel [22:57] shaver: no compilation warnings? [22:57] isaacs: but like, something in v8? that seems odd. [22:57] shaver: valgrind it [22:57] isaacs: i'm just reading args.Length() [22:57] shaver: nah, you have a handle somewhere that's not right, or similar [22:57] xSmurf: oh I wasn't aware of Buffer! [22:57] shaver: or something else is corrupting the heap, I guess [22:57] xSmurf: that helps :P [22:57] lstoll has joined the channel [22:58] SubStack: I hate C [22:58] MattDiPasquale has joined the channel [22:58] shajith has joined the channel [22:58] Naked has joined the channel [22:58] SubStack: so hard to write good code in it [22:58] rubydiamond has joined the channel [22:58] isaacs: static Handle ArgsLength (const Arguments& args) { [22:58] isaacs: return Number::New(args.Length()); [22:58] isaacs: } [22:58] isaacs: shaver^ [22:58] tladuke has joined the channel [22:58] shaver: hmm [22:59] isaacs: not saying it isn't something unintialized, but it's definitely not in my code. [22:59] shachaf has joined the channel [22:59] jesusabdullah has joined the channel [22:59] isaacs: aha! now it's working. wtf. [22:59] matiasarriolas has joined the channel [22:59] ceej_ has joined the channel [23:00] SubStack: isaacs: maybe you didn't want it enough before [23:00] stephank has joined the channel [23:00] mif86 has joined the channel [23:00] pyrotechnick has joined the channel [23:01] webr3 has joined the channel [23:01] shaver: incomplete rebuild? [23:01] almaisan-away has joined the channel [23:01] gf3 has joined the channel [23:01] jakob has joined the channel [23:01] gf3 has joined the channel [23:02] hobodave has joined the channel [23:02] isaacs: i dunno [23:02] isaacs: jeez, that was weird. [23:02] lwille has joined the channel [23:02] isaacs: in the end, my reduction started working randomly, so i reverted back to the broken build, and that works too. [23:02] isaacs: who divided by zero!? [23:03] shaver: if I have, PERHAPS, fucked up the permissions on a git clone [23:03] broofa has joined the channel [23:03] shaver: how do I revert to the permissions from the master? [23:03] isaacs: shaver: git checkout [23:03] Alex3000 has joined the channel [23:03] bruse has joined the channel [23:03] beawesomeinstead has joined the channel [23:03] piscisaureus has joined the channel [23:03] maushu has joined the channel [23:03] b_erb has joined the channel [23:03] aurynn has joined the channel [23:03] rwaldron has joined the channel [23:03] mfb has joined the channel [23:03] isaacs: shaver: git tracks mode as well as contents. [23:03] shaver: I have changed two files, will they survive? [23:03] shaver: I will rtfm [23:03] shaver: thank you! [23:03] isaacs: shaver: git checkout master -- file/to/revert.js [23:04] ezmobius has joined the channel [23:04] proppy: isaacs: maybe you could try running valgrind, to figure if there is any things wierd going on with memoy [23:04] proppy: +r [23:05] muk_mb has joined the channel [23:05] isaacs: proppy: well, since i can't reproduce any more, i'm going to blame, in this order: python, node-waf, Steve Jobs, and Communists. [23:05] isaacs: at least 2 are known to be Apocalypse Horsemen [23:06] seangrove has joined the channel [23:07] proppy: isaacs: as long as you don't blame your code :) [23:07] mraleph: isaacs: regading strange values to args.Length() --- it can happen if v8 generated incorrect code for call to your routine. [23:07] mraleph: isaacs: e.g. I saw that once when incorrect calling convention was used on Windows + MINGW. [23:08] proppy: isaacs: valgrind will print things if the memory is written somewhere it should not, even thought the program works as expected [23:10] mraleph: i doubt that valgrind will catch it [23:10] pHcF has joined the channel [23:10] mraleph: better to put break point into callback and then look at stack [23:10] darthdeus has joined the channel [23:10] ezmobius has joined the channel [23:11] hellp has joined the channel [23:11] davidwalsh has joined the channel [23:11] proppy: mraleph: you're surely right, I know nothing about v8 internals/debugging :) [23:12] Ls_Away has joined the channel [23:12] pHcF: is there any way to detect when a express request is done? [23:12] sechrist has joined the channel [23:13] webben has joined the channel [23:14] bingomanatee_: client side or server side? [23:20] pHcF: bingomanatee_: server [23:27] tim_smart has joined the channel [23:27] pHcF: NTET SPLIT :OOOOOOOOO [23:27] pyrotechnick: wtf is that [23:27] pyrotechnick: im still here ^w^ [23:27] pHcF: netsplit [23:27] pHcF: lol [23:28] pyrotechnick: wtf is that [23:28] pHcF: lololo [23:28] pyrotechnick: and how come im still here [23:28] pHcF: the network was splitted [23:28] pyrotechnick: wats that mean [23:28] pHcF: some people are not in that room anymore [23:28] pyrotechnick: its good it got all the afkers out [23:28] AAA_awright_ has joined the channel [23:28] pHcF: bingomanatee_: any idea? [23:28] mikeal has joined the channel [23:29] Druid_ has joined the channel [23:29] guybrush has joined the channel [23:29] coffeecup has joined the channel [23:29] Pilate has joined the channel [23:29] davidwalsh has joined the channel [23:29] mif86 has joined the channel [23:29] stephank has joined the channel [23:29] modular has joined the channel [23:29] MrNibbles has joined the channel [23:29] mrtrosen has joined the channel [23:29] Silks has joined the channel [23:29] walkah has joined the channel [23:29] tmzt has joined the channel [23:29] ollie has joined the channel [23:29] mape has joined the channel [23:29] naturalethic has joined the channel [23:29] Sami_ZzZ has joined the channel [23:29] skm has joined the channel [23:29] jimt_ has joined the channel [23:29] blueadept has joined the channel [23:29] stagas has joined the channel [23:29] boaz has joined the channel [23:29] ttpva has joined the channel [23:29] markwubben has joined the channel [23:29] strmpnk has joined the channel [23:29] hornairs has joined the channel [23:29] dspree has joined the channel [23:29] c4milo1 has joined the channel [23:29] tapwater has joined the channel [23:29] arrty has joined the channel [23:29] Me1000 has joined the channel [23:29] jchris has joined the channel [23:29] jacobrelkin has joined the channel [23:29] beta_ has joined the channel [23:29] davidc_ has joined the channel [23:29] jpld has joined the channel [23:29] stepheneb has joined the channel [23:29] oal has joined the channel [23:29] adambeynon has joined the channel [23:29] JojoBoss has joined the channel [23:29] ben_alman has joined the channel [23:29] namelessnotion has joined the channel [23:29] omni5cience has joined the channel [23:29] yrashk has joined the channel [23:29] marlun has joined the channel [23:29] volve has joined the channel [23:29] kawaz_work has joined the channel [23:29] cainus has joined the channel [23:29] janne has joined the channel [23:29] mgc has joined the channel [23:29] joeshaw___ has joined the channel [23:29] zhesto has joined the channel [23:29] huh has joined the channel [23:29] siong1987_ has joined the channel [23:29] SvenDowideit has joined the channel [23:29] naneau has joined the channel [23:29] nefD has joined the channel [23:29] persson has joined the channel [23:29] tswicegood has joined the channel [23:29] nolan_d has joined the channel [23:29] matt_c has joined the channel [23:29] phiggins_ has joined the channel [23:29] Sembiance has joined the channel [23:29] case__ has joined the channel [23:29] ddollar` has joined the channel [23:29] sth_ has joined the channel [23:29] su_aska has joined the channel [23:29] mojombo has joined the channel [23:29] v8bot has joined the channel [23:29] inarru has joined the channel [23:29] ashb has joined the channel [23:29] wereHamster has joined the channel [23:29] kgf has joined the channel [23:29] __sri has joined the channel [23:29] jvolkman-work has joined the channel [23:29] Aria has joined the channel [23:29] under___ has joined the channel [23:29] sstephenson_ has joined the channel [23:29] mrkurt has joined the channel [23:29] jchris1 has joined the channel [23:30] polotek has joined the channel [23:31] T-Co has joined the channel [23:33] bingomanatee_: well the response object is a stream - can you do a watch on('end')? I'm not sure 100% - TJ would be the one to ask. [23:35] isaacs has joined the channel [23:35] pyrotechnick: welcome back [23:35] pyrotechnick: i was safe in australia [23:35] polotek: Yes you can watch 'end' on response [23:36] bingomanatee_: <-- guesses good [23:36] Druide_ has joined the channel [23:37] pHcF: bingomanatee_: yeah, it can be a good idea [23:37] bingomanatee_: btw I take it a new response is created for every request? [23:38] pHcF: but i mean, to watch for all the requests [23:38] nym has joined the channel [23:38] nym: hey [23:38] pHcF: yeah, the response isn't the same [23:38] nym: i'm jumping back into node dev, is it better to go with latest or stable? [23:38] pHcF: stable [23:39] pHcF: (i guess) [23:39] bingomanatee_: I think the names kind of say it all. [23:39] bingomanatee_: do you like stability? I do. [23:40] nym: well i just did an install of pinax, and the stable version is so outdated, the latest is actually preferable [23:41] nym: thank you for the feedback [23:43] AAA_awright has joined the channel [23:45] jakehow has joined the channel [23:45] proppy: gn [23:52] SubStack: ACTION hacks away at payment apis [23:53] pkrumins: yeah, anyone has had experience at paypal's api? [23:53] SubStack: trying to find that node module [23:53] SubStack: paynode, looks like [23:53] pkrumins: paynode \o/ [23:53] nym: is socket.io still the best way to do websockets with node? [23:54] pkrumins: it is [23:54] SubStack: nym: it's pretty great, yep [23:55] SubStack: also if you like being able to throw callbacks and jsonified objects around check out dnode, which I wrote [23:55] SubStack: it has an adapter for socket.io [23:57] bingomanatee has joined the channel