[00:00] Tim_Smart: :o [00:00] Tim_Smart: *nix is sexist [00:02] Eber: what is the best way to convert something into an array? like the atributes parameter? [00:03] rauchg_: isaacs: [00:03] rauchg_: can you try [00:03] rauchg_: killall god | god [00:03] isaacs: Eber: Array.prototype.slice.call(someThing) [00:03] rauchg_: oh solaris doesn't have killall [00:03] rauchg_: pkill god | god [00:03] isaacs: js> Array.prototype.slice.call("asdf") [00:03] Eber: isaacs: thanks man! [00:03] gbot2: isaacs: ["a","s","d","f"] [00:03] rauchg_: anyways [00:03] rauchg_: back to work [00:03] isaacs: rauchg_: it has a killall, but it's as violent as it sounds. [00:03] isaacs: it terminates ALL The processes. [00:03] rauchg_: hahaha [00:03] rauchg_: solaris is dangerous [00:04] isaacs: not signals. actually, GOODBYE YOU ARE DONE NOW [00:04] isaacs: it's named after a giant ball of plasma, what do you expect? [00:05] beelzabub has left the channel [00:06] Eber: Does the .forEach that node's use looks like the jQuery one? [00:08] _announcer: Twitter: "@ Jxck_ I have not had time, node.js are likely not be a super introductory content (^ ^;" [ja] -- Moto Ishizawa. http://twitter.com/summerwind/status/24616052016 [00:08] zith_: Eber: i've been told it works like this: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach [00:08] Eber: zith_: thanks! [00:09] siculars has joined the channel [00:09] jbenesch has joined the channel [00:10] _announcer: Twitter: "It’s very easy to create a real time @Twitter archiver or repeater with the streaming API, Node.js and HTML5 web sockets." -- Sorin Ionescu. http://twitter.com/SpookyET/status/24616195801 [00:12] onlymejosh has joined the channel [00:13] onlymejosh: hey guys [00:13] pengwynn has joined the channel [00:14] creationix: hey, how do you xhr local files when on file:// sites? [00:14] Tim_Smart: creationix: file://... ? [00:14] creationix: yeah, I loaded an html file directly from my disk [00:15] creationix: no server [00:15] Tim_Smart: Yeah, I mean make the URL file://what/ever [00:15] onlymejosh: i've been playing with node to create a file uploader, I was inspired by formidable, I'm struggling how I can make this so it can be an ajax request from the client so I can create a file progress screen [00:16] prettyrobots has joined the channel [00:16] Me1000 has joined the channel [00:16] creationix: yeah, chrome hates me, I wonder what channel can help [00:16] creationix: "Cross origin requests are only supported for HTTP." [00:18] creationix: is there an irc channel for chrome stuff? it works in firefox, but not chrome [00:23] gawi has joined the channel [00:24] zapnap has joined the channel [00:28] dipser: what does this do: var len = this.length >>> 0; [00:30] dipser: oh ok its cutting the comma parts [00:32] _announcer: Twitter: "Telnet terminal built using HTML5 Canvas/WebSocket/Node.js http://is.gd/fczFr" -- wwr. http://twitter.com/wwr/status/24617911446 [00:34] _announcer: Twitter: "My first module to #nodejs Validator http://github.com/eberfreitas/validator" -- Éber F. Dias. http://twitter.com/eber_freitas/status/24618043054 [00:34] rwaldron has joined the channel [00:34] figital has joined the channel [00:34] boaz has joined the channel [00:35] Eber: Thanks _announcer [00:35] bmizerany has joined the channel [00:35] Validatorian: http.createClient(80, 'www.google.com', true); <-- is this the correct syntax to access https://www.google.com? [00:36] away01 has joined the channel [00:36] _announcer: Twitter: "I'm thinking @ultradodge has created a monster by having me look into node.js" -- Kevin Isom. http://twitter.com/kev_nz/status/24618241795 [00:36] Vekz_: creationix there is a bug in chrome that you cannot xhr local file system stuff [00:37] creationix: I'm pretty sure it's some new security setting [00:37] creationix: I only need it for testing, I just created a plain connect server to serve my static files over http [00:37] Vekz_: heres the bug [00:37] Vekz_: http://code.google.com/p/chromium/issues/detail?id=40787 [00:38] c4milo has joined the channel [00:39] mrdoob has joined the channel [00:39] troymg: hey isaacs, I just ran "npm update" on some of the packages I have installed and got the wraning "WARN bins installing to /usr/local/share/npm/bin, outside PATH". should I add that to the path or just ignore the warning? does it matter? [00:39] isaacs: troymg: either add that folder tothe path, or ignore the error, yes. [00:39] CIA-77: node: 03Herbert Vojčík 07master * rbcad540 10/ src/node.js : [00:39] CIA-77: node: Natives having their own self-contained minimalistic module system. [00:39] CIA-77: node: The main system is built upon this, and is optional, if only natives [00:39] CIA-77: node: are used in application (eg. node-core). [00:39] CIA-77: node: Natives not loaded into own context if NODE_MODULE_CONTEXTS=1. [00:39] CIA-77: node: This have its inner logic, if natives are seen just as lazy-loaded [00:39] CIA-77: node: parts of the core. - http://bit.ly/bQeiXp [00:39] mrdoob has left the channel [00:39] troymg: is there any drawback to it not being in the path? [00:40] creationix: Vekz_: yep, oh well [00:40] isaacs: troymg: npm install spark ; spark app.js Error: spark: unknown command [00:40] isaacs: troymg: like, if you want to install cli programs, then it wont find them [00:41] troymg: aha [00:41] troymg: thanks [00:41] troymg: I'll go ahead and add it to the path then [00:41] bpot has joined the channel [00:41] troymg: thanks again isaacs [00:41] isaacs: troymg: np [00:43] ruf has joined the channel [00:45] jakehow has joined the channel [00:45] _announcer: Twitter: "So happy that the @joindiaspora guys chose MongoDB! Did anyone tell them about node.js or did they forget about it?" -- Eric Florenzano. http://twitter.com/ericflo/status/24618930358 [00:48] mu-hannibal has joined the channel [00:50] away01 has joined the channel [00:51] mtodd_ has joined the channel [00:54] _announcer: Twitter: "Install #nodejs with the mighty #machomebrew http://mxcl.github.com/homebrew/ => brew install node.js" -- Diego Caravana. http://twitter.com/dcaravana/status/24619578866 [00:54] sechrist: Is there a better way to assign an outgoing IP to a client object now? [00:54] sechrist: when I originally had to I had to actually hack up node to do it [00:55] sechrist: (back in like april/may) [00:55] sechrist: (bind an ip on the fb) [00:55] sechrist: fd [00:56] siculars has joined the channel [00:56] killfill: anyone knows if it is possiblee to make express serv js files , compressed? [00:57] sechrist: like minified? [00:57] sechrist: wy [00:57] sechrist: why* [00:57] killfill: yup [00:57] sechrist: why? [00:57] sh1mmer has joined the channel [00:57] sechrist: you're not serving those files to clients [00:57] killfill: well to have the client download less bytes, and obfuscate the code somehow [00:58] Validatorian: alright, I'm at my wits end. $30 to the first person that creates a working version of this: http://gist.github.com/581778 -- You can check out what it's supposed to be like in firebug, on skoreit.com (yes, my code is ugly .. I'm just trying to get this thing working, then I'll prettify) [00:58] creationix: killfill: look at mape's module for connect [00:58] creationix: I think it's on the connect wiki [00:59] sechrist: oh, to like minify outgoing assets and stuff? that makes more sense [00:59] sechrist: minifying code that runs in node itself just sounds like a yak shave [00:59] sirevanhaas has joined the channel [00:59] killfill: sechrist: ah no.. i ment the client js :) [01:00] killfill: ACTION trying to find the wiki [01:00] allengeorge_ has joined the channel [01:01] bxjx has joined the channel [01:02] pengwynn has joined the channel [01:03] killfill: creationix: thanks! [01:03] evanpro has joined the channel [01:03] creationix: killfill: http://wiki.github.com/senchalabs/connect [01:04] killfill: yup, they call it connect-assetmanager [01:04] killfill: ACTION new to node.. [01:04] killfill: its exiting!.. :P [01:04] creationix: :D [01:07] gawi has left the channel [01:07] bmizerany has joined the channel [01:08] mtodd has joined the channel [01:09] dantalizing has joined the channel [01:09] dantalizing has joined the channel [01:10] troymg: hey isaacs: sorry, one last question about NPM (I think). I'm trying to create a simple express app (and have already installed it via npm install express). when I try to execute my app.js file, it bombs out on the line "var app = require('express').createServer();" with "Error: Cannot find module 'express'" [01:11] isaacs: troymg: have you installed express? [01:11] troymg: I assume I have something misconfigured in such a way that node cannot find my npm installed modules, but I'm not sure how to fix it [01:11] troymg: I have [01:11] troymg: "npm install express" ends with "npm ok" [01:12] Yuffster has joined the channel [01:14] troymg: require.paths reports back "/Users/troy/.node_libraries,/usr/local/Cellar/node/0.2.1/lib/node", if that helps [01:14] mtodd has joined the channel [01:15] c4milo1 has joined the channel [01:17] c4milo1 has left the channel [01:17] creationix has left the channel [01:18] mtodd has joined the channel [01:18] technoweenie has joined the channel [01:20] pedrobelo has joined the channel [01:20] matschaffer has joined the channel [01:20] MattJ has joined the channel [01:22] troymg: I tried adding this to the top of the file: require.paths.push('/usr/local/share/npm/bin'); [01:23] troymg: but that doesn't seem to have helped. so now I'm a bit perplex :-/ [01:23] troymg: *perplexed [01:23] _announcer: Twitter: "@jhaynie node.js made me not hate doing server side development any more. Or script development." -- Steve Streza. http://twitter.com/SteveStreza/status/24621824786 [01:24] pquerna: Tim_Smart: the obvious answer is that node.js should join the ASF; But i've not had the heart to pitch ryah on that yet :x [01:24] Tim_Smart: ASF? [01:24] isaacs: troymg: sorry, had to take a phone call [01:24] pquerna: apache software foundation [01:24] isaacs: troymg: SO! get your npm root like this: npm config get root [01:25] overra has joined the channel [01:25] isaacs: troymg: that path needs to be in your require.paths. [01:25] jacobolus has joined the channel [01:25] pengwynn has joined the channel [01:25] isaacs: troymg: you can either push it there manually, or set it in the NODE_PATH env. [01:25] mattikus has joined the channel [01:25] troymg: ahah! [01:25] troymg: thanks so much isaacs, that explains it [01:25] isaacs: troymg: np [01:26] troymg: np about the phone call, I wasn't trying to rush you. just letting you know what things I had tried so you knew I wasn't being lazy about it =) [01:26] isaacs: troymg: no worries [01:26] ysinopsys has joined the channel [01:26] Egbert9e9 has joined the channel [01:26] isaacs: troymg: i'm *very* good at ignoring things ;) [01:27] mattikus has joined the channel [01:27] dgathright has joined the channel [01:28] Tim_Smart: pquerna: So why ASF? [01:30] mikew3c_ has joined the channel [01:31] pquerna: Tim_Smart: it provides the common infrastructure projects need (bug trackers, vc, web hosting, CI/buildbots, etc), along with a legal framework for the code contributions, and a non-profit foundation that can take donations for these services; Along with wider things like helping with conferences and meetups. [01:31] pquerna: Tim_Smart: the ASF also aligns in general with node.js in focusing on server-side technologies with a liberal license and projects that seem to want a strong diverse community [01:31] John9e9 has joined the channel [01:32] Tim_Smart: pquerna: Does that also mean a change in licensing etc? [01:32] pquerna: yes, all ASF projects are ASL 2.0 licensed. [01:32] pquerna: as node is already MITish, it wouldn't be a 'real' change for any consumers of node. [01:32] pquerna: and ryah is already collecting CLAs making that possible. [01:34] matt_c has joined the channel [01:34] prettyrobots has joined the channel [01:34] prettyrobots: Hello, persons. [01:35] Tim_Smart: Hello, robot. [01:36] Tim_Smart: pquerna: So I'm assuming going with ASF we get to keep Github, just change licensing etc. [01:36] elijah-mbp has left the channel [01:36] Tim_Smart: + all that other stuff. [01:36] pquerna: Tim_Smart: no, it would mean dropping github as the primary source repository; Mirrors on github happen automatically (http://github.com/apache/) [01:37] danielqo has joined the channel [01:39] technoweenie: is node hurting for bug trackers, vc, web hosting, ci, CLA? [01:39] Tim_Smart: pquerna: I'm not familiar with mirrors, but can people continue to use Github as it is (the whole fork + pull request idiom) with changes being mirrored over? [01:39] pquerna: Tim_Smart: for all non-committers, yes. [01:39] kaichen has joined the channel [01:39] danielqo has joined the channel [01:39] pquerna: Tim_Smart: committers would have a slightly different workflow [01:39] gthb has joined the channel [01:40] technoweenie: Tim_Smart: more work for the committers to push changes to some apache repo [01:40] hb_ has joined the channel [01:40] Tim_Smart: Well at this stage ryah is the only committer, so it is up to him. [01:40] Tim_Smart: Also Joyent is currently hosting all the other stuff. [01:41] Tim_Smart: Github + Lighthouse integration does seem nice though. [01:41] Tim_Smart: (Until Github improves on issues) [01:42] technoweenie: ha, depends on what you mean by 'improve' [01:43] Tim_Smart: technoweenie: Well the current issues work-flow is a bit to 'weak' currently. [01:43] isaacs: never trust robots. [01:43] nwhite has joined the channel [01:44] Tim_Smart: Things like milestones etc. that people know and love in traditional issue trackers. [01:44] technoweenie: milestones are tricky [01:44] isaacs: yeah... re: node+asf, i don't really know... [01:44] Tim_Smart: Maybe add some Github spice to traditional features. [01:44] technoweenie: once you start adding that shit, it gets to be too much for some people, or not enough for other people [01:44] isaacs: i've had not the greatest experiences with ASF stuff. [01:44] technoweenie: you have half the people demanding the "simple" issue tracker back [01:45] isaacs: seems to be like, just a recipe for more process. all the big-corp bureaucracy, none of the big-corp health insurance benefits. [01:45] technoweenie: and the other half demanding custom state workflows and nested hierarchical dependent milestones with due dates [01:45] jashkenas: technoweenie: aren't y'all working on the issues tracker now? [01:45] technoweenie: jashkenas: no [01:45] jashkenas: oof. [01:45] technoweenie: (i say this as the original lead dev of lighthouse) [01:45] sh1mmer has joined the channel [01:45] technoweenie: jashkenas: did you SEE our epic august ship month? haha [01:45] creationix_ has joined the channel [01:45] prettyrobots: Who came up with 4N? [01:45] creationix_ has left the channel [01:46] jashkenas: I certainly did, and appreciate it greatly. [01:46] prettyrobots: Is there a blog post? [01:46] Tim_Smart: technoweenie: Well, you keep the same (current) workflow viable, so people can use it in just the same way ignoring the new features. [01:46] jashkenas: technoweenie: but if you fix search for issues, I'll be a happy camper -- that's my big beef. [01:46] danielzilla has joined the channel [01:46] technoweenie: jashkenas: yea issues needs some mfn work [01:46] Tim_Smart: But I'm sure that just makes things more complicated. [01:47] jashkenas: technoweenie: hell, I'd volunteer to do it if github took code contributions of that nature ;) [01:47] technoweenie: Tim_Smart: yea. 'hey heres this complex ui, just ignore what you dont need' [01:47] technoweenie: Tim_Smart: we're discussing some stuff though [01:48] technoweenie: pull requests are like milestones [01:48] technoweenie: well, branches [01:48] Tim_Smart: technoweenie: I guess Lighthouse seems to be a viable "upgrade" to the current issue tracker. [01:48] Tim_Smart: Don't re-invent the wheel sorta deal. [01:48] sstephenson: I love the branch -> pull request + issue flow [01:49] Tim_Smart: But not sure how Pull Request will work with Lighthouse [01:49] Tim_Smart: *requests [01:49] zomgbie has joined the channel [01:49] pquerna: isaacs: don't get me wrong, not everything is right for the asf, but node.js does seem to me like something that could fit well. I don't think there is that much bureaucracy; There are only a few required things, and they are generally things a project wants anyways as it grows. node.js is an infra-structural project that many people want to build on in a vendor neutral way, something that should live on beyond ryah's own interest, as bizare as t [01:50] pquerna: (and I don't think right now is even the right time, but anyways) [01:50] bpadalino: asf ? [01:50] isaacs: bpadalino: apache softwrae foundation [01:51] bpadalino: ah gotcha [01:51] jashkenas: pquerna: do you run an ASF project? [01:51] pquerna: yes, i am involved in a couple and an asf member. [01:52] isaacs: pquerna: i dunno. most of the ASF benefits seem kinda meh to me. i mean, yeah, it's good to have a decent issue tracker. but i'm not convinced that apache jira is that. and it's good to have source control stuff, but i think github > svn anyhow... [01:52] bpadalino: is it weird i keep trying to apply node as a local scripting replacement - and trying to use the browser as the GUI with node as the backend ? [01:52] prettyrobots: ASF is where software goes to die. [01:52] isaacs: pquerna: it's like, most of the things that the ASF offers, we've already got better versions of outside of the asf. [01:52] pquerna: prettyrobots: cassandra, dead, I know! [01:52] prettyrobots: Everything is done by comittie. [01:52] technoweenie: oh you have to use jira? fuuuck that [01:53] jashkenas: ++ [01:53] pquerna: you don't have to use jira. [01:53] pquerna: its one of the options [01:53] isaacs: technoweenie: as i understand it, you don't HAVE to do much if you're in the ASF [01:53] isaacs: you can kind of pick and choose. [01:53] langworthy has joined the channel [01:53] isaacs: but it just seems like most of the things to pick and choose from aren't that great anyway. [01:53] prettyrobots: Why does Node.js have to fit with ASF? [01:53] prettyrobots: It seems like every good projects makes bad decisions because they are "supposed" to. [01:54] prettyrobots: Also, ASF projects, there suddenly becomes a fetish for corporate adoption. [01:54] zhesto has joined the channel [01:54] sechrist: when is the next node meetup? [01:54] isaacs: i mean, you can already create an ASF node.js if you want. the license gives you permission to relicense as apache license. [01:54] sechrist: I missed the one at palm :( [01:54] isaacs: but no one's doing that, because there's really no benefit. [01:54] Lerchmo has joined the channel [01:54] prettyrobots: And everyone starts piling on the latest shiney new object so that it is buzzword compliant. [01:55] isaacs: nodejs already has corporate sponsorship from a profitable company that's proven itself as a good community member in other ways. [01:55] prettyrobots: ASF: Cocoon, Maven, Ant, Merlin... [01:55] isaacs: (incidentally, that same company is sponsoring npm development as well) [01:55] _announcer: Twitter: "OH in # Node.js "ASF is where the software goes to." Sing." [af] -- Taylor Weibley. http://twitter.com/themcgruff/status/24624329046 [01:55] technoweenie: isaacs: do you and ryan work on node/npm solely? or do you have internal joyent work that you have to juggle too [01:55] prettyrobots: isaacs: Are you arguing for ASF? [01:55] prettyrobots: Because I'm appalled at the notion. [01:56] isaacs: technoweenie: we also work on various joyent things. but node is important to joyent. [01:56] isaacs: prettyrobots: i'm kind of sitting on the fence arguing against everyone, i guess. [01:56] c4milo: isaacs: do you work for joyent ? [01:56] isaacs: prettyrobots: i don't have anything against the ASF, really. and if an OSS project can use this or that tool or community to solve some problem, i mean, more power to them, right? [01:57] isaacs: CouchDB seems to have benefited from it. [01:57] prettyrobots: Ever ready what Hani Suliman has to say about Apache? [01:57] isaacs: c4milo: yeah, as of last week [01:57] prettyrobots: No, CouchDB has benifitted from being awesome. [01:58] isaacs: prettyrobots: well, that too :) [01:58] prettyrobots: There needs to be a new model without a foundational pettycoat for us to crawl under. [01:58] prettyrobots: Open software created by individuals and their sponsors, Node.js is a new model. [01:58] prettyrobots: It should embrace that. [01:58] isaacs: pquerna: i guess, i see what the ASF gets from node joining their team. i don't really see what node gets from the ASF. not saying there isn't any benefit, maybe a case could be made and if i knew more i'd be convinced. i dunno. [01:58] technoweenie: its not a new model [01:59] prettyrobots: pquerna: You want Node.js to be an ASF project? [01:59] prettyrobots: Oh! Oh! Can Node.js be in the incubator! Oh, boy! Maybe someday it will graduate to a top level project. [01:59] isaacs: i'm not really on board with the ASF mission, i guess. i like anarchy. [01:59] isaacs: and node already has money. [02:00] isaacs: so... yeah. [02:00] pquerna: prettyrobots: i believe node.js is fundamentally a good fit and its position aligns with what makes a 'good' ASF project. I think it is a bad thing to duplicate core infrastructural tasks; I think it is a bad thing for ryah to spend time collecitng CLAs; things like that. [02:00] prettyrobots: isaacs: I second anarchy. Node.js has a highly functioning government right now. [02:00] prettyrobots: You're going to kill it with the same model that killed Java. [02:00] technoweenie: ? [02:00] prettyrobots: Have you ever used Maven? That is the qunitessential Apache project. [02:01] pquerna: i'm sorry you feel that the apache software foundation single handly killed java. [02:01] isaacs: pquerna: collecting CLAs is not somehting ryah spends much time doing, i'm sure. [02:01] _announcer: Twitter: "Playing with node.js. The API for I/O is interesting, surprisingly low-level." -- JeanPhilippe Gariépy. http://twitter.com/gawix/status/24624801958 [02:01] pquerna: prettyrobots: yes, I've used maven; I hate it. [02:01] prettyrobots: pquerna: No, it just turned to shit everything it touched. (Except Tomcat.) [02:01] ThePub has joined the channel [02:01] dipser_ has joined the channel [02:01] pgollucc1 has joined the channel [02:01] prettyrobots: Maven is Apache-ware at its finest. [02:01] bpadalino: harsh conversation .. interesting [02:01] pquerna: and except couchdb. and maybe cassandra. and maybe that web server thing. [02:02] aurynn: what are we whinging about now? [02:02] isaacs: bpadalino: my thoughts exactly. [02:02] prettyrobots: Actually, for the quintcental Apache shit-sandwitch, look at Cocoon. [02:02] prettyrobots: They never met a design pattern they didn't like. [02:02] isaacs: there are FEELINGS here!!! [02:02] isaacs: WOW!! [02:02] technoweenie: does asf dictate design patterns too [02:02] isaacs: srsly, i mean, the ash if sort of *supposed* to make some mistakes, right? [02:02] isaacs: s/ash/asf/ [02:02] SvenDowideit has joined the channel [02:02] technoweenie: sounds serious [02:03] prettyrobots: technoweenie: No, but it is the outcome of the design by popular vote way. [02:03] isaacs: like, a few winners have come out of it, and that's great. [02:03] prettyrobots: A few winners have come out of the efforts of the developers. [02:03] prettyrobots: They succeed despite the ASF. [02:03] pquerna: and a few bad ones have, just like there are a million bad projects on github. [02:03] technoweenie: i'm not sure the asf can be blamed for killing all projects it touches [02:03] pquerna: I guess i'm not understanding your dislike of a few specific asf projects with the foundation. [02:03] prettyrobots: technoweenie: An Apache project gets focused on bicycle sheds and won't stop. [02:04] bradleymeck has joined the channel [02:04] cloudhead has joined the channel [02:04] prettyrobots: pquerna: Most projects. The Apache Commons nonsense. [02:04] bradleymeck: hola [02:04] _announcer: Twitter: "My new #nodejs and #raphaeljs stickers look great! I'll have more at #sydjs tonight if you want some! http://flic.kr/p/8BmBpG" -- Lachlan Hardy. http://twitter.com/lachlanhardy/status/24625082415 [02:05] prettyrobots: Here is typcial Apache-ware: [02:05] prettyrobots: http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html [02:05] prettyrobots: RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory [02:05] c4milo: funny [02:06] technoweenie: so the same could happen to node.js? [02:06] twilliams has joined the channel [02:06] prettyrobots: technoweenie: Easy. [02:06] technoweenie: dear lord [02:06] aurynn: You can write stupid software in any language. [02:06] prettyrobots: aurynn: Exactly. [02:06] prettyrobots: You can write stupid software in Node.js, if you're small, lean, mean government is overrun by a bureaucracy. [02:07] lachlanhardy has joined the channel [02:08] prettyrobots: ASF is like the STL. [02:08] prettyrobots: People are going to suggest it because it is something to suggest. [02:08] prettyrobots: Because it hasn't happened yet. [02:08] jesusabdullah: huh? [02:08] prettyrobots: Because other people do it. [02:08] technoweenie: aids hasn't happened yet either [02:08] jesusabdullah: RequestSpecificProcessorFactoryFactory? [02:08] jesusabdullah: What? [02:08] prettyrobots: Why doesn't Node.js use the Standard Template Library. [02:08] prettyrobots: ? [02:09] prettyrobots: Because Ryan wants to avoid C++ nausea. [02:09] c4milo: yes [02:09] prettyrobots: But, there are a lot of people who believe that it makes software better. [02:09] prettyrobots: But, really, it is just a huge dependency. [02:09] prettyrobots: ASF is a huge dependency. [02:10] inimino: ACTION waits for someone to mention CommonJS and really stir the pot [02:10] jesusabdullah: What's ASF? [02:10] jesusabdullah: Oh [02:10] jesusabdullah: Apache [02:10] jashkenas: CommonJS! [02:10] prettyrobots: Whatever decision making process has brought Node.js this far, it works. [02:10] inimino: nooo! [02:10] jesusabdullah: Dawg require() was a pretty good idea [02:11] Eber: nwhite: hey man, are you around? [02:11] nwhite: yup [02:11] Eber: nwhite: check it out: http://github.com/eberfreitas/validator [02:11] pgollucc1 has joined the channel [02:11] SubStack: jesusabdullah: but node doesn't use the same require() [02:11] prettyrobots: Best part is ryah and isaacs and the like get to be spooky ninja masters who through their will and sheer charisma created Node.js. [02:12] prettyrobots: If you go ASF, ASF goes to great length to strip ego from software. [02:12] prettyrobots: I believe ego is an important component of software. [02:12] jesusabdullah: SubStack: Orly? Elaborate? [02:12] jesusabdullah: SubStack: I thought it worked to-spec [02:12] isaacs: prettyrobots: i think that software is necessarily egoful. it takes on the personality of its creator(s) [02:12] prettyrobots: Absolutely. [02:12] isaacs: node is very ryan dahl-ish [02:13] prettyrobots: ASF is a coporate surrogate, from the 90's, when open source needed a corporate surrogate ASF or FSF. [02:13] SubStack: what does asf provide? [02:13] jashkenas: Not just software, issacs. Every project worth doing needs a generalissimo -- where the buck stops. [02:13] SubStack: there's github, just fork it [02:13] aurynn: All projects require a BDFL. [02:13] prettyrobots: But if Node.js can survive without a foundation, it will be a political evolution of open source, and good for us little guys. [02:13] prettyrobots: And our egos. [02:14] jashkenas: We joked about that at JSConf -- just elect Ryah dictator for life of CommonJS, and be done with the whole bit. Standards, done. [02:14] prettyrobots: SubStack: ASF does not provide any tools. No. [02:14] pquerna: prettyrobots: i see little point of arguing with you about the purpose of the asf. calling it a corporate surrogate is frankly offensive. [02:14] technoweenie: he's kinda gone off the deep end [02:14] prettyrobots: Okay. So then the accusation stands because you cannot refute it. [02:14] prettyrobots: ACTION Reaches for trophy. [02:15] dnolen has joined the channel [02:15] SubStack: forks are awesome [02:15] bradleymeck: ACTION ponders many software descisions [02:16] prettyrobots: technoweenie: No. ASF has always been about their license and their committees and their incubators. The thought of Node.js falling into that morass is worthy of debate. [02:16] prettyrobots: And so, I'm arguing against. [02:16] aurynn: ACTION ponders deeply held design questions. [02:16] zith_: what is ASF? [02:17] melpad has joined the channel [02:17] jesusabdullah: Apache Software Foundation [02:17] prettyrobots: zith_: The borg in the bike shed business. [02:17] bradleymeck: ACTION ponders the benefits of coroutines when they hide possible synchronization issues [02:17] egaudet has joined the channel [02:17] aurynn: ACTION decides that concurrency is hard, man [02:17] pquerna: shopping, let us go. [02:17] jimmybaker has joined the channel [02:18] jesusabdullah: Hell yeah [02:18] bradleymeck: sweet ill get my shoes [02:18] zith_: some open source projects have benevolent (or not) dictators as leaders, some open source projects have foundations [02:18] zith_: it's just the way it is [02:18] aurynn: What's the approved metaphor for throwing errors? throw, or emitting the error event? [02:18] prettyrobots: I prefer the current leadership. [02:18] rwhitby: zith_: +1 [02:19] prettyrobots: zith_: Yes. I prefer the current leadership. They are swell. [02:19] mirko_ has joined the channel [02:19] zith_: seems like it [02:19] jesusabdullah: I don't care too much as long as the project's good and not irritating [02:19] rwhitby: ACTION benevolently dictates #webos-internals and is currently looking into how node.js is implemented on webOS [02:19] Anti-X: if you design by committee, you're bound to end up with mediocre decisions and a mediocre end product, simply because they have had to compromise. [02:20] jesusabdullah: Unfortunately for Apache I find their software either not particularly useful, irritating or, well, just completely off my radar [02:20] zith_: just wait until they take over the world, become billionaires and stop listening to people on irc [02:20] zith_: you'll not think they are so swell then, i promise you [02:20] jesusabdullah: Not necessarily [02:20] zapnap has joined the channel [02:20] jesusabdullah: Look at Apple [02:20] prettyrobots: zith_: Like who? Larry Wall? [02:20] jesusabdullah: I mean, not that Apple has attained perfection [02:21] jesusabdullah: but Jobs is a sort of dictator [02:21] jesusabdullah: and some argue that it's done Apple good [02:21] prettyrobots: jesusabdullah: Not useful, irritaging, etc. Yes. That is Apache-ware. [02:21] pgriess has joined the channel [02:21] zith_: prettyrobots: i guess [02:21] prettyrobots: It is the Apache way that makes their software so corporate. [02:21] zith_: i was mostly joking :) [02:21] prettyrobots: zith_: Programmers keep it real. [02:22] Anti-X: if python didn't have GvR (to say NO! sometimes), i doubt it would have become awesome enough to stand out [02:23] prettyrobots: Yeah. The thing about software is: [02:23] zith_: or linux and linus, or gnu and stallman, or openbsd and theo, etc, etc [02:23] prettyrobots: The dictator is bound by the actual software. [02:23] SubStack: python? awesome? HAHAHAHA [02:23] prettyrobots: Ryan can't wake up tomorrow and say, no more UNIX, we run only on Windows. [02:23] _o has joined the channel [02:23] prettyrobots: Who's going to take it there. [02:23] pquerna: you should ask the python software foundation about their internals then. GvR is a dictator, but running a foundation is still non-trivial. [02:23] prettyrobots: ? [02:24] technoweenie has left the channel [02:24] SubStack: Anti-X: the problem is that GVR says no to stupid shit like real lambdas [02:25] SubStack: and approves ridiculous stuff like decorators [02:25] prettyrobots: So, the benevolant dictator model, it is more of a person who makes the bike shed decisons and says no feature creep. [02:25] SubStack: s/stupid/actually useful/ [02:25] mikeal has joined the channel [02:25] prettyrobots: ACTION Happy to have skipped over Python. [02:26] zith_: i did some scientific stuff in python [02:26] zith_: it was alright [02:26] Anti-X: SubStack, he had his reasons for both those things, which are well founded... sure, some may disagree wholeheartedly, but that doesn't make him less right [02:26] SubStack: it's crazy too because GVR claims to have been inspired by haskell at least with comprehensions [02:26] prettyrobots: SubStack: It is an OO laguage. that is how they like their language to be. [02:27] SubStack: comprehensions aren't so common in haskell anyways [02:27] bradleymeck: decorators : sometimes wrapping functions doesnt make sense... [02:27] ThePub has joined the channel [02:28] bradleymeck: then again i think many people in here are biased against languages that hide how they operate [02:29] EyePulp has joined the channel [02:31] ThePub: run(*brainlink); should be sufficient to do anything I want. Whatever happens behind the scenes is immaterial. [02:31] jamescarr_ has joined the channel [02:31] jacobolus has joined the channel [02:34] Anti-X: canvas(brain.stdout) [02:36] SubStack: I do wish javascript had star syntax for array flattening [02:36] SubStack: instead of having to mix bind and apply [02:37] brianmario has joined the channel [02:37] Yuffster has joined the channel [02:39] aurynn: Maybe in ES5. [02:39] _announcer: Twitter: "Getting some quality Node.js time. If you'd have asked me 5 years ago if I'd be writing srvr side code in JS & enjoying it I'd have laughed" -- John Yerhot. http://twitter.com/yerhot/status/24627855042 [02:39] bradleymeck: idk, how often do you flatten arrays? [02:40] _announcer: Twitter: "Is there something that allows me to write Node.js code in Coffeescript? Please say yes. Really like Node but prefer Coffee syntax." -- jasoncwarner. http://twitter.com/jasoncwarner/status/24627872332 [02:40] SubStack: bradleymeck: well if it were easier people would do it more [02:40] SubStack: like how python people must think about lambdas :p [02:40] bradleymeck: its a really expensive operation [02:41] _announcer: Twitter: "Push state and Node.js http://bennolan.com/2010/08/13/pushstate-and-nodejs.html" -- Obi-Wan. http://twitter.com/old_ben/status/24627950864 [02:41] twoism has joined the channel [02:42] bradleymeck: if it werent an operation of o(log2n) i would be excited though when i had to flatten crap [02:42] bradleymeck: s/log2n/logn [02:43] _announcer: Twitter: "I can't wait to get some spare times so I can play again w/ node.js, mongodb, redis etc... craving to !" -- Jean-Pierre Pommet. http://twitter.com/jppommet/status/24628112716 [02:44] dgathright has joined the channel [02:44] jesusabdullah: Haha [02:44] jesusabdullah: !tweet @jasoncwarner, it's called coffeescript :v [02:44] admc has joined the channel [02:45] bradleymeck: im waiting for someone to make a latte script which an overly verbose js [02:45] jesusabdullah: bradleymeck: scipy stores n-d arrays as 1-d arrays, and just stores a tuple of "step sizes" [02:46] jesusabdullah: so, like, if you data is 3x3, the array is 1x9 but has a "step size" of 3 [02:46] jesusabdullah: so every 4th value is in the next row [02:46] jesusabdullah: it doesn't actually move anything [02:46] steadicat has joined the channel [02:47] jesusabdullah: I wonder how you would make javascript more verbose [02:47] jesusabdullah: Maybe you could type "do" and "done" instead of { and } [02:47] bradleymeck: scipy? also that depends on knowing that your array dimensions are segmented on a per index basis [02:47] jesusabdullah: It does indeed. [02:47] jesusabdullah: by scipy I mean numpy [02:48] jesusabdullah: and it's a python library of numerical primitives [02:48] jesusabdullah: interfaces with lapack, blas, that stuff [02:48] jesusabdullah: Pretty nice imo [02:48] jesusabdullah: One of the reasons to use python :) [02:48] mattikus has joined the channel [02:49] jashkenas: jesusabdullah: In many ways, I think that the killed-off ECMAScript 4 was a more verbose JavaScript. Also, look at ActionScript these days. [02:50] bradleymeck: define variable x as function with arguments(y, z) that does: define variable f as y + z, and define f as the return value of bar(f), and returns f. [02:50] jashkenas: bar(f) indeed. [02:50] prettyrobots has left the channel [02:50] bpadalino: jesusabdullah: so i've got that interface to fftw from node .. and i was thinking how i could use it effectively .. and i thought about being able to do simple analysis of samplesets with visualization in a browser .. does it make sense to use node as a local app pushing data to the browser for visualization/interaction? [02:50] jesusabdullah: eww, actionscript [02:51] jesusabdullah: Looked at it once [02:51] jesusabdullah: :S [02:51] _announcer: Twitter: "@ Gawix no worse for sure. Even the network layer is really cool. # Node.js" [fr] -- Pascal Deschênes. http://twitter.com/pdeschen/status/24628702150 [02:51] bradleymeck: if i could find a way to reconcile switch statement fallthroughs and performance with coffeescript id probably move to it, but for now, eh [02:51] sh1mmer has joined the channel [02:51] Anti-X: irishcoffeescript, like coffeescript but with lots of booze [02:51] jesusabdullah: bpadalino: Hmm [02:51] jashkenas: ahh, here's a perfect case, first as library I looked at: http://github.com/mikechambers/as3corelib/blob/master/src/com/adobe/utils/StringUtil.as [02:51] bradleymeck: anti-x randomly adds sh to strings [02:51] jesusabdullah: bpadalino: Would you be trying to push this out in real time? [02:51] bpadalino: jesusabdullah: no [02:52] jesusabdullah: Yeah, that's my only thinking--that would potentially be nuts [02:52] bpadalino: think matlab .. you have sample sets .. just want to do ffts .. [02:52] jashkenas: bradleymeck: performance? switch fallthroughs? [02:52] bpadalino: maybe plot subsections [02:52] bradleymeck: i can get performance gains and fall through cases in switch statements [02:52] jesusabdullah: I think that's a pretty good way to do it, yeah [02:52] bpadalino: bring up constellation points or filter/decimate/correlate [02:52] jesusabdullah: At least to show it off [02:52] jashkenas: bradleymeck: I do want to revisit the switch issue, I recently learned that JS switch on all objects is a more widely supported browser phenomenon than I originally thought. [02:52] bpadalino: hrm .. [02:52] jashkenas: I think even IE6 supports it fine. [02:53] jesusabdullah: I'm not sure how I feel about using the browser as the primary interface for local apps, though [02:53] bradleymeck: it does [02:53] jesusabdullah: Like Sage [02:53] jesusabdullah: really not sure what to make of Sage [02:53] Anti-X: just because everybody else does it? if everybody else jumped off a bridge, etc... [02:53] bradleymeck: ie6 though does all property lookups with a linked list /shuder [02:53] _announcer: Twitter: "@heroku How long is the average wait to get into the node.js experiment?" -- Robby Colvin. http://twitter.com/geetarista/status/24628870153 [02:53] bpadalino: jesusabdullah: Sage ? [02:53] jashkenas: bradleymeck: any edge cases that you're still aware of with JS switches? [02:53] jesusabdullah: bpadalino: http://sagemath.org/ [02:54] _announcer: Twitter: "Tying something "@ koichik: HTML5 Canvas + WebSocket + Node.js a Telnet" jsTerm "http://jsterm.com/ source? "" [ja] -- SUGIMORI Takayuki. http://twitter.com/sugimori/status/24628933112 [02:54] bpadalino: interesting .. [02:54] jesusabdullah: bpadalino: I also think that the scientific web interfaces I've seen kinda suck though [02:54] bradleymeck: various ones i come across around every 3 days, performance of regexps, i could dig some up if you want [02:54] jesusabdullah: Ooh, this could be a cool tool for visualizing vibration maybe [02:54] bpadalino: it seems trying to handle large datasets is the difficult problem .. [02:54] jesusabdullah: Like, if you can use a web interface to specify some kinda geometry [02:55] jesusabdullah: and get back results [02:55] jesusabdullah: but idk if that's actually something an fft would help with [02:55] jesusabdullah: FEM might be a better fit [02:55] bradleymeck: also switch(String(x)) === stupid speed vs if or switch(Number(x)) // Number one is odd to be soo much slower [02:55] bpadalino: i think the whole idea is localhost httpd for applications .. [02:55] bpadalino: does it make sense? [02:55] atmos has joined the channel [02:56] bpadalino: node has a lot of talk for serverside js .. but if you know js, your visualization is the browser and the DOM .. [02:56] bpadalino: no need to reinvent how to display stuff [02:56] jesusabdullah: bpadalino: Yeah, that makes sense [02:56] jesusabdullah: Actually, that could be surprisingly awesome [02:57] jesusabdullah: It'd also be cool in that people could write their own interfaces [02:57] jesusabdullah: HMM [02:57] jashkenas: bradleymeck: because it uses JS labels like gotos, right? [02:57] bradleymeck: if we get a canvas api on opengl i could finish up some window generation stuff pretty easy [02:57] bpadalino: i am very new to js .. i'll have to figure this all out and give it a shot sometime .. [02:58] bpadalino: webGL is supposed to help with that [02:58] bradleymeck: jashkenas, it looks like string lookups are precomputed hash to jump tables. but kinda yea [02:58] jesusabdullah: bpadalino: Do you have a working set of fftw bindings on the internets? [02:58] bpadalino: yea [02:58] jesusabdullah: Link? [02:59] bpadalino: http://github.com/bpadalino/node_fftw [02:59] jesusabdullah: Nice! [02:59] jesusabdullah: ACTION follows [02:59] jesusabdullah: Someday I might even find an excuse to use it! [02:59] bpadalino: you design() then execute() [02:59] jesusabdullah: ACTION hopes [02:59] bpadalino: it seems to crap out on me around 256k points [02:59] bpadalino: haven't gone in to see what's happening [03:00] bpadalino: i should actually push my changes i made to the directory structure .. [03:00] jesusabdullah: *nod* [03:00] jesusabdullah: That'd be good ;) [03:01] Eber has joined the channel [03:01] _announcer: Twitter: "First Utah Web Conference: http://bit.ly/dpVPLz, I'll be presenting on end-to-end JavaScript (CommonJS modules, transport, Dojo, NodeJS)" -- kriszyp. http://twitter.com/kriszyp/status/24629506242 [03:01] jesusabdullah: I'd love to see someone make node bindings to something like the gsl [03:02] jesusabdullah: or, well, any usable basic science/maths stuff [03:02] _announcer: Twitter: "@jasoncwarner yup: http://www.google.com/search?q=node.js+coffeescript&ie=UTF-8&oe=UTF-8&hl=en" -- Aaron McCall. http://twitter.com/aaronmccall/status/24629568293 [03:02] mjr_ has joined the channel [03:02] bpadalino: the most difficult part is converting the arrays into C arrays [03:02] bpadalino: and back [03:02] jesusabdullah: That's my thinking [03:03] jesusabdullah: Don't know C yet :( [03:03] bradleymeck: its not too bad with v8, but you need to know the v8 externalarray api ... ugggggg [03:03] jesusabdullah: D: [03:04] bpadalino: i tried using externalarray and it didn't like me [03:04] bpadalino: it may only be used for specific things .. [03:04] bpadalino: and it didn't like that i was just arbitrarily using them [03:04] bradleymeck: yea [03:05] bradleymeck: External or Object.setInternalFieldToPointer [03:05] jesusabdullah: :S [03:05] hsuh has joined the channel [03:05] jesusabdullah: Is there a good place to read up on this? [03:06] bradleymeck: google v8.h, get reading... took a good day of my life, but now i know, and knowing is half the battle! *G.I.Node* [03:06] bpadalino: heh, nice [03:06] jesusabdullah: That sounds pretty miserable [03:06] jesusabdullah: but okay [03:06] bradleymeck: s'about the only place like half of it is documented [03:07] Eber: guys, if I'm at the constructor of a function, can I set prototype atributes from there? [03:07] bradleymeck: oh, might want to read the embedders guide to v8 if you havent before that [03:07] bradleymeck: Eber, define at [03:07] bpadalino: embedders guide to v8 ? [03:07] Eber: bradleymeck: function A() { this.prototype.variable = 'A'; } [03:08] bradleymeck: http://code.google.com/apis/v8/embed.html [03:08] pedrobelo has joined the channel [03:08] bradleymeck: Eber, not like that, but then again why are you changing the prototype values (that would change all the prototype values for all instances of A) [03:09] bradleymeck: function A() {A.prototype.variable = 'A'} [03:09] Eber: bradleymeck: I was thinking more about defenition, since I'm at the contructor... some default values... [got you example!] [03:09] Eber: bradleymeck: so that's how you do it, right? [03:10] bradleymeck: generally just function A(){};A.prototype.variable = 'A' [03:10] bpadalino: bradleymeck: so if i have a Local .. is there a way i can get the internal field pointer and the field count ? [03:10] bradleymeck: otherwise you set it every single time you create an A [03:10] bradleymeck: bpadalino, not unless it is an externalarray (in which case you need to track those yourself) [03:11] Eber: bradleymeck: nice, thanks! [03:11] SubStack: this.__proto__ = Hash.copy(this.__proto__); // >_< [03:11] SubStack: then you can add items to the prototype on the fly [03:11] bpadalino: it seems externalarray isn't quite what i want since: [03:11] c4milo has joined the channel [03:11] bpadalino: * Note: The embedding program still owns the data and needs to ensure that [03:11] bpadalino: * the backing store is preserved while V8 has a reference. [03:12] SubStack: I had a very good reason for that one time [03:12] visnup has joined the channel [03:12] bradleymeck: bpadalino, whats wrong with that? [03:12] jesusabdullah: bpadalino: Did you know that you can get a waf script to run another wscript in another directory? [03:13] sambao21 has joined the channel [03:13] bpadalino: jesusabdullah: i am completely unaware of anything when it comes to this stuff [03:13] bpadalino: this is all new territory [03:13] jesusabdullah: bpadalino: Ah! [03:13] jesusabdullah: bpadalino: I ran across it while cruising through the waf book [03:13] jesusabdullah: bpadalino: It's totally doable [03:13] jesusabdullah: I might fork your repo and mess with it tomorrow if I have time [03:13] jesusabdullah: :) [03:14] _announcer: Twitter: "@kriszyp Will your preso be recorded? Or will you be sharing slides? I'm curious what's happening in Node.js land with dojo" -- Luke Smith. http://twitter.com/ls_n/status/24630469402 [03:14] bpadalino: jesusabdullah: please do so .. [03:14] bpadalino: bradleymeck: i'll take a gander at this .. [03:14] bpadalino: iterating through it a pain [03:16] phiggins: dojo and node is secret [03:16] phiggins: shhh [03:16] rauchg_ has joined the channel [03:16] bradleymeck: bpadalino, maybe but just for ... i+=sizeof(x) [03:17] mattikus has joined the channel [03:18] bpadalino: oh i remember now why i didn't use this .. [03:18] bpadalino: there is no kExternalDoubleArray [03:18] bpadalino: just FloatArray [03:19] bpadalino: oh, and this: FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() JSArray is not supported [03:19] Guest72938 has joined the channel [03:20] bradleymeck: well you cant template an Array either [03:20] Guest72938: anyone want to test my app? [03:20] bradleymeck: if you want to strictly extend Array and not make your own type, you are kinda boned [03:20] bpadalino: what would it look like to the JS when it comes back ? [03:21] bradleymeck: an object [03:21] ivong has joined the channel [03:21] bpadalino: how would i get the data back out ? [03:22] timemachine3030: how do I modify the Node.js include path? [03:22] wakawakafoobar: http://wakawakafoobar.info:3030/ [03:23] wakawakafoobar: feedback much appreciated, as well as ideas [03:23] bradleymeck: internalfields or if you use externalarray, just the normal way [03:23] bpadalino: from the JS side of things ? [03:23] MikhX has joined the channel [03:23] bradleymeck: timemachine3030, easiest way is request.paths.unshift [03:23] timemachine3030: bradleymeck, thanks [03:24] bpadalino: hrmm .. [03:24] bradleymeck: from js depends on how you make it externalarrays appear like normal arrays when indexing on a number, objects using internalfields need to set up interceptors [03:24] bpadalino: it looks like it's a map of strings with a number to the data value .. [03:25] bpadalino: unfortunately they're floats and not doubles .. which is kind of a bummer .. [03:25] bpadalino: i guess i could link against fftw3f and do all floats instead .. [03:25] bpadalino: yeah, that's a good idea [03:26] bradleymeck: remember, all JS numbers are 64bit floats max [03:26] bpadalino: hrmm .. right, but i think these are being interpreted as 32-bit float [03:28] bradleymeck: ewww [03:28] bradleymeck: is there a ticket about that to the v8 team? [03:29] bpadalino: not sure [03:30] bpadalino: hrmmmmmm [03:31] bpadalino: i guess because of the way it returns the data, it's not necessarily any better .. i'd have to iterate through either way .. might as well do it in C instead of JS .. [03:31] bradleymeck: i wonder if nodes buffers are backed by external arrays [03:32] prettyrobots has joined the channel [03:33] mikeal has joined the channel [03:35] melpad has joined the channel [03:36] wakawakafoobar: hey substack, ive built an app using dnode, http://wakawakafoobar.info:3030/ [03:36] wakawakafoobar: dnode is awesome, im really liking it [03:37] hayeah has joined the channel [03:37] aconran_ has joined the channel [03:39] Eber: Guys, quick question... If I have function A (foo, bar) { A.proto.foo = foo, A.proto.bar = bar; } how can I extend a function B to have the same constructor? Is it possible? [03:40] alcuadrado has joined the channel [03:40] chilts: wakawakafoobar: your map thing is aces (though a little bit crazy) [03:40] alcuadrado: has anyone read the lastests ajaxian article? I just blown my mind! [03:41] cloudhead has joined the channel [03:42] wakawakafoobar: chilts: thanks! im thinking eventually some kind of massive realtime risk game [03:43] chilts: heh, cool [03:43] chilts: I just zoomed in on some farm in Canada [03:43] chilts: ACTION is Taggart [03:44] Anti-X: looking for some sheep action? [03:44] chilts: we're in Berlin now [03:44] chilts: no sheep there [03:44] Eber: bradleymeck: if I want to inherit something from another object, it must be already initialized, always? [03:44] chilts: anyway, we have plenty in New Zealand :) [03:44] wakawakafoobar: nice [03:44] wakawakafoobar: im zia [03:45] wakawakafoobar: i need to come up with a better list of names, or just implement user based names [03:46] bradleymeck: Eber not exactly, "inherit" is a bit off for JS, chaining prototypes is how its done B.prototype = new A; B.prototype.newproperty = ... If you want constructors called you must do so explicitly, and i want to know why you are still setting prototype properties in a constructor. [03:46] zapnap has joined the channel [03:46] Eber: bradleymeck: I'm just trying to write about JS to PHP programmers... I'm a PHP programmer :P [03:47] the_giver2 has joined the channel [03:48] alcuadrado: Eber, I'm also a PHP programmer, and it may seem really odd how to manage inheritance in JS first... but then you'll see how everything works and that will be so cool that you would not want to code php anymore :P [03:48] Eber: alcuadrado: I'm already feeling that :P [03:48] bradleymeck: ah, in JS you declare prototypes as the be all end all default on the Function's prototype. Doing that inside of a function would perform that operation every time every single time you used that function [03:49] bradleymeck: so when you say B.prototype = new A; you are really saying "B's defaults should be the same as that of a new A(); and its prototype chain should include A as an instanceof possiblity" [03:49] jashkenas: bradleymeck: I think I have switch statements licked. Want to gist me one you think would be a good test case? [03:50] alcuadrado: Eber, this answer in stackoverlof really helped me to understand it: http://stackoverflow.com/questions/1595611/how-to-properly-create-a-custom-object-in-javascript/1598077#1598077 [03:50] Eber: bradleymeck: Got it. I guess I'm finally understanding prototype based inheritance... [03:50] bradleymeck: so if you perform operations in new A(); that must be done on a per object basis (using the this variable) you need to call A inside of B [03:50] alcuadrado: and also read the inheritance model in google clousure library [03:50] bradleymeck: jashkenas, sec ill dig one up [03:50] jashkenas: thanks. [03:51] bradleymeck: mind if i really stupidify a real use case? [03:51] Eber: alcuadrado: thanks for pointing that out :) [03:51] Eber: I'll read it for sure... [03:51] alcuadrado: also, this snippet I made helped me a lot: http://gist.github.com/578573 [03:52] alcuadrado: you should execute it in firefox with firebug or chrome [03:52] jashkenas: bradleymeck: sure, whatever. I think I have switch statements as expressions ... with multiple clauses (fallthrough) ... [03:52] Eber: so if you perform operations in new A(); that must be done on a per object basis (using the this variable) you need to call A inside of B // I read this three times and couldn't understand very well :( [03:52] jashkenas: And condition-less switches (first truthy case wins.) [03:53] jesusabdullah: jashkenas: Adding switch statements to coffeescript? [03:53] bradleymeck: Eber if you use the "this" variable at all in a constructor your subconstructors must call that original constructor if they wish to duplicate that behavior [03:53] alcuadrado: Eber, when you declare A or B, you are declaring the __contruct() equivalent in javascript [03:54] JimBastard has joined the channel [03:54] alcuadrado: when you do "new A()" you are creating an object which prototype is A.prototype, and calling A() with this setted to that object [03:54] Eber: bradleymeck: Got it! Totally I guess :) [03:55] jashkenas: jesusabdullah: in a sense. we've always had them, but I used to compile them into JS if/else chains, because I was under the mistaken impression that there were still browsers out there that couldn't handle arbitrary objects as case labels .... but it turns out that I think the last browser to do that was IE5. [03:55] Eber: Maybe I'll submit the post I'm writing here first, so you guys can help me with improvements... [03:55] jesusabdullah: jashkenas: I see. Are js cases faster than if/thens? [03:55] alcuadrado: eber, never doubt, it'll be a pleasure to help you [03:55] creationix has joined the channel [03:56] alcuadrado: as I'm also in the journey from php to JS [03:56] jashkenas: they can be for large switch statements, yes, but can also be slower for short ones ... it depends on the browser. [03:56] jesusabdullah: Huh [03:56] jesusabdullah: I guess I'm wondering why you're changing it [03:56] jashkenas: looks like there's already a jsperf for it. [03:56] Eber: alcuadrado: awesome :) I must say, the JS community looks a lot more friendly than the PHP community... [03:57] jashkenas: Because the semantics are identical, and it's better to transform it into the closer JS construct, if it's going to not be broken cross-browser. [03:57] alcuadrado: the node.js community is GREAT, but not all the JS communities out there... [03:57] jesusabdullah: Yeah, the node community is pretty awesome [03:57] jesusabdullah: so far, at least [03:57] jesusabdullah: :) [03:57] alcuadrado: I only have a regret [03:57] _announcer: Twitter: "Video: Ryan Dahl - Intro to NodeJS: http://is.gd/fcMtR #nodejs" -- Lou Gonzalez. http://twitter.com/kuroi_kenshi/status/24633496607 [03:57] JimBastard: having boneitcus? [03:57] jesusabdullah: Is it that you have bo----- [03:58] JimBastard: -D [03:58] jesusabdullah: ^5 JimBastard [03:58] alcuadrado: nobody answered me about this "has anyone read the lastests ajaxian article? I just blown my mind!" hahha [03:58] jesusabdullah: Oh [03:58] jesusabdullah: I've never heard of ajaxian [03:58] jesusabdullah: Link and I will read [03:58] alcuadrado: really? ajaxian? it's a well known site [03:58] alcuadrado: http://ajaxian.com/archives/pushstate-node-js-on-the-server-side [03:58] jashkenas: jesusabdullah: here's a little switch/vs/if/else bench that doesnt' show much difference... http://jsperf.com/switch-case-vs-if-else/3 [03:59] alcuadrado: ignore the bits about pushState, that's not necessary at all [03:59] JimBastard: http://boneitis.ytmnd.com/ [04:00] alcuadrado: WTF is boneitis? [04:01] Tim_Smart: jashkenas: http://jsperf.com/switch-vs-if-else [04:01] jesusabdullah: alcuadrado: It's from a Futurama episode [04:01] alcuadrado: ohh I haven't seen TV in years :P [04:01] jesusabdullah: alcuadrado: http://futurama.wikia.com/wiki/Future_Stock [04:02] jesusabdullah: It's pretty good [04:02] JimBastard: i think my friend got it once too [04:02] jesusabdullah: jashkenas: I like the object one :D [04:02] alcuadrado: yeah, futurama was great (: [04:02] jashkenas: Tim_Smart: thanks. [04:02] JimBastard: alcuadrado: there is a new futurama season out this year [04:02] JimBastard: brand new [04:02] JimBastard: they got renewed for two seasons [04:02] jashkenas: Tim_Smart: add a string comparison test to that... [04:02] alcuadrado: yeah, I know, but I have lost my adiction to TV :P [04:03] Tim_Smart: jashkenas: switch is faster in v8 than the if-else [04:04] jashkenas: Tim_Smart: if-else is faster in safari by 9%. [04:05] _numbers: alcuadrado: ya i havent watched tv in 6 yrs [04:05] jesusabdullah: nine percent? Oh nelly [04:06] bradleymeck: if else compares on strings? [04:06] Tim_Smart: jashkenas: OK. Amended. [04:06] tahu has joined the channel [04:07] bradleymeck: benched switches on v8 then came up with this evil http://github.com/bmeck/node-jsonparser/blob/master/jsonparser.js , was faster than if else on my speed tests by some length [04:07] jesusabdullah: alcuadrado: That's a pretty cool article [04:08] bradleymeck: could be better probably with regexp but starting a regexp match is soo expensive :( [04:08] alcuadrado: jesusabdullah, I think that if that kind of technology where available it'll chage web development a looot [04:09] jesusabdullah: Client-side apps? Maybe :) [04:10] alcuadrado: more than client-side apps [04:10] alcuadrado: the way the client and the server interacts [04:11] Tim_Smart: Heh http://arewefastyet.com/ [04:11] Tim_Smart: If Mozilla keep going the way they are... [04:12] bradleymeck: http://gist.github.com/581949 jashkenas not the most real example but it has fallthrough default break and fallthrough with pre fall break [04:12] bradleymeck: parses no-whitespace whole number arrays [04:13] alcuadrado: Tim_Smart, that's beacause of the integration of jaegger monkey into tracemonkey... but from now it'll get much more diffucult for them to get faster [04:14] Tim_Smart: alcuadrado: On sunspider tests the integrated branch is slower than the JIT only branch... [04:14] jashkenas: bradleymeck: that seems like a really good example of a misuse of a switch statement ;) [04:14] jashkenas: would be much clearer as separate if blocks, that return from the function. [04:14] jashkenas: don't you think? [04:14] alcuadrado: Tim_Smart, yeah, that's true hahaha [04:15] bradleymeck: maybe, but i dont code purely for clear [04:15] jesusabdullah: alcuadrado: Have you played with dnode at all? [04:15] bradleymeck: i can write up another one with simple state machine issue i guess for clients doing junk [04:16] jesusabdullah: alcuadrado: It blurs the line between client and server pretty well [04:16] jashkenas: bradleymeck: I'll push out the release in a minute, and you can play with them on Try CoffeeScript then, if you feel like it. [04:16] alcuadrado: jesusabdullah, not much :( I'm just FUCKING stucked with a huge freelance php project [04:16] jesusabdullah: Joyous :P [04:16] jesusabdullah: What's the project, if you don't mind me asking? [04:17] mikeal has joined the channel [04:17] bradleymeck: ill take a look tomorrow when im not dead tired [04:18] alcuadrado: it's some kind of multi-shops ecommerce... something a little wired, for craftmen in argentina (I'm from argentina :P) [04:18] alcuadrado: and it's so fucking huge [04:18] jesusabdullah: Ah, Argentina [04:18] jesusabdullah: Interesting [04:18] sstephenson has joined the channel [04:19] alcuadrado: It's a pretty nice place [04:19] alcuadrado: allthough it's a pour country, it's REALLY plenty of opportunities in here [04:20] alcuadrado: and plenty of hot women hehe [04:20] bradleymeck: jashkenas does http://gist.github.com/581949#file_statemachine.js seem more what you were aiming for? [04:21] bradleymeck: nite all im about to pass out [04:21] bradleymeck has left the channel [04:22] iwasbiggs has joined the channel [04:25] Eber: alcuadrado: check it out: http://www.eberfdias.com/blog/javascript-for-the-php-programmer/380/ [04:26] jashkenas: bradleymeck's gone, but if he comes back ... http://gist.github.com/581954 [04:26] Eber: Guys, I just made this post, maybe it's full of errors. It's an attempt to make me understand JS better, so I would love some comments and feedbacks: http://www.eberfdias.com/blog/javascript-for-the-php-programmer/380/ [04:26] alcuadrado: Eber, it that the first post of a serie of posts? [04:27] jashkenas: Eber: that JS prototoype use is really wrong... [04:27] Eber: jashkenas: why? [04:27] Eber: alcuadrado: I don't know... [04:27] jashkenas: Are you trying to modify the prototype every time you create an instance of "A" ? [04:27] jashkenas: or are you trying to set properties on the instance of A? [04:27] Eber: alcuadrado: maybe it won't even start :P [04:27] alcuadrado: Eber, I mean, are there any previous JS post in your blog? [04:28] Eber: jashkenas: I'm just trying to set defaults... trying to mimic the PHP behaviour... [04:28] EyePulp has joined the channel [04:28] Eber: alcuadrado: Not really... This is the first pure JS post... [04:28] alcuadrado: BTW: I love seeing bloggers like you asking other people if they are wrong or not, and not just publishing incorrect information all around the world, like most bloggers [04:29] jashkenas: Eber: this is what you want: http://gist.github.com/581961 [04:30] Eber: jashkenas: I guess I understand what you are trying to say... if I change the prototype values on a different instance, I will be changing it on all of them? [04:31] alcuadrado: Eber, yeah, that's the problem [04:31] jashkenas: Yes, if you change A.prototype.bar, the default value of "bar" changes for all instances of A. [04:31] jashkenas: so with your original code, the most recently constructed instance of A "wins"... [04:31] alcuadrado: I really recommend you watching lots and lots of videos from Douglas Crockford (THE javascripter) how is a great fan of prototypal inheritance [04:32] Zuardi has joined the channel [04:32] Eber: jashkenas alcuadrado So let me see if I understand this... The constructor, once it's called, is basically the instance itself, we could say that it is the prototype? [04:32] alcuadrado: I really recommend you watching lots and lots of videos from Douglas Crockford (THE javascripter) how is a great fan of prototypal inheritance: http://vimeo.com/9998565 [04:32] _announcer: Twitter: "node.js in trouble on what to do with the character code conversion" [ja] -- こむり. http://twitter.com/comuri/status/24635753573 [04:32] stagas has joined the channel [04:33] alcuadrado: Eber, not at all hehe [04:33] alcuadrado: I javascript object don't belong to a "class" of objects [04:33] benburkert has joined the channel [04:33] alcuadrado: they just have a prototype, with deafult values for every property (methods are properties too) [04:34] jashkenas: alcuadrado: inside of the constructor call, "this" is the fresh instance, yes. [04:34] jashkenas: oops. that was Eber: ... [04:34] Eber: "this" is a reference to the instance on this case, right? [04:34] alcuadrado: yeah! [04:34] Eber: Got it! [04:34] alcuadrado: I missunderstood you [04:35] Eber: Maybe I'll have to create a new article about "this"... [04:35] Eber: It's really confusing... [04:35] Eber: jashkenas: Got it now :) [04:35] iwasbiggs: 'this' was a mistake imo :) [04:35] alcuadrado: it's not to different than in php, except that it can be changed [04:36] Tim_Smart: iwasbiggs: Do you prefer 'self' or something? [04:36] alcuadrado: iwasbiggs, I have read that many times... but why? [04:36] Tim_Smart: Nothing wrong with 'this' imo. [04:36] iwasbiggs: pure functions leave nothing to guess [04:36] alcuadrado: Tim_Smart, Crockford says that it was an editorial's error [04:37] Tim_Smart: alcuadrado: this? [04:37] Tim_Smart: iwasbiggs: Urgh, pure function factories are far more resource intensive... [04:37] alcuadrado: I bealive it what "this"... maybe I'm confused... but there was a editorial's mistake in the EC3 standar that was finally implemented [04:38] iwasbiggs: python's approach is interesting, passing through 'self' as a first parameter [04:38] iwasbiggs: depends on the task at hand [04:38] Tim_Smart: iwasbiggs: Yeah but that is far too verbose. [04:38] alcuadrado: iwasbiggs, python's approach is awful [04:38] iwasbiggs: if you need a million objects and they do not differ and share a lot [04:38] alcuadrado: passing self WVERY time [04:38] iwasbiggs: yeah ok, prototype is necessary [04:38] alcuadrado: EVERY* [04:39] iwasbiggs: awful, but leaves nothing to guesswork [04:39] alcuadrado: yea [04:39] alcuadrado: h [04:39] mikew3c_ has joined the channel [04:39] alcuadrado: but it's only ONE variable to guess [04:39] iwasbiggs: heh [04:39] alcuadrado: in every method [04:39] Tim_Smart: iwasbiggs: I actually converted my pure functional music indexer to use prototype, and memory usage dropped over 3x [04:40] iwasbiggs: like i said, if you ahve a million instances of stuff [04:40] Tim_Smart: The Garbage Collector has far less to choke on using prototype [04:40] iwasbiggs: i am not sure how you are laying out your data [04:40] Tim_Smart: iwasbiggs: I used one instance per index session. [04:40] alcuadrado: iwasbiggs, are you a pure functional programmer? [04:40] iwasbiggs: nevertheless it is cumbersome to learn and a thorn [04:40] Tim_Smart: iwasbiggs: So one every 20 minutes. [04:40] iwasbiggs: i usually prefer the closure styles or just plain objects [04:41] mikew3c_ has joined the channel [04:42] alcuadrado: hopping not to sound badly, I incist... iwasbiggs, are you a pure functional programmer? I hace never met one :( [04:42] iwasbiggs: i am not sure what you mean? i have written on both sides of the language [04:42] iwasbiggs: some of my code uses prototypes [04:42] iwasbiggs: but i now generally prefer functions [04:42] iwasbiggs: pure functions returning objects or other functions [04:43] prettyrobots: iwasbiggs: Yeah. That's the way I'm going too. [04:43] iwasbiggs: using prototypes does not prohibit you from the other however [04:43] prettyrobots: I'm kind of confused about what from Node.js to use, since some of it is prototype. [04:43] prettyrobots: Prototypey. [04:43] Tim_Smart: Heh I guess the more you use them, the more you like 'em. [04:43] prettyrobots: Like the event base class. [04:44] Tim_Smart: I find prototypes very straightforward and clean. [04:44] jashkenas: iwasbiggs: the closure style is hugely wasteful of memory, and merely *highly* wasteful of cpu... [04:44] iwasbiggs: indeed, they can be, but their bugs and learning curve are enough for me to say wtf, and just not use them [04:44] alcuadrado: in my CS coursers I have learnt that functional paradism has no "state", so you have referential transparency... it sound REALLY cool for CS course problems... but I just don't see it cool for real life problems, that's why I ask [04:44] iwasbiggs: that sounds like a v8 bug [04:44] Eber: jashkenas alcuadrado updated http://www.eberfdias.com/blog/javascript-for-the-php-programmer/380/ [04:45] cardona507 has joined the channel [04:45] iwasbiggs: unfortunately i didn't get a great education in the functional languages [04:45] iwasbiggs: maybe this is the aftermath of loving the style [04:46] iwasbiggs: wasteful of memory, yeah, i mean you create a closure [04:46] iwasbiggs: but guess what 'bind' does [04:46] iwasbiggs: creates a closure [04:46] prettyrobots: jashkenas: Closures bad? [04:46] Tim_Smart: prettyrobots: They have their place... [04:46] prettyrobots: Huh. Well, I've gone all out with them, so if they are bad, I'd like to know. [04:47] prettyrobots: Is there a reference. [04:47] prettyrobots: ? [04:47] iwasbiggs: they're fine, bad code can be written either way [04:47] Tim_Smart: prettyrobots: Just try to avoid creating functions inside of functions. Name them so they are only created once and reused. [04:47] iwasbiggs: just have to be mindful [04:47] prettyrobots: Tim_Smart: I am making a point of creating functions within functions. That is a closure. [04:48] alcuadrado: iwasbiggs, I understand you, and we are talking of different things :P "pure functional" programmer thinksooo different [04:48] mikew3c has joined the channel [04:48] prettyrobots: I'm creating a collection of closures instead of using Prototype. [04:48] hb_ has joined the channel [04:48] jashkenas: they're not bad at all, they just need to be used where they need to be used. Using them as object factories in order to mimic JavaScript instances to avoid using "prototype" and "new" is the wasteful bit. [04:48] alcuadrado: JimBastard is one of them, I think [04:48] iwasbiggs: ah [04:49] prettyrobots: jashkenas: But I prefer the private nature of closures to `this`. [04:49] prettyrobots: Code is easier to read. [04:49] inimino: alcuadrado ⋱ Pure functional programming is great, but not really practical in JavaScript. [04:50] pwrfail has joined the channel [04:50] jashkenas: 'night. [04:50] Tim_Smart: o/ bye [04:50] alcuadrado: inimino, but for example, in haskell (what a great language for small problems!!!) how would you organize your code? [04:50] jesusabdullah: functional programming style works fairly well in js though [04:51] inimino: alcuadrado ⋱ I think Haskell is an awesome language for large problems as well, actually the nicest I've worked in. [04:51] mikew3c has joined the channel [04:51] jesusabdullah: Haskell has a pretty cool community too [04:51] jesusabdullah: Shit's pretty academic though [04:51] inimino: (in fact the beauty of types really pays off once a project reaches a certain level of complexity) [04:51] jesusabdullah: You have to do a lot of reading and thinking to get a grip on it :( [04:51] inimino: Yes. [04:52] jesusabdullah: LYAH is pretty good though [04:52] inimino: It's worth it, though :-) [04:52] jesusabdullah: bonus is rad [04:52] jesusabdullah: What little haskell I did has had surprising influence on how I think about programming [04:52] jesusabdullah: I need to see if bonus wrote the monads chapter yet [04:53] jesusabdullah: and then, y'know, force myself to do something in haskell :) [04:53] eisd has joined the channel [04:53] alcuadrado: inimino, can have you goy expirience in LARGE haskell projects? :) [04:53] prettyrobots: jesusabdullah: Haskell people are nice people. [04:53] jesusabdullah: Yeah [04:53] jesusabdullah: well, mostly [04:53] bmizerany has joined the channel [04:53] jesusabdullah: I had someone yell at me for getting slightly OT once [04:53] jesusabdullah: cheesed me a little [04:54] jesusabdullah: but for the most part, nice community [04:54] jesusabdullah: We should have a sandboxed eval bot in here [04:54] mikeal has joined the channel [04:54] jesusabdullah: Like they do [04:54] inimino: alcuadrado ⋱ The largest Haskell project I've written was small by, say, Java project standards, but I read the source code of much larger projects. [04:54] jesusabdullah: inimino: Is yours on github? :v [04:54] prettyrobots: Pop over to ##java and ask them about memory mapped I/O. [04:55] jesusabdullah: That sounds annoying [04:55] inimino: jesusabdullah ⋱ lambdabot owns any other channel's bot I've seen so far :-) [04:55] prettyrobots: They hate when you ask questions they can't really answer. [04:55] jesusabdullah: Yeah, lambdabot is nuts [04:55] jesusabdullah: I'd like to add eval to my own bot sometime [04:55] jesusabdullah: but it's really buggy right now [04:55] inimino: jesusabdullah ⋱ No, it's never released, and never did anything beyond generate huge amounts of statistical data. [04:55] jesusabdullah: needs some love on its current feats first [04:55] jesusabdullah: ah, stats [04:55] jesusabdullah: Cool :D [04:55] inimino: (from email) [04:56] creationix has joined the channel [04:56] jesusabdullah: Oh, neato [04:57] pzich has joined the channel [04:57] alcuadrado: inimino, so what was your bigest project about? (once again, I know many people that just disrispect haskell and functional programming community... I'm not one of them, but I'm just curious about it :P) [04:58] jesusabdullah: I'm using xmonad right now :) [04:58] jesusabdullah: It's great for netbooks [04:59] inimino: I use xmonad on my big monitors :-) [04:59] alcuadrado: I don't like it's filosophy [04:59] alcuadrado: about sorting the windows for you [05:00] jesusabdullah: If I had time I'd play with it on big monitors to see if I could set up a layout that didn't bother me when the screen has more space than I want [05:00] alcuadrado: or I'm wrong? [05:00] jesusabdullah: Y'know, when, say, a dialog box gets fullscreened [05:00] inimino: alcuadrado ⋱ It was a spam classifier, using Iteratees and some kind of map-reduce kind of algorithm on large spam/ham corpus. [05:00] jesusabdullah: alcuadrado: I think it's a matter of personal taste. [05:00] alcuadrado: jesusabdullah, of course :P [05:00] inimino: alcuadrado ⋱ It doesn't sort them, you control the order, it just tiles them. [05:00] jesusabdullah: alcuadrado: It's nice on laptops just because clicking and dragging is too hard, and on a small screen you often wanna rock fullscreen anyway [05:01] alcuadrado: inimino, great project and really soutible for a functional approach [05:01] inimino: It was fun and worked well. [05:01] jesusabdullah: alcuadrado: That too. Has keyboard controls to deal with ordering [05:01] alcuadrado: jesusabdullah, I use a my laptop 99% of the time, but with a mouse :P [05:01] jesusabdullah: and placement [05:01] jesusabdullah: LinuxD? [05:01] jesusabdullah: er [05:01] jesusabdullah: Linux? [05:02] jesusabdullah: If yeah, and you feel like messing around, it could be worth a shot! [05:02] jesusabdullah: Though, tbh on my dual monitor setup I just use gnome [05:03] alcuadrado: inimino, but what I mean, would you use it for example, for a system to manage a shop? (My English sucks :( I wanted to explain furder, but how on earth do you say "sistema contable" in english?! hahaha) [05:03] sstephenson has joined the channel [05:04] alcuadrado: jesusabdullah, I didn't undestood your last question... yes, I use linux, archlinux, which I pretty love... with gnome [05:04] gerred has joined the channel [05:04] inimino: alcuadrado ⋱ I'm not sure. I'd probably use it for any challenging problem, for easy problems it is not necessary. [05:05] thegratmichael has joined the channel [05:05] jesusabdullah: alcuadrado: I just meant that if you were on windows it would be a moot point :) [05:05] inimino: alcuadrado ⋱ For 80% of all programs that need to be written, Perl is a perfectly adequate solution. [05:05] alcuadrado: inimino, hahah come on, I was talking seriously :P [05:05] jesusabdullah: gmm [05:05] alcuadrado: jesusabdullah, I fucking hate windows, and mac :P [05:06] jesusabdullah: Nice XD [05:06] alcuadrado: windows beacouse it's a piece of crap [05:06] inimino: (I tend to be interested in the other 20%, or maybe 1%, but that is me.) [05:06] alcuadrado: and mac beacuse it so funcking closed [05:06] _announcer: Twitter: "# Diaspora install er bit messy. Can not wait for it's ported to # nodejs" [da] -- Charles Phillips. http://twitter.com/doublerebel/status/24637683783 [05:06] jesusabdullah: I could guess that sistema --> system [05:06] jesusabdullah: but contable? Not sure [05:07] alcuadrado: contable is something linke managin a shop [05:07] jesusabdullah: accounting [05:07] jesusabdullah: according to google [05:07] alcuadrado: yeah! [05:07] jesusabdullah: accounting system :D [05:07] jesusabdullah: So, books? [05:07] alcuadrado: no haha [05:07] alcuadrado: mmm [05:08] alcuadrado: billing system? [05:08] jesusabdullah: By books I mean, like, financial records [05:08] jesusabdullah: Yeah [05:08] alcuadrado: inimino, that's SO COOL... everybody has his taste... [05:08] jesusabdullah: english slang is "books" [05:08] alcuadrado: oh, so you are right :P [05:08] jesusabdullah: Man I want an excuse to say "cookin' the books" now [05:08] alcuadrado: I have to learn more slang :P [05:08] gerred has joined the channel [05:08] jesusabdullah: It's fun :D [05:08] jesusabdullah: haha, reminds me [05:09] jesusabdullah: My Spanish class was based on outdated words [05:09] jesusabdullah: Like, before computers [05:09] alcuadrado: hahha [05:09] jesusabdullah: So I learned how to say record player [05:09] thegratmichael: i have nodejs installed on cygwin, the helloworld example works fine, but only if i comment out the console.log line. i hm getting a reference error saying that console is not defined. anyone know how to fix this? [05:09] jesusabdullah: UN TOCADISCOS [05:09] jesusabdullah: but never learned how to say "CD player" or anything like that [05:09] jesusabdullah: :D [05:09] _announcer: Twitter: "I'd actually like IE if they just gave me websockets. #nodejs isn't quite as fun without them..." -- Daniel Erickson. http://twitter.com/TechWraith/status/24637842388 [05:09] alcuadrado: Cambridge exams are totally usefull :P and they are like THE English exams out there :P [05:10] alcuadrado: HAHHAHHAHAHAH TOCADISCOS!!!!!!! [05:10] jesusabdullah: I don't think I've heard of them! [05:10] alcuadrado: THAT'S SO OLD! [05:10] jesusabdullah: ahaha :D [05:10] onar_ has joined the channel [05:10] jesusabdullah: Awesome C: [05:10] gerred has joined the channel [05:10] jesusabdullah: I should probably try to brush up my spanish a little bit [05:11] jesusabdullah: be a little less of a gringo [05:11] jesusabdullah: My accent is terrible [05:11] jesusabdullah: dohnday estah el banyoh? [05:11] alcuadrado: jesusabdullah, it'll be something linke "reproductor de CSs" but is's like a nerdy expression... everybody would say "equipo de musica", which means sound system [05:11] jesusabdullah: ah [05:12] alcuadrado: gringo is a so funny word [05:12] alcuadrado: here we don't use it much [05:12] jesusabdullah: Yeah [05:12] jesusabdullah: It's pretty Mexican [05:12] alcuadrado: only, don't know why, for italian people :s [05:12] jesusabdullah: aha, nice [05:12] alcuadrado: but yes, is reallyyy mexican [05:13] alcuadrado: but it comes for Green Coat [05:13] jesusabdullah: huh [05:13] alcuadrado: form the WW2 [05:13] alcuadrado: or WW1 [05:13] jesusabdullah: Oh, my old fluid mechanics professor is from Argentina [05:13] jesusabdullah: and his last name is Toniolo [05:13] jesusabdullah: I would've guessed Italian [05:13] thegratmichael has left the channel [05:13] alcuadrado: Tnoliolo? [05:13] jesusabdullah: yeah [05:13] jesusabdullah: Toniolo [05:13] alcuadrado: that's not form argentina at all :s [05:13] jesusabdullah: I know! [05:13] alcuadrado: ohh surname [05:14] jesusabdullah: Oh, yeah [05:14] jesusabdullah: Horacio is his first name [05:14] jesusabdullah: I think [05:14] alcuadrado: there are no arengitian surnames man :P [05:14] jesusabdullah: hah [05:14] jesusabdullah: Parents don't make you call people Mister? [05:14] jesusabdullah: :) [05:15] alcuadrado: we, as every american country (american from Aremrica, not USA), are countrys where all the people's ancestors are inmigrants [05:15] alcuadrado: Horacio is a common name in here, but for old people [05:15] _announcer: Twitter: "Does anybody know of a process manager that could, say, manage node.js or python processes similar to the way Erlang manages its processes?" -- Al Tobey. http://twitter.com/AlTobey/status/24638169940 [05:15] jesusabdullah: He's in his fifties probably [05:15] alcuadrado: I didn't understood your last question [05:15] jesusabdullah: Oh, umm [05:16] alcuadrado: so Horacio is a great name for him :P [05:16] jesusabdullah: So, my parents used to tell me that I should call adults "mister " instead of by their first name [05:16] eisd: jesusabdullah: There is a sandboxed eval bot in here [05:16] jesusabdullah: there is? :o [05:16] jesusabdullah: !eval 1+1 [05:16] eisd: v8: Math.random() [05:16] jesusabdullah: > 1+1 [05:16] v8bot: eisd: 0.310942024923861 [05:16] jesusabdullah: ah [05:16] jesusabdullah: v8! [05:16] jesusabdullah: I see [05:16] jesusabdullah: Cool [05:16] jesusabdullah: v8: 1+1 [05:16] v8bot: jesusabdullah: 2 [05:16] jesusabdullah: Neato [05:17] jesusabdullah: eisd: Thanks :D [05:17] eisd: jesusabdullah: No problem :) [05:17] jesusabdullah: I'll try to remember that [05:17] alcuadrado: jesusabdullah, that's so old fashioned in here... [05:17] alcuadrado: maybe one ore two generations [05:18] alcuadrado: later? don't know how to say that... [05:18] jesusabdullah: It's fallen out of favor here too, but a lot of people still teach it [05:18] jesusabdullah: I think you're looking for "ago" [05:18] jesusabdullah: like, a few generations ago [05:19] mikeal has joined the channel [05:19] jesusabdullah: v8: ([1,2,3])[-1] [05:19] v8bot: jesusabdullah: undefined [05:19] jesusabdullah: v8: ([1,2,3]) [05:19] v8bot: jesusabdullah: [1, 2, 3] [05:19] alcuadrado: yeah, but that's not bad... whenever somebody calls me "Mr. Palladino" I feel bigger than I am :P [05:19] jesusabdullah: Oh man, I know what that's like [05:20] jesusabdullah: I was trying to get a passport the other day, someone said over the phone 'there's a gentleman before me' [05:20] jesusabdullah: and that gentleman was me o_o [05:20] alcuadrado: hahaahha [05:20] jesusabdullah: I'm used to being 'some punk kid' [05:20] jesusabdullah: XD [05:21] jesusabdullah: Or, when I was nineteen I dropped something in an elevator, and this woman told her kid, "Pick up that soap for the man" [05:21] jesusabdullah: (I dropped a bar of soap) [05:21] abiraja has joined the channel [05:21] jesusabdullah: (She was Scottish I believe--that use of 'the man' isn't something I've heard of outside that region) [05:21] jesusabdullah: but I was like :D :D [05:22] jesusabdullah: Too young to drink, yet a man! \o/ [05:22] alcuadrado: hahahaha [05:22] alcuadrado: but nineteen [05:22] alcuadrado: everyone in here [05:23] alcuadrado: is expected to be a heavy drinker at ninetee [05:23] alcuadrado: at least from my poin of view :P [05:23] jesusabdullah: Drinking age is 21 in the US [05:23] jellymonster has joined the channel [05:23] jesusabdullah: and I would've drank but I was in employee housing with nowhere to go [05:23] alcuadrado: here 18... but everybody starts drinkin at about 15 [05:23] jesusabdullah: A lot of my peers did, but [05:24] jesusabdullah: I was straight-edged until like the following fall [05:24] jesusabdullah: beer :9 [05:24] mape: you fell hard? [05:24] alcuadrado: hahah [05:24] jesusabdullah: Yeah dude [05:24] jesusabdullah: Sidewalk smarts D: [05:24] jesusabdullah: I *needed* a drink [05:24] alcuadrado: never mind my opinion, I was almost an alcoholic at about 17 :P [05:24] jesusabdullah: Ahh [05:24] jesusabdullah: I had my bout with alcoholism [05:25] jesusabdullah: Turning 21 + mild depression is a bad combination [05:25] alcuadrado: mape, are you the mape from the haskell channel? [05:25] alcuadrado: hehe I'm just 21 [05:25] jesusabdullah: osnap you're in haskell too mape? [05:25] jesusabdullah: 23 now [05:25] mape: alcuadrado: I don't belive so, but I guess he's pretty pissed I have his nick then. [05:25] jesusabdullah: Gettin' old! [05:25] jesusabdullah: ahaha [05:25] konobi: ASF, really? [05:25] alcuadrado: ahhaha maybe I just got confused mape :P [05:26] Tim_Smart: konobi: Bit late, but yeah :( [05:26] jesusabdullah: What started that off anyway? [05:26] jesusabdullah: The whole "ASF sucks" thread [05:26] jesusabdullah: I missed the beginning, don't wanna scroll up [05:26] mape: konobi: ASL? [05:26] rockstar` has joined the channel [05:28] konobi: fuck... that... shit [05:28] mape: hehe [05:28] jesusabdullah: mape: I see you were thinking the same thing [05:29] Tim_Smart: mape: 20. Male. New Zealand. [05:29] amerine has joined the channel [05:29] mape: Tim_Smart: I'll make sure to set up a match.com profile for you ;) [05:29] Tim_Smart: :/ [05:30] jesusabdullah: Only 20? [05:30] jesusabdullah: Man I feel ancient [05:30] mape: 23 is ancient? [05:31] Tim_Smart: That makes my dad a myth. [05:32] steadicat has joined the channel [05:32] jellymonster has joined the channel [05:32] jesusabdullah: Oh geez [05:32] jesusabdullah: Is node being ASF/d" [05:32] jesusabdullah: ? [05:32] jesusabdullah: er [05:32] jesusabdullah: ASF'd? [05:32] Tim_Smart: Nope. [05:32] jesusabdullah: Oh good [05:32] jesusabdullah: The discussion up there kinda, well [05:33] jesusabdullah: scared me for a moment [05:33] Tim_Smart: It was suggested by pquerna [05:33] jesusabdullah: Not that this would be the worst thing ever [05:33] Tim_Smart: But that is as far as it went. [05:33] jesusabdullah: but, well [05:33] jesusabdullah: That's good :) [05:33] creationix: http://bit.ly/dd1bVa My first complete webOS app, can't wait till I can start integrating with node [05:33] creationix: (It's not much, but the code is simple) [05:34] Tim_Smart: Hmm, what would happen if ryah was hit by a stupid truck driver though? [05:34] Tim_Smart: What would happen to node? :/ [05:34] ryah: truck driver? :) [05:34] iwasbiggs: good point, time to confiscate his keys [05:34] alcuadrado: hahhahaha [05:35] mape: Tim_Smart: You just jinxed it [05:35] alcuadrado: it's almost unbelievable how some people answers just seconds after they are named in hered [05:35] Tim_Smart: mape: You just jinxed it by mentioning jinx [05:35] mape: alcuadrado: Isn't that how IRC works? [05:35] creationix: ok, I'm off to bed, nobody kill ryah while I'm gone [05:36] alcuadrado: mape, that's how it's suposed to work :P [05:36] alcuadrado: well... I'm going to sleep right now... I should wake uo in about 3 hours [05:36] alcuadrado: good bye [05:37] Tim_Smart: ryah: Well something like that. 3 people down my road were murdered not long ago. Crazy. [05:38] Tim_Smart: And not too long before that a airplane ran into another airplane and a couple people got pwnt. [05:38] _announcer: Twitter: "Node.js and saw something to Sagure ..." [ja] -- yuripop(ゆりぽ). http://twitter.com/yuripop/status/24639367923 [05:39] Tim_Smart: Anyway, that's enough for now. Before node starts being associated with death. [05:40] prettyrobots has left the channel [05:41] Tim_Smart: ryah: s/trreads/threads/ in nodejs-dev description. [05:41] jellymonster has joined the channel [05:43] ryah: thanks [05:44] SamuraiJack has joined the channel [05:46] jesusabdullah: Hmm [05:46] jesusabdullah: That's kind of a nice clock [05:46] jesusabdullah: I want a palm phone :) [05:47] _announcer: Twitter: "I got invite to nodejs-dev from @ryah. It's great idea. current nodejs ml is too much traffic. I couldn't read their." -- Yuichiro MASUI. http://twitter.com/masuidrive_en/status/24639825512 [05:48] konobi: ryah, i'd suggest the same for IRC [05:48] ph^ has joined the channel [05:49] mape: Hasen't there already been discussions on things similar to that? [05:50] jesusabdullah: #nodejs-dev? [05:51] mape: Well it was more about splitting the help part off [05:52] konobi: meh, that never actually works though [05:52] _announcer: Twitter: "Lodge: A HTTP to Syslog Proxy with Node.js | Loggly http://ff.im/-qHkyl" -- Jeff McLamb. http://twitter.com/jeffmclamb/status/24640035169 [05:52] _announcer: Twitter: "Yin and Yang ... English-speaking part of speech is not just seen nodejs discussion group, some European languages (fr, ru, it, etc.) users to discuss 'nodejs' is negative or positive ... because the article does not know how to add http:/ / plurk.com/p/7k1l49" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/24640034833 [05:52] Tim_Smart: jquery has a -dev channel [05:52] Tim_Smart: #jquery-dev [05:53] jesusabdullah: There's a #jquery ? [05:53] jesusabdullah: I guess that makes sense [05:53] Tim_Smart: Yeah. #jquery has more traffic than #javascript [05:54] jesusabdullah: There's a #javascript? :o [05:54] mikew3c has joined the channel [05:54] jesusabdullah: XD Of course there is. [05:54] jesusabdullah: There's just so many channels that I often forget to think that there *would* be a channel for that [05:58] kaichen has joined the channel [05:58] nroot7 has joined the channel [05:59] nroot7: Please suggest a good editor (non vi/emacs) for node. Right now I am using geany and my braces and brackets are messed up :-) [05:59] konobi: notepad [06:00] SubStack: vi! [06:00] SubStack: emacs! [06:00] nroot7: no seriously [06:00] jesusabdullah: tbh I use gedit [06:00] jesusabdullah: There's a "hilight matching bracket" check box that helps with stuff [06:00] jesusabdullah: I think any editor with such a feature would work for you [06:00] jesusabdullah: idk nothin' bout geany though [06:01] SubStack: but really vi:vim::lisp:emacs [06:01] jesusabdullah: also, vim is pretty nice for a cli editor :D and tbh I should use it more [06:01] nroot7: geany has brace highlighting [06:01] jesusabdullah: That's not the promblem? [06:01] Tim_Smart: I'm using vim <3 [06:02] pquerna: i've been using textmate. [06:02] jesusabdullah: I use vim when I'm editing over ssh [06:02] jesusabdullah: but I never bothered to configure it, and the current settings suck ass [06:02] jesusabdullah: and I never learned how to have multiple docs open at a time [06:02] jesusabdullah: In other words, I suck at vim [06:03] konobi: vim everywhere! [06:03] SubStack: I just screen when I want multi-vim [06:03] jesusabdullah: vim it to left and vim it to the right [06:03] jesusabdullah: if you wanna vim it homie gotta do it right [06:03] jesusabdullah: SubStack: Me too :) [06:03] konobi: split and vsplit for multiple files [06:04] Tim_Smart: Yeah screen + vim is killer. :split and :vsplit is nice too. [06:04] jesusabdullah: I think I'd like vim better if I spent the time to config it and figure out the few things that drive me nuts [06:04] jesusabdullah: It's only a few things [06:05] Tim_Smart: Always remap the ESC key in vim. I have mine set to `ii` [06:06] SubStack: ok this is seriously great [06:06] SubStack: reading about window management in vim now [06:06] Tim_Smart: I use tabs in vim a lot. [06:06] jesusabdullah: I've actually gotten used to escape XD [06:07] konobi: ^w + _, etc [06:07] jesusabdullah: Ideally I'd switch capslock and escape, but xmodmap has been a bother in the past [06:07] SubStack: I swap caps lock and escape [06:07] jesusabdullah: Yeah SubStack, I learned that trick from you! [06:07] jesusabdullah: Or maybe HWHank [06:07] SubStack: it's pretty great [06:07] jesusabdullah: Yeah [06:07] jesusabdullah: 'cept for when xmodmap broke on me that one time [06:07] jesusabdullah: <--lazy [06:09] kaichen has joined the channel [06:10] nwhite has joined the channel [06:12] konobi: caps-lock and control is my mapping there [06:13] jellymonster has joined the channel [06:13] stagas: I hate it when I see a cool widget and right click only to find out it's flash :P [06:16] iwasbiggs: same here konobi [06:17] bpot has joined the channel [06:18] tg: if you would use flashblock/noscript you'd know before seeing it :) [06:18] sudoer has joined the channel [06:18] MikhX has joined the channel [06:18] _announcer: Twitter: "Getting Started with Node.js on Windows http://bit.ly/9ZHCoY" -- Luiz Carlos Faria. http://twitter.com/luizcarlosfaria/status/24641327058 [06:20] ryah: Tim_Smart: ii instead of esc? [06:20] ryah: interesting... [06:20] Tim_Smart: Yeah. [06:20] ryah: what's the command for that? [06:20] Tim_Smart: `i` for insert, `ii` to get out of insert [06:20] Tim_Smart: imap ii I think [06:21] Tim_Smart: `imap ii [06:21] Tim_Smart: s/`// [06:21] ryah: Tim_Smart: but what about [06:21] ryah: % grep ii /usr/share/dict/words | wc -l [06:21] ryah: 419 [06:22] ryah: all those words [06:22] Tim_Smart: Yeah, there is a default timer or something. [06:23] ryah: oh, i see [06:23] ryah: coo, i'm going to try it [06:23] Tim_Smart: Maybe double tab might be better [06:24] Tim_Smart: Maybe not, I double tab more than double i [06:24] ryah: shift shift? [06:24] Tim_Smart: Yeah that could work. [06:26] Tim_Smart: Not sure the symbol for shift though. [06:27] Egbert9e9 has joined the channel [06:28] davidwalsh has joined the channel [06:29] jellymonster has joined the channel [06:29] path[l] has joined the channel [06:30] ivong has joined the channel [06:30] tk has joined the channel [06:31] path[l] has joined the channel [06:31] Tim_Smart: ryah: I think the timeout delay is set by timeoutlen [06:33] Tim_Smart: Couldn't get to work, so I just set timeoutlen=350 [06:34] MikhX has joined the channel [06:34] Tim_Smart: `ii` works well for me as I'm using to typing `i` to get into insert mode to start with. [06:42] killfill has joined the channel [06:43] Nohryb has joined the channel [06:44] ooooPsss has joined the channel [06:44] ooooPsss: hey [06:44] ooooPsss: when I do USer u = new User(); in Mongoose, I get exception (undfined function) [06:45] ooooPsss: what is mmy mistake? [06:47] _announcer: Twitter: "Also, I kinda wanna do a #Nodejs meetup if any’y’all are up for it; tried to last @RubyConf, but it fell apart. Thoughts?" -- ell.io. http://twitter.com/elliottcable/status/24642621044 [06:50] jellymonster has joined the channel [06:50] elliottcable has joined the channel [06:51] ooooPsss has joined the channel [06:52] ooooPsss_ has joined the channel [06:53] sstephenson has joined the channel [06:54] sstephenson has joined the channel [06:55] nroot7: What does npm markdown depends on? I am on ubuntu and markdown package is installed (through apt-get) but still npm markdown fails. [06:55] jetienne has joined the channel [06:56] virtuo has joined the channel [06:57] peol_ has joined the channel [06:59] jellymonster has joined the channel [06:59] ivanfi has joined the channel [07:01] _announcer: Twitter: "@yunosh 2 people mentioned #prosody possibly in together with #nodejs as a #XMPP server alternative, seems like a more bare bones solution" -- Lukas Kahwe Smith. http://twitter.com/dybvandal/status/24643252263 [07:02] _announcer: Twitter: "@sdepold I followed quite a few different ones since starting out with nodejs, but not all in 1 place :/" -- Christopher Pitt. http://twitter.com/verylastminute/status/24643300156 [07:02] MikhX has joined the channel [07:04] tjgillies has joined the channel [07:04] _announcer: Twitter: "Attention Rails devs! Regain the excitement and optimism of your lost programming youth! Come to JavaScript and #nodejs! Feel young again!" -- NodeCore. http://twitter.com/nodecore/status/24643416983 [07:05] _announcer: Twitter: "Write Web applications for # Lisp - is it the true ..? :) From # habr. Here on # Erlang, I would poprobal and more node.js - interesting." [ru] -- Mikhail K.. http://twitter.com/khomutetskiy/status/24643433186 [07:09] _announcer: Twitter: "Thinking of hacking on a #nodejs chat service for #shdh40 on Saturday. Seems redundant though." -- Jaisen Mathai. http://twitter.com/jmathai/status/24643635179 [07:10] shockie has joined the channel [07:10] SubStack: chat is like the hello world of node [07:10] SubStack: but this is a good thing [07:12] jellymonster has joined the channel [07:14] crohr has joined the channel [07:15] _announcer: Twitter: "nodecore wants YOU! We need a SENIOR web developer. Must have 3-5 years experience with #nodejs. Adobe Fireworks a plus! Plz retweet" -- NodeCore. http://twitter.com/nodecore/status/24643878405 [07:15] ph^ has joined the channel [07:15] mape: 3 years experience with nodejs? [07:15] stagas: 5 years? [07:16] DoNaLd`: :)) [07:16] mape: Must be hard finding someone like that :D [07:16] stagas: lol [07:16] DoNaLd`: is it joke ? :) [07:16] _announcer: Twitter: "Any email that starts "oh dear god stop this" must be awesome. Enjoyed this email of @mikeal's to the #nodejs ml a lot: http://hbr.me/5TiYMC" -- Edward O'Connor. http://twitter.com/hober/status/24643938042 [07:17] mape: Don't think so [07:17] voxpelli has joined the channel [07:18] nroot7: is there some documentation to learn jade, or is it based on something which has some documentation, (I almost fainted after seeing body!= body) :-) [07:20] galaxywatcher has joined the channel [07:21] jellymonster has joined the channel [07:21] AAA_awright: Must have 3-5 years experience with #nodejs [07:21] AAA_awright: ACTION blink [07:22] zomgbie has joined the channel [07:22] _announcer: Twitter: "@nodecore http://ow.ly/2F3uP First commit to #nodejs repo was just over a year ago. Good luck finding 3-5 years #nodejs experience!" -- Tim Smart. http://twitter.com/Tim_Smart/status/24644209645 [07:23] DoNaLd`: firt information in ChangeLog from Ryan is 2009.06.11, Version 0.0.3, .. it will be realy hard finding someone with 3-5 years nodejs experience :) [07:23] tjgillies has joined the channel [07:25] _announcer: Twitter: "Said that just seen github ry in nodejs with Buffer.concat, so we go with the thing (woot) http://plurk.com/p/7kuzao" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/24644308684 [07:27] daglees has joined the channel [07:28] hellp has joined the channel [07:29] overra: anyone look at the @nodecore feed [07:29] overra: :| [07:29] digitalspaghetti: overra: yea, lol [07:30] mikew3c_ has joined the channel [07:32] adambeynon has joined the channel [07:32] _announcer: Twitter: "nodeJS MooTools and pump more! # # Mootools nodejs # Epic" [gl] -- Alexander Herrmann. http://twitter.com/dArignac/status/24644627237 [07:34] micheil has joined the channel [07:34] micheil: ryah: ping [07:34] visnup has joined the channel [07:35] micheil: hey visnup [07:35] visnup: yo [07:35] micheil: sup? [07:35] visnup: feeling utterly let down that ie9 will never install on xp [07:35] micheil: what?! [07:35] micheil: :( [07:35] mape: visnup: Why the sad face? You get one more browser to support! [07:36] mape: Super yay fun [07:36] Tim_Smart: Oh crap. That means ie6 will hang around even longer. [07:36] mape: Not like they are going to update anyway [07:37] Tim_Smart: Microsoft should force the update. [07:37] pdelgallego has joined the channel [07:37] mape: If Google can do Chrome frame I don't get why they can't force everyone to update to IE9 (and have auto updates there) while supporting a setting that defaults to IE6 frame [07:38] micheil: actually, I think there's more XP machines out there then vista or win7 machines [07:38] visnup: I have no idea what to do now: ditch xp and all previous versions of ie? not sure how long I'll be able to stomach the multiple versions of windows in VMs [07:38] mape: Then people can just add a meta [07:39] micheil: mape: non-standard [07:39] saikat: visnup: what's your app? [07:39] visnup: saikat: no app [07:39] visnup: just general "I need to test this in ie 7, 8, and 9 now." [07:39] mape: micheil: I'd rather do non-standard stuff that doesn't break stuff then suffer IE [07:39] saikat: yeah [07:40] saikat: i think supporting IE6 has stopped making business sense in a lot of realms [07:40] visnup: which will be that much harder now [07:40] visnup: I stopped supporting ie6 two years ago [07:40] saikat: ah good [07:40] saikat: yeah, i guess i don't support IE at all, though that might not be the smartest move [07:41] saikat: but it's just too much of a time sink [07:41] mape: Wonder how demoralizing it is to work for MS on IE [07:41] visnup: ACTION hoping a survey comes out that correlates ie7/xp users to non-paying users [07:41] saikat: heh mape, i met a guy at wwdc last year working for MS on office for mac [07:41] ryah: micheil: hey [07:41] saikat: he was the most conflicted programmer i have ever met [07:41] mape: saikat: Heh [07:41] micheil: ryah: hey, thanks for setting up that dev list [07:41] mape: saikat: At least he "has to use OSX" to develop ;) [07:41] visnup: I'm going to install ios 4.2 to pick me up now [07:41] micheil: also.. I still need to do the work I was proposing on the docs [07:42] ryah: micheil: yeah - i'd like to organize that work a bit - i think we should discss again [07:42] ryah: perhaps on a ML thread [07:42] micheil: ryah: currently I'm stuck between a rock and a hard place with it; I've got client work that has to take priority over my opensource stuff, unless I can get sponsors for it. [07:42] micheil: ryah: ya. I was thinking that [07:43] jellymonster has joined the channel [07:43] everton has joined the channel [07:43] tisba has joined the channel [07:43] ryah: and more generally the new website needs to be merged [07:44] micheil: ryah: does joyent have any graphic designers or similar with which could be able to do artwork? [07:45] micheil: (I'm more so an ideas + frontend dev side of things, not so much the (adobe/static) design side of things) [07:46] micheil: ryah: because it'd be really good do set up a really strong set of branding and design guidelines for the project (considering it's rate of growth atm) [07:52] _announcer: Twitter: "Said http://ppt.cc/w2iA (this test can be seen node.js on what global variables) http://plurk.com/p/7l2rug" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/24645464463 [07:55] elliottc1ble has joined the channel [07:56] _announcer: Twitter: "@geoff_fellows smooth ;P, I forgot to ask, you told me last time we spoke to check out couchdb, so I did; did you end up looking up node.js?" -- Micheil Smith. http://twitter.com/miksago/status/24645652049 [07:56] _announcer: Twitter: "@sdepold would you like to work with me on writing a tutorial series for making a nodejs from noob to live? :)" -- Christopher Pitt. http://twitter.com/verylastminute/status/24645656221 [07:56] micheil: gotta love it when your last lecturer uses twitter.. [07:58] jellymonster has joined the channel [08:00] mbrochh has joined the channel [08:04] dicon has joined the channel [08:04] mies has joined the channel [08:06] restfulAmf has joined the channel [08:07] dgathright has joined the channel [08:09] hb_ has joined the channel [08:10] dgathright_ has joined the channel [08:10] _announcer: Twitter: "@miksago I did have a look at node.js a few days later. Looks interesting." -- Geoff Fellows. http://twitter.com/geoff_fellows/status/24646236749 [08:11] restfulAmf has joined the channel [08:11] restfulAmf: Help how to create expressjs mvc structure [08:14] pdelgallego has joined the channel [08:15] q_no has joined the channel [08:16] _announcer: Twitter: "Tteta bug nodejs-waf" [ja] -- Hirohisa Mitsuishi. http://twitter.com/bongole/status/24646515019 [08:17] _announcer: Twitter: "pushState + node.js on the Server Side http://j.mp/ap5EDn" -- Amitava. http://twitter.com/amitava_b/status/24646548378 [08:22] xla has joined the channel [08:24] restfulAmf: Hello anyone ctc about express and mvc I need a master :) [08:26] ahc has joined the channel [08:27] FuzzYspo0N has joined the channel [08:27] jellymonster has joined the channel [08:28] shaiguitar has joined the channel [08:28] crohr has joined the channel [08:28] xla has joined the channel [08:30] herbySk has joined the channel [08:31] gthb has joined the channel [08:34] tobiassjosten has joined the channel [08:35] kennon has joined the channel [08:36] kennon: What's the best XML->JSON module for node? I'm basically trying to make something like ActiveResource [08:39] _announcer: Twitter: "Judging by this post http://bit.ly/9LaxHG new micro-dungeons are well suited for single threaded workload. I just know this. # Nodejs" [ru] -- Serge Shirokov. http://twitter.com/kurokikaze/status/24647505154 [08:41] Blink7 has joined the channel [08:42] jellymonster has joined the channel [08:49] TomY has joined the channel [08:52] _announcer: Twitter: "That doubt, some people nodejs v0.2.1 package into OpenEmbedded the ... said to run in the top ... http://plurk.com/p/7lmg85 ARM" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/24648043157 [08:56] kaichen has joined the channel [08:58] _announcer: Twitter: "说 http://www.plurk.com/p/7lnzsz ([rep]) @ Jace: http://tinyurl.com/294qxxl (nodejs 用 实 作 服务 WebSocket) http://plurk.com/p/7lou1i" [lv] -- Wing. http://twitter.com/darkwings/status/24648317767 [08:58] weepy has joined the channel [08:58] weepy: hi [08:59] weepy: Is it possible to get 2 node servers to listen to the same port on the same IP under different domains ? [09:00] ChrisPartridge has joined the channel [09:00] FuzzYspo0N: no [09:00] FuzzYspo0N: same ip means different ports [09:00] FuzzYspo0N: but there might be some magic involved, and you could, but why?? [09:01] weepy_ has joined the channel [09:01] weepy_: hi [09:01] weepy_: Is it possible to get 2 node servers to listen to the same port on the same IP under different domains ? [09:01] FuzzYspo0N: FuzzYspo0N no [09:01] FuzzYspo0N: FuzzYspo0N same ip means different ports [09:01] FuzzYspo0N: FuzzYspo0N but there might be some magic involved, and you could, but why?? [09:01] weepy_: i've got two sites running on the same box [09:02] FuzzYspo0N: But why the same port? [09:02] weepy_: it's port 80 [09:02] weepy_: if i can't then i suppose i'd use something like nginx to proxy the traffic to each [09:02] FuzzYspo0N: well, you could handle that yourself too. [09:03] FuzzYspo0N: like, run two internal "servers" and one endpoint [09:03] FuzzYspo0N: ie : use node to handle the traffic [09:03] jacquesc has joined the channel [09:04] jacquesc: anyone know how to add another compiler onto connect's compiler middleware? [09:04] jellymonster has joined the channel [09:04] jacquesc: i'm having to copy/paste the whole damn thing [09:04] jacquesc: to add a new compiler to it. it does an exports.compilers = {} [09:04] jacquesc: but not sure how to gain access to that [09:04] _announcer: Twitter: "It's a simple addon node.js ruby as simple as writing and extended writing" [ja] -- Hirohisa Mitsuishi. http://twitter.com/bongole/status/24648614830 [09:06] kennon: Is there a good library for directly converting XML to JSON? [09:07] kennon: The ones listed on the node module page all seem to be either overly complicated or don't seem to work [09:09] _announcer: Twitter: "Said nodejs opened a new discussion group: http://tinyurl.com/272eke3 mainly used to discuss the development of their own, bug reporting, patch submitted so http://plurk.com/p/7lrjc7" [zh-TW] -- Hsu Ping Feng. http://twitter.com/fillano/status/24648825277 [09:10] FuzzYspo0N: kennon: look on the mailing list, there was recently a discussion with this topic [09:10] kennon: FuzzYspo0N: thanks! [09:10] FuzzYspo0N: kennon: im looking for a link [09:11] FuzzYspo0N: http://github.com/kyleslattery/node-xml2object [09:11] FuzzYspo0N: "there is an xml2js library in npm." [09:11] shaiguitar has left the channel [09:11] FuzzYspo0N: "http://gist.github.com/416021" [09:11] kennon: FuzzYspo0N: ah nice, i think i accidentally overlooked that one. thanks! [09:12] FuzzYspo0N: kennon: cool. [09:12] FuzzYspo0N: mailing list is super useful btw. [09:12] teemow has joined the channel [09:14] sveisvei has joined the channel [09:15] omarkj has joined the channel [09:15] badaxx has joined the channel [09:19] badaxx: https://gist.github.com/4c516a0d05cf43e74993 << can someone help me out here? [09:19] V1 has joined the channel [09:19] iwasbiggs: myVar = value; ? [09:19] christophsturm has joined the channel [09:21] badaxx: well, I'm using express.js [09:21] badaxx: and I'm trying to create a dynamicHelper which returns the value of a redis key [09:21] TobiasFar has joined the channel [09:22] skohorn has joined the channel [09:22] aubergine has joined the channel [09:24] saikat: badaxx: you cannot do what you are trying to do since client.get is a non-blocking function. so calling myFunction() will return immediately without waiting for client.get to finish. the only way to do what you want to do is to block on client.get [09:24] saikat: alternatively, i tihnk you can use promises [09:24] saikat: but it still doesn't really do [09:24] saikat: what you are trying to do [09:25] saikat: what you should do is have myFunction take a callback [09:25] saikat: and in the callback for client.get [09:25] saikat: call the callback [09:25] saikat: with your return value [09:25] saikat: and have it do what you want [09:25] Nohryb has joined the channel [09:25] Tim_Smart has joined the channel [09:25] path[l] has joined the channel [09:26] badaxx: yea but the problem is that express.js won't do it like that [09:27] jellymonster has joined the channel [09:29] saikat: what is the API for express for what you are trying to do? sorry, i'm not familiar with express [09:29] _announcer: Twitter: "@knutties - after some reading I'm confused. what's node.js? server side js?" -- sanjuz. http://twitter.com/sanjuz/status/24649716217 [09:35] hellp has joined the channel [09:37] shockie has joined the channel [09:39] proppy has joined the channel [09:39] _announcer: Twitter: "@cloudhead "Must have 3-5 years experience with #nodejs. Adobe Fireworks a plus! " < haha - funny" -- Thijs Jacobs. http://twitter.com/thijsjacobs/status/24650172492 [09:40] vvsh has joined the channel [09:40] proppy: It seems I can npm publish package that I am not the direct author, [09:40] proppy: is it a recommande practice ? [09:41] stagas: what's the plural of dig? [09:41] path[l] has joined the channel [09:41] proppy: I want to update node_amqp to git head [09:41] ThePub: diggle [09:41] stagas: in the past [09:41] badaxx: saikat: https://gist.github.com/ca7fccd4d74f76399481 [09:42] badaxx: saikat: I'm trying to create a dynamic helper called "downloads". it is a function that needs to return a value that I get from a redis server [09:42] _announcer: Twitter: "@cloudhead 3-5yy exp on #NodeJS. Did NodeJS existed 5yy ago?" -- Ivan De Marino. http://twitter.com/detronizator/status/24650297172 [09:43] _announcer: Twitter: "@MrJaba a little bit of node.js fun :)" -- Duncan Gough. http://twitter.com/suttree/status/24650334932 [09:44] path[l] has joined the channel [09:46] saikat: badaxx: hm, i don't know express well enough, but i have a feeling that the dynamicHelpers may not be the right place to do what you are trying to do? [09:46] saikat: but i may be wrong, sorry i can't be of much more help [09:46] _announcer: Twitter: "@nodecore this is just plain stupid! You are looking for a senior web dev with 3-5 y nodejs experience? Node exists since Feb 2009." -- Lukas Rieder. http://twitter.com/Overbryd/status/24650490488 [09:47] badaxx: saikat: sure, dynamic helpers create variables for templates so that I can use them everywhere i want [09:48] Rv has joined the channel [09:48] Rv: hi [09:49] iwasbiggs: hi [09:49] Rv: i'm curious is there any way to send msg from server to specyfic client? not to all? [09:49] alexo has joined the channel [09:50] alexo: hi everyone [09:51] _announcer: Twitter: "The hot rumor in the streets (?) Node.js tried to install. I have not tried yet is only a simple sample, UNIX C or Java easier than writing all the time on network programs to scale and do not hesitate to write." [ja] -- shywalker. http://twitter.com/shywalkerjp/status/24650676403 [09:52] elliottkember has joined the channel [09:53] mies has joined the channel [09:54] _announcer: Twitter: "javascript Kano Hana was chosen for technical reasons, large? What an easy target Web 取Tsu付Ki standard language for many users? node.js" [ja] -- shywalker. http://twitter.com/shywalkerjp/status/24650812135 [09:55] V1: Rv you mean using sockets? [09:55] V1: Or something else [09:55] Rv: yeap [09:55] Rv: socket [09:59] Throlkim has joined the channel [10:01] sideshowcoder has joined the channel [10:02] gthb has joined the channel [10:02] _announcer: Twitter: "So #diaspora was released... now if only there was a #nodejs port. :)" -- Graphnode. http://twitter.com/graphnode/status/24651200475 [10:04] Rv: V1, is it possible? [10:05] delapouite has joined the channel [10:06] vvsh: Rv: you using WebSocket or just normal socket? [10:07] vvsh: Rv: You should be able to send any msg to specific client, as long as you can identify your clients [10:07] Rv: i use websocket [10:09] ThePub has joined the channel [10:09] ThePub_ has joined the channel [10:09] Rv: i can identify client but how to sens msg not to broadcast but direct to ths client [10:09] aubergine has joined the channel [10:11] kaichen has joined the channel [10:11] jellymonster has joined the channel [10:12] vvsh: Rv: I'm not familiar with websocket, but does your client object have some kind of function to send msg [10:16] kaichen has joined the channel [10:16] nwhite has joined the channel [10:21] sveimac has joined the channel [10:23] ThePub has joined the channel [10:23] karboh has joined the channel [10:24] fermion has joined the channel [10:24] mies has joined the channel [10:28] _announcer: Twitter: "I've been reading a Node.js book at bedtime recently and now I know what they mean by node knockout. Zzzzzz." -- John P. Speno. http://twitter.com/speno/status/24652431543 [10:28] _announcer: Twitter: "@nodecore Not interested in your job, but it seems #nodejs was created around 2009. If true, how can one have 3-5 years experience with it?" -- Matthias Dietrich. http://twitter.com/rainboxx/status/24652457076 [10:31] FuzzYspo0N: ahah. [10:31] FuzzYspo0N: owned. [10:32] _announcer: Twitter: "@ Chanmix51 on my side, I think he sold node.js:)" [fr] -- Thomas Moyse. http://twitter.com/t8g/status/24652643956 [10:34] mies has joined the channel [10:38] jacquesc has left the channel [10:38] _announcer: Twitter: "Found this creative thread on @hackernews "Node.js+Redis+CouchApp+BigCouch+CouchDB+TurnkeyLinux = Nirvana?" My thoughts http://bit.ly/9xM4kf" -- Bhasker V Kode. http://twitter.com/bosky101/status/24652921730 [10:38] _announcer: Twitter: "@nodecore Re-post this job after 2-4 years and you'll be able to find some "experienced" #nodejs developers. Good luck!!!" -- Rakshit Menpara. http://twitter.com/deltasquare4/status/24652946458 [10:39] ThePub has joined the channel [10:41] ph^ has joined the channel [10:45] spetrea has joined the channel [10:45] zomgbie has joined the channel [10:45] tav has joined the channel [10:53] jetienne has joined the channel [10:58] jellymonster has joined the channel [11:00] digitalsanctum has joined the channel [11:00] Blink7 has joined the channel [11:00] nroot7 has joined the channel [11:03] _announcer: Twitter: "Writing a lot of Node.js - there are a ton of gaps and half written libraries still. So far I have a Amazon S3 Library and a Jquery clone" -- Alex Bosworth. http://twitter.com/alexbosworth/status/24654194934 [11:09] ajpiano has joined the channel [11:10] _announcer: Twitter: "nodejs appears to be the most interesting thing ever! #nodejs" -- stoimen popov. http://twitter.com/stoimenblog/status/24654526199 [11:10] zorzar_ has joined the channel [11:13] crohr has joined the channel [11:14] nerdEd has joined the channel [11:15] themiddleman has joined the channel [11:22] _announcer: Twitter: "Downloading the Node.js screencast from Peepcode. Glad I saved my credits!" -- OJ. http://twitter.com/TheColonial/status/24655172242 [11:24] aliem has joined the channel [11:24] jellymonster has joined the channel [11:24] _announcer: Twitter: "planning to teach node.js for free or donation to local friends" -- Leivince John Marte. http://twitter.com/devcorkvince/status/24655323349 [11:26] stagas has joined the channel [11:29] jetienne: q. anybody knows about data clustering or machine learning in node ? [11:29] jetienne: a lib or something [11:30] satori_ has joined the channel [11:32] Anti-X has joined the channel [11:35] devkorcvince has joined the channel [11:36] MattJ has joined the channel [11:37] c4milo has joined the channel [11:42] Nohryb has joined the channel [11:43] d0k has joined the channel [11:47] devkorcvince has joined the channel [11:49] wakawaka has joined the channel [11:50] galaxywatcher has joined the channel [11:56] _announcer: Twitter: "@fjakobs wait, Node.js !== AJAX? (Yes, intentionally caps'd)" -- Peter Higgins. http://twitter.com/phiggins/status/24657165623 [11:58] jashkenas has joined the channel [11:59] saikat has joined the channel [12:01] _announcer: Twitter: "Node.js + Redis + CouchApp + BigCouch + CouchDB + TurnkeyLinux = Nirvana? http://j.mp/ci6CFQ Sounds "cool", but I kind of doubt it" -- Alex Popescu. http://twitter.com/al3xandru/status/24657485338 [12:02] _announcer: Twitter: "@webholics ok it seems that you need the package libwww-ssl-dev an I also installed libcurl4-openssl-dev. #nodejs #turnkey #crypto" -- Christian Ranz. http://twitter.com/ranzwertig/status/24657509498 [12:04] mtodd has joined the channel [12:07] jacobolus has joined the channel [12:08] mattikus has joined the channel [12:09] jellymonster has joined the channel [12:14] freeall has joined the channel [12:14] jetienne: overra: hey are you around [12:14] overra: jetienne: yeah [12:14] Anti-X has joined the channel [12:14] jetienne: overra: whats up ? [12:15] jetienne: overra: btw just chat a bit on #freenode, they dont have oauth (expected), apparently it would be the first time somebody asked [12:15] overra: jetienne: not much, tired. playing around with some js to make animated favicons work on other browsers [12:15] Tim_Smart1 has joined the channel [12:16] _announcer: Twitter: "Ryan Dahl — Introduction to NodeJS (YUI Theater): http://yhoo.it/9cOqZZ" -- stoimen popov. http://twitter.com/stoimenblog/status/24658402359 [12:16] overra: jetienne: cool [12:16] jetienne: overra: cool. a small animation when the event occurs and then come back to the rest position [12:17] jetienne: too much animation all the time may be too distracting [12:17] mies has joined the channel [12:19] _announcer: Twitter: "with #mongodb, #nodejs, & #titanium, its now possible to have the full web, desktop, and mobile stack entirely in #javascript." -- Mark Walker. http://twitter.com/tukutela/status/24658585676 [12:19] overra: jetienne: firefox is the only browser afaik that supports animated gifs for favicons, would like to use js to use an image sequence to animate the favicon on chrome as well [12:19] jetienne: ok [12:20] _announcer: Twitter: "@phiggins #nodejs is AJAX A sync - check J avaScript - check A nd - ok X ML - not really, lets use JSON" -- Fabian Jakobs. http://twitter.com/fjakobs/status/24658683622 [12:20] ahc has joined the channel [12:22] overra: jetienne: so about the irc thing, have any comments/ideas on it? [12:23] jetienne: overra: most likely as i spend the last week thinking about stuff in this area :) [12:23] jetienne: let mùe rereadit [12:24] _announcer: Twitter: "What empowers the OS NodeJS crust U" [ja] -- ぐら. http://twitter.com/grapswiz/status/24658949152 [12:24] prettyrobots has joined the channel [12:25] prettyrobots: The bifurcation of the Node.js Google Group has come. [12:26] Anti-X: oh really [12:26] jetienne: i didnt get this biffurcation. who is using node who isnt a developper [12:27] prettyrobots: jetienne: It was a bad move. [12:27] prettyrobots: I don't know what motivated it and now I don't know where to post what. [12:27] bpadalino: link to the thread in question ? [12:27] digitalspaghetti: prettyrobots: what one? The job one? [12:27] prettyrobots: nodejs-dev [12:28] jetienne: maybe this is nodecore + node lib [12:29] digitalspaghetti: prettyrobots: Bug reports, patches, and design threads for Node.js (nodejs-dev) [12:29] prettyrobots: The core devs leave the user group and then the user group loses discipline. [12:29] digitalspaghetti: so the other one is for more generic stuff [12:29] prettyrobots: Yeah, bad idea. [12:29] digitalspaghetti: Personally I think generic stuff should be a stackoverflow type site, or even move to stackoverflow [12:29] digitalspaghetti: keep core stuff in mailing lists, because mailing lists don't work for generic stuff [12:29] prettyrobots: That's a better idea. [12:29] nerdEd has joined the channel [12:29] matschaffer has joined the channel [12:30] prettyrobots: Its like those Apache projects that have five people working on them and five different mailing lists. (See Scala.) [12:30] prettyrobots: Although, Scala is not an Apache project. [12:36] FuzzYspo0N has joined the channel [12:36] _announcer: Twitter: "@speno really? I want to learn node.js like it's my job" -- Emile Petrone. http://twitter.com/emilepetrone/status/24659763763 [12:39] ahc has joined the channel [12:40] sr: yo, do you know the name of that js graph lib. the website has a green-ish color theme [12:40] sr: i know flot, g.raphael and then there's another one which i always forget about [12:41] tisba has joined the channel [12:41] prettyrobots: http://thejit.org/ [12:41] digitalspaghetti: http://canvasxpress.org/ ? [12:41] _announcer: Twitter: "is there a rubymine plugin for jade? #nodejs #expressjs" -- Sascha Depold. http://twitter.com/sdepold/status/24660125242 [12:42] pgriess has joined the channel [12:44] sr: nah, not those. damn, maybe i am just dreaming that up. going thru all the "X js graphing lib" articles [12:47] TomsB has joined the channel [12:50] christophsturm has joined the channel [12:51] okuryu has joined the channel [12:52] _announcer: Twitter: "Played with Streamie lately. A good use of node.js. In browser , real time streaming app for Twitter. http://streamie.org/" -- Shane Jordan. http://twitter.com/jordanshane/status/24660846788 [12:52] jakehow has joined the channel [12:55] dnolen has joined the channel [12:57] ysinopsys has joined the channel [12:58] emmanueloga has joined the channel [12:59] _announcer: Twitter: "How To Node http://goo.gl/fb/nehXb #nodejs #tutorial" -- Delicious Over 50. http://twitter.com/readelicious/status/24661347408 [13:00] _announcer: Twitter: "Just think of an encrypted data stream: using the node.js generate the encrypted string in the server (AES 256bit), and then transferred to the client, while access to private key contains a url, ajax obtained by the private key, then decrypt, rendering the page." [zh-CN] -- 无网不剩. http://twitter.com/lzyy/status/24661470102 [13:01] _announcer: Twitter: "Node.js + Redis + CouchApp + BigCouch + CouchDB + TurnkeyLinux = Nirvana? http://feedproxy.google.com/~r/nosql/~3/bZSisJAiyJo/1131644289" -- Dominique Boucher. http://twitter.com/dboucher/status/24661492032 [13:01] voxpelli has joined the channel [13:04] cognominal has joined the channel [13:06] TomsB_ has joined the channel [13:07] _announcer: Twitter: "@emerleite: Hahaha!! Are they looking for quantum entanglement physicists? ~ http://is.gd/fdlad #nodejs" -- Daniel Martins. http://twitter.com/danielfmt/status/24661986302 [13:11] ironfroggy_: I know I have seen a node.js implementation of the Akismet API, but i cant find it now and I need it. Does anyone recall where it might be? [13:11] Zuardi has joined the channel [13:14] V1: Rv: You can broadcast to one single client over websockets. But it depends on your node.js websocket server. For example socket.io only exposes a "boadcast" and "send" method for sending data to clients [13:16] Eber has joined the channel [13:17] ironfroggy_: i thought there was a few sites collecting and listing node.js packages, so they can be searched in one place. i cant find any of these. [13:17] kaichen has joined the channel [13:17] hdon has joined the channel [13:18] Alex-SF has joined the channel [13:18] jherdman has joined the channel [13:19] _announcer: Twitter: "@davetchepak yeah once you learn js != browsers its awesome, looked at node.js?" -- jared wyles. http://twitter.com/rioter/status/24662863927 [13:20] _announcer: Twitter: "Hot! node.js fun! I'm ready to be helped to write up a long time to write up. Primarily Networks. It was so twisted prejudice or Na ー be fun too." [ja] -- shunuhs. http://twitter.com/shunuhs/status/24662920962 [13:20] Rv: V1, now i see, i can use send(conn.id,msg) for this. thanks. [13:21] Zuardi: ironfroggy_: http://github.com/ry/node/wiki/modules is pretty active [13:22] ironfroggy_: this is troubling me. i cant find the akismet module anywhere [13:24] Zuardi: ironfroggy_: maybe there isnt one [13:25] ironfroggy_: oh thank you Google Web History! [13:25] ironfroggy_: http://github.com/jaysoo/akismetjs [13:25] Zuardi: ironfroggy_: found it? post the link on the wiki :) [13:27] ironfroggy_: will do, after i try it and see it actually working ;-) [13:27] Zuardi: ironfroggy_: good call :) [13:27] evanpro has joined the channel [13:30] mikew3c_ has joined the channel [13:30] Anti-X has joined the channel [13:32] rnewson has joined the channel [13:33] _announcer: Twitter: "All the #nodejs hype is starting to create a backlash. Somebody was actually motivated enough to create a parody over at @nodecore." -- Jim Pick. http://twitter.com/jimpick/status/24663905036 [13:33] _announcer: Twitter: "Node.js and Redis Pub-Sub http://post.ly/xvnh" -- Ivan Ribeiro. http://twitter.com/irr/status/24663949123 [13:37] Athox has joined the channel [13:39] ben_alman_ has joined the channel [13:40] _announcer: Twitter: "The Node.js now running on webOS – and more Web improvements - http://bit.ly/c4KxGn" -- Full Thought CC, Inc. http://twitter.com/meldunford/status/24664449820 [13:42] _announcer: Twitter: "been looking into the code of node.js, simple and works great..pretty awesome :D" -- juske the badatmath. http://twitter.com/bad_at_math/status/24664655292 [13:43] _announcer: Twitter: "nodejs-dev ML http://groups.google.com/group/nodejs-dev preexistent 分Kezaru ML is due to too many forced to be posted." [ja] -- koichik. http://twitter.com/koichik/status/24664731598 [13:43] _announcer: Twitter: "HYPE_HULK: diaspora websockets long polling asynchronous node.js checkin mongodb lean startup paul graham location based." -- jessenoller. http://twitter.com/jessenoller/status/24664759207 [13:45] tk has joined the channel [13:45] hsuh has joined the channel [13:47] digitalspaghetti: Anyone here use YQL? [13:48] Eber: digitalspaghetti: I know it, but never used it for real... Never had the chance! Why? [13:48] digitalspaghetti: i have a custom query and i need to pass a varable to the URL in that query [13:48] digitalspaghetti: select last_seq, results from json where url="http://isaacs.couchone.com/jsregistry/_changes?include_docs=true" [13:48] digitalspaghetti: I want to pass like this instead: [13:49] digitalspaghetti: select last_seq, results from json where url="http://isaacs.couchone.com/jsregistry/_changes?include_docs=true&since=1024" [13:49] Eber: it breaks the query? [13:49] digitalspaghetti: now in code, that's fine I can do that request, but i was hoping to alias it in some way [13:49] digitalspaghetti: no, i need to know how to pass a varable to the since [13:49] digitalspaghetti: so i might be like this: [13:50] _announcer: Twitter: "Wow, nice. A telnet terminal emulator build with HTML5, Canvas, Websocket API. Server based on node.js: http://jsterm.com/" -- bishoph. http://twitter.com/bishoph/status/24665238077 [13:50] digitalspaghetti: select last_seq, results from json where url="http://isaacs.couchone.com/jsregistry/_changes?include_docs=true&since=?" [13:50] omarkj: As in put variables in the url ? [13:50] digitalspaghetti: then i can do http://query.yahooapis.com/v1/public/yql/tanepiper/fetchsincenpm?format=json&diagnostics=true&since=1024&callback= [13:50] temp01 has joined the channel [13:50] digitalspaghetti: omarkj: yea [13:50] DoNaLd`: digitalspaghetti: so you need have last variable since dynamic yea ? [13:50] omarkj: digitalspaghetti: [13:51] Eber: I see... Nothing on the docs? [13:51] digitalspaghetti: Eber: not that i can find, i've googled it [13:51] V1: nice highlight you got there [13:51] path[l] has joined the channel [13:51] digitalspaghetti: plenty on doing selects with data [13:52] omarkj: Well, it's a string so you can just put placeholders in it and then dynamically create it? [13:52] digitalspaghetti: and it must be possible, since their own stuff does it [13:52] digitalspaghetti: for example: [13:52] digitalspaghetti: select * from flickr.photos.search where text="Cat" limit 10 generates a URL of http://api.flickr.com/services/rest/?method=flickr.photos.search&text=Cat&page=1&per_page=10 [13:53] digitalspaghetti: omarkj: yes, if i pass the whole query [13:53] digitalspaghetti: but i want to try alias the query [13:53] omarkj: Ah, get it now. :) [13:53] Eber: digitalspaghetti: in that case, they are using an open data table I guess... so maybe you should create your own... [13:53] Eber: http://developer.yahoo.com/yql/guide/yql_dev_guide.html [13:53] Eber: a lot of work for such a simple thing... [13:53] dshaw has joined the channel [13:54] _announcer: Twitter: "@MissYeh let's just say I'm hoping the NodeJS community continues to grow :)" -- relaxnow. http://twitter.com/relaxnow/status/24665624439 [13:55] _announcer: Twitter: "very interesting http://ajaxian.com/archives/pushstate-node-js-on-the-server-side" [cs] -- Michal Matuška. http://twitter.com/fireball_/status/24665655807 [13:55] DoNaLd`: digitalspaghetti: you mean this ? http://developer.yahoo.com/yql/guide/var_substitution.html [13:55] pengwynn has joined the channel [13:55] bryanl has joined the channel [13:56] d0k has joined the channel [13:56] Eber: that seems to solve it! [13:57] digitalspaghetti: nope that's not it [13:57] digitalspaghetti: because i'm not querying the dataset i recieve, i want to limit the dataset before i get it [13:57] digitalspaghetti: doesn't seem possible this way [13:57] crohr_ has joined the channel [14:00] nerdEd has joined the channel [14:01] matt_c has joined the channel [14:03] ctp has joined the channel [14:04] ironfroggy_: Anyone know how to get the client IP from a socket.IO Client object? [14:04] _announcer: Twitter: "@tjholowaychuk FYI: pure #jade #nodejs and #mongodb http://bit.ly/a3ytbn" -- Erdem Gezer. http://twitter.com/erdemgezer/status/24666418148 [14:04] ironfroggy_: it doesnt seem to hold onto a request object i can look in [14:04] ahc has joined the channel [14:05] galaxywatcher has joined the channel [14:05] ajpiano has joined the channel [14:05] cferris has joined the channel [14:05] wattz: morning chic-a-deez! [14:08] _announcer: Twitter: "LAMP --> NUM? (Nodejs, Unix based OS and MongoDB) - Similar observations to my NNNN post http://is.gd/f44fE" -- Phil Hawksworth. http://twitter.com/philhawksworth/status/24666719585 [14:10] robinduckett has joined the channel [14:10] robinduckett: j0 [14:13] _announcer: Twitter: "@philhawksworth replace NodeJS with Sinatra to get SUM for us rubyists" -- David E. http://twitter.com/Eastmad/status/24667190871 [14:14] _announcer: Twitter: "Telnet terminal built using HTML5 Canvas/WebSocket/Node.js - Hacker News - Comments http://bit.ly/c4WeLq" -- Dr.SunTzu. http://twitter.com/DrSunWu/status/24667232988 [14:16] _announcer: Twitter: "Scenarios with what? @ Lzyy just think of an encrypted data stream: using the node.js generate the encrypted string in the server (AES 256bit), and then transferred to the client, while access to private key contains a url, after the private key obtained by ajax , and then decrypt, rendering the page." [zh-CN] -- sunli. http://twitter.com/sunli1223/status/24667396043 [14:16] aubergine_ has joined the channel [14:17] sstephenson has joined the channel [14:17] robinduckett: fuck [14:17] robinduckett: that's a good translation [14:18] robinduckett: like [14:18] robinduckett: really fucking good [14:18] robinduckett: wow [14:18] robinduckett: *impressed* [14:19] TobiasFar has joined the channel [14:21] stagas: large paragraphs translate better than small sentences cause it helps the translator figure it out [14:22] digitalspaghetti: it's quite a technical sentence though [14:22] digitalspaghetti: *paragraph [14:23] KungFuHamster has joined the channel [14:23] stagas: it doesn't matter cause the users populate the translator data by the 'provide a better translation' button when you google translate pages [14:24] stagas: it is impressive though :) [14:24] robinduckett: indeed [14:25] robinduckett: just running some other chinese tweets through google translate [14:25] robinduckett: extremely impressive [14:27] softdrink has joined the channel [14:32] ivanfi has left the channel [14:32] herbySk has joined the channel [14:34] lakin has joined the channel [14:36] bradleymeck has joined the channel [14:39] Me1000 has joined the channel [14:40] themcgruff has joined the channel [14:41] adambeynon has joined the channel [14:43] marshall_law has joined the channel [14:44] tmm1 has joined the channel [14:44] _announcer: Twitter: "Oh, look, a job ad requiring 3 - 5 experience with nodejs. Why not just say you're not interested in honestly filling the position? #fail" -- Malcolm Tredinnick. http://twitter.com/malcolmt/status/24669781177 [14:45] tmm1 has joined the channel [14:46] tmm1 has joined the channel [14:46] zhesto has joined the channel [14:46] FuzzYspo0N has left the channel [14:47] _announcer: Twitter: "so... has anyone ported #diaspora to #nodejs yet? i had to ask" -- Phred. http://twitter.com/fearphage/status/24669995872 [14:47] bradleymeck: !malclmt maybe they are looking for time travelers [14:47] tmm1 has joined the channel [14:47] _announcer: Twitter: "Just did a node.js tut. I think I like it." -- Joe Stevens. http://twitter.com/joemacstevens/status/24670033006 [14:47] bradleymeck: !tweet @malclmt maybe they are looking for time travelers [14:48] robinduckett: you spelt his username wrong [14:48] robinduckett: malcomt [14:48] bradleymeck: pff im too tired to redo it [14:48] tmm1 has joined the channel [14:48] _announcer: Twitter: "@nodecore uhm. 3-5 years? I thought node.js was less than 2 years old. (cc @dalmaer)" -- Luke Smith. http://twitter.com/ls_n/status/24670123433 [14:49] bradleymeck: ah good times, it wants fireworks too [14:49] tmm1 has joined the channel [14:50] tmm1 has joined the channel [14:50] _announcer: Twitter: "@ Adent 3-5 years experience node.js? It will look far when it about a year old project, right?" [cs] -- Josef Richter. http://twitter.com/josefrichter/status/24670314045 [14:51] harryv has joined the channel [14:51] _announcer: Twitter: "@malcolmt I am sure the creator of Node.js might have that if you include the day he started it." -- John Shimek. http://twitter.com/varikin/status/24670357041 [14:51] tmm1 has joined the channel [14:52] tmm1 has joined the channel [14:52] DoNaLd`: this is similary like we looking for 20 years old developer with 30 years experience [14:52] robinduckett: haha [14:53] robinduckett: I worked with Cray super computers during the 1970s and left IBM in 1984, in 1987 I was born and spent most of my time learning to walk/speak and going to school [14:53] tmm1 has joined the channel [14:54] sudoer has joined the channel [14:54] tmm1 has joined the channel [14:54] DoNaLd`: yea .. great description [14:55] benburkert has joined the channel [14:55] robinduckett: That's my resume. [14:56] tmm1 has joined the channel [14:56] robinduckett: I wonder why I don't get more jobs. [14:56] harryv: meh, it doesn't look like any of the graphic modules can read and write images to/from memory :( [14:56] bronson has joined the channel [14:57] harryv: ah, I remembered there were something new. merln. [14:57] marshall_law has joined the channel [14:59] jtsnow has joined the channel [14:59] tmm1 has joined the channel [15:00] tmm1 has joined the channel [15:01] tmm1 has joined the channel [15:01] tisba has joined the channel [15:01] dpritchett has joined the channel [15:01] bradleymeck has joined the channel [15:02] Yuffster has joined the channel [15:02] tmm1 has joined the channel [15:03] tmm1 has joined the channel [15:04] romanb has joined the channel [15:04] tmm1 has joined the channel [15:05] spetrea: what's the best practice to do debugging with node.js ? [15:05] tmm1 has joined the channel [15:06] jakehow has joined the channel [15:06] tmm1 has joined the channel [15:07] davidsklar has joined the channel [15:07] tmm1 has joined the channel [15:07] bradleymeck: node-inspector / node-profiler / node --prof myfile.js [15:08] _announcer: Twitter: "@ginader "Must have 3-5 years experience with #nodejs." <- unlikely, node.js is like 1,5 years old" -- ACTRAiSER. http://twitter.com/actraiser/status/24671789814 [15:08] dpritchett: Is that one of those sneaky H1B traps? [15:08] sonnym has joined the channel [15:08] creationix has joined the channel [15:08] tmm1 has joined the channel [15:09] spetrea: bradleymeck: something built-in moose ? is node-inspector maybe [15:09] bradleymeck: moose? [15:09] tmm1 has joined the channel [15:09] captain_morgan has joined the channel [15:10] bradleymeck: only one in node-core is --prof [15:10] altamic has joined the channel [15:10] tmm1 has joined the channel [15:11] tmm1 has joined the channel [15:13] aubergine has joined the channel [15:13] mitkok has joined the channel [15:13] arlolra has joined the channel [15:14] elliottkember_ has joined the channel [15:15] dnolen has joined the channel [15:15] _announcer: Twitter: "@Eastmad I was about to visit the gone to far bar with TransactSQL, C, nodejs and Unix." -- Nic Ferrier. http://twitter.com/nicferrier/status/24672431714 [15:16] TomsB has joined the channel [15:17] ph^ has joined the channel [15:17] stride: lol @ that 3-5 years experience tweet :D [15:18] harryv has left the channel [15:18] bradleymeck: i wonder about their consulting [15:19] stride: seems to be a fake account. meh :/ [15:19] trotter has joined the channel [15:20] robinduckett: nodecore? [15:21] stride: yep [15:21] EyePulp has joined the channel [15:21] robinduckett: ah is it? :D [15:21] steadicat has joined the channel [15:22] robinduckett: "Thinking bout writing a node app that'd help me decide which feature of node.js is my favorite. It's just too hard to choose! <3 all of them" [15:22] robinduckett: hahah [15:22] robinduckett: this account is golden [15:22] stride: no idea, either that or it's the place jimbastard secretly puts his jokes ;> [15:23] robinduckett: :D [15:24] pdelgallego has joined the channel [15:24] _announcer: Twitter: "@nodecore presumptive to assume those of us who like node.js also like or are "comfortable" with MBP's" -- Kyle Simpson. http://twitter.com/getify/status/24673169845 [15:24] mheld has joined the channel [15:24] mheld: hey y'all [15:24] loincloth has joined the channel [15:25] bradleymeck: jashkenas, like it, also dug up http://jsperf.com/switch-case-vs-if-else/3 [15:25] langworthy has joined the channel [15:25] bradleymeck: hiya mheld [15:26] mheld: how's it going bradleymeck? [15:26] bradleymeck: just fine [15:28] _announcer: Twitter: "@robb1e nodejs oracle mysql NT unix mongodb could be used for chewing through lots of data." -- Nic Ferrier. http://twitter.com/nicferrier/status/24673486149 [15:28] hayeah has joined the channel [15:29] grahamalot has joined the channel [15:30] zapnap has joined the channel [15:30] dmcquay has joined the channel [15:30] crohr has joined the channel [15:31] mheld: how is node.js different from eventmachine (other than language difference)? [15:32] Validatorian has joined the channel [15:34] muk_mb has joined the channel [15:35] bradleymeck: i dont know eventmachine [15:36] digitalspaghetti: basically ruby's twisted [15:36] _announcer: Twitter: "@elduderino78 3-5 years #nodejs experience? Also must have 3-5 years of Visual Studio 2015 experience." -- Adam Burmister. http://twitter.com/adamburmister/status/24674180778 [15:36] bradleymeck: ACTION is looking into some docs [15:36] digitalspaghetti: mheld: the difference is events are native to nodejs, not wrapped around threads [15:37] digitalspaghetti: + not Ruby [15:37] bradleymeck: looks also like first class functions are used as callbacks rather than discrete models [15:37] digitalspaghetti: which is the best thing about it :D [15:37] mheld: ah [15:37] mheld: that's neat [15:38] ehaas has joined the channel [15:38] bradleymeck: One Thread to rule them all, One Thread to emit them, One Thread to bring them all and in the JS bind them [15:39] tj has joined the channel [15:39] digitalspaghetti: bradleymeck: heh [15:39] micheil has joined the channel [15:39] visnup has joined the channel [15:39] err_ok has joined the channel [15:39] bradleymeck: except when you need to wrap code which refuses to coexist like separate event loops writting in c++ [15:40] bradleymeck: written* [15:40] mheld: There can only be one [15:40] digitalspaghetti: Also writing client side stuff is a joy because JSON -> JSON [15:40] digitalspaghetti: no need to fanny about with JSON -> {Native object type} [15:40] aurynn: I thought libev interanally used a thread pool? [15:42] _announcer: Twitter: "@OhMeadhbh node.js would definitely be a nice backend for some opensim robustbased services. Esp inventory. So darn fast and non blocking" -- Peter C. Host. http://twitter.com/PeterHost/status/24674656681 [15:43] aheckmann has joined the channel [15:44] bradleymeck: aurynn it does, but node is just using the main thread, only c++ is making new ones [15:45] aurynn: ahh [15:45] aurynn: I see. [15:45] bradleymeck: so js is guaranteed single threads, async ops may or may not be threaded (for most situations they are not) [15:46] aurynn: event concurrency is hard enough without having to think about threads underneath. [15:47] digitalspaghetti: we need a ASync OS :) [15:47] digitalspaghetti: die threads, die (and your child spawn) [15:47] robinduckett: hmm [15:47] robinduckett: is there no soap modules for node? [15:48] zapnap has joined the channel [15:48] altamic_ has joined the channel [15:48] softdrink has joined the channel [15:48] digitalspaghetti: no, and i was going to write one as someone in here asked me [15:48] robinduckett: do it [15:48] digitalspaghetti: and I did SOAP in JS a couple of years back in adobe AIR [15:49] bradleymeck: well threads have persisted so long and so many myths about them perpetuated (OS do not generally spread threads across cores, its dangerous, idc if your uncles cousin told you they did) [15:49] digitalspaghetti: if i switch out jQuery for JSDom, or some other XML parser then I should be able to [15:49] robinduckett: I did sockets in JS a couple years back in xulrunner ;) [15:49] digitalspaghetti: but SOAP sucks anyway :p [15:49] robinduckett: need to use it for CAP vehicle data [15:49] bradleymeck: is there any benefit to soap? [15:49] digitalspaghetti: Straw poll: Best XML parser for nodejs? [15:50] bradleymeck: htmlparser, cause i do chunked and like the terrible xml it can eat [15:50] c4milo: libxmljs [15:50] softdrink: best: "Not using soap" ;) [15:50] bradleymeck: its slow as sin though... [15:50] jchris has joined the channel [15:50] aurynn: Is multiple-processes in node now? Can I fork() safely? [15:51] digitalspaghetti: ugh, htmlparse was horrible when i tried to use it [15:51] digitalspaghetti: might just stick with jsdom and use jQuery [15:51] digitalspaghetti: then my code will just port [15:52] robinduckett: hmm [15:52] robinduckett: speaking of jsdom [15:52] robinduckett: why doesn't [15:52] robinduckett: window.document work [15:52] robinduckett: ? [15:52] mtodd has joined the channel [15:53] _announcer: Twitter: "Email-Address-Validator exactly like the PHP filter_var() for node.js -- http://github.com/dipser/Email-Address-Validator #node.js" -- Aurel H.. http://twitter.com/dipser/status/24675625057 [15:53] _announcer: Twitter: "Node.js For My Tiny Ruby Brain: Keeping Promises http://bit.ly/bBTCe5" -- Marcio Giaxa. http://twitter.com/marciogm/status/24675649273 [15:54] bpot has joined the channel [15:54] stephank has joined the channel [15:56] rjrodger has joined the channel [15:56] huyhong has joined the channel [15:56] jakehow has joined the channel [15:57] bradleymeck: robinduckett idk, ask tmpvar. thought he fixed that [15:57] digitalspaghetti: hmm that's a nice post, i haven't looked at promises myself [15:57] rjrodger has joined the channel [15:58] robinduckett: aren't promises like wildy deprecated? [15:58] bradleymeck: from core, yes [15:58] robinduckett: k [15:59] _announcer: Twitter: "Really having a hard time reconciling my intense dislike of Javascript with my sudden interest in Node.js." -- Zac Morris. http://twitter.com/pr0zac/status/24676072653 [15:59] digitalspaghetti: i don't really know if i need them, but i only found out node has crypto hashes built in last night [15:59] digitalspaghetti: so there are a few things i still need to dig deeper [15:59] bradleymeck: !tweet @pro0zac coffeescript? http://jashkenas.github.com/coffee-script/ [15:59] digitalspaghetti: what i really need is a good project to dive into [15:59] _announcer: Twitter: "Seriously, if NodeJS/Ruby fibers seem neat to you, head over to http://bit.ly/dCqcnQ to get your mind blown." -- Oscar. http://twitter.com/oscar_lee87/status/24676125958 [16:00] digitalspaghetti: libraries only get you so far, gotta write a 'serious' app :p [16:00] bradleymeck: !tweet @oscar_lee87 if i see that one more time my head will explode... also check into node's internals pls [16:00] jpld has joined the channel [16:00] _announcer: Twitter: "@nodecore how can one have 3-5yrs experience on node.js given that the first commit to nodejs is a year and a half old?!" -- Taum. http://twitter.com/taumxd/status/24676218298 [16:00] _announcer: Twitter: ""My" Email-Address-Validator for node.js in jsfiddle for the fast tryout: http://jsfiddle.net/4tjwn/" -- Aurel H.. http://twitter.com/dipser/status/24676227239 [16:00] bradleymeck: digitalspaghetti, get me a stackexchange clone [16:01] digitalspaghetti: hmm, not a terrible idea [16:01] Aria has joined the channel [16:01] digitalspaghetti: especially since i've been pushing to have the node mailing list dropped in favor of it :) [16:01] aurynn: nodeexchange [16:01] robinduckett: !tweet @taumxd @nodecore is satire [16:02] robinduckett: wow [16:02] voxpelli has joined the channel [16:02] robinduckett: npm makes shit painless [16:02] digitalspaghetti: bradleymeck: as long as you don't force me to use nosql i'm in :D [16:03] bradleymeck: nosql is only needed for sharding really. i doubt we would need that for a single site [16:04] digitalspaghetti: shards are the secret in the web scale sauce [16:04] robinduckett: expert sexchange [16:04] aurynn: sharding is one approach to scaling [16:05] aurynn: though I really, really want to use pl/proxy in production [16:05] AAA_awright has joined the channel [16:07] bradleymeck: shards are still fragile, but shhhhh [16:08] bradleymeck: also i do like that research doc that keeps coming up that assumes threads go across cores it seems [16:08] bradleymeck: if a user land lock gets replicated :O [16:08] aubergine has joined the channel [16:10] gerred has joined the channel [16:13] _announcer: Twitter: "@PeterHost fwiw. i had some vwrap services implemented with node.js @ linden. but never got approval to release them; so i gotta recode them" -- Meadhbh Hamrick. http://twitter.com/OhMeadhbh/status/24677238120 [16:15] robinduckett: man [16:15] robinduckett: set mouse=a [16:15] robinduckett: best [16:15] robinduckett: option [16:15] robinduckett: ever [16:15] robinduckett: vim has now replaced gedit/e-text-editor/textmate [16:16] jesusabdullah: set mouse = a? [16:16] jesusabdullah: What does THAT do? [16:16] robinduckett: allows mouse control in vim [16:16] isaacs has joined the channel [16:16] robinduckett: i.e. click to put the cursor there [16:16] robinduckett: in console [16:17] kennon: Is there a good way to completely package dependencies inside of my project (i.e. ./vendor) WITHOUT tons of symlinks to system-specific file locations in other places (what npm bundle seems to do)? [16:17] bradleymeck: i do wonder how they get that cursor placement [16:17] isaacs: kennon: npm bundle ./vendor [16:17] isaacs: oh... [16:17] isaacs: hehe [16:17] robinduckett: kennon: git submodules? :D [16:17] kennon: isaacs: that makes a bunch of weird symlinked files with hashbangs to /usr/local/Cellar, etc [16:17] isaacs: kennon: so, the npm bundle command doesn't actually link anything outside of that subfolder. [16:17] isaacs: or, at least, shouldn't. [16:18] isaacs: kennon: oh... you're using homebrew. [16:18] isaacs: nvm, then [16:18] kennon: yeah and i'm trying to deploy this to a server now [16:18] isaacs: the solution is: download the programs, and install them however they say to be installed. [16:18] kennon: and i'm just getting big fail everywhere [16:18] kennon: i tried that too [16:18] isaacs: or just never ever ever use homebrew with npm and node. [16:18] kennon: and still running into tons of path issues [16:18] kennon: i keep putting the directories in NODE_PATH [16:18] kennon: but still having issues [16:18] isaacs: kennon: so, which things have shebangs to the Cellar? [16:18] kennon: i just want to put the whole modules in ./vendor [16:19] isaacs: kennon: npm bundle should really not be creating any shebanged things [16:19] kennon: in my ./vendor/express/index.js, it looks like some sort of script ro actually load it from /vendor/.npm/....... [16:19] isaacs: kennon: it does "--binroot false", so no bins should be created at all. [16:19] kennon: top of file: #!/usr/local/Cellar/node/0.2.1/bin/node [16:20] isaacs: hrm... that's not right.. [16:20] kennon: i did a npm bundle ./vendor [16:20] kennon: the modules ARE there, [16:20] mbrochh has joined the channel [16:20] isaacs: kennon: in any event, you can still do require("./vendor/express"), right? [16:20] kennon: but buried in about 18 layers of cruft [16:20] mjr_ has joined the channel [16:20] mbrochh has joined the channel [16:20] kennon: yes it works on my machine [16:20] kennon: but when i deployed, it didn't because of the shebangs [16:20] _announcer: Twitter: "GPU-enabled web browsing is going to be a big deal. And #nodejs is going to be there on the server side so everything can talk." -- Jim Pick. http://twitter.com/jimpick/status/24677828266 [16:20] isaacs: thats'.... odd [16:20] kennon: because ./vendor/express/index.js is really a little mini redirect relod script or something to load from var from = "./../.npm/express/1.0.0rc2/package/lib/express/index" [16:21] isaacs: but yes, it appears that the shebangs are getting written all the time, even if it's not a bin. [16:21] isaacs: still, require("./vendor/express") should just load up the module and ignore the shebang. [16:21] isaacs: so what's the actual error you're seeing? [16:21] kennon: just a sec let me try it again [16:21] robinduckett: roflmao [16:21] robinduckett: okay [16:21] kennon: it was in the middle of NODE_PATH not finding stuff erorrs, was changing stuff willy nilly so let me see what the root cause was [16:21] robinduckett: npm might make libxmljs painless to build [16:22] robinduckett: but it's still the same pile of shit it was months ago [16:22] kennon: oh man you're not kidding [16:22] isaacs: hahahah [16:22] isaacs: robinduckett: take it up with polotek. can't help ya there. [16:22] kennon: is it really just not possible to do xml parsing in pure JS without having a C++ linked module? [16:22] kennon: is it that slow? [16:22] robinduckett: kennon: for what I need to do with it, yeah. [16:23] isaacs: robinduckett: it'd be nice to port http://github.com/isaacs/sax-js to C++ [16:23] kennon: today i had to do xmlrpc in node and the only lib i could find was node-xmlrpc.c which depends on libxmljs [16:23] isaacs: robinduckett: it's on my todo list. [16:23] kennon: that was a fun hour rewriting stuff and trying to figure out where to put stuff so things could be loaded :-) [16:23] isaacs: robinduckett: and also change the names of things to match the stupid awful retarded java sax names. [16:23] isaacs: NSthis and NSthat [16:24] dgathright has joined the channel [16:24] robinduckett: well [16:24] robinduckett: I get a big lot of xmlMemFree errors with libxmljs [16:24] robinduckett: so [16:24] isaacs: robinduckett: do you actually need a dom structurE? [16:24] robinduckett: it's useless for me at the moment [16:24] robinduckett: no [16:24] robinduckett: not at all [16:24] MrNibblesFreenod has joined the channel [16:24] robinduckett: i'm parsing soap [16:25] isaacs: robinduckett: i'd suggest checking out my sax-js lib. [16:25] kennon: isaacs: the issue was, when i run node inside of the directory with my app.js, it works, but when i try to call node absolutely (i.e. from an /etc/init.d script), it can't find the vendored modules [16:25] isaacs: robinduckett: if it's really too slow, i'd be at least interested in finding out exactly why/wher [16:25] isaacs: e [16:25] jbenesch has joined the channel [16:25] isaacs: kennon: how are you loading teh vendored modules? [16:25] isaacs: kennon: that is, in your app [16:26] kennon: isaacs: up top, as i saw on a tutorial for npm bundle, require.paths.unshift('./vendor');, then express = require('express'), [16:26] kennon: isaacs: i think its finding express, but not connect, one of its dependencies [16:26] kennon: isaacs: the actual error is Error: Cannot find module 'connect' [16:26] isaacs: kennon: can you please gist the whole error, with the stack trace and everything? [16:27] isaacs: kennon: if you're doing require("./vendor/express"), then it shoudl be going through the npm-created shim, and thus have its dependency set already loaded in the require.paths [16:27] kennon: isaacs: http://gist.github.com/582708 [16:27] isaacs: so either connect is broken, or npm is broken, or your code is broken. [16:27] kennon: ok let me try ./vendor/express [16:27] kennon: that might be it [16:28] isaacs: what's line 8 of app.js? [16:28] _announcer: Twitter: "I need to learn and implement this node.js on one of my future apps." -- Sherwin Valdez. http://twitter.com/swavaldez/status/24678450679 [16:28] kennon: isaacs: the express require [16:29] isaacs: kennon: the code. [16:29] kennon: isaacs: doing require('./vendor/express') seems to work! [16:29] isaacs: kennon: kewl [16:29] bradleymeck: as to if parsing in pure js is slow, the fastest JSON parser in JS is 15-20~ times slower than native [16:29] isaacs: kennon: it looks like it's finding express at /opt/lib/node/express/index.js [16:29] qFox has joined the channel [16:29] kennon: isaacs: yeah thats one of the places i had tried installing it to get it to work, that makes sense tho that it wasnt pulling the vendor first [16:29] AAA_awright has left the channel [16:29] AAA_awright has joined the channel [16:30] kennon: thanks!! [16:30] isaacs: kennon: right, because ./vendor isn't in your NODE_PATH [16:30] isaacs: kennon: np [16:30] femtoo has joined the channel [16:30] kennon: isaacs: well i had the require.paths.unshift('./vendor'); at the top of app.js, which i thought was supposed to do that [16:30] kennon: but oh well [16:30] isaacs: kennon: require.paths must be absolute. [16:30] kennon: ahh, good to know :-)_ [16:30] mikew3c has joined the channel [16:30] isaacs: kennon: require.paths.unshift(path.join(process.cwd), "vendor") [16:30] altamic has joined the channel [16:31] isaacs: kennon: otherwise, it'll just look into ./vendor relative to the module doing the requiring [16:31] isaacs: kennon: so, for instance, require.paths.push(".") will make modules look in their current dir [16:31] kennon: isaacs: right [16:32] robinduckett: i'm outtie, i'll try that sax-js module dude [16:32] robinduckett: ty [16:32] kennon: hah, my next question: how can you get node to daemonize? i'm trying with start-stop-daemon but it's still staying in foreground. maybe i'll just try the handy & [16:32] mjr_: isaacs: are you node-ing it up at Joyent now? [16:32] isaacs: mjr_: yep [16:32] mjr_: Cool [16:33] robinduckett: bbl [16:33] voxpelli has joined the channel [16:33] stride: kennon: nohup? [16:33] jesusabdullah: kennon: http://github.com/Slashed/daemon.node/ [16:35] _announcer: Twitter: "Telnet terminal built using HTML5 Canvas/WebSocket/Node.js: Comments http://jsterm.com/" -- Dr.SunTzu. http://twitter.com/DrSunWu/status/24678986146 [16:37] jetienne: ? they do a ascii art demo and they call that a terminal ? [16:37] Yuffster_work has joined the channel [16:37] adambeynon has joined the channel [16:38] mertimor has joined the channel [16:39] prettyrobots has joined the channel [16:39] omarkj: Hey guys. Working with the crypto library within Node.js (gist at http://gist.github.com/582723). I'm creating a signature, then using that same signature to verify and it's failing. [16:39] omarkj: Similar logic in Python is fine. [16:41] omarkj: Any idea? The keys are not a problem, using the same algo. I'm kind of lost. [16:42] dgathright_ has joined the channel [16:43] Nohryb: v8 module [16:43] v8bot: Nohryb: ReferenceError: module is not defined [16:43] ooooPsss has joined the channel [16:44] bradleymeck: v8 [,] [16:44] v8bot: bradleymeck: [undefined] [16:45] bradleymeck: dun dun duuuun [16:45] huyhong has joined the channel [16:45] omarkj: Well, crypt is a wrapper around some OpenSSL methods. [16:45] _announcer: Twitter: "@bryanl Oh, I've already updated my CV. A combined 5 years experience with SproutCore + Node.js." -- Luigi Montanez. http://twitter.com/LuigiMontanez/status/24679806091 [16:47] webr3: q: if you could create client side applications in js,html5,css and wrap them up in a signed package (like regular software) and have them run in every user agent that supported (ie every browser on every device and all web os's) would you use it? [16:48] sztanpet: no, what for [16:48] bradleymeck: if i could light css on fire and use something sane that has relative values, yes, otherwise no [16:48] sztanpet: whats the plus [16:48] stride: wasn't that what IE tried with .hta? never found that particulary useful.. [16:48] webr3: sztanpet, pure client side apps that could pull info from any domain (ie use the web as a datatier) and which would be cached in the browser (like an extensions) [16:49] bradleymeck: signed code generally can consider things inside it trusted [16:49] stride: I prefer to use tools that were designed for that job for "real" apps [16:49] bradleymeck: i think html is fine, js is fine, css is PoS [16:50] webr3: bradleymeck, swap to other tech you like then - just t have signed code packages that run like extensions but in the main browser context, contents of the package being up to you [16:50] bradleymeck: sure [16:50] bradleymeck: must resist urge to rant about css [16:51] zith_: webr3: and what part of the infrastructure will verify the signatures? [16:51] _announcer: Twitter: "@voodootikigod Come on , Chris , let's not fight. We'll write some node.js apps and everything will be alright." -- Mark Phillips. http://twitter.com/pharkmillups/status/24680262487 [16:51] sixtus42 has joined the channel [16:51] Zuardi has left the channel [16:52] adambeynon has joined the channel [16:52] captain_morgan has joined the channel [16:52] sixtus42: Got a question about http.creatClient... How do I catch the exception, when I try to request from a closed port? [16:53] elliottkember has joined the channel [16:53] _announcer: Twitter: "intrigued by node.js after reading http://bit.ly/cxFw9n So now i can experiment on windows as well ..." -- Geoffrey Braaf. http://twitter.com/geoffrey_braaf/status/24680452953 [16:54] _announcer: Twitter: "http://jsterm.com web browser to operate the terminal (JavaScript + Canvas + wepsoket + node.js)" [ko] -- jinto. http://twitter.com/jinto/status/24680507826 [16:54] deepthawtz has joined the channel [16:54] isaacs: sixtus42: client.on("error", function (er) { doSomething }) [16:54] jetienne: sixtus42: listen to error [16:55] jetienne: sixtus42: and timeout [16:56] digitalspaghetti: how does one pass a variable through all connect/express apps? i.e App name [16:56] _announcer: Twitter: "I remember my enthusiasm a little bit before you play with node.js years:) amazin 'bomb coming projects. http://ff.im/-qIrKh" [tr] -- Turk Serpico. http://twitter.com/turkserpico/status/24680632921 [16:56] digitalspaghetti: I only want to define it once in the main app.js, and have it go through to all my sub apps [16:56] stride: wasn't there a configuration middleware for those purposes? [16:56] digitalspaghetti: i tried doing app.set('APP_NAME', 'foo'); in my main app.configuration [16:56] digitalspaghetti: but it's not getting passed down for some reason [16:57] sixtus42: isaacs: http://gist.github.com/582747 [16:57] isaacs: sixtus42: request.on("error", ...) [16:58] isaacs: er, no, client.on("error" [16:58] jetienne: cramforce needs to come here. io need a streamie course [16:58] visnup has joined the channel [16:58] jetienne: http://github.com/jeromeetienne/node-helpers/blob/master/ez_http.js#L27 <- sixtus42 [16:58] sixtus42: isaacs: tnx! [16:58] eazyigz has joined the channel [16:59] sixtus42: jetienne: yup. Tnx [17:00] eazyigz: I am using spawn() to call a python program. How can I log things out of that program. Seems like nodejs took over all stdin/out functionalities of my application, and it is difficult to debug. [17:00] jesusabdullah: I do something like [17:01] jesusabdullah: child.stdin.on('data', function(x) {console.log('from child: '+x);}); [17:01] jesusabdullah: You can trap stderr similarly [17:02] eazyigz: so it wouldn't be child.stdout.on? [17:03] jetienne: if(settings.get("tracking", "allowed")) { shame [17:05] benv has joined the channel [17:07] ivong has joined the channel [17:07] eazyigz: can I use print statements in my python child process, and expect them to appear in node's stdout? [17:08] _announcer: Twitter: "@nodecore has node.js even been out 2 years, never mind 3 to 5?" -- Joel Hillacre. http://twitter.com/jhillacre/status/24681579500 [17:09] langworthy has joined the channel [17:10] _announcer: Twitter: "@fjakobs clearly all node.js is missing is the first-class XML support browsers have." -- Peter Higgins. http://twitter.com/phiggins/status/24681727467 [17:11] phiggins: :D [17:11] prettyrobots has joined the channel [17:11] brianmario has joined the channel [17:11] tg has joined the channel [17:12] daniellindsley has joined the channel [17:12] the_giver2 has joined the channel [17:13] kriszyp has joined the channel [17:14] eazyigz: how is it possible that I have sys.std.out.write(main()) in my python child process, and nodejs does not receive the result on stdout?? [17:15] eazyigz: I am thoroughly confused [17:16] bradleymeck: it doesnt flush [17:16] bradleymeck: add a \n? [17:17] eazyigz: you mean add a newline with my return value in python? [17:18] bradleymeck: in python yes, it might be buffering [17:18] prettyrobots_ has joined the channel [17:18] TkTech: eazyigz: sys.stdout.flush() [17:18] prettyrobots_ has left the channel [17:18] eazyigz: that doesn't seem to make a difference [17:19] eazyigz: oh, sorry [17:19] eazyigz: missed your last stmt [17:19] ollie has joined the channel [17:20] dmcquay: any express.js experts out there? [17:20] dmcquay: i am having trouble with error handling [17:20] eazyigz: TkTech: that didn't work for me either [17:20] TkTech: Then you're doing it wrong :) [17:20] eazyigz: note: the python script works because I can call it from command line [17:21] fermion has joined the channel [17:22] prettyrobots has joined the channel [17:24] matt_c has joined the channel [17:25] benburkert has joined the channel [17:27] digitalspaghetti: woops, worked out the expressjs thing [17:27] zomgbie has joined the channel [17:27] digitalspaghetti: i need to wrap my app inside a app.mounted, and i get the parent app :) [17:27] rauchg_ has joined the channel [17:28] prettyrobots: I am still looking for a good article on V8, Node.js and closure performance. [17:31] prettyrobots_ has joined the channel [17:32] WALoeIII has joined the channel [17:32] _announcer: Twitter: "We just released Soda, #node.js acceptance testing in the cloud: http://sodajs.com/ http://github.com/LearnBoost/soda" -- Guillermo Rauch. http://twitter.com/rauchg/status/24683315806 [17:33] tapwater has joined the channel [17:33] dpritchett: Does anyone know if joyent will be releasing no.de smartmachines to the public any time soon? I tried to sign up before I realized it was only for Node Knockout. [17:35] nwhite has joined the channel [17:35] Guest3568: dmcquay what is your issue? [17:36] _announcer: Twitter: "@franksvalli I did something similar using node.js http://bit.ly/b2qDqd" -- alex kessinger. http://twitter.com/voidfiles/status/24683556287 [17:37] aho has joined the channel [17:38] _announcer: Twitter: "Hey #node.js folks, you really have to play with http://sodajs.com/, web testing will never be the same." -- admc. http://twitter.com/admc/status/24683711201 [17:38] stephank: Is there a way to convert a Buffer to an Array of byte values? [17:39] dmcquay: tjholowaychuk - i am using app.error [17:39] dmcquay: to handle errors [17:39] dmcquay: and i can't seem to be able to handle the error that occurs [17:39] dmcquay: when i can't connect to mongodb [17:39] dmcquay: if i do "throw Error('foo')", then i can handle that [17:39] zk has joined the channel [17:40] tjholowaychuk: dmcquay: it cant handle uncaughtExceptions [17:40] dmcquay: but if the mongodb client can't connect (connection refused) because the mongodb server is down [17:40] tjholowaychuk: dmcquay: because then you loose the req/res references [17:40] dmcquay: tjholowaychuk - okay, that makes sense [17:40] tjholowaychuk: so you have to be careful to next(err) any exceptions possible [17:41] wereHamster: anyone using jade? How do I create a for loop (over an array of objects)? [17:41] dmcquay: tjholowaychuk - i don't actually quite understand the solution [17:41] dmcquay: wereHamster - i think " - for a in b" [17:42] tjholowaychuk: wereHamster: - each item in items [17:42] tjholowaychuk: wereHamster: or vanilla js - for (var key in obj) [17:42] tjholowaychuk: if you really wanted [17:42] tjholowaychuk: wereHamster: also: - each val, key in obj [17:42] wereHamster: one answer would've been enough. Thanks both [17:42] wereHamster: :) [17:43] eazyigz: if I want to spawn a python process and pass it an argument, would this be the right way: python=spawn("python /path/to/program.py -u", [someurlstring]); [17:43] eazyigz: ? [17:43] dmcquay: tjholowaychuk - the error occurs in this code: [17:43] Me1000 has joined the channel [17:43] dmcquay: client.createCollection('users', function(err, collection) { ... }); [17:43] dmcquay: so i wrapped that in a try, caught the error and threw it myself [17:43] dmcquay: but that didn't work [17:43] tjholowaychuk: thats because its async [17:44] tjholowaychuk: you have to do something like: if (err) { next(err); return } [17:44] huyhong has left the channel [17:44] tjholowaychuk: or if (err) return next(err); but some people argue that is misleading [17:44] tjholowaychuk: but that is what i do [17:44] dmcquay: tjholowaychuk - i didn't think the function was even getting executed [17:44] dmcquay: but, maybe i'm wrong [17:44] dmcquay: let me try what you say... [17:45] tisba has joined the channel [17:46] dmcquay: tjholowaychuk - nope that didn't work [17:46] dmcquay: it looks like the error is thrown before my function is called, as opposed to just passing the error to me in "err" [17:46] maushu has joined the channel [17:47] dmcquay: maybe i'm barking up the wrong tree. maybe it's a problem with the mongodb client. [17:47] tjholowaychuk: thats a bitch, I try to wrap my apis and pass stuff thrown to the callback [17:47] tjholowaychuk: so you dont have to duplicate the effort [17:47] tjholowaychuk: yeah i dunno i cant help much there i havent touched it [17:47] vnguyen has joined the channel [17:48] dmcquay: tjholowaychuk thx anyway [17:48] tjholowaychuk: np good luck [17:48] dmcquay: thx [17:48] q_no has joined the channel [17:48] tjholowaychuk: just keep in mind to next(err) everything possible [17:49] prettyrobots_ has joined the channel [17:50] _announcer: Twitter: "More good stuff from @yjholowaychuck: http://sodajs.com a Selenium RC client for nodejs" -- Phil Hawksworth. http://twitter.com/philhawksworth/status/24684537569 [17:50] tjholowaychuk: doh, typo [17:50] Athox: lol [17:51] Athox: bummer [17:51] omarkj: Wow that's a bit silly. I have to use a self signed certificate as my public key, not a regular public key. [17:51] omarkj: Oddity. [17:51] onar has joined the channel [17:51] eazyigz: can somebody take a look at this gist and tell me if I'm spawning a python process incorrectly: https://gist.github.com/3959176071e4418608c6 [17:52] _announcer: Twitter: "node js is what all the cool kids are using now days." -- Philip. http://twitter.com/pvwoods/status/24684677887 [17:52] wereHamster: dmcquay: 'for a in b' doesn't work, 'each a in b' does [17:53] prettyrobots: Does global scope exist in JavaScript? [17:54] dmcquay: wereHamster - yes, follow tjholowaychuk [17:54] prettyrobots: Or is it merely a local scope at the top most level. [17:54] prettyrobots: ? [17:54] MikhX has joined the channel [17:54] omarkj: eazyigz: What's happening at your end ? [17:55] tjholowaychuk: prettyrobots: anything that has not been declared (var) in a function scope, is global [17:55] eazyigz: omarkj: seems like my python program isn't being called at all [17:55] eazyigz: I keep getting "child process exited with code 2" [17:55] tjholowaychuk: prettyrobots: so its kinda the opposite of something like ruby, where "foo" is local and "$foo" is global, w/ js "foo" is global, "var foo" is local [17:55] tjholowaychuk: unless you use with() [17:56] rwaldron_ has joined the channel [17:56] figital has joined the channel [17:56] rwaldron_ has joined the channel [17:56] boaz has joined the channel [17:57] rwaldron has joined the channel [17:57] eazyigz: does anybody have example code how they call a python program from node and pass it arguments? [17:57] eazyigz: I seem to keep f#$king it up [17:58] pquerna: eazyigz: if you just want the simple output, consider using exec, rather than spawn [17:58] omarkj: I've been using exec to do some python work for me, as in exec-ing a python script. [17:58] noahcampbell has joined the channel [17:58] eazyigz: pquerna: that is funny, because several days ago somebody told me to switch from exec to spawn [17:58] prettyrobots_ has joined the channel [17:58] eazyigz: they told me exec is not reliable [17:58] omarkj: Still, that you're getting code 2 (which is what, interruption from keyboard?) is a bit odd. [17:59] eazyigz: I don't want to keep switching [17:59] omarkj: Do you have that python code, and can you sharei t ? [17:59] eazyigz: I just want it to work :) [17:59] omarkj: share* [17:59] cardona507 has joined the channel [17:59] Yuffster_work has joined the channel [18:00] pquerna: eazyigz: exec is a higher level interface; you get the stdout, stderr, and any error handed to you [18:00] eazyigz: omarkj: I can share the python code, but I suspect it isn't getting called at all. Regardless if I give it the right or wrong filename, I keep getting child process exited with code 2! [18:00] pquerna: eazyigz: spawn is a lower level itnerface that gives you a stream that you need to listen to events on, and do everything yourself. [18:00] onar has joined the channel [18:00] omarkj: ah. [18:00] pquerna: eazyigz: if there are bugs in exec, let us know, and we can fix em. [18:01] onar has joined the channel [18:01] eazyigz: pquerna: I had it working in exec before, next time I will stick with what works instead of listening to somebody and changing my code [18:01] dgathright has joined the channel [18:02] eazyigz: pquerna: what is wrong with the way I called spawn? [18:02] bentlegen has joined the channel [18:03] prettyrobots: Hmm... [18:03] prettyrobots: I'm not seeing any performance problems with closures in Node.js [18:03] prettyrobots: . [18:03] pquerna: eazyigz: yeah, the -u is in the wrong place [18:03] creationix has joined the channel [18:03] prettyrobots: And for simple tests they are running faster than objects. [18:03] creationix has joined the channel [18:03] pquerna: eazyigz: ['/home/jsonp/related_content/python/soap_service.py -u' , encodeURIComponent(urlKey)] -> ['/home/jsonp/related_content/python/soap_service.py', '-u' , encodeURIComponent(urlKey)] [18:04] prettyrobots: That is, building an object using closures for scope, versus an object prototype. [18:04] _announcer: Twitter: "http://nodejs.org/api.html scroll down and check out how it makes documentation headings sticky; very cool idea" -- Bryan Ollendyke. http://twitter.com/btopro/status/24685495539 [18:04] eazyigz: pquerna: can you write a correction under that gist? [18:06] jchris has joined the channel [18:06] pquerna: eazyigz: https://gist.github.com/733c4afe689d5c8491d2 [18:06] onar_ has joined the channel [18:06] ryanfitz has joined the channel [18:09] ooooPsss has joined the channel [18:09] eazyigz: pquerna: thank you. Now I am getting "child process exited with code 0" instead of "2". I assume that my python code is being called, but throwing an error? [18:10] wereHamster: another jade question: how can I output multiple variables inside a single element? (like, 'li= obj.foo (obj.bar)' and I'd expect
  • something (something else)
  • )? [18:10] tjholowaychuk: wereHamster: two ways [18:10] tjholowaychuk: 1) li= obj.foo + '(' + obj.bar + ')' [18:10] tjholowaychuk: or [18:11] tahu has joined the channel [18:11] tjholowaychuk: 2) li #{obj.foo} some random text #{obj.bar} [18:11] wereHamster: tjholowaychuk: is there another documentation than jade-lang.com? [18:11] pquerna: eazyigz: seems like it; throw a print at the top of that python file and you should get at least something on stdout etc [18:11] tjholowaychuk: wereHamster: the readme [18:11] tjholowaychuk: http://github.com/visionmedia/jade [18:12] tjholowaychuk: has a bunch [18:12] omarkj: eazyigz: No, code 0 is success. [18:12] omarkj: Basically your app has run and has returned. [18:12] omarkj: Or that pytgon code. [18:13] eazyigz: omarkj: thanks [18:14] eazyigz: pquerna: I am very baffled by this, but putting print stmts in my python code doesn't output anything [18:14] bstimmerman has joined the channel [18:14] MikhX has joined the channel [18:14] pquerna: eazyigz: try somehting simpler, one sec [18:14] eazyigz: for nodejs that is. On the console calling the python code by itself works fine [18:15] _announcer: Twitter: "node.js vs my seamingly random selection http://bit.ly/9Zxvzk" -- Paulo Ferreira. http://twitter.com/paulobsf/status/24686218451 [18:15] omarkj: eazyigz: Are you catching the 'data' event on python.stdout ? [18:16] pquerna: eazyigz: https://gist.github.com/733c4afe689d5c8491d2 [18:16] eazyigz: omarkj: I have python.stdout.on('stdout', function(stdout) { [18:17] eazyigz: is that wrong? [18:17] omarkj: It should be on 'data [18:17] omarkj: ' [18:17] benv has left the channel [18:17] omarkj: You can see it in pquerna's code, line 5. [18:17] omarkj: python.stdout.on('data', function (data) { [18:18] eazyigz: oh shit [18:19] eazyigz: I didn't realize that the parameters must be 'data' [18:19] eazyigz: thanks [18:19] vnguyen_ has joined the channel [18:19] omarkj: The thing is that stdout emits the 'data' event, [18:20] omarkj: But not a problem. [18:20] cardona507 has joined the channel [18:21] eazyigz: its interesting because the on('exit') event emits some value that I can call anything [18:21] eazyigz: it doesn't have to be 'code' [18:21] eazyigz: that was my confusion [18:21] jashkenas: prettyrobots: can you gist how you're building your objects? [18:21] cardona507_ has joined the channel [18:21] pquerna: the parameter name to the function doesn't matter [18:22] pquerna: but the thing you listen to does [18:22] prettyrobots: Yesh. [18:23] ollie has joined the channel [18:24] vnguyen has joined the channel [18:24] brainfck` has joined the channel [18:25] _announcer: Twitter: "Soda is a Selenium RC client for Node.js, enabling developers to write automated acceptance tests with an expressive API. http://sodajs.com/" -- Charl van Niekerk. http://twitter.com/charlvn/status/24686895917 [18:27] creationix has joined the channel [18:29] _announcer: Twitter: "I am going to buy the new @PeepCode Node.js screencast, really liking this: http://wg.peepcode.com/" -- Fabio. http://twitter.com/toxinide/status/24687134914 [18:30] jpld has joined the channel [18:30] _announcer: Twitter: "OH: "Paul Graham can fund my minimum viable PEP to get Node.JS into the standard library is broken by MongoDB"" -- jessenoller. http://twitter.com/jessenoller/status/24687226486 [18:31] _announcer: Twitter: "SodaJS, functional web testing in NodeJS http://dlvr.it/5Myb4" -- Tech & Friki Stuff. http://twitter.com/FrikiFeeds/status/24687244979 [18:32] _announcer: Twitter: "soda: Selenium adapter for Node.js from @LearnBoost http://lg.gd/soda" -- The Changelog. http://twitter.com/changelogshow/status/24687317395 [18:32] eazyigz: I am stuck with an error: "nMemcached.js Object has no method inflate' [18:32] eazyigz: anybody seen this? [18:32] halogenandtoast has joined the channel [18:33] jetienne: :) [18:33] halogenandtoast: Is there a way to run the server detached with a pid file and such? [18:33] charlesjolley- has joined the channel [18:33] jetienne: halogenandtoast: yes. wait a bit [18:33] jetienne: http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/ <- halogenandtoast [18:35] halogenandtoast: That might work [18:35] _announcer: Twitter: "Joyeur blog post: "SmartPlatform and Node.js" http://bit.ly/9tgZTt #joyent #nodejs #joyeur #smartplatform" -- konobi. http://twitter.com/konobi/status/24687547928 [18:36] halogenandtoast: Thanks jetienne, what about catching signals? [18:36] jetienne: halogenandtoast: ? [18:37] halogenandtoast: USR2, INT, etc. [18:37] jetienne: halogenandtoast: what has it to do with anything ? [18:37] jetienne: halogenandtoast: you wanted to make node a service. this is it. you dont need more on linux [18:37] Mikeee has joined the channel [18:37] dpritchett: Relevant snippet: "In the meantime, we’re taking feedback from those who were using the no.de service during node knockout and are continuing to improve the product to offer it as a full service. We should have updates about that soon." [18:38] pquerna: halogenandtoast: look at the process module, you can catch signals sent to your daemon to do things. [18:39] jetienne: pquerna understood something i didnt [18:39] pquerna: process.on('SIGINT', function() { ... you handler code here ... }); [18:39] halogenandtoast: pquerna: thanks found the documentation [18:39] Mikeee: Error: Server already opened <-- uhmmm. any ideas? :/ [18:40] jetienne: Mikeee: need more info [18:40] pquerna: jetienne: a long life in #apache twists the mind [18:40] Mikeee: jetienne: it's ok, i'm being dumb. found it. [18:41] dmcquay: tjholowaychuk - i figured out a bit more [18:41] dmcquay: tjholowaychuk - you have to listen to the error event [18:41] dmcquay: db.addListener('error', function(err) { ... }); [18:42] dmcquay: but now i still can't get that error to be handled by the callback I passed to app.error [18:42] dmcquay: you said to call next, but next and app.next are both undefined [18:42] dmcquay: i thought next could only be called within the app.error callback [18:44] rtomayko has joined the channel [18:44] V1 has joined the channel [18:45] pquerna: 1 free beer to someone who makes a node.js binding to gstreamer :) [18:45] tobeytailor has joined the channel [18:45] hellp has joined the channel [18:46] jetienne: :) [18:46] jetienne: i like their webm [18:46] mitkok has joined the channel [18:47] prettyrobots: Who wanted this: [18:47] prettyrobots: http://gist.github.com/582902 [18:47] q_no: can I push a client.broadcast() (using socket.IO) to call clients, triggert by an interval? As far as I understand socket.IO I can only react on incoming messages? [18:47] jetienne: i should put this webm streamin gmin my p2p webpeer [18:47] pquerna: gstreamer is so impressive to me because its all in C, and how they did the events / chaining of different plugins is so impressive for a C based project. [18:47] prettyrobots: jashkenas: http://gist.github.com/582902 [18:47] pquerna: (and made it work quite well overall) [18:47] q_no: oops, I meant "push to all clients" [18:47] _announcer: Twitter: "Juist build in a reconnect method in to #node.js Socket.io Having a connection drop is awful if your product depends on it" -- Arnout Kazemier. http://twitter.com/3rdEden/status/24688312128 [18:47] jashkenas: prettyrobots: I did ... give me a minute. [18:47] Mikeee: ACTION notices bson native [18:48] prettyrobots: Take your time. [18:48] prettyrobots: ACTION Goes back to work. [18:48] _announcer: Twitter: "Seeking Front End wiz to join my new startup. Flexible environment and job security. Node.JS on the back, HTML5/JS on the front. Hiring now!" -- hueniverse. http://twitter.com/hueniverse/status/24688380007 [18:49] rcy has joined the channel [18:50] _announcer: Twitter: "Really proud of #MooTools dev @rauchg. He's doing great stuff with #NodeJS at @LearnBoost." -- davidwalshblog. http://twitter.com/davidwalshblog/status/24688475981 [18:50] mape: Soda? [18:50] digitalspaghetti: Pop? [18:51] mape: chain().beer().invalidResults().funTimes()) [18:51] mape: parse error [18:54] sstreza: question: is there a way to include a file without requiring it? [18:54] prettyrobots: jashkenas: Should note. The closure object is faster than the prototype object. [18:55] mape: sstreza: what is the context? [18:55] jetienne: pquerna: what is your background, you come from C and coming to web stuff ? or came direct to web stuff ? [18:55] sstreza: mape: our servers are using mDNS, which is optionally available, so we want to include it, but fall back gracefull if it's not available [18:55] jashkenas: prettyrobots: I've made a jsperf for you: http://jsperf.com/simple-prototype-vs-closure-objects [18:55] mape: sstreza: try{require**** ? [18:55] halogenandtoast: prettyrobots: I find that surprising [18:56] eisd has joined the channel [18:56] m7d has joined the channel [18:56] rauchg_: next is a parameter [18:56] rauchg_: oops wrong window [18:56] pquerna: c stuff. python. lua. long ago perl. mostly backend systems for websites; though i did a stint of ssjs in rhino years ago too. [18:56] jashkenas: prettyrobots: with these 7 methods on the instance, closure based objects are 80% slower to construct in firefox, 77% slower in chrome, and 93% slower in webkit. [18:56] jashkenas: But the speed isn't even the main issue: memory is. [18:56] jetienne: pquerna: nice [18:57] daglees has joined the channel [18:57] sstreza: mape: thanks, we'll try that :) [18:57] jashkenas: With your closure-based object, you re-create an identical function object for each object you instantiate. It gobbles memory like a pig. [18:58] prettyrobots: ACTION Is sad. [18:58] jashkenas: prettyrobots: it's not sad .. it's just very, very important to be aware of. [18:58] jbenesch has joined the channel [18:58] prettyrobots: It's sad. [18:58] jashkenas: create a couple hundred thousand objects in the closure style, and you can out-of-memory your browser. [18:58] overra has joined the channel [18:59] prettyrobots: I liked the closure style of programming. [18:59] prettyrobots: I'd built a library around it. [18:59] prettyrobots: Now I need to rewrite and rethink. [18:59] jashkenas: sorry about that... link? [18:59] prettyrobots: Hm... [19:00] prettyrobots: http://github.com/bigeasy/node-packet/blob/master/lib/packet.js [19:01] inimino: jashkenas ⋱ It's not necessary for the engine to create new function objects if they aren't closures. [19:01] prettyrobots: That is an example and I'm going to push a final. [19:01] mape: sstreza: require is no different from other stuff, other then being sync, so no reason to treat it special :) [19:01] prettyrobots: inimino: But they are. [19:01] inimino: (if they don't contain upvars) [19:01] prettyrobots: jsperf.com is awesome. [19:01] prettyrobots: Thanks for that. [19:02] jashkenas: inimino: is that ever the case in JavaScript, or do you just mean in theory? [19:02] inimino: prettyrobots ⋱ Ok, well they weren't in the profiling test, which is really just measuring the time to assign object properties. [19:02] mape: prettyrobots: just wished it had a clearer API [19:02] inimino: jashkenas ⋱ It's the case in every engine I'm aware of. [19:02] mape: A "this is what we would do" placeholder should help it a lot [19:02] jashkenas: inimino: I've always wanted a scripting language that allows you to specify whether you want a closure or just a function pointer. [19:02] inimino: (At least to some extent.) [19:02] prettyrobots: mape: you mean jsperf? Clearer API? [19:03] mape: prettyrobots: yes [19:03] mape: getting started with adding tests isn't clear [19:03] prettyrobots: So, the cost is creating the functions, not that they are closures? [19:03] sstreza: mape: good to know, thanks :) [19:03] jashkenas: inimino: let's add closures that use the rpm to that test... [19:04] prettyrobots: Code gets so much smaller when I program this way, though. [19:04] mape: sstreza: The least I can do. Awsome site. Only thing I would add is to add "popular" cases, or engage people to add those. Being the end all bee all case is awesome. [19:04] cloudhead has joined the channel [19:04] _announcer: Twitter: "sodajs.com : a selenium client for #node.js" -- tonyksn. http://twitter.com/tonyskn/status/24689424362 [19:05] inimino: prettyrobots ⋱ The cost in this case is assigning the properties to each object (instead of just setting up the object once with its prototype chain, which happens in both cases anyway). [19:05] jashkenas: inimino: doesn't affect the object creation time at all for me, to have them reference rpm. http://jsperf.com/simple-prototype-vs-closure-objects [19:05] mape: But yeah, help text !== example code.. Atleast if the audience is coders [19:06] jashkenas: oops. [19:06] ryan[WIN]: durrp [19:06] ryan[WIN]: anyone else got a palm pre [19:06] overra: thinking about returning my current phone and getting one [19:06] mape: sstreza: also perhaps sorting of testcases might be a good idee? [19:06] ryan[WIN]: jashkenas, how's the coffeescript goin :D [19:07] jashkenas: inimino: nope, still the same. [19:07] mape: sstreza: Now it seems kinda random, and first time vistoris will most likely find the "best" test out there [19:07] jashkenas: ryan[WIN]: excellent. 0.9.3 went out yesterday. [19:07] _announcer: Twitter: "@ Santirrium This cute, but very functional for my taste, there is no way to write js nodejs! :-)" [es] -- César D. Rodas. http://twitter.com/crodas/status/24689603828 [19:07] mape: Just to get a feel for it [19:07] ryan[WIN]: niiice [19:07] mape: *visitors [19:07] sstreza: mape: are you still talking to me? not sure what site you're talking about heh [19:08] mape: sstreza: Yes [19:08] sudoer has joined the channel [19:08] prettyrobots: inimino: I'll take that hit for the clairty of my code. [19:09] prettyrobots: But, what about memory, you say that there is a memory cost. [19:09] creationix: Anybody here ever used apache traffic server? [19:09] prettyrobots: ? [19:09] jashkenas: prettyrobots: the memory cost is far more serious. I'll use that same car example with seven methods... [19:10] inimino: jashkenas ⋱ Try here: http://jsperf.com/simple-prototype-vs-closure-objects/2 [19:10] prettyrobots: jashkenas: You have a nice way to profile memory usage? [19:10] niko has joined the channel [19:10] hoodow has joined the channel [19:10] jashkenas: inimino: function creation is expensive, absolutely... [19:10] jashkenas: inimino: I don' see what the 42car proves. [19:10] jashkenas: oh, you're controlling for property-assignment cost. [19:11] inimino: jashkenas ⋱ What that example is basically measuring is the time spent assigning properties, at least here, I don't see much difference in speed between the function assignment and the 42 assignment, right. [19:11] prettyrobots: I'm really grateful for the education here, ladies and gentlemen. [19:12] jashkenas: inimino: ha, on webkit ClosureCar is 60% slower than ClosureCar42 still. [19:12] prettyrobots: Are you going to tell me that the bottom line is to program objects using prototype and to not get clever with closures? [19:12] jashkenas: prettyrobots: I'm sorry to be pedantic about it -- it's just a personal bugaboo of mine. We've had this identical debate on this channel several times before. [19:13] prettyrobots: jashkenas: You're not being a pedant, you're being a scientist. [19:13] inimino: Yeah, huge difference in JSC apparently. [19:13] prettyrobots: Testing, proving, arguing, educating. I sincerely thank the channel for the time. [19:13] inimino: prettyrobots ⋱ I think you should write whatever is clearest, first, then profile, then do what is necessary. [19:14] jashkenas: prettyrobots: so I'll create a million of both types of objects, and look at the heap size, alright? [19:14] prettyrobots: inimino: Yeah, but, this is a choice between style of programming, and if I'm just going to wrong foot myself, and then have to completely rewrite. [19:14] kuatto has joined the channel [19:15] _announcer: Twitter: "sys.pump #nodejs #cute" -- hellomatty. http://twitter.com/hellomatty/status/24690091095 [19:15] prettyrobots: Here's what inspired me to program in this way: [19:15] prettyrobots: http://jweir.github.com/namespace/ [19:15] jspiros has joined the channel [19:15] _announcer: Twitter: "Cross browser testing for #NodeJS with #Sodajs, #Selenium, and @saucelabs. http://bit.ly/soda-is-awesome" -- Jason Huggins. http://twitter.com/hugs/status/24690122806 [19:16] prettyrobots: Oh, looks cool, Soda. I was trying out Syn and Funcunit. [19:17] inimino: prettyrobots ⋱ Ah, interesting. [19:17] prettyrobots: The code is prettier and you get to thinking a certain way. [19:17] prettyrobots: But, I had a sinking feeling it was too good to be true. [19:17] inimino: prettyrobots ⋱ Well, again, if you're writing CommonJS modules your entire code is likely to be wrapped in a closure anyway. [19:17] cardona507_ has joined the channel [19:17] jashkenas: prettyrobots: creating a million instances of ProtoCar takes up 4.98 MB of RAM, in V8. [19:18] reid has joined the channel [19:18] prettyrobots: jashkenas: What magic are you using to get the memory numbers out of Node.js? [19:18] jashkenas: I'm using Chrome, and looking at the difference in heap size. [19:18] jashkenas: the eyeball button in the profiles tab. [19:18] prettyrobots: process.memoryUsage() [19:19] _announcer: Twitter: "Streaming file uploads with node.js » Debuggable Ltd: File uploading in node.js. http://bit.ly/9DmZCW" -- junichi_y. http://twitter.com/junysb3/status/24690348206 [19:19] _announcer: Twitter: "Testing the new user experience in Twebz one more time. "It works." Now I just need a place to host a Node.js script in the cloud." -- J Chris Anderson. http://twitter.com/jchris/status/24690360409 [19:19] mattly has joined the channel [19:19] jchris: btw was no.de just a promotional site, or can I still sign up through it? [19:20] jashkenas: prettyrobots: it's still trying to gather the heap for closurecar. [19:20] inimino: I'd benchmark your actual code instead of artifical test cases, before giving up on it; I'm not sure how many objects you're creating in that style when your code runs. [19:20] _announcer: Twitter: "@voidfiles awesome! still trying to get used to the idea of node.js.. I didn't know it could be run locally like that :)" -- David Calhoun. http://twitter.com/franksvalli/status/24690428175 [19:20] prettyrobots: inimino: Okay. It is good that the Node.js community is not dogmatic about one style over another. [19:21] Vekz has joined the channel [19:21] prettyrobots: I'll have to give thought as to when the closure heavy style is right, because I like it a lot. It saves me a lot of thinking. [19:21] jashkenas: I think I crashed it. trying again. [19:21] prettyrobots: So, I take it that building a large object graph this way is a really bad thing to do. [19:22] prettyrobots: Which saves me a lot of heartache on my next project, a node b-tree. [19:22] jashkenas: prettyrobots: creating a million instances of ClosureCar takes 260MB of RAM in chrome. [19:23] mitkok has joined the channel [19:23] AAA_awright: Does node use all the processors for tasks? How does that work? [19:24] _announcer: Twitter: "Goal for next week: Re-build blogging platform using Node.js. Just for fun." -- Kristofer Baxter. http://twitter.com/kristoferbaxter/status/24690683504 [19:24] wink_: AAA_awright: no it doesn't [19:24] prettyrobots: Alight, jashkenas, inimino, thanks for the feedback. I am going to relegate this closure style of programming to dirty tricks and redo my code with .prototype. [19:24] prettyrobots: Really, thanks. Learned a *lot*. [19:24] atmos has joined the channel [19:25] _announcer: Twitter: "putting the jsTerm source on github: http://github.com/pnitsch/jsTerm node.js server will be included once it's cleaned up." -- peter_nitsch. http://twitter.com/peter_nitsch/status/24690736682 [19:25] AAA_awright: Any plans to take advantage of more threads then? [19:25] pquerna: no [19:26] pquerna: if you need multi-processor scalling, use one of the WebWorkers extensions [19:26] jashkenas: prettyrobots: as a final note, the verbosity of JS prototypes are the reason why coffeescript provides class sugar for creating them: here's the car example, and what it compiles into... http://gist.github.com/582993 [19:27] AAA_awright: That has a very different use case than adding a thread per processor would [19:27] prettyrobots: jashkenas: How does coffeescript do this? [19:27] _announcer: Twitter: "Technical details: node.js, comet, Nginx via proxy. PHP is minimal. So much for the komolytalanságáról JavaScript. :) # Susmushu" [hu] -- Bártházi András. http://twitter.com/ba78/status/24690915990 [19:28] tilgovi has joined the channel [19:28] prettyrobots: Or rather, `this`. Do you just reference `this.` or is there sugar for `this` in the scope of a prototype member method? [19:28] mjr_: jchris: everybody in nodeKO got one, but I don't think they are being handed out anymore. It sounds like there will be an awesome Joyent-based node hosting thing generally available soon. [19:29] jchris: i'll probably just got for an ec2 micro for now [19:29] jashkenas: prettyrobots: you can just use "this", or you can use "@" as a shorthand. "@accelerate" is "this.accelerate" in JS. [19:29] prettyrobots: Sweet. [19:29] prettyrobots: jashkenas: So, could I write Node.js modules in CoffeeScript and count on adoption? [19:30] mjr_: jchris: I haven't tried micro yet, but the available CPU on all of my small instances was pretty awful compared to slicehost. [19:30] prettyrobots: Or are people going to say, nah, that's not really Node.js? [19:30] jchris: good thing I don't need really any cpu power or bandwidth [19:30] jashkenas: prettyrobots: I think you'll have to ask someone besides me about that ;) [19:30] jchris: just processing a few tweets a second [19:30] prettyrobots: Be immodest. [19:31] prettyrobots: I guess, I'll have a look at writing one of these two projects in coffee script, create a coffee branch and then use the same test quite. [19:31] prettyrobots: s/quite/suite/ [19:32] prettyrobots: I've seen coffee before and it looked pretty nifty. [19:32] jashkenas: I've certainly had a ton of fun writing little servers with it in Node. We're using one to power the analytics on the document embeds for DocumentCloud. Node's been a champ getting hammered with little pixel requests for the past 6 months or so. One process, never crashed, still sitting at 8MB RSS. [19:33] prettyrobots: ACTION Shakes head in awe. [19:33] softdrink has joined the channel [19:33] jashkenas: prettyrobots: here's the source for that, if you're curious. http://documentcloud.github.com/pixel-ping/docs/pixel-ping.html [19:33] mjr_: Man, this jsperf test collection is really enlightening. [19:33] prettyrobots: This is not a "just throw hardware at it" kind of community. [19:33] prettyrobots: mjr_: Share your jsperf. [19:34] mikew3c has joined the channel [19:34] prettyrobots: Oh, man. I've seen this blog before, or something, and bookmarked it as eye candy. [19:35] prettyrobots: Is this how CoffeeScript does documentation? [19:36] mjr_: I don't have a specific test of my own, but I'm amazed at how expensive closure are. [19:36] creationix: prettyrobots: you can write modules in coffee just fine. Just make sure to distribute the generated js for people only wanting to use the module [19:36] creationix: then they don't need coffee installed to use it [19:36] gsmcwhirter has joined the channel [19:36] mjr_: How much faster would node be if it didn't use commonjs closures around everything? [19:36] creationix: mjr_: what platforms? V8 in particular? [19:36] mjr_: creationix: http://jsperf.com/cost-of-a-closure [19:36] prettyrobots: creationix: I need to learn npm, too, to create tests. [19:37] V1: oh mape If you still need event simulation YUI3 has a awesome cross browser version :p much better than writing and eating your own sh*t [19:37] mape: V1: <3 [19:37] m7d_ has joined the channel [19:37] creationix: mjr_: I'm not sure that's a fair test. V8 has a special optimization for the top-level case [19:37] _announcer: Twitter: "The funny thing was the node.js (also) to be about. 200 parallel threads in the draft now Susmus Twitter, the load on the server to 0.2." [hu] -- Bártházi András. http://twitter.com/ba78/status/24691515144 [19:37] jashkenas: mjr_: doing it once as a wrapper is no problem. [19:37] V1: ^_^ [19:37] Eber: Could someone tell me what might be conceptually wrong in this article? http://pastie.org/1162932 [19:37] stagas: yeah that test isn't right [19:37] prettyrobots: Blah? I'm not making sense. I need to learn npm, too, to create packages. Too much cool stuff to learn. [19:37] Eber: [only text version: http://pastie.org/1162932.txt] [19:38] CrabDude has joined the channel [19:38] _announcer: Twitter: "“Oh, I've already updated my CV. A combined 5 years experience with SproutCore + Node.js.” - @LuigiMontanez" -- Michael D. Ivey. http://twitter.com/ivey/status/24691600829 [19:38] mjr_: In node some modules refer to global objects like process, console, Buffer, etc. Each required module is wrapped in a closure. [19:39] prettyrobots: Okay. I've got to go write code. Too much cool stuff at once. [19:39] stagas: it just counts for the extra function call, but usually you don't use closure with 1 expression in it so the difference should be minimal if there's a lot stuff going on in there [19:39] creationix: I know when I used to work optimizing ruby, closures were killer [19:39] prettyrobots: Thanks all. [19:39] creationix: I'm pretty sure creating functions using new Function(...) bypasses all the closure [19:40] creationix: in ruby using eval to create methods made them run a LOT faster in some cases [19:40] mjr_: stagas: yeah, fair enough. This test really just measures the cost of accessing things outside of the closure, which certainly wouldn't be the common thing a module would do. [19:40] m7d has joined the channel [19:40] _announcer: Twitter: "@ivey I actually saw a candidate who put "Expert in Node.js" on his resume, and when I asked him what projects he'd done with it, he had 0." -- Michael Owens. http://twitter.com/michaelowens/status/24691749311 [19:41] bradleymeck: mjr_ most of those costs are the lookup it seems rather than a fair test for closure access time vs inline [19:41] creationix: mjr_: oh, no, the test is all bunk [19:41] creationix: it's creating the closure on each iteration [19:41] creationix: of course that's going to cost more [19:41] mjr_: Oh, that's dumb [19:41] mjr_: OK, reality restored. [19:42] creationix: I think you need all the one-time stuff in the prep section [19:42] creationix: ACTION is fixing the test [19:42] mjr_: I was surprised that the local var didn't make it any faster at all. [19:42] programble has joined the channel [19:42] programble has joined the channel [19:43] ajpiano has joined the channel [19:43] mjr_: Also surprising: Safari is almost 2X faster on my machine for the without closure test. [19:43] bmavity has joined the channel [19:44] programble has joined the channel [19:44] bradleymeck: function construction is the bulk of that wieght rather than the actual test [19:44] programble has joined the channel [19:44] tobiassjosten has joined the channel [19:44] mjr_: yeah, that's not a good test [19:44] bradleymeck: now im going to patch it a bit, sec [19:46] tjholowaychuk: Handle Context::Lookup [19:46] tjholowaychuk: good read [19:46] zapnap has joined the channel [19:47] prettyrobots: Someone let me know when the fixed closure test is ready, please. [19:47] creationix: mjr_: http://jsperf.com/cost-of-a-closure/3 [19:47] creationix: that's more like it [19:47] dylang has joined the channel [19:48] creationix: bradleymeck: ^ [19:49] bradleymeck: yep [19:49] stagas: creationix: is two in scope? [19:50] creationix: stagas: yeah, two goes through an extra level of closure to find "window" [19:50] mjr_: two is a var in the outer scope of the prep code [19:50] stagas: seems strange that it's faster than one() [19:50] mjr_: In Chrome, they are all pretty much the same [19:50] creationix: though all functions except for ones created via new Function() have at least one level of closure (the top level) [19:50] bradleymeck: stagas its same speed here [19:51] mjr_: In Safari, raw is a clear winner. [19:51] creationix: I get slightly better results on the new Function() ones, but not much [19:51] mjr_: Also, Safari beats Chrome handily on this test. [19:52] mjr_: 4.8M vs 2.9M on my old machine. [19:52] bradleymeck: chrome7? [19:52] mjr_: oh, hmm. I guess I'm on 6. [19:52] hassox has joined the channel [19:52] creationix: wow, three is a LOT slower on my webkit nightly [19:53] creationix: but the rest are much faster than chrome [19:53] mjr_: I could fiddle with this stuff literally all day. [19:53] mjr_: But it would not help my code get written. [19:53] creationix: yeah, I get 8.5 million on webkit nightly for raw, but onle 5.1 million in chrome 7 [19:53] creationix: anyway, myth debunked [19:53] creationix: back to work :) [19:55] m7d has joined the channel [19:56] bradleymeck: anyone have a util for pumping a stream's lines to a callback? [19:56] bradleymeck: or better, making it emit "line" or such [20:00] brainfck` has joined the channel [20:00] troymg has joined the channel [20:00] troymg has left the channel [20:01] tobeytailor has left the channel [20:01] troymg has joined the channel [20:01] stagas: they're being optimized in chrome if you run tests again after a while all become almost the same [20:02] prettyrobots: mjr_: So, the upshot of your tests is: [20:03] prettyrobots: The code in the closure is not slower for being a closure. [20:03] loinclo__ has joined the channel [20:03] mjr_: Yeah, shouldn't be an issue. [20:03] prettyrobots: Thus, my take away is, closures are great at a certain level, but not a good way to model small objects. [20:04] prettyrobots: Or core objects. [20:04] mjr_: But that closurecar vs protocar is pretty damning for that type of pattern. [20:04] prettyrobots: Yes, but it is still find for many of the jQuery usage patterns. [20:04] jashkenas: prettyrobots: that's correct. the code inside is just fine. And you need to generate closures on the fly to create lots of things -- callbacks for example... [20:04] prettyrobots: I want to define this handler for this action on this page and leave it that way for the life ot the page. [20:04] jashkenas: prettyrobots: just don't use them to manufacture objects, when prototypes will do. [20:06] prettyrobots: jashkenas: Yeah. Callback pattern is not going away. Just so long as the callbacks are short lived, and do not accumulate. [20:07] aheckmann has joined the channel [20:07] prettyrobots: Oh, and btw: [20:07] prettyrobots: I'm really bummed about the Google Group schism. [20:08] zapnap has joined the channel [20:08] prettyrobots: I believe that once the core devs squirrel off to their own listserv, the main listserv loses a lot of its value. [20:09] nwhite_ has joined the channel [20:09] _announcer: Twitter: "@sdepold Oh, irc.freenode.net #node.js :D Let me check out the lastest commits" -- Tane Piper. http://twitter.com/tanepiper/status/24693639964 [20:11] _announcer: Twitter: "dear #lazyweb, let me npm install sproutcore #kthxbye #sproutcore #nodejs" -- Karl Böhlmark. http://twitter.com/karl_bohlmark/status/24693729495 [20:11] mjr_: prettyrobots: I know what you mean about the ml thing, but personally I've all but stopped reading the list anymore because of the volume. [20:11] mjr_: A list focused on dev issues for node itself seems like something I can keep up with. [20:11] karboh has joined the channel [20:12] mjr_: Though I used to read every single message on the main/old list when it was lower volume. [20:12] Lerchmo has joined the channel [20:12] wavded has joined the channel [20:12] prettyrobots: mjr_: Well, I deleted a bajillion Java listservs (talk about schism), so Node.js was high signal, and enjoyable. [20:13] wavded: err #nodejs is not the right channel... this one is .. woohoo made it [20:13] mjr_: Yeah, it's a tough tradeoff. [20:13] silentrob has joined the channel [20:13] prettyrobots: Someone mentioned how jQuery went to hell, and I don't want to see that. [20:13] creationix: wavded: welcome [20:13] wavded: creationix: thank you, good to be here! [20:14] mjr_: For "user" issues, something like SO seems like the best bet. It scales. [20:14] prettyrobots: wavded: Indeed, welcome. Your life is about to get better. [20:14] m7d has joined the channel [20:14] prettyrobots: mjr_: I don't know. A disciplined community can keep listservs working well. The problem with jQuery was spam. [20:15] prettyrobots: And Google Groups are bad at blocking spam. [20:15] wavded: prettyrobots: indeed, comp.lang.javascript is barely of any use anymore [20:15] prettyrobots: wavded: OMG! Thank you! [20:15] prettyrobots: Or, as they say; Thaaaaaaank you. [20:16] prettyrobots: Place it nuts. [20:16] prettyrobots: Place is nuts. [20:16] mjr_: I keep forgetting that usenet is a thing. [20:16] prettyrobots: Try to ask anything and that guy with his pet project will just argue with you about your use of punctuation. It's awful. [20:16] wavded: prettyrobots: yeah agreed, i hope that doesn't happen to Node [20:16] Mikeee: ACTION is messing around with making a bson rpc [20:17] tjholowaychuk: wavded: yo! you have hung out in here before havent you? [20:17] prettyrobots: wavded: Funny, but you're putting a beef of mine in perspective. [20:17] digitalspaghetti: wavded: comp.lang.javascript is trolled by David Mark [20:17] prettyrobots: That's the one. [20:17] digitalspaghetti: that's why no one uses it anymore :/ [20:17] wavded: tjholowaychuk: no first time actually, good to be here [20:18] wavded: tjholowaychuk: i hear congratulations are in order on a new job? [20:18] digitalspaghetti: prettyrobots: yea, he's a pretty awful guy [20:19] tjholowaychuk: wavded: haha :p, well cool man welcome to node madness! are you working with node fulltime? I know you have been poking around with it [20:19] prettyrobots: Can Node.js be active about noobs and community? [20:19] wavded: digitalspaghetti: yeah, indeed [20:19] eazyigz has joined the channel [20:19] vvsh_ has joined the channel [20:19] prettyrobots: Keep the signal high by sending people to SO for orientation? [20:19] bradleymeck: can someone explain the errors on this test http://jsperf.com/runtime-compilation [20:20] jashkenas: tjholowaychuk: did you switch jobs? [20:21] wavded: tjholowaychuk: not full time, but more time :) [20:21] bradleymeck: i wish i was working on it full time :( [20:21] CrabDude: anyone know what (or where for docs) methodOverride is in express / connect? [20:21] tjholowaychuk: bradleymeck: no reason to return for the eval? [20:21] tjholowaychuk: dunno [20:21] troymg: hi all, anyone willing to give me a quick explanation (or link to one) on module.exports and best-practices for using it? [20:21] Lerchmo: Quick Question tjholowaychuck is this the best way to setup an express app for ssl / https connections: http://www.silassewell.com/blog/2010/06/03/node-js-https-ssl-server-example/ [20:22] tjholowaychuk: CrabDude: http://senchalabs.github.com/connect/methodOverride.html [20:22] tjholowaychuk: wavded: ah :) [20:22] _announcer: Twitter: "Like how easy Joyent's Smart Platform is too setup. Similiar methodology to Google's AppEngine but based on Node.js. Pushing by Git." -- Uwe Dauernheim. http://twitter.com/uwe_/status/24694445323 [20:22] tjholowaychuk: jashkenas: yup [20:22] wavded: tjholowaychuk: and thanks on your help with the bug fixes/requests, I like expressjs, simple is good. [20:22] CrabDude: tjholowaychuk ha, thankyou thankyou [20:22] tjholowaychuk: np! and I agree, simple + flexible is good [20:22] _announcer: Twitter: "Had a great time at #BEKK coding night, hacking NodeJs with @gnab and @torgeir - they got a really cool inbrowser coding environment comming" -- Jonas Follesø. http://twitter.com/follesoe/status/24694471142 [20:23] tjholowaychuk: bradleymeck: you dont work with node fulltime? where do you work? [20:23] bradleymeck: keyingredient, i do parsers for things and code monkey js / css [20:24] Nohryb has joined the channel [20:24] path[l] has joined the channel [20:24] mjr_: I wonder how many people get to do node stuff fulltime these days? [20:24] mjr_: 100? [20:24] Mikeee: So, I made a square. And if you drag the square in one browser, it moves it in another. It's simple and silly, I know, but it's made me feel love for node. [20:24] _announcer: Twitter: "Node.js and MongoDB - How To Node: http://bit.ly/aZcOtc" -- junichi_y. http://twitter.com/junysb3/status/24694613943 [20:24] prettyrobots: mjr_: I do. [20:24] zith_: now share the code! :) [20:25] prettyrobots: I just told everyone: I don't want to think in Ruby anymore. [20:25] mjr_: Mikeee: sounds cool. [20:25] tjholowaychuk: bradleymeck: me likes parsers [20:25] prettyrobots: And I killed a lot of Java too. [20:25] prettyrobots: And it is all Node.js. [20:25] halfhalo: ACTION is pressuring csun to switch some backend stuff to node instead of rails [20:25] rkieffer has joined the channel [20:25] bradleymeck: im good at em but wish i had more time to work on stuff [20:25] Lerchmo: wonder how many expats use node now, from ruby / php [20:25] CrabDude: tjholowaychuk even better: http://senchalabs.github.com/connect/api.html#lib/connect/middleware/methodOverride.js [20:25] Mikeee: If I link it, I think it could break, as everyone will be fighting against eachother to move the cube :P [20:25] mjr_: I'm pretty much fulltime working on node. [20:25] Mikeee: http://www.mikeefranklin.co.uk/bson/bson.html [20:25] tjholowaychuk: CrabDude: ah yes :) that too [20:25] Mikeee: ACTION waits to see it move [20:26] Mikeee: oh, need a half decent browser. [20:26] Mikeee: it moves! [20:26] prettyrobots: I'm a Java expat. I went to Ruby but could not find sanctuary from the Patteristas. Now I'm here. [20:26] mjr_: That's really fun [20:26] tjholowaychuk: bradleymeck: yeah i know the feeling. I have a stupid pointless C language in the works, pretty much done the lexer/parser but still tons to go [20:26] mjr_: Update rate is super high. [20:26] Mikeee: I put a little bit of animation between packets to make it seem a bit smoother [20:26] Lerchmo: pretty sweet (little square thing) [20:26] mjr_: Oh, nice touch. [20:26] prettyrobots: Indeed. It moves. [20:26] Mikeee: I think i'll try figure out the persons bandwidth so I can animate better. [20:27] Mikeee: It's quite fun watching it with 5 browsers open :P [20:27] digitalspaghetti: i'm hoping i can find a place for node full time :D [20:27] digitalspaghetti: if i could replace django then definetly [20:27] prettyrobots: Didn't work in Firefox, though. FYI. (I'm sure you're pre-beta on this application, though.) [20:27] mjr_: With my dual monitor setup, I can probably drag it beyond the obvious limits of most people. [20:27] rkieffer: hey gang, is there any way to run have a single-file node script that you can launch from the command line? I'm thinking something along the lines of having the first line be "#!/usr/local/bin/node" [20:27] Mikeee: firefox has no websocket support until 4.0 beta :( [20:28] Mikeee: might have external interface it to flash to send over as a fallback. [20:28] rkieffer: ... followed by the usual JS foo for a node app. [20:28] mjr_: rkieffer: yes, that works. I usually do #!/usr/bin/env node [20:28] prettyrobots: My future is Node.js and HTML5. [20:28] zith_: Mikeee: will you share the code? [20:28] _announcer: Twitter: "As I like soda selenium adapter created by willow labs with nodejs http://sodajs.com/" [es] -- karlos g liberal. http://twitter.com/patxangas/status/24694851961 [20:28] Lerchmo: firefox < chrome... but firebug > chrome dev tools in my opinion [20:28] Mikeee: with, i'm just using other peoples code [20:28] prettyrobots: Mikee: What is it? A websocket controlled animation? [20:28] zith_: i see [20:28] tjholowaychuk: wow lol whatever is translating that, did a bad job [20:29] Mikeee: i've stolen bson from mongodb, and it's using a simple thing built upon node-websocket-server [20:29] Mikeee: might try get that native bson node.js thingy working. looks fast. [20:29] _announcer: Twitter: "#nodejs needs a celebrity endorsement! well, at least a celebrity other than our @ryah :) @kanyewest is always up on what's new/cool, right?" -- NodeCore. http://twitter.com/nodecore/status/24694933811 [20:29] Lerchmo: is mongodb using spidermonkey still? [20:29] saikat: tjholowaychuk: you're working for learnboost now? [20:30] tjholowaychuk: saikat: yup [20:30] zith_: Mikeee: you should add everyones mousepointers to the screen [20:30] saikat: nice, congrats [20:30] Mikeee: ha nice idea [20:30] tjholowaychuk: saikat: thanks :D [20:30] mjr_: rkieffer: here's an example: http://github.com/mranney/node_pcap/blob/master/examples/http_trace#L1 [20:31] Mikeee: need to create some kind of nice 'shared object' thing for it, i think. so it only updates the properties that have changed.etc. [20:31] rkieffer: mjr_: ah, sweet. thx [20:31] mjr_: tjholowaychuk: are you going to keep working on connect/express? [20:31] Lerchmo: or allow everyone to have a box (up to x people) and if boxes collide they explode and you have to wait 10 seconds [20:31] Lerchmo: so it's like tag [20:31] Lerchmo: lol [20:31] tjholowaychuk: mjr_: yup certainly [20:31] mjr_: cool [20:31] tjholowaychuk: mjr_: reminds me, how is the redis client going? I was thinking about switching to use it for connect-redis the session store [20:32] m7d has joined the channel [20:32] mjr_: I love github. What did we ever do before there was github? [20:32] mjr_: tjholowaychuk: I'm using it in my app right now. Seems to work well. [20:32] digitalspaghetti: sourceforce (ho ho ho ho ho) [20:32] mjr_: I updated the API so you can use it exactly like fictorial's. [20:32] digitalspaghetti: what a joke that has turned in to :( [20:32] tjholowaychuk: mjr_: k awesome, I will give it a go in that module, ah! [20:32] tjholowaychuk: great [20:32] tjholowaychuk: sounds awesome [20:32] digitalspaghetti: it makes me sad when i still see projects on SF [20:33] creationix: isaacs: did you ever play with traffic server at yahoo? [20:33] saikat: mjr_: waht's your github profile? [20:33] saikat: yeah i tihnk fictorial had a baby recently, so he's been busy [20:33] creationix: I wonder how it works compared to nginx as a reverse proxy [20:33] mjr_: I think it's the same anyway. The major thing I changed was to have client.command(arg1, arg2, arg3, callback) be the same as client.command([arg1, arg2, arg3], callback) [20:33] saikat: and hasn't had much time to work on his redis client [20:33] christophsturm has joined the channel [20:33] saikat: also mjr_ do you pipeline everything? [20:33] halogenandtoast: tjholowaychuk: So when are you going to make soda headless ;-) [20:33] mjr_: saikat: http://github.com/mranney [20:34] mjr_: I pipeline the shit out of everything. [20:34] saikat: excellent [20:34] mjr_: I'm amazed at how fast it is by doing that. [20:34] saikat: faster than fictorials? or you just mean how fast redis is? [20:35] mjr_: I haven't benched mine vs. fictorial's. I just meant how fast redis is when you pipeline a bunch of commands. [20:35] saikat: heh yeah [20:35] saikat: redis is great [20:35] tjholowaychuk: halogenandtoast: that was not the purpose, but who knows :) [20:36] bradleymeck: eho was it that i bothered to make a stackexchange clone? [20:36] Lerchmo: is redit much faster than mongo as a key-value store? [20:36] mjr_: Mine uses Buffers for all bulk replies, and an array of Buffers for a multi-bulk reply. It makes a new Buffer for each one, so you can hang on to them if you want. [20:36] halogenandtoast: tjholowaychuk: Yeah I realized that wasn't the purpose, but shouldn't be too much trouble for LearnBoost ;-) [20:37] mjr_: But there is a cost to that. It'd be faster to just emit a slice against the socket buffer, but I wanted to be able to keep the results. [20:37] ysinopsys has joined the channel [20:37] stagas: http://github.com/igo/redis2json idea is nice [20:37] mjr_: Lerchmo: I dunno if it is faster. I like redis for how simple it is. It doesn't claim to keep your data safe, and the protocol is quite simple. [20:37] Lerchmo: cool [20:38] tjholowaychuk: redis has a nice purity to it [20:38] saikat: Lerchmo: also, redis, by default, puts everything in memory (though the VM is pretty great). does mongo have a default caching layer that does the same? [20:38] wavded: i'm giving a presentation on node probably tomorrow, i was think of just rehashing ryah slides from 2009, any other suggestions or resources? [20:38] hassox has joined the channel [20:38] saikat: but yeah for the vast majority of people who don't need to scale horizontally, redis is so fast and easy and nice [20:38] troymg: I want to import a bunch of files in one directory without listing them out individually, ala: require('./models/*') ... is there any good way to go about doing that? [20:38] mjr_: tjholowaychuk: yeah, it seems purpose built for really fast operations, and sort of saves the data as an afterthought. [20:39] dgathright has joined the channel [20:39] saikat: and redis-cluster should make horizontal scaling easier, once it actually happens [20:39] tjholowaychuk: mjr_: you can tweak that with config [20:39] Lerchmo: saikat Mongo does cache in memory http://www.mongodb.org/display/DOCS/Caching [20:39] tjholowaychuk: as far as the writes go [20:40] saikat: ah ok [20:40] mjr_: tjholowaychuk: sure, my point is that is a great design. It's really obvious what redis is good at. Reliably storing your data is not what redis is really good at, although with AOF maybe it's fine. Who knows. [20:40] Lerchmo: I have a trackign application that we ported over from PHP + mysql :P to node + mongo, it's on the same server as the PHP one used to be on, and it can handle like 10x the simultaneous requests [20:40] saikat: it's pretty fine with AOF [20:40] tjholowaychuk: mjr_: for sure, I love it [20:40] bradleymeck: wavded, explain the difference from other ssjs implementations [20:40] Lerchmo: pretty sweet [20:40] wavded: bradleymeck: i'm dealing with JAVA programmers, my gut is they won't care [20:40] jchris has joined the channel [20:41] bradleymeck: ah, java programmers... [20:41] wavded: bradleymeck: i want to focus on threaded systems vs an event loop [20:41] mjr_: wavded: dive right into the controversy [20:42] bradleymeck: yea go for that with java, explain the cost of semaphores for build time [20:42] _announcer: Twitter: "http://bit.ly/aTjjEz Automated web testing with Selenium. There is a Node.js connector called Soda, to run the tests on the server side." -- Jaime Gómez Obregón. http://twitter.com/JaimeObregon/status/24695747913 [20:42] wavded: mrj_: agreed, i like how ryah's talk in 2009 put it out there [20:42] mjr_: I'd like to see the memory footprint of a JVM with 60,000 connections held open using whatever the standard way to write a web application is in Java. [20:43] mjr_: Because I've done it in node, and it used 190MB on my Mac. [20:43] mjr_: That might make an interesting benchmark for java people. [20:43] Akufen has joined the channel [20:43] wavded: mjr_: haha, well I assure, the footprint would be quite large :-) [20:43] Akufen has joined the channel [20:43] wavded: assure you [20:43] bradleymeck: mjr_ that would be enormous for any threaded system [20:43] mjr_: Yeah, I know, but I want to see the real numbers. [20:43] wavded: i think the argument that ryah makes about a cultural bias is important [20:43] mjr_: 2GB? 16GB? [20:44] wavded: how we do IO has been really shaped by the shell and most every other language [20:44] bradleymeck: v8 28*1024*60000 / Math.pow(1024,2) [20:44] v8bot: bradleymeck: 1640.625 [20:44] bradleymeck: ^ number of megs used up for thread structs [20:45] mjr_: 28KB / thread/ [20:45] mjr_: ? [20:45] melpad has joined the channel [20:46] bradleymeck: meh, thats my standard i attach to a per thread basis for locks + context keeping + storage [20:46] mjr_: I wonder about the overhead of the HTTP lib. My 60K test was going 60K long polls, so there were 60K active requests. [20:46] mjr_: not just 60K sockets [20:46] mjr_: Anyway, could be a an interesting number to illustrate the point in a way that java people might understand. [20:47] adambeynon has joined the channel [20:47] voodootikigod_ has joined the channel [20:48] bradleymeck: still i do wish i could finish up my jni stuff to get some of the java std lib, even if it is named oddly and uses a separate thread in node [20:48] wavded: i know i'll get this question, but what is node bad at? what's the downfalls if any that you guys know of? [20:48] bradleymeck: debugging [20:49] bradleymeck: dear god debugging [20:49] wavded: yeah, how is that node-debugger webkit thingy, haven't tried it? [20:49] jashkenas: wavded: exceptions + events. [20:49] bradleymeck: that and not having been around for 15 years XD [20:49] tjholowaychuk: exceptions kinda suck [20:49] tjholowaychuk: if you loose one [20:49] tjholowaychuk: your fucked [20:49] bradleymeck: node-inspector helps a lot but exceptions inside of an event is... [20:49] bradleymeck: what tj says [20:49] mjr_: Yeah, handling exceptions that come off the event loop or as the result of a callback are kind of difficult to deal with. [20:49] troymg: so... I want to include a bunch of .js files in a directory without specifically them explicitly. best way to do that? [20:49] tjholowaychuk: so i highly recommend request timeouts lol [20:50] hassox has joined the channel [20:50] prettyrobots has joined the channel [20:50] jashkenas: mrj_: i know. we need a plan for them. [20:50] mjr_: jashkenas: ryah has a branch that at least gives a proper stack trace for them. [20:50] wavded: uncaughtException, is that any good for catching stray exceptions? [20:50] troymg: specifically I have a bunch of model files that I'm using for Mongoose and don't want to have to have everything just sitting in one big ass file. I'd prefer a convention-over-configuration method of just popping the file in a /models/ directory and having them work [20:50] mjr_: Which is better than nothing. [20:50] wavded: i've used it some [20:50] mjr_: wavded: it doesn't catch them all, sadly [20:51] jashkenas: mjr_: what's the limitation with it? [20:51] devinus has joined the channel [20:51] Mikeee: Anyone using a browser that doesnt support websockets and can test something for me quickly? :) [20:51] sveimac has joined the channel [20:51] devinus: Mikeee: i've got lynx [20:51] Mikeee: actually nvm! [20:52] mjr_: jashkenas: well, the stack is all brand new in many cases when running callbacks, so an exception in a callback doesn't end up going where you think. [20:52] Mikeee: ha :P [20:52] mjr_: or at least where you expect [20:52] CIA-77: node: 03Herbert Vojčík 07master * r6abbfa0 10/ src/node.js : m.id unneccessary, id is enough. - http://bit.ly/bZcU4w [20:52] CIA-77: node: 03Herbert Vojčík 07master * rd429033 10/ src/node.js : [20:52] CIA-77: node: Module system moved to the bottom, where only is it needed. [20:52] CIA-77: node: (this also splits the file into upper "setup" and lower "startup" sections) - http://bit.ly/bsk1iN [20:52] CIA-77: node: 03Herbert Vojčík 07master * r4e6b9b0 10/ src/node.js : No need to do if (internalModuleCache...), it's in requireNative. - http://bit.ly/a1B8w9 [20:52] CIA-77: node: 03Herbert Vojčík 07master * r3e0a8f3 10/ lib/events.js : Common subexpression in emit. - http://bit.ly/d5M0of [20:52] maushu: Mikeee, huh, most browsers don't support websockets, by default. [20:52] bradleymeck: wavded the bigger issue is you dont have the stack trace one might expect [20:52] maushu: On another news, iPod Touch doesn't have websockets support. [20:52] Mikeee: masuhu, yeah but i've currently for ff4 and chrome installed [20:52] Mikeee: but i finks i have ie somewhere! *searches* [20:52] delapouite has joined the channel [20:53] digitalspaghetti: maushu: for pushing the new web + html5 stuff, apple's support is embarassingly bad [20:53] maushu: digitalspaghetti, thats an excuse, they just hate Adobe. [20:53] wavded: bradleymeck: are their predictable scenarios where the "unexpected" stack traces come up? http, tcp? request stuff? [20:53] bradleymeck: dont forget though, according to ms ie8 is 100% css2.1 [20:53] maushu: If flash was still from macromedia they wouldn't mind. [20:53] jashkenas: mjr_: what would you think about attaching global exception handlers, for exceptions within events, that were specialized to dispatch on the type of exception thrown. Then, when you throw the exception object, include enough of the local context to make error handling possible... [20:54] digitalspaghetti: maushu: Jobs probably wasn't allowed to take his Nunchucks into an Adobe building :D [20:54] maushu: Oh yeah, that was funny. [20:54] bradleymeck: wavded, from c++ land your stack will be tanked. so any native stuff. ryah is working on long stack traces though :) [20:54] jashkenas: mjr_: it could be like: handle DnsNotFound errors with this function, where the error object contains a reference to the current request, and the dns record in question, etc. [20:54] mjr_: jashkenas: Have you seen the eventsource branch? It sort of does that. [20:54] mjr_: Er, it doesn't do that [20:55] mjr_: But it does capture the original stack trace in case you need to include it when it is thrown. [20:55] mjr_: And of course, that's slower than not capturing the stack. So there are issues with conditionally enabling it. [20:55] jashkenas: right. I don't care about the stack as much as not having to check for the error argument constantly. [20:56] mjr_: If they all landed in uncaughtException, it seems like it'd be pretty easy to filter from there. [20:56] _announcer: Twitter: "@ Where I used node.js but Selenium. Node.js use is growing _very_ fast." [es] -- Jaime Gómez Obregón. http://twitter.com/JaimeObregon/status/24696645195 [20:56] mjr_: Like, as is. [20:56] mjr_: But sadly they don't always land there. [20:56] bradleymeck: idk i kinda like that err argument, [20:57] mjr_: so instead of throwing, emit an "error" event? [20:57] digitalspaghetti: there needs to be a consistancy though [20:57] digitalspaghetti: either one or the other [20:57] digitalspaghetti: mixing both is just terribad [20:59] aurynn: errors seem to be more easily trapped [20:59] aurynn: exceptions cross stack boundaries really easily [21:02] pydroid_ has joined the channel [21:05] uvacav has joined the channel [21:06] MikhX has joined the channel [21:08] dohtem has joined the channel [21:08] bradleymeck: i think emitting is the ideal solution, but not all things return emitters [21:09] _announcer: Twitter: "Hacker News | Ask HN: Node.js+Redis+CouchApp+BigCouch+CouchDB+ ...: We've been very happy with AppEngine, especial... http://bit.ly/9eM4kh" -- Nathanial Ofiesh. http://twitter.com/ofiesh/status/24697510968 [21:09] reid has joined the channel [21:11] troymg: okay, having an interesting expresso issue. I have one test (app.test.js) and regardless of whether that test passes or fails, expresso never finishes until I press ctrl+C [21:11] troymg: once I press ctrl+C expresso properly reports the failures/successes to me [21:12] Sami_ZzZ has joined the channel [21:12] bradleymeck: did you leave something open that would prevent it from closing? [21:13] troymg: hmm, not that i know of. I'm still using the default express route [21:13] troymg: I'm opening a mongoose connection in app.js and not closing it, but I'm not aware of any need to [21:14] Nohryb has joined the channel [21:14] tjholowaychuk: yes you need to [21:14] tjholowaychuk: it cant close things for you [21:15] troymg: I wasn't aware that a mongodb connection actually needed to be closed - I assumed each request was a separate http call [21:15] bradleymeck: that would be wasteful [21:15] rauchg_: it's persistent [21:15] rauchg_: connect to mongo when you start the http server [21:15] rauchg_: never disconnect [21:17] troymg: okay, thats what I'm doing now: connecting to mongo in app.js (outside the routes). is there any facility in expresso to tell me when it has executed all tests so that I can disconnect from mongo? [21:18] uvacav: so I'm just learning node.js and trying to mess with node-websocket-server. Does anyone have any idea why it won't let me connect to my server unless I set server.setSecure(credentials); (im not even accessing through https) [21:19] tjholowaychuk: troymg: actually I dont think I have anything for that right now lol oddly [21:19] tjholowaychuk: but i will [21:19] troymg: np tj [21:19] troymg: I'll think up a different way around it =) [21:19] troymg: I may have to just explicity connect/disco before/after every test inside the test itself [21:20] _announcer: Twitter: "Looks promising! RT: @hackernewsbot SodaJS, functional web testing in NodeJS... http://sodajs.com" -- deanwampler. http://twitter.com/deanwampler/status/24698249975 [21:20] tjholowaychuk: troymg: currently on exit IS when the tests end, while the event loop is active expresso has no clue it should be done [21:20] tjholowaychuk: I dont tally up tests or anything [21:20] gthb has joined the channel [21:21] troymg: I see [21:21] troymg: well, some way to globally execute some code before & after each test would be great [21:21] troymg: then you wouldn't have to track progress [21:21] tjholowaychuk: for sure [21:21] troymg: it'd be wasteful with the connections, but meh =) [21:21] tjholowaychuk: if you use --serial [21:22] tjholowaychuk: i will haev stuff like that [21:22] tjholowaychuk: and setup/teardown for async as well [21:22] troymg: --serial? [21:22] tjholowaychuk: just needs some work [21:22] tjholowaychuk: tests are not executed serially [21:22] troymg: ah, tests execute asynch by default? nice [21:22] tjholowaychuk: unless you use that flag [21:22] tjholowaychuk: then you get the signature (assert, done) so you can call done() [21:24] wavded has left the channel [21:24] ivong has joined the channel [21:26] _announcer: Twitter: "@uwe_ In fact, you can catchup on the SmartPlatform with our recent blog post... http://joyeur.com/2010/09/16/smartplatform-and-node-js/" -- konobi. http://twitter.com/konobi/status/24698644948 [21:26] aliem has joined the channel [21:27] mr_daniel has joined the channel [21:27] zapnap has joined the channel [21:27] Lerchmo has joined the channel [21:27] dgathright has joined the channel [21:29] cardona507_ has joined the channel [21:29] frank06 has joined the channel [21:29] bradleymeck: so might sound crazy but i wish i could make Function(Function foo) make a copy of foo stripped of closures [21:29] huyhong has joined the channel [21:30] rwaldron has joined the channel [21:30] boaz has joined the channel [21:31] frank06: hi all, i'm getting "Error: forbidden user" when pushing to npm - has anyone gone through this? [21:31] frank06: can i change my password? [21:31] isaacs: frank06: that's odd. [21:31] isaacs: frank06: what's your username? npm config get username [21:31] inimino: bradleymeck ⋱ What would happen to free variables? [21:31] figital has joined the channel [21:31] frank06: Francisco Treacy [21:32] bradleymeck: free variables? you mean closure scoped ones? idk, could just go to global scope for all I care, i just want to use it on "pure" functions that dont reference closures [21:32] _announcer: Twitter: "I have no idea how to test you, node.js. #fuckisuck" -- Danny Tatom. http://twitter.com/dannytatom/status/24699069030 [21:32] huyhong has left the channel [21:33] _announcer: Twitter: "@jchris if you're looking for node.js hosting, joyment might be an option. My recommendation is grab an EC2 micro instance for $15 a month." -- chewbranca. http://twitter.com/chewbranca/status/24699097657 [21:33] tjholowaychuk: bradleymeck: the vm tests / optimizes for that stuff no? [21:33] bradleymeck: !tweet @dannytatom give it your college exams and see how it does? [21:33] inimino: bradleymeck ⋱ What would it change then? [21:33] bradleymeck: tj, a little [21:33] bradleymeck: inimino, closure memory use [21:34] tjholowaychuk: bradleymeck: just assuming that a function that does not reference higher scope variables, would not hold reference to any [21:34] tjholowaychuk: makes sense to me [21:34] tjholowaychuk: at least [21:34] inimino: It wouldn't make any difference in that case, bradleymeck [21:34] inimino: right. [21:34] tjholowaychuk: i guess there is always potential eval() crazyness n shit [21:34] bradleymeck: yes it would, cause of eval [21:34] frank06: isaacs: i really don't think i'm entering a wrong password - is there anything i can do now? [21:34] tjholowaychuk: boo [21:34] tjholowaychuk: boo eval [21:34] inimino: bradleymeck ⋱ not if you don't use eval. [21:34] inimino: Actually here's a good explanation for spidermonkey: https://developer.mozilla.org/En/SpiderMonkey/Internals/Functions [21:34] bradleymeck: you cant compile out eval as it can be masked [21:35] dnyy: bradleymeck: lol at your reply to my tweet. :( [21:35] isaacs: frank06: open up ~/.npmrc in your favorite editor. remove the _authCrypt line. do "npm adduser" and enter your details. Username must be "Francisco Treacy" and email should be your firstname.lastname gmail address you used before. [21:35] isaacs: (i just deleted the user acct, so this will re-create it) [21:36] frank06: isaacs: cool, i'll try that out [21:36] bradleymeck: v8 eval = 1; eval(2) [21:36] v8bot: bradleymeck: undefined: undefined [21:36] bradleymeck: throws [21:36] inimino: ...sure [21:36] tjholowaychuk: inimino: ah :) thought that was the case [21:37] Lerchmo has joined the channel [21:37] inimino: bradleymeck ⋱ but you actually can eliminate eval with certain restrictions (like if someone passes eval as a parameter, you might have to fall back and take a slower code path) [21:37] aurynn: I really wish arguments was a real array. [21:37] _announcer: Twitter: "@Charpie Yesterday you asked me about using node.js & today I get an email from @peepcode about it. http://bit.ly/cC9ps8 Must be a sign." -- Brian Pattison. http://twitter.com/brianpattison/status/24699398741 [21:37] TobiasFar has joined the channel [21:38] bradleymeck: v8 function foo(f,x){f(x)};f(eval,"foo=1");foo [21:38] v8bot: bradleymeck: ReferenceError: f is not defined [21:38] bradleymeck: oops backwards [21:39] bradleymeck: function foo(f,x){f(x)};foo(eval,"foo=1");foo [21:39] frank06: isaacs: it's ok now! for some reason i had "francisco treacy" locally, but the authorized user i see in registry.npmjs is frank06 (so using that) [21:39] frank06: isaacs: thanks [21:39] bradleymeck: v8 function foo(f,x){f(x)};foo(eval,"foo=1");foo [21:39] v8bot: bradleymeck: 1 [21:39] isaacs: frank06: kewl. [21:39] isaacs: frank06: i didn't blow away the frank06 user, so i guess you remembered your password :) [21:40] bradleymeck: i mean, the fact i can assign eval to stuff kinda nulifies things [21:42] inimino: bradleymeck ⋱ Implementations are allowed to let all sorts of things not work when you do that, though. [21:42] bradleymeck: true [21:42] inimino: (like accessing values in the local scope that might not exist anymore because they were optimized away) [21:43] inimino: That's the whole distinction in the ES5 spec between "direct" and "indirect" eval, though I think it only captures a small part of real-world eval behavior (which is horrifically complicated). [21:43] bradleymeck: indeed, but the fact that i can leads me to know it hold references to the outer scope [21:44] bradleymeck: holws* [21:44] bradleymeck: holds* [21:44] tjholowaychuk: i always forget how eval behaves since I never touch it :s [21:44] bradleymeck: you cant hide from eval [21:44] ryanfitz has joined the channel [21:45] inimino: bradleymeck ⋱ I'm not sure what that example demonstrates, except that you can redefine foo in the global scope by passing eval to a function. [21:45] inimino: bradleymeck ⋱ It doesn't seem to have any bearing on whether any local scope is kept or not, that I can see. [21:45] _announcer: Twitter: "Trying to wrap my head around #nodejs ... have yet to have that Eureka! moment." -- Bob Waycott. http://twitter.com/bobwaycott/status/24699955713 [21:45] sechrist: Is there a way to bind an ip to an FD for an http.client in node yet? (without hacking up node)? [21:46] _announcer: Twitter: "Heading out to @cltjs at @skookum to talk about socket.io, express, nodejs and other fun stuff. Hope to see you there!" -- Aaron Heckmann. http://twitter.com/aaronheckmann/status/24699971832 [21:46] mjr_: sechrist: a long time ago on the ml someone was trying to do that [21:46] Lerchmo has joined the channel [21:46] sechrist: yeah that was me [21:46] mjr_: sechrist: I thought they had eventually figured out something [21:46] mjr_: oh, ha [21:46] sechrist: was back in like may [21:46] _announcer: Twitter: "New blog post from Joyent about their future plans on integrating Node.js: http://bit.ly/bF19Eh" -- Uwe Dauernheim. http://twitter.com/uwe_/status/24700013166 [21:46] sechrist: I had to actually hack up node [21:46] sechrist: I would hope that's changed [21:46] mjr_: ancient history in node terms [21:46] sechrist: yeah [21:46] the_giver2 has joined the channel [21:47] sechrist: ryah: you there? [21:47] bradleymeck: nevermind, i see my mistake there [21:49] c4milo has joined the channel [21:49] ryah: sechrist: yo [21:49] sechrist: ryah: Is there an easy way to bind an FD to an outgoing port with say an http.client yet? [21:49] ryah: sechrist: no [21:49] ryah: why do you need that? [21:50] hayeah has joined the channel [21:50] thinker has joined the channel [21:50] sechrist: crawler, heh. Back in like may I had to actually hack up node.js to do it [21:50] sechrist: looks like I need to again [21:50] sechrist: I remember something like an fd event being talked about but I guess that never fabricated [21:50] mjr_: ryah: on multi-homed computers, you need that if you want to force a request to use a certain outgoing IP that will match someone's firewall rules [21:50] ryah: oh [21:51] mjr_: or to force probe requests down a specific interface [21:51] hayeah has joined the channel [21:51] sechrist: well, yeah, there's multiple uses [21:51] mjr_: Effectively to override the routing table temporarily. [21:51] ryah: well - sechrist - i'm fine with it but let's talk about API first [21:51] ryah: i say it shold be in the options passed to net.createConnection() ? [21:51] bradleymeck: heh inimino, just checked all permutations i can of generated functions, ya indirect of any sort is kept to global scope it looks like [21:52] bsstoner has joined the channel [21:52] mjr_: The solution to this is probably similar to the dgram refactor. First need to make a socket, then you can explicitly bind it. [21:52] ryah: hm, doesn't the constructor already start connecting? /me looks [21:52] ryah: no it doesn't [21:52] sechrist: nope, it doesn't [21:52] ryah: yeah, that sounds good [21:53] mjr_: oh, I thought it did. Maybe it's easier then. [21:53] ryah: exports.createConnection = function (port, host) { var s = new Stream(); s.connect(port, host); return s; [21:53] ryah: }; [21:53] sechrist: my little patch just made it not create a new FD if one already is in the object [21:53] inimino: bradleymeck ⋱ yeah, it's finally being specified, but the idea is to enable those kinds of optimizations explicitly. [21:53] sechrist: but that's not a proper way to handle it [21:53] bradleymeck: interesting though that in same scope references eval stays as if it were direct [21:54] bradleymeck: var f=eval;f(...) acts same as eval(...) [21:54] bradleymeck: could be used for some interesting scope detections that way haha [21:55] ryah: sechrist: s = net.Stream(); s.bind(10000); s.connect(80, "google.com"); [21:55] ryah: something like that? [21:55] cheetahfoot has joined the channel [21:55] _announcer: Twitter: "@aaronheckmann is talking about #nodejs, express, socket.io at the @cltjs meetup hosted at @skookum check it out if your in the area" -- Nathan White. http://twitter.com/_nw_/status/24700610388 [21:55] sechrist: that should work [21:55] cheetahfoot: is geddy still alive? [21:55] cheetahfoot: no recent commits ... [21:55] sechrist: and I could replace the net.client for an http.client right [21:56] mjr_: cheetahfoot: mde, geddy's author, uses bits of geddy in production, I believe. [21:56] ryah: http.Client is an instace of net.Socket [21:56] _announcer: Twitter: "http://github.com/maccman/juggernaut seem a cool push system build on #node.js and #io.socket" -- Aymeric Barantal. http://twitter.com/gdchamal/status/24700674599 [21:56] ryah: so hopefully that'll just work [21:56] ryah: do the bind lazily [21:57] ryah: also a test for net.Stream, please [21:57] cheetahfoot: mjr_: hm. okay. thank you for the quick response! [21:57] LFabien has joined the channel [21:59] wavded has joined the channel [22:00] _announcer: Twitter: "@nodecore I'm really happy for you. Imma let you finish, but @ericflo is one of the greatest celebrity NodeJS evangelists of ALL TIME!" -- Colin Gourlay. http://twitter.com/login_required/status/24700957841 [22:03] mikeal has joined the channel [22:07] kjy112 has joined the channel [22:07] _announcer: Twitter: "Rails3, node.js, iPhone, javascript, HTML, CSS3, git ... We have 1 square for an annual subscription of 65 € raul@murciano.net peepcode" [es] -- Raul Murciano. http://twitter.com/happywebcoder/status/24701406754 [22:08] eazyigz has joined the channel [22:10] sechrist: ryah: at every point that I can do a bind, fd is null in the http.client. shouldnt there just be an fd event, and then in the fd callback bind it? [22:10] bmavity has joined the channel [22:11] softdrink has joined the channel [22:11] bradleymeck: anyone here got opera that i can bother for 3 console evaluations [22:13] ThePub has joined the channel [22:13] bradleymeck: same for someone with IE. pls, ill give you a cookie [22:15] maushu: Don't have opera and IE is in prison. [22:15] _announcer: Twitter: "@returntologic you looked at the node.js stuff much yet?" -- Chris Nicola. http://twitter.com/lucisferre/status/24701949516 [22:15] bradleymeck: awww [22:15] bradleymeck: im showing 3 distinct eval behaviors... its going up on wtfjs if i can get some input from IE [22:16] devinus: bradleymeck: ive got opera [22:16] devinus: bradleymeck: what's the eval? [22:16] devinus: (im curious0 [22:16] bradleymeck: 1st one. normal eval : function foo(f,x,y){var foo=1;eval(x);return foo;};[foo(eval,"foo=2",'eval'),foo] [22:17] bradleymeck: 2nd one. from a variable : function foo(f,x,y){var foo=1, bar=eval;bar(x);return foo;};[foo(eval,"foo=2",'eval'),foo] [22:17] maushu: Holy batman. Javascript with DOM without any framework is hard. [22:17] maushu: ...and I have yet to try cross-browser. [22:17] bradleymeck: 3rd one. from a new scope : function foo(f,x,y){var foo=1, bar=eval;(function(){return bar})(x);return foo;};[foo(eval,"foo=2",'eval'),foo] [22:18] aurynn: maushu, this was the world we lived in ten years ago. [22:18] aurynn: and 5. [22:18] aurynn: it was horrible. [22:18] maushu: aurynn, I know! I tried to forget. [22:18] cheetahfoot has joined the channel [22:18] maushu: I think jQuery erased some of the memories. [22:19] maushu: But now they are back and I know hell. [22:19] aurynn: jquery, mootools, these things help us heal. [22:19] cheetahfoot has left the channel [22:19] maushu: Well, could be worse. I could be developing for other browser besides chrome/firefox. [22:19] maushu: Like IE. [22:19] devinus: maushu: we do not speak that name. [22:22] bpadalino: is IE9 any good ? [22:23] s0enke has joined the channel [22:24] Vekz: its too cool for websocket support [22:25] bradleymeck: ah, sent out the pull request to wtfjs [22:26] Anti-X: did you get a response on the opera evals? [22:27] bradleymeck: ya they matched, went and dled opera [22:27] bradleymeck: 3 different evals, i never knew [22:29] sechrist: maushu item.nextSibling.nextSibling.style.backgroundColor = 'bleh I miss jquery'; [22:30] Anti-X: matched as in all 3 return the same? because i didn't get that... [22:31] bradleymeck: oh no [22:31] bradleymeck: they return different crap [22:31] bradleymeck: they act different [22:32] Anti-X: v8 function foo(f,x,y){var foo=1;eval(x);return foo;};[foo(eval,"foo=2",'eval'),foo] [22:32] v8bot: Anti-X: [2, function foo(f,x,y){var foo=1;eval(x);return foo;}] [22:32] Anti-X: yeah same [22:32] Anti-X: :P [22:33] bradleymeck: yea, its a wicked hack [22:33] digitalspaghetti: tjholowaychuk: you around and available for a weird jade q? [22:34] Anti-X: how does the second one return [1,2] though? i'm not good enough to get it... [22:34] Anti-X: v8 function foo(f,x,y){var foo=1, bar=eval;bar(x);return foo;};[foo(eval,"foo=2",'eval'),foo] [22:34] v8bot: Anti-X: [1, 2] [22:34] bradleymeck: it affects global scope [22:35] bradleymeck: v8 function foo(x){var foo=1;(function(){return eval})(x);return foo;};[foo("foo=2"),foo] [22:35] v8bot: bradleymeck: [1, function foo(x){var foo=1;(function(){return eval})(x);return foo;}] [22:35] bradleymeck: that one appears to just throw up [22:35] bradleymeck: but no error [22:36] tjholowaychuk: digitalspaghetti: sure whats up [22:37] Anti-X: so just by assigning eval to a local name it becomes global? [22:37] bradleymeck: oh crud forgot to double execute the last one [22:37] digitalspaghetti: ok, got this jade template tjholowaychuk : https://gist.github.com/d0c45ea5ea08a12c802c [22:38] digitalspaghetti: if you refresh it you'll see my output [22:38] digitalspaghetti: now with the console.log(tag), i get output on my console, the object is definetly there [22:38] digitalspaghetti: but no li renders [22:39] sonnym has joined the channel [22:39] digitalspaghetti: and tag.tag is just a string [22:39] tjholowaychuk: hm try moving [22:39] tjholowaychuk: li= question.title [22:40] tjholowaychuk: to li\n= question.title\nul [22:40] bradleymeck: anti-x any assignment of eval to anything changes it [22:40] tjholowaychuk: if that makes sense [22:40] bradleymeck: more fun is to set eval to 1 on chrome, good times [22:40] Anti-X: what happens? [22:40] jacquesc has joined the channel [22:40] digitalspaghetti: yup [22:40] bradleymeck: your console dies [22:40] digitalspaghetti: i'll give it a try [22:41] Anti-X: aha [22:41] bradleymeck: although you can do that to help stop ppl i guess from getting some easy hacking going on [22:41] jacquesc: tjholowaychuk: is there a way to extend connect's compiler middleware? http://github.com/senchalabs/connect/blob/master/lib/connect/middleware/compiler.js#L116 [22:41] jacquesc: i have a handler here: http://gist.github.com/583297 [22:42] digitalspaghetti: hmm, nope :( [22:42] ryah: sechrist: that sounds like overkill - jst add some internal member to tell the stream to bind after the fd is created [22:43] ryah: only use events when there is some inversion of control [22:43] bradleymeck: oh wow [22:44] tjholowaychuk: jacquesc: yup should just be able to add it in there with connect.compiler.compilers [22:45] CIA-77: node: 03Ryan Dahl 07master * rf08985c 10/ lib/sys.js : Handle writeStream errors in sys.pump - http://bit.ly/9AbBAg [22:45] CIA-77: node: 03Ryan Dahl 07master * ra63fd0f 10/ lib/http.js : Remove deprecation warnings in http module - http://bit.ly/9XoABu [22:45] CIA-77: node: 03Ryan Dahl 07master * r251d031 10/ (lib/net.js test/simple/test-http-eof-on-connect.js): Remove deprecation warnings in net module - http://bit.ly/9k9Idk [22:46] jacquesc: tjholowaychuk: connect.compiler.compilers seems to be undefined [22:46] jacquesc: tjholowaychuk: this is after a `connect = require('connect')` [22:46] tjholowaychuk: jacquesc: you have an old version of connect [22:46] tjholowaychuk: i just fixed that recently [22:46] jacquesc: ah, cool [22:47] jacquesc: i'll update [22:47] tjholowaychuk: should be good after that :) [22:47] bradleymeck: every browser seems to lose setTimeout and setInterval using strings, chrome's console dies firebug's console dies, safari's console dies, opera seems to survive [22:47] tjholowaychuk: we need a new version on npm soonish [22:47] creationix: Man, writing a good reverse proxy is hard! [22:47] creationix: HTTP is all jacked up [22:48] masch: got a build error on "{task: libv8.a SConstruct -> libv8.a}" [22:48] digitalspaghetti: tjholowaychuk: hmm, i removed the top li and tried just outputting the tags, i wonder if it's a timing issue instead with the callbacks [22:48] digitalspaghetti: oh but wait, if the console output has the tag then....hmmm [22:49] tjholowaychuk: hm [22:49] tjholowaychuk: it might not do what you want if you have a tag with text, followed by a block [22:50] digitalspaghetti: hmm, maybe i just stuck a p | block in there to test and it's not rendering too [22:51] tjholowaychuk: typically [22:51] tjholowaychuk: one sec [22:51] tjholowaychuk: ah nvm that works fine [22:51] tjholowaychuk: thought i took out support for tags with immedate text AND a block [22:51] tjholowaychuk: was causing some other issue [22:52] tjholowaychuk: but you can do this as well [22:52] tjholowaychuk: http://gist.github.com/583309 [22:52] tjholowaychuk: what is your gist again? [22:52] tjholowaychuk: nvm i have it up [22:53] pgriess has joined the channel [22:53] jacquesc: tjholowaychuk: if you're going to put out 0.2.5, might as well throw this in there ;-) http://github.com/railsjedi/connect/commit/823388ad3d041d258fc72ebf36588455425df6d9 [22:54] tjholowaychuk: is getTags async? [22:54] digitalspaghetti: yes [22:54] mde has joined the channel [22:55] tjholowaychuk: digitalspaghetti: explains that then, jade doesnt wait around for async stuff, it (currently) has no knowledge of promises or anything [22:55] tjholowaychuk: and since promises are not standard [22:55] tjholowaychuk: that would be difficult to get in [22:55] digitalspaghetti: i would have rather done it in the controller, but i'm using sequlize at the moment [22:56] tjholowaychuk: jacquesc: can probably do :) make sure you sign the CLA [22:56] digitalspaghetti: and it's callback central, render always gets called before the data is ready [22:56] tjholowaychuk: hm [22:56] digitalspaghetti: i maybe need to look at promises then in my controller [22:57] tjholowaychuk: what guillermo did was proxy render() in order to wait around for any locals that are promises [22:57] tjholowaychuk: from mongoose [22:57] _announcer: Twitter: "@gblock how powerful are websocket??! Combined with node.js + silverlight u have such a powerful combo" -- Howard van Rooijen. http://twitter.com/HowardvRooijen/status/24704847129 [22:57] sechrist: silverlight bleh [22:57] bpadalino: interesting to see the node and silverlight combo being tweeted about [22:58] tjholowaychuk: jacquesc: send it over to tim@sencha.com [22:58] tjholowaychuk: he will send it to adam [22:58] tjholowaychuk: n whatnot [22:58] jacquesc: tjholowaychuk: sounds good [22:58] tjholowaychuk: and if you are feeling adventurous maybe write a test for it [22:59] sechrist: when I call emit, does that call completing block on all of the event handlers attached for that event? or do they fire during the next iteration of the event loop? [22:59] digitalspaghetti: tjholowaychuk: that in the mongoose source code? [22:59] digitalspaghetti: or an app? [23:00] tjholowaychuk: digitalspaghetti: its in an app [23:00] Tim_Smart has joined the channel [23:00] rkieffer has joined the channel [23:00] tjholowaychuk: but yeah like i said since it is really adhoc and promises are not in node I cant really support it out of the box [23:00] bstimmerman has left the channel [23:01] digitalspaghetti: oh no, i understand but i can [23:01] bstimmerman_ has joined the channel [23:01] omygawshkenas has joined the channel [23:01] digitalspaghetti: https://gist.github.com/0fefd77a5043fdeea313 was my origional controller, but of course i knew it wouldn't work [23:01] bstimmerman_ has left the channel [23:01] tjholowaychuk: yeah you have to put the render in that final callback [23:01] tjholowaychuk: for that to work [23:02] digitalspaghetti: i suppose i could compare the size of the two arrays inside a loop [23:02] digitalspaghetti: feels hacky though [23:02] tjholowaychuk: yes lol [23:02] tjholowaychuk: why not just put it in that callback? or wrap the render in a function [23:03] tjholowaychuk: keep it where it is [23:03] tjholowaychuk: and call that function in your boomerang [23:03] rkieffer_ has joined the channel [23:03] tjholowaychuk: I usually abstract everything pretty heavily so my actual routes usually only have one or two callbacks [23:03] c4milo has joined the channel [23:04] jashkenas has joined the channel [23:04] digitalspaghetti: not sure what you mean 'put it in that callback' ? Yea, before i was using jade I had a generic render_to_repsonse method i created for JSON output in another small project [23:05] tjholowaychuk: less ugly than this of course, but https://gist.github.com/810233d33851ce080649 [23:05] hassox has joined the channel [23:06] lachlanhardy has joined the channel [23:06] digitalspaghetti: but won't it get called on the first itteration? [23:06] zith_: so if you want to run several node.js apps on one server, are you supposed to use several node processess or code some system to launch them all on one process? [23:06] _announcer: Twitter: "Implementing a #redis client for #nodejs which supports #sharding instead of learning for my neural networks exam tomorrow. #win or #fail ?" -- Christian Ranz. http://twitter.com/ranzwertig/status/24705522247 [23:07] mtodd has joined the channel [23:07] jacobolus has joined the channel [23:08] digitalspaghetti: ugh yea that's not going to work [23:08] tjholowaychuk: digitalspaghetti: my bad, didnt really read that [23:08] digitalspaghetti: i still only get one question even, but now i get foo OR bar :) [23:08] digitalspaghetti: depending on how quick i refresh [23:08] softdrink has left the channel [23:09] tjholowaychuk: yeah you need to get a "pending" var going, and --pending || bamImDone(); [23:09] tjholowaychuk: welcome to the annoying world of async [23:09] digitalspaghetti: yea, i was thinking something like that. manual gc, ugh [23:09] digitalspaghetti: ACTION has visions of pop and push registers [23:10] Eber has joined the channel [23:11] rkieffer has joined the channel [23:12] digitalspaghetti: well thanks tjholowaychuk with the register it seems to be working now, except i seem to randomly get the wrong order :| I think that may be from the sql library itself [23:13] digitalspaghetti: but at it has the appearence of working :) [23:13] everton has left the channel [23:13] stagas has joined the channel [23:13] tjholowaychuk: ya sounds like it [23:15] trotter has joined the channel [23:15] _announcer: Twitter: "node.js interesting. @ Yssk22'll let you tell:-p" [ja] -- V. http://twitter.com/voluntas/status/24706168139 [23:16] steadicat has joined the channel [23:17] ajpiano has joined the channel [23:17] masch: Is this a known issue: Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a} ? [23:17] _announcer: Twitter: "[Js 人 気 情报] Soda - Selenium Node Adapter http://bit.ly/9Jf3BN # javascript" [id] -- jsMagazine. http://twitter.com/jsMagazine/status/24706279282 [23:17] ajpiano has joined the channel [23:19] _announcer: Twitter: "SODA http://sodajs.com/ node.js for Selenium client released." [ja] -- koichik. http://twitter.com/koichik/status/24706429517 [23:20] pquerna: zith_: multiple processes unless there is a specific need for them to share data. [23:20] _announcer: Twitter: "At a Node.JS + YUI3 talk by @davglass" -- HB Stone. http://twitter.com/hbstone/status/24706472792 [23:20] saikat has joined the channel [23:21] _announcer: Twitter: "@ MiCHiLU node.js + websockets not it interesting?" [ja] -- V. http://twitter.com/voluntas/status/24706539774 [23:22] dohtem has left the channel [23:22] gf3 has joined the channel [23:26] zith_: pquerna: alright, thanks [23:28] _announcer: Twitter: "fictorial's redis-node-client at master - GitHub: Redis client for Node.js (maintainer not dead, just on paternity... http://bit.ly/95eHUM" -- junichi_y. http://twitter.com/junysb3/status/24707078229 [23:29] pquerna: zith_: or share ports, but most people are still using a nginx proxy in front to do proxying/url routing/ port sharing/etc [23:29] m7d has joined the channel [23:30] zith_: i see [23:32] _announcer: Twitter: "About to see @davglass unleash the Node.js and YUI3 fury in the Yahoo office." -- Christian Heilmann. http://twitter.com/codepo8/status/24707332056 [23:32] gthb has joined the channel [23:32] _announcer: Twitter: "@ MiCHiLU Indeed, debug is dying to node.js + websockets w github project had multiple things together I think everybody w:-p" [ja] -- V. http://twitter.com/voluntas/status/24707359611 [23:34] bsstoner has left the channel [23:34] Me1000 has joined the channel [23:34] _announcer: Twitter: "@codepo8 Indeed, I saw his pre-talk yesterday on the help desk and it looks amazing, can't wait to try out YUI in nodejs" -- Tane Piper. http://twitter.com/tanepiper/status/24707520020 [23:35] saikat: rauchg_: does socket.io send messages that my client.onMessage handler might be intercepting? [23:36] rauchg_: what do you mean [23:36] saikat: i'm debugging further, but it seemed like i had a message that was not expected (at least, my JSON.parse failed) [23:36] _announcer: Twitter: "Listening to @davglass talk about #nodejs and #yui3" -- M van Hylckama Vlieg. http://twitter.com/TheMarco/status/24707674744 [23:36] saikat: though not entirely sure what triggered it [23:37] eazyigz has joined the channel [23:37] saikat: just thought i'd check to make sure there isn't something already known [23:37] saikat: actually brb [23:39] _announcer: Twitter: "watching @davglass finally doing his yui3 + node.js talk - so awesome :-)" -- Dirk Ginader. http://twitter.com/ginader/status/24707864026 [23:39] _announcer: Twitter: "Trying to get a little NodeJS MNM! We'll see when I have time to post something:-P" [es] -- César D. Rodas. http://twitter.com/crodas/status/24707877718 [23:40] digitalspaghetti: ASync database stuff has killed me today :( [23:41] xer0x has joined the channel [23:42] mattly has joined the channel [23:43] EyePulp has joined the channel [23:47] MikhX has joined the channel [23:47] hij1nx has joined the channel [23:48] saikat_ has joined the channel [23:48] softdrink has joined the channel [23:49] saikat__ has joined the channel [23:50] m7d_ has joined the channel [23:50] cardona507_ has joined the channel [23:51] _announcer: Twitter: "Listening to @davglass speak about #nodejs & #YUI at @yahoo. Fun stuff & old friends." -- Bart Teeuwisse. http://twitter.com/bartt/status/24708737841 [23:53] pedrobelo has joined the channel [23:53] tyfighter has joined the channel [23:53] cardona507 has joined the channel [23:55] _announcer: Twitter: "I honestly do not understand having node.js cacayaca with ruby or python for such things. I believe pure eccentricity." [es] -- J D Aguilera. http://twitter.com/jdaguilera/status/24708985427 [23:56] jesusabdullah: cacayaca? [23:56] jesusabdullah: bullshit? [23:57] jesusabdullah: ahaha, google translate says it's "opossum poop" [23:57] Anti-X: compared with [23:57] jesusabdullah: hehehehe [23:58] Anti-X: i think [23:58] Anti-X: aha [23:58] Anti-X: interesting [23:58] cardona507 has left the channel [23:58] jakehow has joined the channel [23:59] _announcer: Twitter: "So YUI3 and Node.js is like progressive enhancement without needing to enhance progressively. You just render JS widgets on the server :)" -- Christian Heilmann. http://twitter.com/codepo8/status/24709262848 [23:59] jesusabdullah: That makes me feel warm inside :v [23:59] Anti-X: yui3 is server side?