[00:01] charlesjolley- has joined the channel [00:01] _announcer: Twitter: "node.js looks sufficiently cool that I kind of want to solve some actual problem with it." -- Brennen Bearnes. http://twitter.com/brennen/status/18231477515 [00:04] efphe: good night [00:14] _announcer: Twitter: "[del] [from mrphoebs] Writing a Redis client library for Node.js / Blog / Mishoo's homepage: http://url4.eu/5dAKb" -- sldfjd ldajds. http://twitter.com/sldfjd/status/18232113283 [00:15] kersny has joined the channel [00:19] marshall_law_ has joined the channel [00:22] beelzabub1: is there a way to convert a lower-case string to an upper-case one? [00:22] beelzabub1: or vice-versa? [00:22] beelzabub1: & by string i mean v8 string [00:24] manveru: beelzabub1: in C you mean? [00:24] beelzabub1: yup [00:24] manveru: oh, no idea about that... [00:25] beelzabub1: how about in JS? [00:25] manveru: js has toLowerCase and toLocalLowerCase [00:25] manveru: you might be able to call them in the v8 api somehow [00:26] manveru: regarding C... does anyone know a FFI library for node? [00:30] _announcer: Twitter: "Lots of cool app made using node.js and watched some screencasts, but still do not understand what is the Killer Feature. Opinions? = D" [pt] -- juarezpaf. http://twitter.com/juarezpaf/status/18232902765 [00:30] davidwalsh has joined the channel [00:42] jsilver has joined the channel [00:42] _announcer: Twitter: "Your way if you can handle standard input or Node.JS, but I see" [ja] -- KOBA789. http://twitter.com/koba789/status/18233523830 [00:42] marshall_law has joined the channel [00:51] sat: manveru: What is FFI? [00:52] manveru: foreign function interface [00:52] mscdex: fire fox interface [00:52] mscdex: :-D [00:52] sat: k [00:52] manveru: allows you to call C functions dynamically [00:52] sat: not like addons? [00:52] manveru: no, like normal js [00:53] sat: sounds interesting [00:53] manveru: the only thing you need to compile is the ffi library itself [00:53] sat: So you can effectively do dlopen from js? [00:53] manveru: exactly [00:53] sat: neat [00:54] manveru: most lisps, smalltalk, and ruby have it... [00:54] mscdex: manveru: there is an ffi library for node [00:54] manveru: mscdex: where? [00:54] marshall_law has joined the channel [00:54] manveru: google didn't really help me :) [00:54] mscdex: somewhere on github.... can't recall the name off the top of my head [00:55] manveru: with JVM based javascripts you can use JNI, i think [00:55] mscdex: manveru: http://github.com/rbranson/node-ffi [00:56] mscdex: it hasn't been updated in a long time though as you can see [00:57] manveru: might still work :) [00:58] mscdex: you'll need all the luck you can get hah [00:59] dnolen has joined the channel [01:01] manveru: yeah... [01:02] sat: What the main practical benefits of FFI in node? Calling existing shared libs? [01:04] mscdex: more or less [01:04] mscdex: without having to create a binding [01:05] manveru: makes for easier installation and no need to recompile if the targeted library changes [01:05] sat: ahh. of course. [01:05] mscdex: but you can run into problems if you don't know what you are executing is doing behind the scenes (accessing disk or otherwise blocking in some way) [01:05] manveru: it's a bit slower though [01:05] sat: the not having to compile, and the ability to use yum/apt-get/etc to get lib code. [01:06] manveru: yeah... [01:06] manveru: i think every language should ship with ffi support :) [01:07] manveru: that also makes it easier for different language implementations to use the same libraries [01:08] manveru: for example in ruby, you can make a binding for libxml that works on the JVM, macruby (objective-c), MRI (vanilla c), and rbx (c++) [01:09] sat: Yeah. I can see how this a good thing.... One more thing I should know about :) [01:09] manveru: http://sourceware.org/libffi/ [01:09] sat: my list of things to learn about is growing faster than i can learn things :P [01:10] creationix has joined the channel [01:10] manveru: oh, seems like spidermonkey has one builtin [01:11] manveru: well, seems like building node-ffi fails... doesn't find my ffi.h [01:15] phiggins has joined the channel [01:22] _announcer: Twitter: "#omg $ sudo port install nodejs ---> Computing dependencies for openssl ---> Fetching openssl" -- ujm. http://twitter.com/ujm/status/18235589670 [01:34] sechrist has joined the channel [01:35] dgathright_ has joined the channel [01:43] jbr has joined the channel [01:54] aheckmann has joined the channel [02:00] cfq has joined the channel [02:01] softdrink has joined the channel [02:07] benburkert has joined the channel [02:27] Tim_Smart has joined the channel [02:27] beelzabub1: hey - i'm getting a test failure - can anyone help me figure it out? [02:27] beelzabub1: http://pastebin.com/TfJ0LrR1 [02:28] beelzabub1: undefined_reference_in_new_context.js [02:28] sh1mmer has joined the channel [02:28] beelzabub1: this is using the stock nodejs (b1901cd5a5bd647cec9346f838da36e311d38500) [02:28] sh1mmer: yo [02:28] sh1mmer: question, can I manipulate Buffers by bits not bytes? [02:28] sh1mmer: or do I have to pull bytes and then manipulate those? [02:28] beelzabub1: probably the latter [02:29] sat: i think bytes is as granular as you can get [02:29] beelzabub1: it's not any different than what would happen in c anyways [02:29] sat: yeah [02:29] sh1mmer: fair enough [02:29] _announcer: Twitter: "finally macports is not building nodejs" -- ujm. http://twitter.com/ujm/status/18239295728 [02:29] beelzabub1: although, it's possible to modify bits within a word in C [02:29] SamuraiJack has joined the channel [02:29] beelzabub1: i don't think the buffer api exposes that (but i haven't looked) [02:31] mikeal1 has joined the channel [02:33] sat: beelzabub1: is that bug in the tests? [02:33] sat: re: undefined ref [02:33] beelzabub1: i'm not sure [02:33] beelzabub1: the actual javascript does it on purposes (accesses an undefined [02:33] beelzabub1: but it's unclear how that test is supposed to pass [02:33] sat: probably a bug then. [02:33] beelzabub1: i'm not an expert in the test framework [02:34] sat: nor am i [02:37] sechrist has joined the channel [02:37] beelzabub1: do you know what the numbers mean? [02:37] sat: numbers? [02:37] stagas has joined the channel [02:38] beelzabub1: [00:15]% 56|+ 57|- 0]: [02:38] beelzabub1: oh [02:38] beelzabub1: ok - not enough spaces [02:38] beelzabub1: second # is %, third is passing tests, last is failing [02:38] sat: yeah. seems right [02:39] mikeal1 has joined the channel [02:40] beelzabub1: yeah - that test case keeps failing & i have no idea how to get it to pass without removing it [02:41] sat: I wouldn't worry about it too much. [02:41] sat: I have seen tests fail many times with verious node versions, but it rarely manifests as an actual problem [02:41] beelzabub1: ahh - figured it out [02:41] beelzabub1: there's an .out file [02:42] beelzabub1: it compares the output between the two [02:44] beelzabub1: fixed it [02:44] beelzabub1: :) [02:45] beelzabub1: diff --git a/test/message/undefined_reference_in_new_context.out b/test/message/undefined_reference_in_new_context.out [02:45] beelzabub1: index 43d910d..56e7232 100644 [02:45] beelzabub1: --- a/test/message/undefined_reference_in_new_context.out [02:45] beelzabub1: +++ b/test/message/undefined_reference_in_new_context.out [02:45] beelzabub1: @@ -11,4 +11,4 @@ ReferenceError: foo is not defined [02:45] beelzabub1: at Module._loadScriptSync (module:*) [02:45] beelzabub1: at Module.loadSync (module:*) [02:45] beelzabub1: at Object.runMain (module:*) [02:45] beelzabub1: - at node.js:*242:10 [02:45] beelzabub1: + at node.js:* [02:47] sat: cool [02:50] charlesjolley- has joined the channel [02:51] marshall_law has joined the channel [02:51] SubStack: ping isaacs [02:51] SubStack: broken npm packages -_- [02:51] isaacs: pong [02:51] isaacs: which packages? [02:52] SubStack: dnode at least [02:52] isaacs: ACTION is curious about ctime/mtime, mostly [02:52] SubStack: probably traverse and node-rfb too [02:52] isaacs: SubStack: ok, just a sec, lemme investigate [02:52] SubStack: the metadata got uploaded fine but the tarballs didn't seemingly [02:52] isaacs: hm. indeed. [02:52] isaacs: SubStack: what version of npm you using? can you gist the log output? [02:52] SubStack: do I need to increment the version in order to upload again? [02:52] isaacs: SubStack: npm unpublish dnode 0.0.1 [02:53] isaacs: SubStack: and then do it again [02:53] SubStack: tried that [02:53] SubStack: one sec, I'll do it again and gist it [02:53] isaacs: ah, it might be failing because it tries to delete the tarball first [02:53] saikat has joined the channel [02:54] SubStack: the unpublish succeeded that time [02:54] SubStack: before I didn't have the 0.0.1 [02:54] SubStack: npm upload Not done yet! If it hangs/quits now, it didn't work. [02:54] SubStack: it is hanging -_- [02:54] SubStack: not ok [02:55] saikat: am I right in saying that Node client libraries shouldn't, in general, use exceptions to handle errors? [02:56] saikat: but should instead send an error back to the callback as an argument? [02:56] saikat: that seems to be the pattern used in most cases [02:57] SubStack: isaacs: http://gist.github.com/471234 [02:57] Aria: Yeah. It's async that way [02:57] isaacs: SubStack: can you try this: npm --registry http://registry.npmjs.org/ publish [02:57] isaacs: (the "." is no longer necessary) [02:58] SubStack: roger [02:58] isaacs: SubStack: that's the https problem. [02:58] SubStack: ok [02:58] SubStack: ah! [02:58] isaacs: tomorrow i'm going to track down that annoying bug if it kills me [02:58] SubStack: isaacs++ [02:58] isaacs: or i'm gonna put it off till next weekend. either one. [02:59] SubStack: ACTION $ npm config set registry http://registry.npmjs.org/ [03:00] isaacs: SubStack: that'd work, too [03:00] isaacs: SubStack: but remember to change it back, if you value your password. [03:00] isaacs: SubStack: i'll send out an announcement when this is fixed, though, so you probably needn't worry [03:01] SubStack: isaacs: noted [03:01] SubStack: dnode looks fine now, but I can't seem to unpublish js-traverse so I can republish it [03:01] SubStack: s/js-// [03:03] stagas has joined the channel [03:05] joshbuddy has joined the channel [03:06] SubStack: hmm actually looks like traverse has a tarball [03:07] donspaulding has joined the channel [03:10] phiggins has joined the channel [03:22] isaacs: SubStack: yeah, there are some race conditions where npm might say "not ok" when it actually was ok [03:22] isaacs: SubStack: i have it err on the side of saying it DIDNT work. [03:22] SubStack: I see. [03:22] isaacs: SubStack: i got tired of bug reports saying "Everything worked fine, but it's not in the registry. Your registry is broken!" [03:23] isaacs: when in fact, the process aborted abnormally with no error. [03:23] isaacs: i think this is definitely a node bug, but i haven't had a chance to track it down. [03:23] isaacs: it's gotten more pervasive, which means it's a bigger PITA for more people, but also means that i can actually reproduce it regularly [03:26] _announcer: Twitter: "Removing the file extensions from require() was a bad idea. #commonjs #nodejs" -- Ⓘⓢⓐⓐⓒ. http://twitter.com/izs/status/18242616978 [03:27] saikat: i was wondering about that - why was that decision made? [03:27] saikat: just because less verbose? [03:28] Aria: I'm not sure. [03:28] Alystair has joined the channel [03:30] zaach: Modules may not be js files [03:31] Aria: That actually seems more a reason to leave extensions in. [03:31] zaach: They may not be files at all [03:31] Aria: (or do a ruby-like search) [03:31] Aria: Hehe. And if they're not files, treat as an opaque ID, with or without the .js [03:36] zaach: meh, perhaps they wen't with opaque ID always to KISS [03:36] zaach: *went [03:37] sat: Why would a module not be a file? [03:37] Aria: Unfortunately, it makes quite an abstraction. [03:37] Aria: sat: because it's an http resource, something in a .jar, or something generated. [03:38] sat: k [03:40] Aria: (none of those currently apply to node) [03:40] Aria: (but this is a commonjs spec) [03:40] zaach: couchdb is another example [03:42] pkrumins: how does npm know what to put in tarball? [03:42] Aria: package.json? [03:42] pkrumins: but i didn't specify any specific files there... [03:45] SubStack: er, you should [03:45] SubStack: not sure how it works with compiled modules though [03:47] stagas has joined the channel [03:49] isaacs: pkrumins: it puts everything in the tarball. [03:49] pkrumins: everything in module's dir? [03:49] isaacs: pkrumins: except what you specifically exclude with .npmignore [03:49] isaacs: pkrumins: yes [03:50] pkrumins: gonna create .npmignore [03:50] isaacs: pkrumins: you should provide a "main" module in package.json, though, if you want something to be done when you do require(packageName) [03:50] pkrumins: just added it, yes [03:51] pkrumins: i am trying to get this published: http://github.com/pkrumins/node-base64/blob/master/package.json [03:52] pkrumins: ok, trying again [03:52] isaacs: pkrumins: add "--registry http://registry.npmjs.org/" to the command if it fails. [03:52] pkrumins: kk [03:53] isaacs: pkrumins: als, you can just do "node-waf configure build" [03:53] pkrumins: in "install"? [03:54] pkrumins: ACTION does that [03:54] pkrumins: oh, it asks me to authenticate again now [03:54] pkrumins: but i just added a user [03:56] isaacs: pkrumins: that's odd [03:56] pkrumins: i ran adduser again [03:56] isaacs: pkrumins: you using the latest npm? if so, you can just to npm adduser again [03:56] pkrumins: and now publish works. [03:56] isaacs: great. [03:56] pkrumins: let's see. [03:56] pkrumins: it failed the first time [03:56] pkrumins: so i unpublished [03:56] isaacs: man, this bug sucks so hard. [03:56] pkrumins: yeah [03:57] pkrumins: ding it npm not ok [03:57] pkrumins: trying with --registry [03:58] isaacs: pkrumins: npm config set registry http://registry.npmjs.org/ [03:58] _announcer: Twitter: "Node.js & mongodb kind of evening." -- Christopher Burnett. http://twitter.com/twoism/status/18244410404 [03:58] pkrumins: npm ok [03:58] isaacs: sweet [03:59] pkrumins: now running publish again? [03:59] pkrumins: or should i unpublish fst? [03:59] isaacs: pkrumins: what's the package? [03:59] pkrumins: base64 [03:59] isaacs: oh, righ [03:59] pkrumins: tried unpublish, got: npm ! Error: not_found missing [03:59] pkrumins: trying publish one more time [04:00] pkrumins: bam: npm ! Error: forbidden cannot modify existing version [04:00] pkrumins: any tips on this? [04:00] isaacs: pkrumins: unpublish didn't work [04:00] isaacs: ? [04:00] pkrumins: nope [04:00] isaacs: pkrumins: npm unpublish base64 v0.0.1 [04:00] pkrumins: it failed with the error above. not_found missing. [04:01] keyvan has joined the channel [04:01] pkrumins: kk [04:01] SubStack: v1.0.0 [04:01] pkrumins: good catch :) [04:01] pkrumins: npm ok! [04:01] pkrumins: :D [04:01] isaacs: pkrumins: should probably not have the "v" on the version like that [04:01] pkrumins: now publishing one more time [04:01] isaacs: even though npm doesn't care about it [04:01] pkrumins: isaacs: thought you had to absolutely have "v" [04:01] isaacs: technically it's not "correct" [04:01] isaacs: pkrumins: no [04:01] pkrumins: isaacs: help said so and http://semver.org/ also [04:01] isaacs: pkrumins: the v is for tags in source control [04:02] pkrumins: -_- [04:02] pkrumins: not a problem [04:02] Aria: Yeah, clarifying that would be nice. [04:02] pkrumins: modifying [04:02] [[zzz]] has joined the channel [04:02] pkrumins: yeah, can you clarify that [04:02] markwubben has joined the channel [04:02] isaacs: pkrumins: the help doc says that it CAN have a v. [04:02] isaacs: pkrumins: and that npm won't care. [04:02] pkrumins: oh CAN. [04:02] pkrumins: When tagging releases in a version control system, the tag for a version MUST be "vX.Y.Z" e.g. "v3.1.0". [04:03] pkrumins: says MUST here [04:03] pkrumins: in the semver.org [04:03] isaacs: right [04:03] pkrumins: so i went with must [04:03] isaacs: when tagging in a vcs [04:03] pkrumins: but now i got rid of it [04:03] pkrumins: roger. [04:03] isaacs: ACTION has hardly any opinion on the matter, actually [04:03] pkrumins: i don't think it matters at all [04:03] pkrumins: v or no v. [04:04] pkrumins: s/v//g [04:04] isaacs: scaling vector graphic? [04:04] pkrumins: oh, no, sed expression to replace all 'v' with nothing [04:04] pkrumins: i mean it doesn't matter if it has v or it doesn't have v, cause it's a small expression to get rid of that 'v' even if it's present. [04:05] pkrumins: published base-64 :D [04:05] pkrumins: now publishing all my other modules [04:05] isaacs: sweet [04:05] isaacs: sorry for the inconvenience. [04:05] SubStack: pkrumins: seems to work! [04:05] SubStack: http://registry.npmjs.org/base64/-/base64-1.0.0.tgz exists [04:05] pkrumins: :D [04:05] pkrumins: ACTION wgets to see if it has the right files init [04:06] SubStack: npm ok [04:06] pkrumins: isaacs: thank you too! [04:06] SubStack: hmmm [04:06] SubStack: node> require('base64') [04:07] SubStack: works! [04:07] pkrumins: looks good `node> var b = require('base64')` [04:07] pkrumins: :D [04:07] pkrumins: and it ships with all the correct files [04:07] pkrumins: no crap files i had around in dev version [04:07] pkrumins: ACTION does that for node-{png,jpeg,video} now. [04:09] SubStack: lots of new packages [04:09] [[zzzz]] has joined the channel [04:10] pkrumins: <3 [04:10] sztanphet has joined the channel [04:12] pkrumins: isaacs: still here? [04:12] isaacs: no [04:12] pkrumins: isaacs: wonder what is the correct way to specify `libpng` as a dependency? [04:12] pkrumins: isaacs: good :) [04:12] isaacs: hehe [04:12] isaacs: pkrumins: the best way is probably to have a script that checks for it, and then fails with an error if it's not found, to cancel the install. [04:13] pkrumins: aha, preinstall? [04:13] isaacs: "preinstall" : "check-for-libpng.sh" or something [04:13] pkrumins: oh, i just remembered i have it in `node-waf configure` [04:13] pkrumins: configure would fail if libpng isn't there [04:13] jsilver has joined the channel [04:13] isaacs: pkrumins: aha [04:13] pkrumins: isaacs: so i shall get rid of that dependency line for my png module. [04:13] pkrumins: cause it's really not a node.js dependency [04:13] pkrumins: but a syslib dep. [04:13] isaacs: right [04:14] pkrumins: also, is there a way to see what files get bundled up before publishing? [04:14] pkrumins: i added a bunch to .npmignore, but might have missed some [04:14] isaacs: pkrumins: npm cache add . [04:14] wilmoore has joined the channel [04:14] kevm_ has joined the channel [04:14] isaacs: pkrumins: then check npm cache ls [04:14] pkrumins: aha! [04:15] isaacs: pkrumins: npm cache ls pkg/version/package/folder/etc. [04:17] isaacs: pkrumins: i wanna add a better inspector, if you got any ideas, i'd be happy to take suggestions [04:19] pkrumins: hmm, can't think of a good interface for that atm [04:19] pkrumins: will get back to you if i think of smth [04:20] pkrumins: isaacs: just found out that npm doesn't like trailing commas in package.json [04:20] pkrumins: isaacs: like "keywords": [ "moo", "foo", ] [04:20] pkrumins: no good ^^^ [04:20] isaacs: pkrumins: yeah, it's using v8's JSON.parse [04:20] pkrumins: gives a parse error. [04:20] isaacs: pkrumins: right, cuz it's not valid json [04:20] pkrumins: i thought v8 was ok with trailing ones [04:20] pkrumins: oh i see. [04:20] pkrumins: it does the opposite [04:20] pkrumins: prases that file [04:20] pkrumins: not js. [04:21] isaacs: pkrumins: it's valid js, but not valid json [04:21] pkrumins: yep. [04:25] pkrumins: node-png is on npm now, short "png". [04:26] Alystair: hmm trying to configure node.js [04:26] Alystair: getting error when it's looking for g++/c++ icpc c++ in configure :( [04:27] Alystair: even though I do have make/gcc/whatever on this machine... [04:27] JimBastard_ has joined the channel [04:27] JimBastard_: test of wargames isaacs [04:27] SubStack: isaacs: it also doesn't like newlines in strings [04:27] SubStack: could probably fix that one [04:27] isaacs: SubStack: because they're not valid. [04:28] isaacs: SubStack: *npm* isn't parsing *anything* [04:28] isaacs: it's *all* v8 [04:28] Alystair: anyone? [04:28] isaacs: (technically the ini parser is now included in npm, and it has a base64 parser, but that's it.) [04:28] SubStack: isaacs: it's annoying to have descriptions go over 80 columns [04:29] SubStack: is all that I'm saying [04:29] isaacs: SubStack: i agree. [04:29] SubStack: JSON.parse(fs.readFileSync('package.json').replace(/\s+/g,' ')) would probably do the trick [04:30] isaacs: ACTION shrug [04:30] pkrumins: but then other projects that would rely on package.json being pure JSON would fail [04:31] tilgovi has joined the channel [04:31] SubStack: meh [04:31] pkrumins: isaacs: is there a white list as well? [04:32] pkrumins: see my 'tests' dir is littered with various files, and i have to list them all in .npmignore [04:33] isaacs: pkrumins: no, but you can use globs [04:33] isaacs: pkrumins: tests/* [04:34] pkrumins: still not good enough [04:34] pkrumins: could you do it like tar does? [04:34] isaacs: pkrumins: or tests/*.txt or whatever [04:34] isaacs: pkrumins: i do it *exactly* like tar does :) [04:34] pkrumins: it has a whitelist and blacklist [04:34] isaacs: .npmignore is passed as an argument to tar's blacklist [04:34] pkrumins: oh! [04:34] pkrumins: but then can you do .npmwhitelist :) [04:34] isaacs: i don't have a .npm-dont-ignore ;) [04:34] pkrumins: and pass it to tar [04:34] pkrumins: would be good to add [04:35] isaacs: good idea. post an issue please :) [04:35] pkrumins: then i could do: .npmignore tests, .npm-dont-ignore tests/run.sh [04:35] pkrumins: kk [04:35] isaacs: aha [04:35] isaacs: i'd considered eventually doing it like .gitignore [04:36] isaacs: so you could do: tests\n!tests\run.sh [04:36] SubStack: .npm{ignore,include} [04:36] isaacs: er... tests/run rather [04:36] pkrumins: but if you have two files, then you can pass them to tar instantly [04:36] pkrumins: yes, SubStack's naming is better [04:37] isaacs: true [04:41] pkrumins: added an issue [04:43] Dmitry1 has joined the channel [04:44] Alystair: I keep getting a "error: could not configure a cxx compiler" when trying to ./configure [04:45] Aria: What's your C++ compiler? [04:45] Alystair: I donno :D [04:45] Alystair: ACTION apt-gets g++ [04:45] Aria: ++ [04:45] Alystair: there we go [04:49] mde has joined the channel [05:01] [[zz]] has joined the channel [05:02] mtodd has joined the channel [05:27] stagas has joined the channel [05:29] Sou|cutter: hmm, I need a good idea for a project in node.js... I'm stuck on ideas like hummingbird, which are frankly a bit boring [05:30] SubStack: Sou|cutter: scratch an itch [05:31] mape: Sou|cutter: Write something like folding@home, where the clients are browsers that open a page and a central node app that sends/gathers all the data calculated by the clients [05:31] SubStack: hmmm [05:31] elliottcable: any of you peeps other than inimino in Colorado? [05:31] SubStack: that would be an excellent application of the project I am going to blog about in a few hours [05:31] gilbertleung has joined the channel [05:31] elliottcable: looks like I’ll be stopping through Colorado Springs for a day or two on my way down to NC, so… if anybody else is around the area, maybe we can meet up [05:31] Sou|cutter: that's not a bad idea [05:32] Sou|cutter: SubStack: it's just that my thinking is in that rut, trying to break out of it ;) [05:32] sat: mape: I am thinking of something along those lines....where the clients are node too, and the peers can connect to each other directly through NAt and firewalls [05:32] elliottcable: Sou|cutter 3» instead of trying to come up with something completely new… look at existing web applications, and try to refactor the concept behind one in the light of an asynchronous system like Node.js :3 [05:32] SubStack: Sou|cutter: http://github.com/substack/dnode would make that problem pretty fun to write [05:33] SubStack: s/write/solve/ [05:33] mape: sat: hmm k, I find browser clients more fun, makes it easier to join [05:33] SubStack: sat: also entirely relevant to this project [05:33] SubStack: dnode supports both node.js and browser-based connections [05:34] mape: Would allow you to "support cancer research by keeping this page open" kinda deals [05:34] sat: mape: true, but browsers can;t do what i am thinking of though they can be the interface [05:34] mape: k [05:34] Sou|cutter: elliottcable: fair enough ;) just need to find that spark of inspiration (which talking about it here is already helping, thanks!) [05:34] SubStack: browsers can crunch numbers, no? [05:35] sat: chrome is good at it, ff not so much [05:35] SubStack: Sou|cutter: you could write a ruby implementation of the protocol for me :) [05:35] elliottcable: ACTION yawns [05:36] elliottcable: ’sup mofos [05:36] sat: I tried writing a pure browser gif animator, and i couldn't get my quantizer and ditherer to run in less than 7- 10 secs on FF....was less than 2 on chrome [05:37] Aria: FF has recently improved some [05:37] elliottcable: I doubt very much. :x [05:37] Sou|cutter: SubStack: I may take a look at that, I'm fairly noob with ruby also, which woud make that a good way to exercise that also [05:37] elliottcable: That is, “I doubt it has improved all that much,” not “I highly doubt that it has improved” [05:37] elliottcable: lol [05:38] maushu has joined the channel [05:43] tyfighter has joined the channel [05:48] sat: I am current;y trying to get reliable UDP streams working. My PoC works fine, but I keep running into problems with my node stream interface not behaving properly [05:49] stagas has joined the channel [05:50] mjr_: sat: you made a stream on top of dgram? [05:51] sat: nah, I made bindings for libudt - a high perf reliable UDP streaming protocol [05:51] sat: application level [05:51] sat: it is a rate based algorithm so I dont think js timers would be accurate enough [05:52] sat: to do it with pure js and node [05:52] aaron___ has joined the channel [05:52] aaron___: hey all... has someone written a JS markdown engine I can use w/ node? [05:53] sat: UDT is essentially UDP streams + in order partial reiable messaging + multiplexed and NAT nusting [05:53] sat: busting [05:53] sh1mmer: bit hurt my brain [05:53] sh1mmer: bits [05:56] mjr_: sat: UDT sounds cool. I'm in the middle of documenting the datagram sockets for node right now. [05:57] sat: Yeah. I have used the dgram module a fair bit in node to do some quick and dirty things. [05:57] sat: I like the simplicity [05:58] sh1mmer: mjr_: thanks for doing the docs. [05:58] sat: ^ yeah. [05:58] mjr_: sure thing [05:59] mjr_: I also refactored dgram.js so the underlying socket fd isn't lazily created, so you can set socket options on it now. [05:59] mjr_: like TTL or multicast. [05:59] mjr_: I've got TTL implemented so far, and it seems to work. [05:59] sh1mmer: mjr_: is that checked in somewhere? [05:59] sat: Yeah, I saw your patch. I was actually using the process.binding("net") functions directly to get around that stuff [06:00] sat: where possible [06:00] mjr_: sh1mmer: http://github.com/mranney/node/blob/master/lib/dgram.js [06:00] sh1mmer: mjr_: cool [06:00] mjr_: That repo has a bunch of changes related to dgram, including tests. [06:00] mjr_: Hopefully it'll be ready by next week. [06:01] sat: I have modeled my UDT js interface on a mashup between net.Stream and dgram.Socket. It has attibutes of both [06:02] sh1mmer: this is probably a dumb question but how do I go from buffers as a string as hex? [06:02] sh1mmer: from a buffer to hex as a string [06:03] mjr_: How do you go from a string to a hex string? [06:04] mjr_: make_a_hex_string(buffer.toString()); [06:04] sat: read each charcode and code.toString(16); [06:04] sat: ? [06:04] sh1mmer: ok [06:05] sh1mmer: I wanted to make sure there wasn't some obvious thing I was missing [06:05] mjr_: not that I know of [06:05] stagas has joined the channel [06:05] mjr_: But maybethere is [06:05] sat: buffer could do with some conveinience functions toString("base64") toString("hex") etc [06:05] sh1mmer: I'm sure you are smarter than me, so I'll do it the long winded way [06:06] sh1mmer: sat: I'm doing a few things like that right now [06:06] sat: cool [06:06] sh1mmer: currently I'm writing a sliceByBit method [06:06] sh1mmer: hm. [06:06] sh1mmer: s/sliceByBit/sliceBits/ [06:07] sh1mmer: I hate naming stuff, I always feel like i do a shity job [06:07] sat: heh. me too [06:08] sat: API design is not my forte. [06:08] sh1mmer: I think it's a lot like poetry [06:09] sh1mmer: I also like that ry has been willing to keep breaking stuff until he's found the right descriptions [06:09] sh1mmer: the small pain for early adopters will be worth it for 0.2 [06:09] sat: yeah, but one can't do that for very long once it becomes seriously useful [06:09] _announcer: Twitter: "@brennen Thanks for the pointer to node.js! That's quite interesting." -- Brent Newhall. http://twitter.com/BrentNewhall/status/18251643535 [06:10] sh1mmer: sat: which is why it's good he's been willing to do it now [06:10] sat: truedat. object.on("data", ...) is a brilliant change :) [06:11] softdrink has joined the channel [06:14] jedschmidt has joined the channel [06:16] amuck has joined the channel [06:18] sat: re: UDP it would be neat to be able to get local interface info in node too. ip4 bcast address/mask etc [06:20] qFox has joined the channel [06:24] stagas has joined the channel [06:25] [[zzz]] has joined the channel [06:27] [[zzz]] has joined the channel [06:29] mjr_: sat: is there an easy way to get interface info in a cross-platform way? [06:29] mscdex: node.js rules! [06:30] mjr_: sat: I do that with pcap which has figured out all of that magic. [06:30] sat: yeah. windows would be vry different from nix [06:30] mjr_: even OSX vs Linux is shitty. [06:31] sat: I wrote a tiny addon to call getaddrinfo on linux when I needed that info rather than parsing ifconfig output [06:31] sat: I have no idea what osx uses [06:32] [[zz]] has joined the channel [06:32] mjr_: You can do dgram.address() on a bound UDP socket to find out what address it is bound to. [06:33] mjr_: But no netmask or other if params. [06:33] sat: yeah, but u need mask/bcast to do other UDP stuff [06:33] sat: ip6 is simpler [06:34] mjr_: If you are interested, you can "npm install pcap" and then run this: http://github.com/mranney/node_pcap/blob/master/pcap.js#L22 [06:35] mjr_: findalldevs() will give you details if info on all platforms that have libpcap. [06:35] mjr_: Windows, who knows. [06:35] sat: bookmarked! [06:37] mscdex: node_pcap uses a shared library or? [06:38] mjr_: It just does -lpcap [06:38] mjr_: So I dunno what waf does with that. [06:39] mscdex: it links with the shared library [06:40] mscdex: i think anyway [06:41] jbr has joined the channel [06:43] Guest204 has joined the channel [06:43] sat: bookmarked! [06:43] sat: oops [06:45] mischief: mscdex, you said to ask some guy about my issue, what is his nick again? [06:45] mscdex: oh, ryah. but i don't know if he's back yet from vacation or not [06:48] khug has joined the channel [06:48] dgathright has joined the channel [06:53] amuck has joined the channel [06:53] MattJ has joined the channel [07:00] brianmario has joined the channel [07:02] sh1mmer: so I'm giving a talk about node at oscon [07:02] sh1mmer: any thoughts about what I should demo [07:02] sh1mmer: there is so much I could talk about [07:02] mscdex: true [07:03] mscdex: i've been thinking about joining a local javascript meetup group and doing a node talk or something [07:06] sat: Where are you from? [07:08] zaach has left the channel [07:09] mscdex: southwest ohio [07:09] mscdex: pretty much away from everyone else on here lol [07:10] sat: 'cept me then. I'm in oz [07:11] sh1mmer: sat: where abouts? [07:11] sat: sydney [07:12] sh1mmer: where abouts? [07:12] sh1mmer: :D [07:15] mscdex: developers, developers, developers! [07:17] _announcer: Twitter: "Clojure's edge on Node.js - http://su.pr/4UJl2u" -- eBot. http://twitter.com/kicauan/status/18254797643 [07:27] tilgovi has joined the channel [07:27] adulteratedjedi has joined the channel [07:29] micheil: sat: I can get further away: 500km west of sydney. [07:29] proppy has joined the channel [07:29] proppy: hi [07:29] sat: micheil: Which town would that be? [07:29] sat: heya proppy [07:30] micheil: umm.. near Griffith. [07:30] sat: I haven't been that far west for a while [07:30] micheil: I wouldn't blame you. [07:30] sat: Nah, I like the country. [07:31] micheil: oh.. gee.. I'm sure living there for 17 years would change that. [07:31] micheil: :P [07:31] sat: heh. probably [07:31] sat: I am sick of sydney [07:31] sat: I am thinking of moving to Melbourne for a chnge of scenery [07:32] micheil: heh, I'm thinking heading sydney way would be a good idea.. y'know, near a few big companies, near WDS, and the Syd.js groups [07:32] proppy: what would be the way to wrap possibly cpu intensive (gis) operation into node.js ? [07:32] proppy: async using thread ? [07:33] sat: proppy: another process is usually the anwser [07:33] proppy: or trust that it would be fast enough not to block [07:33] sat: If you are writing c++ code, look at eio_custom and ev_async [07:33] proppy: oh ok so having a separate deamon and an http api would be the way ? [07:33] sat: to use libeio threadpool and libev watchers [07:33] micheil: sat: what did ev_async ever do? [07:34] sat: I use it for threadsafe notifications from eio threads [07:34] micheil: I've used eio_custom to write parts of the node fs module.. but not ev_async yet [07:34] sat: if you create ev_async watcher, you can signal them with ev_async_send() [07:34] sat: from an eio thread [07:35] micheil: any example code? [07:35] sat: I use it so I can run a single thread with a loop instead of exiting thread to get results [07:35] sat: one sec... [07:36] micheil: k [07:36] sat: http://github.com/satori99/node-udt/blob/master/binding.cc#L1447 [07:36] sat: this is kinda complicated though as im using locks as well to stop my loop from spinning until the ev_async callback has processed the result [07:37] proppy: sat: I was wondering if it would be possible to embed pincaster gis databse directly into node, instead of calling it throught http [07:37] proppy: maybe it doesn't make so much sense since it already provide an http api [07:37] DarthShrine has joined the channel [07:37] sat: You can do pretty much anything with node addons, so it would be possible. But yeah http api is easier [07:38] proppy: yes there is already an node module made by ziil too [07:39] proppy: zyll [07:39] proppy: http://github.com/zyll/pincaster [07:39] sat: I know v little about gis systems or pincaster [07:40] proppy: 8 was wondering because pincaster is also written in C, and rely on libevent2 IIRC [07:41] micheil: sat: okay.. so you've used ev_async_send, how do you catch the result [07:41] micheil: I mean, with eio_custom it's like (blocking_function, callback, req) [07:41] sat: the ev_async has a callback regisitered. http://github.com/satori99/node-udt/blob/master/binding.h#L602 [07:41] proppy: but thanks for the ev_ eio_ pointers [07:42] sat: That callback can read shared data. i use locks to make sure that the eio thread and the main thread never access shared vars at once [07:42] sat: That is all so my eio thread can keep looping without exiting eachtime it has result data [07:43] V1 has joined the channel [07:44] sat: ...which would happen alot in my senario [07:45] saikat has joined the channel [07:47] Dmitry1 has joined the channel [07:48] proppy: eio_custom looks like twisted deferToThread :) [07:49] sat: It does have drawbacks though. [07:49] sat: tiny stacksize for one [07:49] sat: to do anything moderately comlicated with threads, you'd probably have to roll ur own threadpool or use another lib [07:50] sat: works ok for making simple blocking funcs async though [07:50] proppy: yes, thanks a lot for all these insights [07:51] proppy: I'll ask pincaster guy what he think about it [07:51] proppy: maybe it is already fast enough so it doesn't need async at all [07:52] jedschmidt has joined the channel [07:53] proppy: sat: here is the git repo if you're curious about it http://github.com/jedisct1/Pincaster [07:56] Yuffster has joined the channel [08:07] teemow has joined the channel [08:13] sh1mmer: hey sat, do you know John Allsopp? [08:14] sat: nope [08:15] sh1mmer: sat: he's a good guy (also in Sydney) [08:15] sat: I don't know alot of coders. Some but not many. [08:15] sat: I'm not very good at networking :P [08:17] tilgovi has joined the channel [08:18] dnolen has joined the channel [08:20] sh1mmer: fair enough [08:20] micheil: sat / sh1mmer I do. [08:20] micheil: I did some work for him. [08:20] micheil: runs WDS with maxine sherrin. [08:20] sh1mmer: I only get to Sydney for conferences, so I mostly know people at conference or at the Yahoo office out there ;) [08:21] micheil: sh1mmer: I don't suppose you were at WDS09? [08:21] sh1mmer: micheil: yeah, I'm speaking at Web Directions this year [08:21] sh1mmer: micheil: no, I did WebDu [08:21] micheil: oh [08:21] sh1mmer: micheil: I don't think I'm speaking at WDS though :( [08:21] micheil: I can make WDS this year, it's at the start of exams for me [08:21] sh1mmer: I did London, and I'm doing USA in September before JSConf.eu [08:22] micheil: cool cool [08:22] sat: I haven't done the conf circut for years. [08:23] micheil: WDS last year was quite amazing [08:23] micheil: first time I'd actually gone to a web related conference, so, yeah [08:23] micheil: webweek was also cool. [08:24] sat: Best freebie i ever scored was a 5* room in barcelona for a 3GSM conf, thanks Nokia. [08:39] stagas has joined the channel [08:41] sh1mmer: http://gist.github.com/471403 [08:41] sh1mmer: boo :( [08:41] ph^_ has joined the channel [08:41] sh1mmer: firstly why does .toString('ascii' ...) on a buffer yield UTF-8? [08:42] SubStack: elliottcable: in Anchorage I see. Fairbanks here. [08:50] benburkert has joined the channel [08:53] sh1mmer: so no ideas? [08:53] micheil: not really [08:54] pavan_ has joined the channel [09:04] micheil: sh1mmer: what's msg =? [09:05] sh1mmer: it's a "binary" buffer. [09:05] sh1mmer: it's actually the buffer from a datagram socket [09:06] benburkert has joined the channel [09:06] sh1mmer: so it wasn't declared as binary [09:08] aubergine has joined the channel [09:09] sh1mmer: oh that's annoying [09:09] stride: have you tried using asciiSlice instead of slice? [09:09] stride: (just a guess though, not sure if it changes anything for you) [09:10] sh1mmer: encoding should be the encoding of the buffer, not the encoding you want out [09:10] aliem has joined the channel [09:10] sh1mmer: also, asciislice isn't documented [09:10] stride: oh, okay [09:13] sh1mmer: wtf, awesome [09:13] sh1mmer: there is also binaryslice [09:14] sh1mmer: silly me, why didn't I just read the source [09:24] Guest204 has joined the channel [09:29] mikeal1 has joined the channel [09:36] jakehow has joined the channel [09:40] _announcer: Twitter: "Running a VM cluster on my iMac of 4 front end #nginx / #node.js server and 6 #nosql servers :)!" -- Arnout Kazemier. http://twitter.com/3rdEden/status/18260794867 [09:40] V1: OH, well that's annoying.. Seeing my own tweets in IRC aswell [09:48] hellp has joined the channel [09:49] keeto has joined the channel [09:53] _announcer: Twitter: "@kaerast I am using node.js, that's how I found it did it! http://gist.github.com/471431 Will take another look at mongrel though, ta." -- John Leach. http://twitter.com/johnleach/status/18261310971 [09:57] [[zz]] has joined the channel [09:59] sh1mmer: I suppose I could stop working on this at some point this morning [10:06] mklappstuhl has joined the channel [10:07] sveimac has joined the channel [10:13] derferman has joined the channel [10:16] Rik` has joined the channel [10:23] sechrist has joined the channel [10:24] sechrist has joined the channel [10:25] _announcer: Twitter: "node.js...?" -- えくさんしーず / xyx. http://twitter.com/xanxys_/status/18262532540 [10:29] stride: !translate Japanese:English 'えくさんしーず' [10:29] _utility: Zu Kusanshi s [10:29] stride: hm :) [10:34] micheil has joined the channel [10:38] rictic has joined the channel [10:42] _announcer: Twitter: "Playing with #nodejs - cool tool!" -- Kim Dalsgaard. http://twitter.com/kimdalsgaard/status/18263180160 [10:53] _announcer: Twitter: "More Nodejs hacking; discovered that I was an idiot and I can, indeed, easily make my own EventEmitter objects. *smack*" -- David Goodlad. http://twitter.com/dgoodlad/status/18263603236 [10:54] _announcer: Twitter: "blogged about my crazy asynchronous remote method invocation system for node.js and the browser http://substack.net/posts/85e1bd" -- James Halliday. http://twitter.com/substack/status/18263655571 [10:54] SubStack: it's me! [10:58] stagas has joined the channel [11:05] stagas_ has joined the channel [11:05] stride: heh, nice [11:14] micheil has joined the channel [11:15] _announcer: Twitter: "Got iPad app is communicating with a node.js/express server and mongoDB storage. This is one interesting conglomeration of technologies." -- Angelo DiNardi. http://twitter.com/adinardi/status/18264568337 [11:17] stagas has joined the channel [11:18] adinardi: That tweet was a disaster. I need to sleep. :( [11:20] micheil has joined the channel [11:26] MrTopf has joined the channel [11:26] stagas has joined the channel [11:26] _announcer: Twitter: "Multiuser Sketchpad #nodejs Mr.doob's: http://bit.ly/9Auixu" -- Pierre Arlais. http://twitter.com/PierreArlais/status/18265085006 [11:33] aheckmann has joined the channel [11:33] stagas_ has joined the channel [11:37] stagas has joined the channel [11:39] xla has joined the channel [11:42] hellp has joined the channel [11:42] _announcer: Twitter: "#reddit DNode: Asynchronous Remote Method Invocation for Node.js and the Browser: submitted by SubStack [l... http://bit.ly/aROLAR #rulez" -- REDDITSPAMMOR. http://twitter.com/REDDITSPAMMOR/status/18265798558 [11:43] SubStack: ^_^ [11:43] zomgbie has joined the channel [11:44] satori: REDDITSPAMMOR? [11:44] satori: heh [11:44] SubStack: no idea what that is [11:55] DarthShrine has joined the channel [11:57] Blackguard has joined the channel [11:57] c4milo has joined the channel [11:59] Avius has joined the channel [11:59] jashkenas has joined the channel [12:02] _announcer: Twitter: "@ Aruj_org. Net จ้า (silverlight, wpf, etc. are out) ... linux has (using mono) ... or that if a pure unix node.js will write" [th] -- Chakrit Wichian. http://twitter.com/chakrit/status/18266733344 [12:05] christkv has joined the channel [12:06] ditesh|cassini has joined the channel [12:07] hartley has joined the channel [12:09] V1 has joined the channel [12:10] stagas has joined the channel [12:15] sveisvei has joined the channel [12:16] MrTopf: shouldn't connect detach in order to make start/stop/restart useful? [12:20] MrTopf: ah, it's in the queue [12:24] Rik`_ has joined the channel [12:25] micheil: hmm.. off to cook more scones. [12:26] Blackguard has joined the channel [12:36] keeto has joined the channel [12:37] keeto has joined the channel [12:41] satori: ACTION has the munchies [12:44] tmedema has joined the channel [12:49] hassox has joined the channel [12:50] satori: Another joint? or more coding... That is the question. [12:52] _announcer: Twitter: "DNode: Asynchronous Remote Method Invocation for Node.js and the Browser - http://su.pr/30ecOu" -- eBot. http://twitter.com/kicauan/status/18269241359 [13:26] technoweenie has joined the channel [13:28] _announcer: Twitter: "Multi user pad with node.js. http://mrdoob.com/projects/multiuserpad/" -- Takaaki. http://twitter.com/takaakikato/status/18271197425 [13:29] softdrink has joined the channel [13:31] _announcer: Twitter: "[del] [from mrphoebs] DNode: Asynchronous Remote Method Invocation for Node.js and the Browser :: The Universe of http://url4.eu/5e5eB" -- sldfjd ldajds. http://twitter.com/sldfjd/status/18271406318 [13:32] phazm has joined the channel [13:32] maushu has joined the channel [13:34] pplante has joined the channel [13:40] kuya has joined the channel [13:40] kuya: can anyone help with extjs Connect? [13:57] zapnap has joined the channel [13:57] bradleymeck1: kuya whats up? [13:58] kevm_ has joined the channel [13:58] _announcer: Twitter: "DNode: Asynchronous Remote Method Invocation for Node.js and the Browser http://j.mp/9gjzkK • this node.js world is getting interesting…" -- Bob Hutchison. http://twitter.com/xampl/status/18272927800 [13:58] stagas_ has joined the channel [13:59] b_erb has joined the channel [14:14] pplante has joined the channel [14:22] _announcer: Twitter: ""Multiuser Sketchpad" http://bit.ly/dsMwjy # # nodejs websocket" [vi] -- Narendra Sisodiya. http://twitter.com/nsisodiya/status/18274367616 [14:23] athenot has joined the channel [14:23] _announcer: Twitter: "DNode: Asynchronous Remote Method Invocation for Node.js and the Browser: Simon Willison : DNode: Asynchronous Re... http://bit.ly/d39OlX" -- Paolo Patronimic. http://twitter.com/salve/status/18274480390 [14:39] dnolen__ has joined the channel [14:55] _announcer: Twitter: "If you have javascript functions then browser is your runtime environment, unless you run Node.js on server but that's quite leading edge!" -- Wadud Ruf. http://twitter.com/wr1472/status/18276478385 [14:58] jherdman has joined the channel [15:16] kuya: bradleymeck1: i have this http://dpaste.com/216967/ [15:17] kuya: its meant to parse json from a post request and add it to the params var [15:17] kuya: bradleymeck1: but the callbacks never seem to get called for data and end [15:18] kuya: im only just starting with connect [15:18] kuya: (as in, this might be way off :) [15:19] kuya: i see 'json request' in the console but nothing else :/ [15:20] MrTopf has joined the channel [15:21] joshbuddy has joined the channel [15:22] MrTopf1 has joined the channel [15:23] jsprog has joined the channel [15:32] c4milo has joined the channel [15:33] V1 has joined the channel [15:48] luddep has joined the channel [15:58] marshall_law has joined the channel [16:02] _announcer: Twitter: "Sick, #YQL baked directly in as a #node.js module: http://github.com/drgath/node-yql" -- Joe McCann. http://twitter.com/joemccann/status/18280700788 [16:03] MattJ has joined the channel [16:12] bradleymeck1: kuya, only read the content-length header worth of content, the client wont end the request always like a good client [16:13] bradleymeck1: also id suggest making body a local variable instead of in the global namespace [16:15] V1 has joined the channel [16:26] Validatorian has joined the channel [16:33] tyfighter has joined the channel [16:33] _announcer: Twitter: "@ Pgriess Node.js + Redis http://mihai.bazon.net/blog/redis-client-library-javascript-node" [sq] -- Chris Saari. http://twitter.com/chrissaari/status/18282587697 [16:34] camilo has joined the channel [16:39] deanlandolt_home has joined the channel [16:40] deanlandolt_home has left the channel [16:43] jashkenas has joined the channel [16:56] V1 has joined the channel [17:00] voxpelli-laptop has joined the channel [17:00] khug has joined the channel [17:00] wilmoore has joined the channel [17:04] pavan_ has joined the channel [17:09] elliottcable: SubStack 3» Really? :O [17:10] elliottcable: SubStack 3» Another programmer in Alaska who doesn’t just write freakin’ *Java*?!? [17:10] elliottcable: SubStack 3» I call bollocks. No way that’s true. [17:11] elliottcable: I’ve been looking for a single other programmer in the entire state with an *atomic weight* of real skill for ages :x [17:12] bpot has joined the channel [17:14] JimBastard: elliottcable: have you ever considered moving? [17:15] elliottcable: JimBastard 3» I’m in the middle of doing so. [17:15] JimBastard: ca? [17:15] elliottcable: fuck no [17:15] elliottcable: North Carolina [17:15] JimBastard: lol [17:15] JimBastard: whats in NC? [17:15] elliottcable: probably going to drive through CA on the way, though [17:16] _announcer: Twitter: "@miksago Nope, got distracted doing the chat module. Still crashing at 1060ish. But haven't updated node.js yet." -- Mr.doob. http://twitter.com/mrdoob/status/18285297706 [17:18] marshall_law has joined the channel [17:24] mtodd has joined the channel [17:25] MrTopf has joined the channel [17:25] MrTopf1 has joined the channel [17:27] mscdex: i may not write java, but i sure do drink it [17:28] Alystair has joined the channel [17:32] hellp has joined the channel [17:38] _announcer: Twitter: "@ Enchantner Twisted, Tornado, Erlang, the last time I heard a lot about buzz'a node.js. Although levgem @ lj and RoR wrote:)" [ru] -- Yury Yurevich. http://twitter.com/yurevich/status/18286681209 [17:40] jetienne has joined the channel [17:41] jetienne has joined the channel [17:44] gilbertleung has joined the channel [17:45] _announcer: Twitter: "@ Yurevich Well, in general, as expected:) node.js will need to try more serious, and to erlang has not yet approached, exotics. Tornado bad." [ru] -- enchantner. http://twitter.com/enchantner/status/18287133896 [17:51] dnolen has joined the channel [17:51] KaptianKrispy has joined the channel [18:00] gilbertleung has left the channel [18:01] voxpelli-laptop_ has joined the channel [18:02] athenot has joined the channel [18:03] aheckmann has joined the channel [18:04] Avius has joined the channel [18:07] unomi has joined the channel [18:10] dnolen has joined the channel [18:11] benburkert has joined the channel [18:16] JimBastard: !translate English:Russian node is good! [18:16] _utility: узел хорошо! [18:16] JimBastard: !tweet @yurevich узел хорошо! [18:16] JimBastard: lol fail [18:18] sveimac_ has joined the channel [18:19] sveilin has joined the channel [18:19] voxpelli-laptop has joined the channel [18:21] Yuffster has joined the channel [18:22] mape: micheil: There? [18:22] micheil: no, of course not. [18:22] micheil: >_> [18:22] micheil: manveru: what is it? [18:23] micheil: *mape [18:23] mape: Hehe, I'm having some issues with connections not keeping separate. I have 2 users and when I send something to the first one the second gets it. Even if I echo the _req.remoteAddress it shows the right ip, but sends it to another [18:23] mape: *conn._req.remoteAddress [18:23] mape: So if I do something on my workstation the laptop gets updated [18:24] mape: But the connection shows the right ip [18:24] micheil: not sure I get what you mean. [18:25] mape: 2 users connect to the same server (they are different machines with different IPs), when I do conn.write('test') on the laptop it sends that to the workstations conn, and if I do console.log(conn._req.remoteAddress) right before the .write it shows the correct IP, but that IP doesn't get the data. [18:26] mape: Could be that I screwed it up someway but just wondered if you had any idea of how it could happen [18:26] jashkenas has left the channel [18:27] micheil: is this with node-websocket-server? [18:27] mape: Yes [18:27] micheil: if you're doing conn.broadcast, then the sender won't get the data [18:27] micheil: but conn.write() should work [18:27] mape: Yeah only doing .write but it ends up on the wrong ip/client [18:30] mscdex: it's a feature not a bug! [18:30] mscdex: :-) [18:34] micheil: mape: I've never seen this bug.. [18:34] mape: Then I assume I've messed something up [18:34] micheil: actually. [18:34] programble has joined the channel [18:34] micheil: are you sure you're doing it right? [18:34] micheil: conn.write -> sends to that connection. [18:35] mape: yeah [18:35] micheil: conn.write will only send to one connection. [18:36] mape: Ok so I hate myself more and more every day [18:36] mape: why the hell did I swap write for broadcast [18:36] mape: And why did it take me 2h to see that >_< [18:36] micheil: so.. there's no bug? [18:36] mape: micheil: Thanks anyway for letting me know how dumd I am [18:36] mape: Nope just me [18:36] micheil: k [18:37] micheil: sorry about that :) [18:37] micheil: I really need to document stuff more. [18:37] mape: Hehe I live with it every day. I'm used to it [18:37] micheil: conn.broadcast -> sends to all except conn [18:37] micheil: server.broadcast -> sends to all [18:37] mape: Yeah I knew that, and server.broadcast does to all [18:37] mape: You told me earlier [18:37] micheil: server.send -> sends to client with given id [18:38] mape: So seems I just swapped write for broadcast without a good reason [18:38] _announcer: Twitter: "DNode (http://bit.ly/9tjU10), RMI for browser/node.js. Somewhat similar to my idea about event handler "seeping". Gotta finish that someday." -- Jouni Koivuviita. http://twitter.com/jouni/status/18290687659 [18:39] also has joined the channel [18:44] sechrist has joined the channel [18:59] _announcer: Twitter: "Node.js has popped-up on my reader so much, I should at least figure out what it is..." -- Dave. http://twitter.com/mgodave/status/18292137104 [19:00] SubStack: hah [19:03] JimBastard_ has joined the channel [19:04] JimBastard_: !tweet @mgodave do it! node.js is the best! :-D [19:04] JimBastard_: SubStack: good stuff on the RMI release [19:04] JimBastard_: i havent tried it yet, but i might play around with it later [19:05] SubStack: JimBastard_: thanks! [19:05] SubStack: it's been in the works for about a month [19:06] JimBastard_: cool [19:06] JimBastard_: do you have an actual use case for it? or is just for fun [19:06] JimBastard_: we need to do something like this for broodmother, but we were just gonna pipe over ssh [19:06] SubStack: it's for my startup [19:06] JimBastard_: link? [19:06] SubStack: not much there yet [19:07] JimBastard_: got ya [19:07] voxpelli-laptop has joined the channel [19:07] SubStack: you can check out the code at http://github.com/substack/stackvm though [19:07] SubStack: basically routing messages was really painful [19:08] SubStack: among processes and between those processes and the browser [19:08] JimBastard_: looks cool SubStack [19:08] JimBastard_: is there any security yet? [19:08] SubStack: security? [19:08] JimBastard_: for dnode [19:09] SubStack: oh you mean authentication? [19:09] SubStack: have been thinking about auth [19:09] JimBastard_: yeah [19:09] JimBastard_: thats a big one [19:09] JimBastard_: thats why we were going ssh [19:09] SubStack: you could just have a dnode service with a single method, auth, that returns another object on successful login [19:09] JimBastard_: yeah, it shouldnt be too hard to setup but you need something [19:10] SubStack: JimBastard_: you can add it to http://github.com/substack/dnode/wikis/wishlist [19:13] JimBastard_: 10-4\ [19:13] JimBastard_: caus i mean SubStack basically if i found someone running this [19:13] JimBastard_: i could just connect and sys.exec whatever i want [19:13] JimBastard_: if they running node as root its game over [19:14] JimBastard_: i had the same problem with my node_debug thingy (web console debugger) but i could just cheat and use basic htaccess [19:14] SubStack: nope [19:14] JimBastard_: i couldnt do that? [19:14] SubStack: functions only run on the side where they're defined [19:15] SubStack: so you could only do that if the server explicitly allowed that [19:16] SubStack: there's no eval() [19:16] _announcer: Twitter: "Throwing functions in JavaScript to keep the stack small: http://is.gd/doaaC Cool tech. for a recursive parser. (via Node.js mailing list.)" -- Matthew Eernisse. http://twitter.com/mde/status/18293352796 [19:18] liucougar has joined the channel [19:18] V1 has joined the channel [19:18] BBBB has joined the channel [19:19] christkv has joined the channel [19:28] rictic has joined the channel [19:30] ph^_ has joined the channel [19:41] pgriess has joined the channel [19:42] pgriess1 has joined the channel [19:42] Aria has joined the channel [19:46] MattJ has joined the channel [19:48] zomgbie has joined the channel [19:56] sveimac has joined the channel [20:03] boaz has joined the channel [20:09] voxpelli-laptop has joined the channel [20:17] gwoo has joined the channel [20:19] JimBastard_ has joined the channel [20:21] JimBastard_: hey mape you alive? [20:21] mape: Yeah, watching the world cup though [20:22] JimBastard_: ohhh shhhiit i forgot [20:22] JimBastard_: ill leave you be :-) [20:22] JimBastard_: was wondering if there was any progress on http://npm.mape.me/new.html [20:22] JimBastard_: hit me up later [20:22] maushu has joined the channel [20:22] mape: Yeah, been doing other stuff, will take a look at it later tonight/early tommorow [20:24] JimBastard_: cool cool, yeah i saw your other release of asset manager [20:25] siedrix has joined the channel [20:31] aubergine_ has joined the channel [20:33] cloudhead has joined the channel [20:38] bmizerany has joined the channel [20:44] MrTopf1: I hope they soon find out who the worldcup winner is, I wanted to do some work instead [20:44] MrTopf1: (instead of watching wrestling) [20:45] dnolen has joined the channel [20:55] aho has joined the channel [20:55] mape: there [20:57] c4milo: goaaalll [20:57] c4milo: :) [20:59] programble has joined the channel [21:05] mscdex: argh, someone already partially took the name of a new node project i am starting on, on github [21:06] mscdex: we need a node.js project name generator [21:07] c4milo: what name ? [21:07] mscdex: i was going to use "node-transporter" [21:07] mscdex: :S [21:07] c4milo: :s [21:08] mscdex: but "transporter" is used [21:08] mscdex: guess i need something more exotic [21:10] webben: mscdex: what's the difference between the two projects? [21:10] c4milo: ahah yeap [21:10] mscdex: "transporter � Share modules with browser, works RequireJS and Yabble (JSGI)" [21:11] _announcer: Twitter: "Finally websocket chat is working. dumped phpwebsocket. now moved to node.js w/ @miksago 's http://github.com/miksago/node-websocket-server" -- Narendra Sisodiya. http://twitter.com/nsisodiya/status/18302917965 [21:11] mscdex: mine has to do with client-server stuff [21:11] c4milo: mscdex: what kind of stuff ? [21:11] ph^_ has joined the channel [21:12] mscdex: a server that allows uses several different methods for serving clients, similar in idea to socket.io, but with little overhead as possible [21:13] webben: mscdex: node-multitransport ? [21:13] maushu: WebGL or lwjgl (java)? Hmmm. [21:13] mscdex: :\ [21:14] aho: #webgl and #lwjgl got channels here by the way :> [21:15] programble has joined the channel [21:16] maushu: aho, yeah, pretty useless if you ask me. [21:16] maushu: I go one side they talk about on how their side is better, the same thing on the other. [21:17] mscdex: node.js is bester! [21:17] aho: well, depends on your targets, your time frame, the amount of calculations you want to do [21:17] aho: lwjgl won't work on mobile phones [21:18] aho: webgl does.... lwjgl (well java) allows you to do a lot more math... lwjgl (well java) got that slow startup... js doesn't [21:18] aho: webgl doesn't require a plugin, java does [21:20] aho: and then there is also the question which language you prefer [21:20] hdon has joined the channel [21:21] mklappstuhl has joined the channel [21:21] mikeal1 has joined the channel [21:21] _announcer: Twitter: "oooo I just blogged. If you do anything with #nodejs this might be a good place to start thinking about your exceptions http://goo.gl/r13c" -- Thomas Beverley. http://twitter.com/thomas_101/status/18303947804 [21:24] jherdman has joined the channel [21:24] ako has joined the channel [21:25] benburkert has joined the channel [21:27] kersny has joined the channel [21:28] TS_ has joined the channel [21:29] stalled has joined the channel [21:30] jenlindner has joined the channel [21:30] siculars has joined the channel [21:31] jenlindner: has anybody here used Pusher? [21:31] JimBastard_: !tweet @nsisodiya yeaaah node! [21:32] JimBastard_: jenlindner: i havent used it it, but ive been looking through the apis and docs a bit [21:32] JimBastard_: http://pusherapp.com/ right? [21:32] jenlindner: yep [21:32] markwubben has joined the channel [21:33] jenlindner: seems pretty cool [21:33] markwubben has joined the channel [21:33] davidwalsh has joined the channel [21:33] jenlindner: bind an event, trigger a js function from said event [21:34] isaacs has joined the channel [21:34] JimBastard_: jenlindner: isnt it just a SaaS right now? [21:35] JimBastard_: jenlindner: dont you need to use the pusherapp.com api? or can you roll your own pusher server? [21:35] jenlindner: JimBastard: I don't know what SaaS is [21:35] jbr has joined the channel [21:35] JimBastard_: software as a service [21:35] JimBastard_: http://pusherapp.com/pricing [21:35] jenlindner: oh --- i'm using a demo server [21:36] jenlindner: but i'm having this weird problem [21:36] jenlindner: (of course ;) [21:36] Rik` has joined the channel [21:36] JimBastard_: jenlindner: can you install puhser as your own server? do you do you have to use http://api.pusherapp.com/apps/[app_id]/channels/[channel_name]/events [21:36] jenlindner: i think it might not be specific to pusher --- i have this rails app that gets some data [21:36] JimBastard_: i think you are tied to them, and that sucks [21:36] boaz has joined the channel [21:37] jenlindner: and can pass it to a js function but it doesn't persist [21:37] JimBastard_: yeah i dunno, grabbing a sammich bbl [21:37] narendra has joined the channel [21:37] jenlindner: k [21:40] athenot has joined the channel [21:40] dnolen has joined the channel [21:41] andy_ has joined the channel [21:42] bpot has joined the channel [21:42] jakehow has joined the channel [21:45] jbr has joined the channel [21:47] sveimac has joined the channel [21:48] voxpelli-laptop has left the channel [21:48] softdrink has joined the channel [21:53] sh1mmer: bbq rocks [21:53] mitkok has joined the channel [21:54] satori has joined the channel [21:56] Determinist has joined the channel [22:00] rolfb has joined the channel [22:07] Dmitry1 has joined the channel [22:14] JimBastard_: yeah i just got hill country [22:16] hassox has joined the channel [22:23] stalled has joined the channel [22:25] steadicat has joined the channel [22:39] Aaron___ has joined the channel [22:52] [[zz]] has joined the channel [22:59] mklappstuhl has joined the channel [23:03] siedrix: Hi, ones i start a node something.js, how do i stop it? [23:05] Aria: Control-C sends a sigint, or like any other process [23:05] Aria: kill [23:05] siedrix: thx... sorry for the noob question [23:06] [[zz]] has joined the channel [23:08] jetienne has joined the channel [23:11] sh1mmer: siedrix: everyone starts somewhere :) [23:11] [[zzz]] has joined the channel [23:12] Alystair: hmmm when I test node I'm getting a problem with /home/user/node/test/message/undefined_reference_in_new_context.js:9:8 [23:12] mikecampo has joined the channel [23:12] Alystair: along with SSL errors (Which were expected tho', even though I do have openssl on this machine...) [23:14] dnolen has joined the channel [23:14] joshbuddy has joined the channel [23:16] jsilver has joined the channel [23:16] sh1mmer: Alystair: what's your make log look like? [23:16] sh1mmer: and which version of node? [23:16] sh1mmer: oh and please gist, don't paste ;) [23:17] jsilver: hi guyss [23:17] Alystair: sh1mmer: latest git pull... uh... make log? ?_? [23:18] Alystair: where would I find that [23:19] donspaulding has joined the channel [23:21] sh1mmer: Alystair: when you run make, what's the output? [23:21] Alystair: actually when I run configure there are a few 'not found' messages, that's ok? [23:21] sh1mmer: Alystair: also, if in doubt use .100 unless you need head [23:22] Alystair: kqueue event.h port.h, and the SSL stuff wasn't found [23:22] SubStack: dnode version 0.0.2 out (adds socket.io dependency to package.json that was missing before) [23:24] SubStack: ACTION should look into jsan some for the browser-side deps [23:24] Alystair: ;-; [23:26] sh1mmer: Alystair: I'm actually going out, but seriously, throw the whole ./configure output onto gist.github.com and someone can take a look at it. I'll be back later. [23:26] Alystair: ok [23:26] Alystair: thanks [23:26] sh1mmer: np [23:27] malkomalko has joined the channel [23:31] DarthShrine has joined the channel [23:33] [[zzz]] has joined the channel [23:34] zomgbie has joined the channel [23:35] _announcer: Twitter: "Nice, I just make a server running on node.js. comet .." [es] -- Loki Zavala. http://twitter.com/Siedrix/status/18312095214 [23:35] siedrix: lol... [23:41] [[zzz]] has joined the channel [23:43] tyfighter has joined the channel [23:48] Alystair: https://gist.github.com/0bbe3e8f1797b5137a59 <- so what's broken here? D: [23:51] RussB has joined the channel [23:52] statim has joined the channel [23:53] Alystair: libev seems to be incomplete.. [23:54] stepheneb has joined the channel [23:54] Aria: How so, Alystair? The bit about sys/event.h? [23:55] darkf has joined the channel [23:55] Alystair: kqueue event.h port.h, and the SSL stuff [23:55] darkf: hello - is there a way to compile node on windows without cygwin? [23:55] Alystair: unless they are not actually required? [23:55] mklappst1hl has joined the channel [23:55] Aria: Those are things that vary across systems [23:56] Alystair: this was a direct git clone on a debian box [23:56] athenot has joined the channel [23:56] Aria: SSL requires OpenSSL headers. kqueue is for FreeBSD [23:56] satori: yeah. Some of those fail for me but node works fine [23:56] Aria: Not sure of the others offhand