[00:00] skm has joined the channel [00:01] flippyhead has joined the channel [00:01] secoif has joined the channel [00:02] perezd: maybe this is a socketio bug [00:04] hosh_work has joined the channel [00:05] Booths_ has joined the channel [00:05] xandrews has joined the channel [00:06] Jamool has joined the channel [00:07] yozgrahame has joined the channel [00:12] mscdex_: perezd: spaces should be ignored iirc [00:13] perezd: yeah, turns out this guy that writes the cocoa-websocket lib is upgrading protocol drafts [00:13] mscdex_: oh [00:13] perezd: and I think that socketio is not [00:13] mscdex_: to 0x ? [00:13] perezd: https://github.com/erichocean/cocoa-websocket/commit/b009f55a59d5c30c29c0484d2f150cbd3f47900f [00:13] perezd: I think he upgraded to that [00:13] perezd: 76 [00:14] mscdex_: oh, socket.io should support both 75 and 76 afaik [00:14] perezd: it appears to be failing [00:14] perezd: get invalid keys [00:14] perezd: could be him being dumb [00:15] mscdex_: it is a recent commit on that cocoa-websocket, so it could be possible [00:15] mscdex_: i know a lot of people use socket.io all the time with draft 76 clients [00:15] mscdex_: like chrome [00:17] perezd: ugh [00:17] perezd: does the 76 version send Key1/Key2 pair? [00:18] perezd: reading wikipedia here, not sure whats right... [00:18] techwraith has joined the channel [00:19] dominictarr has joined the channel [00:20] eventi has left the channel [00:20] perezd: argh, I cannot tell who is wrong here [00:21] perezd: my gut tells me its him [00:21] perezd: because it used to work [00:21] beejeebus has joined the channel [00:24] mscdex: perezd: yeah i'd create an issue on the cocoa-websocket repo [00:25] c4milo1 has joined the channel [00:25] maushu has joined the channel [00:25] perezd: mscdex: yeah, good call [00:26] graysky has joined the channel [00:29] shiawuen has joined the channel [00:30] ji0n has joined the channel [00:31] Me1000 has joined the channel [00:32] Booths has joined the channel [00:33] asdfsafdsa: Hi, I've a question about github since many here use it. if I find an error and I can fix it or make it better, how do I do it? [00:33] asdfsafdsa: do I fork and then commit or what? [00:33] techwraith: Fork, commit, send a pull request [00:34] techwraith: Or, if you want to know for sure, you can always ask the owner :) [00:34] asdfsafdsa: okidoki [00:36] asdfsafdsa: that'll take too long [00:36] mscdex: heh [00:36] asdfsafdsa: or, it always seems to [00:36] JimBastard has joined the channel [00:36] JimBastard: I sense a disturbance in the force, someone mentioned our blog. [00:37] JimBastard: :-D [00:37] llkazu: lol [00:38] dominictarr has joined the channel [00:41] darshanshankar has joined the channel [00:42] chapel: JimBastard: you get everything working? [00:42] chapel: I updated imgurscrup and put it on npm :P [00:43] techwraith: Issacs: How do I use the new local npm bundling stuff? [00:43] JimBastard: chapel: yeah, i used your some of your imgur code to get it working, will be sure to give the credits [00:43] JimBastard: my CLI tool is almost ready.... [00:43] k1ttty has joined the channel [00:43] chapel: no worries, what was it for? [00:43] chapel: out of curiosity [00:43] JimBastard: multipurpose CLI tool [00:43] JimBastard: one of the commands is "imgur" [00:43] chapel: oh [00:43] chapel: just a utility [00:44] chapel: :) [00:44] JimBastard: yeah... i wanted a "share" command but there arent any good anonymous file sharing APIs i could find [00:44] chapel: thats cool though [00:44] JimBastard: drop.io is dead [00:44] chapel: one of the great things about node [00:48] JimBastard_ has joined the channel [00:48] JimBastard_: fucking fuck internet [00:49] jimt_ has joined the channel [00:51] c4milo1: JimBastard: drio.io news is old [00:51] c4milo1: drop [00:51] Draggor: Any users of 'irc' here? [00:54] jimt has joined the channel [00:54] Scala has joined the channel [01:02] evanmeagher has joined the channel [01:10] JimBastard has joined the channel [01:10] JimBastard: :-( bad network [01:11] Fenda has joined the channel [01:13] xandrews has joined the channel [01:14] markstory has joined the channel [01:16] MikhX has joined the channel [01:16] bradleymeck has joined the channel [01:17] bbttxu has joined the channel [01:17] rchavik has joined the channel [01:18] mscdex: Draggor: eh? [01:19] Draggor: mscdex: the simply named irc lib. I'm trying to figure out where this throttling is coming from. [01:19] willwhite has joined the channel [01:20] matyr_ has joined the channel [01:21] briznad has joined the channel [01:25] jaket has joined the channel [01:26] ChrisPartridge has joined the channel [01:26] jb55 has joined the channel [01:26] loungin has joined the channel [01:26] Booths has joined the channel [01:27] fadeddata has joined the channel [01:30] Draggor: does freenode stagger sending things to clients? [01:30] hij1nx has joined the channel [01:31] abraxas has joined the channel [01:31] bradleymeck: not that i could tell, it just kicked floods not staggared when i was messing w/ my irc bot [01:32] bradleymeck: granted at around 100msg/s it just kinda fell over [01:32] ngs has joined the channel [01:32] marcello3d has joined the channel [01:32] Draggor: bradleymeck: Can I borrow you for a couple tests in another chan? [01:32] c4milo1: tjholowaychuk: you there man? [01:33] mscdex: i was gonna say, i've never had problems with node-irc [01:33] mscdex: yet anyway :p [01:33] bradleymeck: draggor sure [01:33] Draggor: Hop over to #dracolair ? [01:34] jimt_ has joined the channel [01:35] deepthawtz has joined the channel [01:35] dominictarr has joined the channel [01:38] hvgotcodes has joined the channel [01:39] jimt has joined the channel [01:39] zorzar has joined the channel [01:40] saikat has joined the channel [01:40] matschaffer has joined the channel [01:44] jb55 has joined the channel [01:46] wilmoore has joined the channel [01:49] incon has joined the channel [01:52] tim_smart: Is it possible to have git repos as dependencies in npm? [01:52] xandrews has joined the channel [01:53] marcello3d: tim_smart: not that I'm aware of [01:53] losing has joined the channel [01:53] Aria has joined the channel [01:55] vrr has joined the channel [01:55] f1lt3r_ has joined the channel [01:55] vrr has left the channel [01:56] csu_ has joined the channel [01:57] csu_: I am trying to understand the code [01:57] csu_: but its too much [01:57] techwraith: What's the best way to pass a string that might have spaces in it as an argument to a node script? [01:57] tim_smart: OK I'm getting paid to write a sane node deployment tool (that will be open sourced), so if you are interested in a particular feature let me know. [01:57] techwraith: node app.js "This is one arg" "this is another arg" [01:58] tim_smart: techwraith: That should work. [01:58] techwraith: cool, just checking :) [01:58] gazumps has joined the channel [01:59] ryah_: ACTION is writing a deployment tool too:) [01:59] tim_smart: ryah_: Join efforts? [01:59] JimBastard: who isnt writing one? [01:59] ryah_: perhaps [02:00] marcello3d: ACTION is adding more unit tests to mongolian deadbeef (woo hoo!) [02:00] JimBastard: im still under the impression that npm is suitable for doing application deployments [02:00] marcello3d: but boy do I sure hate writing unit tests :D [02:00] ryah_: mine is a bit more than a deployment too [02:00] JimBastard: id rather see npm pimped out more then a new tool, but shit, please prove me wrong [02:00] tim_smart: ryah_: Basicially I envisioned something that sits on top of npm, that adds a basic way of writing scripts that runs commands locally and remotely. [02:01] pquerna: ryah_: is it possible to get more generic doc version links? [02:02] pquerna: ryah_: like http://nodejs.org/docs/v0.4/ is a symlink to the most recent v0.4 version? [02:02] ryah_: pquerna: sigh [02:02] pquerna: sorry if this was covered before somewhere [02:02] ryah_: it's possible but it requires me to update symlinks everytime [02:02] ryah_: i guess i could come up with a better deploy script... [02:02] marcello3d: maybe you should write some ajax [02:03] marcello3d: that loads http://nodejs.org/docs/ [02:03] tim_smart: JimBastard: I'm not sure we would want to see deployment specific stuff sitting in npm code [02:03] marcello3d: finds the last link [02:03] pquerna: mod_rewrite rule :x [02:03] marcello3d: and document.locations to it :D [02:03] ryah_: tim_smart: here's a screenshot [02:03] ryah_: SESSION PID HOST PORT MEM VERSION PHI STATE [02:03] ryah_: b966ff2a9b 12308 127.0.0.1 9235 21.4M 20110405020151-f058 0.0 self [02:03] ryah_: b8cc276bba 12309 127.0.0.1 9234 20.6M 20110405020151-f058 1.0 connected [02:03] ryah_: 9af8f8fc7c 12310 127.0.0.1 9232 23.1M 20110405020151-f058 0.5 connected [02:03] ryah_: 403ebf5426 12342 127.0.0.1 9236 21.8M 20110405020151-f058 0.2 connected [02:03] ryah_: 88e8fbb3ce 12350 127.0.0.1 9238 26.4M 20110405020151-f058 0.0 connected [02:03] ryah_: 1d1e26496a 12346 127.0.0.1 9237 22.8M 20110405020151-f058 0.1 connected [02:03] tim_smart: Ah, so more machine management [02:04] pquerna: isnt that what deployment really is :) ? [02:04] marcello3d: what's PHI? D: [02:04] alex_b has joined the channel [02:04] skm has joined the channel [02:04] marcello3d: and doesn't it drive you nuts that the headers don't line up? [02:05] tim_smart: pquerna: Getting code to the remote box, with integrated tests etc. [02:05] ryah_: marcello3d: https://dspace.jaist.ac.jp/dspace/bitstream/10119/4784/1/IS-RR-2004-010.pdf [02:05] tim_smart: That is what I'm focusing in on atm [02:05] pquerna: marcello3d: http://doi.ieeecomputersociety.org/10.1109/RELDIS.2004.1353004 [02:06] marcello3d: D: [02:07] marcello3d: what failures are you measuring? [02:07] pquerna: peers [02:07] gmanika has joined the channel [02:07] pquerna: like if you turn off a node [02:07] pquerna: rather than having a hard coded 10 seconds timeout [02:08] ryah_: pquerna: http://nodejs.org/docs/v0.4 [02:08] pquerna: phi is a... dynamic method to calculate when you should consider a node to be done [02:08] piroshi has joined the channel [02:08] pquerna: s/done/down/ [02:08] ryah_: http://nodejs.org/docs/v0.4/api/ [02:08] pquerna: thanks [02:08] ryah_: marcello3d: a way of measuring ping/pong failures [02:08] jtsnow has joined the channel [02:08] kawaz_air has joined the channel [02:09] matschaffer has joined the channel [02:09] ryah_: high phi = likely suspect [02:09] marcello3d: right [02:09] pquerna: its used in cassandra for example [02:09] zentoooo has joined the channel [02:09] matyr has joined the channel [02:09] marcello3d: so the input is a ping of sorts? [02:09] pquerna: to detect peer failures [02:09] pquerna: timestamp of the most recent ping [02:09] marcello3d: using a heartbeat or something else? [02:10] pquerna: heartbeat [02:10] marcello3d: gotcha [02:10] ryah_: marcello3d: http://twitter.com/#!/ryah/status/45009082511400960 [02:10] pquerna: but its dynamic based on... past heartbeat performance [02:10] marcello3d: right [02:10] zzak has joined the channel [02:10] marcello3d: woah [02:10] marcello3d: twitter inlines gists [02:11] ryah_: yeah, awesome isn't it? [02:11] marcello3d: I guess [02:11] briznad has joined the channel [02:12] ryah_: socket.io should definitely have a smart reconnection scheme [02:13] marcello3d: yea [02:14] marcello3d: should I implement internal methods as prototype._foo [02:14] marcello3d: or just make function foo(self, ...) { ... } in the module.js [02:14] marcello3d: or even function foo(...) { ...} + foo.call(this, ...) [02:15] ryah_: marcello3d: i do prototype._foo [02:15] gtramont1na has joined the channel [02:16] gtramont1na: hey all [02:16] gtramont1na: quick question on Stylus [02:16] marcello3d: I have been, as well, wondering if it's cleaner to hide it completely from the library user [02:16] gtramont1na: how can I write a little css hack [02:16] gtramont1na: like: input,button,textarea,select{ *font-size: 100%;} [02:17] ryah_: marcello3d: local functions work too of course [02:17] gtramont1na: I can't get Stylus to compile the '*' [02:17] ryah_: marcello3d: i use prototype methods because i tend to change my mind about them being private or not :) [02:17] fadeddata has joined the channel [02:17] dominictarr has joined the channel [02:18] ryah_: gtramont1na: tj isn't here now [02:18] marcello3d: but you have to remove the _ right [02:18] gtramont1na: yep. I noticed that. :-) [02:18] marcello3d: so you could switch it from prototype to not [02:20] jsilver has joined the channel [02:21] unomi has joined the channel [02:22] jscheel has joined the channel [02:23] ryah_: marcello3d: true [02:24] ryah_: marcello3d: *shrug* [02:24] indexzero has joined the channel [02:24] Insanity5902 has joined the channel [02:25] Booths: so prototype._* functions are private? [02:25] Booths: news to me... [02:25] marcello3d: no [02:25] Booths: Oh, okay, just misunderstood apparently [02:25] marcello3d: just used to indicate private [02:26] Booths: how would one actually restrict use, besides declaring it inside the actual initialization [02:26] kkaefer: Booths: it's a convention; there is no mechanic to prevent you from calling them [02:27] marcello3d: Booths: you could declare it in an isolated scope [02:27] marcello3d: like (function() { .... function privateFoo() { ... } .... }) () [02:27] Booths: Right, I was just making sure I wasn't missing a way to make private/protected prototype methods [02:28] marcello3d: nope [02:29] matyr_ has joined the channel [02:29] zentoooo has joined the channel [02:31] AAA_awright_ has joined the channel [02:31] lessthanzero has joined the channel [02:31] BillyBreen has joined the channel [02:32] Aria has joined the channel [02:34] broofa has joined the channel [02:38] zakabird has joined the channel [02:39] noahcampbell has joined the channel [02:41] malkomalko has joined the channel [02:41] matyr has joined the channel [02:41] postwait has joined the channel [02:42] yozgrahame has joined the channel [02:42] dominictarr has joined the channel [02:42] jsilver: help [02:42] jsilver: NPM is autistic [02:42] jsilver: lol [02:43] jsilver: i have like a really old version [02:43] jsilver: and it wont update [02:44] JimBastard: jsilver: you can just delete it and reinstall [02:45] jsilver: nvm i fixed it [02:45] jsilver: :D [02:46] pquerna: ryah_: http://www.di.fc.ul.pt/~casim/papers/srds10/srds10.pdf [02:47] matyr_ has joined the channel [02:48] jakehow has joined the channel [02:48] rburhum has joined the channel [02:48] seivan has joined the channel [02:49] pHcF has joined the channel [02:50] gtramont1na: Does any1 know how to make expressjs autocompile my .coffee scripts? I mean, the client-side scripts? [02:51] ryah_: pquerna: huh [02:51] seivan: gtramont1na: you can have a compile on git push to your deployment server [02:51] seivan: and locally have a watch [02:51] gtramont1na: I see, but I was trying to do something like we have for Stylus [02:51] gtramont1na: a middleware [02:52] gtramont1na: I couldn't find such. [02:52] themiddleman has joined the channel [02:52] seivan: So [02:53] seivan: do I have to worry about stuff being thread safe? [02:53] seivan: Or can I access everything in other threads? [02:53] piscisaureus: heh. [02:53] marcello3d: gtramont1na: I think you can do it in node [02:53] ryah_: pquerna: this came before the \phi one? [02:53] marcello3d: by defining a compiler for .coffee requires [02:53] gtramont1na: So, for stylus, we can set it up like this: app.use(stylus.middleware( { src: __dirname+'/public' } ) [02:53] piscisaureus: seivan: if you are accessing stuff in other threads, you have to worry. The question is, do you? [02:54] kawaz_air has joined the channel [02:54] piscisaureus: (insert mutilated shakespeare quote here) [02:55] jsilver: where is a good place to host a node app? [02:55] jsilver: for free [02:55] jsilver: im gonna make my coffeescript creator into a service [02:56] gtramont1na: jsilver: nodester [02:56] gtramont1na: join #nodester ;-) [02:56] seivan: nodester huh? [02:56] seivan: hey jsilver [02:56] seivan: long time no see [02:56] jsilver: yea [02:56] jsilver: hey seivan how ya been [02:56] seivan: piscisaureus: I am in async calls, no?= [02:57] seivan: jsilver: good good, dropped out [02:57] seivan: Working for a startup in Singapore [02:57] jsilver: really [02:57] jsilver: cool cool [02:57] seivan: but I might quit soon. [02:57] gtramont1na: seivan: any other good host? [02:57] jsilver: im still doin everything [02:57] jsilver: rails, node [02:57] seivan: gtramont1na: no ideas. [02:57] jsilver: python [02:57] seivan: haha [02:57] seivan: Give python up [02:57] jsilver: nevar [02:57] seivan: :) [02:57] seivan: It's ok [02:57] seivan: As long as it's not .NEt [02:57] jsilver: it's like an evil retard ruby [02:57] seivan: or PHP [02:57] piroshi` has joined the channel [02:57] jsilver: yea [02:57] piscisaureus: seivan: async calls are still in the main thread [02:57] jsilver: =) [02:57] seivan: really? [02:57] pquerna: ryah_: after, actually kinda disappointed after reading it [02:57] pquerna: thought it would be cooler [02:57] jsilver: ehh i have feelings for PHP [02:57] seivan: piscisaureus: How does that work? I have been in the GCD (Grand Central Dispatch) world way too long [02:57] beawesomeinstead has joined the channel [02:57] beawesomeinstead has joined the channel [02:58] gazumps has joined the channel [02:58] piscisaureus: think GCD with just 1 thread [02:58] postwait: ryah_: Can I get a pull request pushed through? [02:58] marcello3d: postwait: now that's confusing [02:58] postwait: Would love to get this stuff in before 0.4.6... as we have to roll patched 0.4.5 now. [02:59] marcello3d: wasn't there something you could do to the require object to make it pre-process files? [02:59] seivan: piscisaureus: Ooooh [02:59] marcello3d: of a certain extension [02:59] seivan: piscisaureus: how does that work? [02:59] ryah_: postwait: https://github.com/joyent/node/pull/873 ? [02:59] postwait: Need to expose the SSL_OP_* stuff so that we can turn off SSLv2 stuff so Chrome doesn't freak out. [02:59] postwait: yup. [03:00] jsilver: im looking for work actually [03:00] jsilver: i knoe holla stuff [03:00] jsilver: i can take tickets in 4 languages [03:00] jsilver: lol [03:01] postwait: jsilver: we're hiring ;-) [03:01] jsilver: where do you work? [03:01] piscisaureus: seivan: long story. it works. just like in a browser you don't worry about threads. long story is here: https://github.com/joyent/node/tree/master/deps/libev [03:01] Silks has joined the channel [03:01] jsilver: i'm in SF bay area [03:01] Aria has joined the channel [03:01] seivan: jsilver: woooah [03:01] seivan: jsilver: I want to go there [03:01] jsilver: mneh [03:01] seivan: Stupid USA VISA rules [03:01] postwait: not the bay area. [03:01] jsilver: sf > sj :P [03:01] jsilver: jk [03:01] jsilver: sory sharks fans, avalanche [03:02] jsilver: wayne gretsky [03:02] seivan: piscisaureus: That wasn't a long story that was a painful story [03:02] AAA_awright has joined the channel [03:02] jsilver: SILLYCONS VALLELEY [03:02] jsilver: hehe [03:02] marcello3d: seivan: you see, computers are made up of a series of tubes [03:02] seivan: marcello3d: :-) [03:02] marcello3d: and when you have multiple threads, you're trying to stuff lots of things into the tubes at once [03:02] marcello3d: and they all get stuck [03:03] marcello3d: with node.js you have one tube [03:03] marcello3d: and everything is pushed into the tube and comes out the other end one at a time [03:03] seivan: I am waiting for a but [03:03] seivan: OH [03:03] seivan: queueing [03:03] seivan: just like GCD [03:03] marcello3d: basically [03:03] marcello3d: so whenever you do an async callback [03:03] seivan: That's how GCD works, "basically" [03:03] seivan: It queues it for a worker [03:03] highermath_away has joined the channel [03:03] seivan: Got it [03:04] Yuffster has joined the channel [03:04] marcello3d: whatever does the work does it [03:04] Silks: If I have to periodically poll an external API to grab data, and I wish to push that data through AJAX+Node.js, should I use Node.js to run the scheduling or something else to gather the information to pass along to the user? [03:04] jsilver: whoa [03:04] jsilver: js2cs can compile jquery now [03:04] jsilver: lul [03:04] seivan: marcello3d: except, in GCD you gotta think of what "queue" you are in [03:04] seivan: marcello3d: Some stuff need to be in the main "queue" (thread) [03:04] marcello3d: yes [03:04] marcello3d: there's only one queue on node.js [03:05] saschagehlich has joined the channel [03:05] seivan: Ah got ya [03:05] seivan: Isn't that bad? [03:05] marcello3d: to make more you need to use extensions (like web workers) [03:05] marcello3d: or run multiple instances of node.js [03:05] seivan: got it. [03:05] marcello3d: and communicate using whatever mechanism you prefer [03:05] sh1mmer has joined the channel [03:05] Aria: You can also nextTick to buffer things for one iteration [03:05] pquerna: + if (options.secureProtocol) this.secureProtocol = options.secureProtocol; [03:05] pquerna: 799 [03:05] pquerna: + if (options.secureOptions) this.secureOptions = options.secureOptions; [03:05] pquerna: shouldn't that be s/secure// [03:06] postwait: nope, don't think so. [03:06] postwait: secureProtocol and secureOptions are the keys passed into credentials [03:06] postwait: just need to propagate them forward. [03:07] marcello3d: seivan: it's only bad if you're doing lots of CPU [03:07] Croms has joined the channel [03:07] Silks: does anyone have any ideas for my above question? would really appreciate the insight [03:07] marcello3d: in the sense that you will freeze the queue if you don't use some kind of multi-node worker system [03:08] timcosgrove has joined the channel [03:09] broofa has joined the channel [03:09] timcosgrove has left the channel [03:11] saschagehlich: mornin'! is there a way to get better stack traces on exceptions in low level node.js files? like net.js/http.js? [03:11] Aria: What's the question, Silks? [03:11] postwait: pquerna: I can now do this: creds.secureOptions = constants.SSL_OP_NO_SSLv2; https.createServer(creds); [03:11] Silks: Aria, If I have to periodically poll an external API to grab data, and I wish to push that data through AJAX+Node.js, should I use Node.js to run the scheduling or something else to gather the information to pass along to the user? [03:12] Aria: node is perfectly capable. [03:12] pquerna: right, just more a suggestion that the fields on the creds object should be s/secure// [03:12] pquerna: just creds.options or creds.protocol [03:12] pquerna: but NBD [03:12] postwait: the secureProtocol one there predates me ;-) [03:12] postwait: I was just trying to match style. [03:12] Aria: IF your AJAX clients are polling, you might have to pass on to them how often to schedule, but the polling the API can be just a setTimeout [03:12] pquerna: the patch is needed for a production ssl service +1 [03:12] pquerna: there was a thread asking about this in on the user list too [03:13] pquerna: you can't set ciphers currently either [03:13] postwait: yeah.. we just deployed the patched version... much fewer complains ;-) [03:13] postwait: ciphers sounds even easier to add. [03:13] postwait: As those set as C strings, not constants. [03:13] postwait: I think. [03:14] pquerna: yea, node just used the string based api before [03:14] pquerna: with all the !NULL bullcrap [03:14] pquerna: ('no really, I wanted a null cipher') [03:14] Silks: Well, my plan was to implement two "rates" for the scheduler to grab the external data. Say, every 30 minutes when the user is logged off and once a minute when the user is logged on (just an example). Then, when the user is logged on those one minute updates are pushed through Node.js to the end-user with AJAX [03:14] jimt has joined the channel [03:15] AAA_awright has joined the channel [03:15] Aria: Sounds sane. [03:15] Aria: "push" can be dicey depending on the ajax client, but totally doable. [03:15] postwait: pquerna: any reason not to add a SecureContext method for: int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str); [03:15] postwait: and glue it into the credentials passing? [03:16] pquerna: ecureContext::SetCiphers [03:16] pquerna: its already there [03:16] postwait: Oh. [03:16] postwait: indeed it is. [03:16] pquerna: it just had the creds not getting passed in problems [03:16] cloudhead has joined the channel [03:16] postwait: creds.ciphers [03:16] postwait: sounds like a 5 line patch. [03:17] Silks: okay, thanks Aria [03:17] cloudhead: ryah_: can you explain this: https://github.com/joyent/node/blob/master/lib/net.js#L353 ? [03:18] cloudhead: I have had some random exceptions coming from there [03:18] cloudhead: -> https://gist.github.com/64acb76a509eb620b97e [03:18] cloudhead: note that this was on 0.4.2, so line number changed [03:18] Jamool has joined the channel [03:19] postwait: pquerna: 4 line patch... [03:19] postwait: I'll test it. [03:20] seivan: Anyone know how to do load balancing for sockets? [03:20] mike5w3c has joined the channel [03:22] MikhX has joined the channel [03:22] flippyhead has joined the channel [03:23] amackera_away has joined the channel [03:25] skm has joined the channel [03:26] postwait: pquerna: works. [03:27] danyork has joined the channel [03:28] postwait: pquerna: https://github.com/postwait/node/commit/bead38a1db56da16aca82ff129651cea8dc2cc56 [03:28] seivan: Do people here use coffeescript or js? [03:28] jtsnow has joined the channel [03:28] postwait: I suppose a pull of that would be good too [03:30] pquerna: +1, ryan is the master of pulling [03:30] gtramont1na: hey y'all. Just for the record to my previous question: How do I make express to autocompile my .coffee scripts to be used in the clientside? Answer: app.use(express.compiler({src: __dirname+'/public', enable: ['coffeescript']}); [03:30] jsilver: i love pushing and pulling [03:30] jsilver: oss<3 [03:31] tylerstalder has joined the channel [03:31] perezd has joined the channel [03:32] jacobolus has joined the channel [03:33] saschagehlich: tlrobinson: ping [03:33] postwait: learn a bit about github... my pull request magically included the most recent commit... [03:33] postwait: i didn't ask for that. oh well. [03:34] pquerna: ah, well, pull requests are based on branch .. branch [03:35] pquerna: so you end up with a million branches :) [03:35] saschagehlich: pquerna: yep, use feature branches :) [03:35] arpegius has joined the channel [03:35] postwait: ok -- at least this is related -- it'd be good to pull both. [03:35] saschagehlich: pquerna: ... instead of millions of confusing requests [03:35] postwait: both SSL. [03:35] saschagehlich: eeeh commits, sorry [03:35] pcardune has joined the channel [03:37] cnu has joined the channel [03:37] tim_smart has joined the channel [03:38] ckknight_ has joined the channel [03:39] kaos12 has joined the channel [03:39] ckknight_ has joined the channel [03:43] tmm1 has left the channel [03:44] kaos12: hi everyone, any heads up on this? https://gist.github.com/902978 [03:44] warz has joined the channel [03:44] tim_smart has joined the channel [03:45] sam0t has joined the channel [03:45] pquerna: http://www.openssl.org/docs/ssl/SSL_COMP_add_compression_method.html [03:46] saschagehlich_ has joined the channel [03:46] pquerna: Unlike the mechanisms to set a cipher list, there is no method available to restrict the list of compression method on a per connection basis. [03:46] pquerna: maybe that was a bad idea eh [03:46] pquerna: :-/ [03:48] unlink has joined the channel [03:48] unlink has joined the channel [03:48] abraxas: Are 'utf8' and 'utf-8' (with dash) considered equal in node? [03:48] abraxas: I've seen both being used now. [03:50] kriszyp has joined the channel [03:51] Me1000 has joined the channel [03:51] mikegerwitz: abraxas: Yes https://github.com/joyent/node/blob/master/lib/buffer.js#L292 [03:56] abraxas: Thanks [03:56] abraxas: Is there a preference... what "most" people do? [03:56] abraxas: (I'm new to node ;)) [03:57] mikegerwitz: abraxas: I've seen both. I use utf8 simply beacuse it's easier to type. The docs also appear to use 'utf8' [03:58] abraxas: Okay [03:58] abraxas: I'll stick to that then [03:58] abraxas: Thanks [03:59] matyr has joined the channel [04:03] AAA_awright has joined the channel [04:04] bergie has joined the channel [04:04] pquerna: ryah_: hmm [04:05] seivan has joined the channel [04:05] pquerna: ryah_: sk_SSL_COMP_zero didn't go in? [04:05] indutny has joined the channel [04:06] pquerna: looks reverted and not back in [04:09] cloudhea1 has joined the channel [04:09] tim_smart: Node.js job: http://groups.google.com/group/nodejs/browse_thread/thread/9b83de4962610502 [04:10] themiddleman_itv has joined the channel [04:13] ghost has joined the channel [04:14] themiddleman_itv: Hi guys! Im having trouble updating https in a module to node 0.4 http://pastebin.com/aA2XgDqM [04:17] CountBrakula has joined the channel [04:19] saikat has joined the channel [04:20] brianmario has joined the channel [04:21] ParadoxQuine has joined the channel [04:21] matyr_ has joined the channel [04:21] luke` has joined the channel [04:21] ChrisPartridge has joined the channel [04:23] losing has joined the channel [04:26] markc_ has joined the channel [04:28] AAA_awright has joined the channel [04:28] yozgrahame has joined the channel [04:29] Croms has joined the channel [04:29] Brak has joined the channel [04:31] mike5w3c has joined the channel [04:34] losing has joined the channel [04:35] fadeddata has joined the channel [04:39] darshanshankar has joined the channel [04:40] MikhX has joined the channel [04:43] tylerstalder has joined the channel [04:49] incon has joined the channel [04:50] morganallen has joined the channel [04:50] matyr has joined the channel [04:54] SvenDowideit has joined the channel [04:57] flippyhead has joined the channel [05:00] Scala has joined the channel [05:00] m-j-r has joined the channel [05:02] indutny1 has joined the channel [05:02] k1ttty has joined the channel [05:02] darshanshankar_ has joined the channel [05:07] charlesjolley- has joined the channel [05:10] captain_morgan has joined the channel [05:11] derferman has joined the channel [05:14] jimt has joined the channel [05:14] beejeebus has joined the channel [05:16] bergie has joined the channel [05:18] devrim has joined the channel [05:18] pquerna: m-j-r: around? [05:19] hadashikick has joined the channel [05:21] ExsysTech has joined the channel [05:21] Cleer has joined the channel [05:22] m-j-r: I'm around [05:22] tdmackey has joined the channel [05:22] keeto has joined the channel [05:22] samot has joined the channel [05:22] Scala has joined the channel [05:23] FireFly|n900 has joined the channel [05:24] Draggor has joined the channel [05:24] bergie has joined the channel [05:24] ljackson has joined the channel [05:26] McMAGIC-- has joined the channel [05:26] SvenDowideit has joined the channel [05:31] bergie has joined the channel [05:32] wereHamster: how do I build the documentation? [05:32] jetienne has joined the channel [05:34] mikeal has joined the channel [05:34] dcpdx has joined the channel [05:36] ryah_: wereHamster: make doc [05:36] wereHamster: oh, that actually makes sense :) [05:37] flippyhead has joined the channel [05:38] aba_sababa has joined the channel [05:38] mikl has joined the channel [05:38] mikl has joined the channel [05:39] ckknight_: hey wereHamster, I know you [05:40] mraleph1 has joined the channel [05:42] Spion__ has joined the channel [05:43] robb1e has joined the channel [05:44] bergie has joined the channel [05:46] fadeddata: Is there a particular package I should look at for user management? [05:48] jetienne_ has joined the channel [05:48] nibblebot has joined the channel [05:49] temp01 has joined the channel [05:49] dominictarr has joined the channel [05:50] jakeskik_ has joined the channel [05:50] mavin|gone has joined the channel [05:50] indutny has joined the channel [05:50] herenowcoder has joined the channel [05:50] konobi_ has joined the channel [05:50] ashb_ has joined the channel [05:51] _jdalton has joined the channel [05:51] orospakr has joined the channel [05:51] unlink has joined the channel [05:51] unlink has joined the channel [05:52] deepthawtz has joined the channel [05:52] PhilK_ has joined the channel [05:52] bergie has joined the channel [05:52] nilyt_ has joined the channel [05:53] Draggor: well freenode is having some fun [05:53] moneal has joined the channel [05:53] criswell has joined the channel [05:54] greyscale-freeno has joined the channel [05:54] Spion__ has joined the channel [05:54] Blackguard has joined the channel [05:55] baudehlo has joined the channel [05:55] jdalton has left the channel [05:55] overra has joined the channel [05:56] devaholic has joined the channel [05:56] yozgrahame1 has joined the channel [05:57] ash_ has joined the channel [05:58] chrischris has joined the channel [05:58] perezd has joined the channel [05:58] rodasc has joined the channel [06:00] meso has joined the channel [06:01] mde has joined the channel [06:02] walkah has joined the channel [06:04] ralphholzmann has joined the channel [06:05] inimino has joined the channel [06:07] [[zz]] has joined the channel [06:07] gmanika has joined the channel [06:08] JY__ has joined the channel [06:13] dgathright has joined the channel [06:13] dantalizing has joined the channel [06:14] temp01 has joined the channel [06:17] dominictarr has joined the channel [06:17] stonecobra has joined the channel [06:18] mraleph1 has joined the channel [06:19] deepthawtz has joined the channel [06:22] indutny has joined the channel [06:22] fadeddata: Any ideas as to why I can't get the basic memory session store working with Express? [06:22] fadeddata: app.use(express.cookieParser()); [06:22] fadeddata: app.use(express.session({ secret: "random?" })); [06:23] saschagehlich has joined the channel [06:26] luke` has joined the channel [06:26] darshanshankar has joined the channel [06:26] dominictarr has joined the channel [06:27] fadeddata: req.session is undefined... [06:28] dominictarr has joined the channel [06:28] dominictarr has joined the channel [06:28] ParadoxQuine: ACTION does not know, sorry [06:28] mikeal has joined the channel [06:29] dominictarr has joined the channel [06:29] newy has joined the channel [06:30] Country has joined the channel [06:30] Adman65 has joined the channel [06:32] JimBastard has joined the channel [06:32] robb1e has joined the channel [06:33] matyr_ has joined the channel [06:33] ivanfi has joined the channel [06:33] SvenDowideit has joined the channel [06:34] JimBastard: must release library, must not sleep [06:36] jesusabdullah: JimBastard: New lib? [06:36] ParadoxQuine: that's the spirit! [06:36] jesusabdullah: Tell me about it! [06:36] JimBastard: ReadMe reveals all [06:36] JimBastard: just gotta push through [06:36] jesusabdullah: I'm kinda in the opposite boat. I defended my thesis this afternoon [06:36] JimBastard: theres a shit ton of features / problems i gotta fix, but im gonna release early [06:36] jesusabdullah: passed [06:36] jesusabdullah: but I have to rewrite my thesis [06:36] ParadoxQuine: congratulations! [06:36] JimBastard: was it on the deliciously of tacos? [06:37] jesusabdullah: I figure it's hopeless to try to rewrite it in time for the deadline [06:37] JimBastard: thats easy to defend [06:37] jesusabdullah: Nope! [06:37] jesusabdullah: http://li225-26.members.linode.com/presents.tex [06:37] jesusabdullah: That's the defense presentation [06:37] jesusabdullah: I got in trouble with my thesis because I wrote it too much like a README [06:37] jesusabdullah: lol [06:37] raphdg has joined the channel [06:37] ParadoxQuine: win [06:37] jesusabdullah: Too much hacker news for me, I guess [06:38] jesusabdullah: Also, I tried to make an informal article I write for my blog an inlined appendix of my thesis [06:38] jesusabdullah: Was told, quite frankly [06:38] jesusabdullah: "lose the blog." [06:38] jesusabdullah: XD Touche, sirs! You caught me. [06:38] jesusabdullah: ^__^ [06:38] jesusabdullah: I knew it wouldn't fly. [06:40] gigo1980 has joined the channel [06:40] JimBastard: jesusabdullah: if i post this new lib to HN ill get flamed for sure [06:40] JimBastard: :-D [06:41] jesusabdullah: orly? Why for? [06:41] jesusabdullah: Also, when has flaming stopped you? lol [06:41] JimBastard: sins against the Unix Philosophy [06:41] JimBastard: forgive me [06:42] kawohi has joined the channel [06:42] dominictarr has joined the channel [06:42] kawohi: What do you think should a beginner at JS should try and learn nodejs or nodejs is too advance? [06:43] JimBastard: kawohi: its just javascript [06:43] jesusabdullah: I think node.js is easier, imo [06:43] dominictarr has joined the channel [06:43] ParadoxQuine: node.js is fine to learn [06:43] ParadoxQuine: or rather, fine to be your first real js technology [06:43] jesusabdullah: I basically started on node [06:43] dominictarr has joined the channel [06:43] jesusabdullah: Did some browser too, but anything *interesting* I did in js was in node [06:43] jesusabdullah: then I carried that knowledge to the browser [06:44] kawohi: I'm still learning jjquery too. I'm wondering if I should just start on nodejs already [06:44] jesusabdullah: Go for it, dude. :D [06:45] jimt_ has joined the channel [06:46] kawohi: Alright. Ill start on that then.. I can't wait [06:46] matyr has joined the channel [06:48] indutny has joined the channel [06:48] matjas has joined the channel [06:48] emattias has joined the channel [06:49] mscdex: woot, two steps closer to a fancy schmancy browser ui for my game :-D [06:50] mscdex: \o/ [06:50] indutny1 has joined the channel [06:50] jimt has joined the channel [06:50] mscdex: all of this has reminded me why i greatly prefer backend js coding ;-) [06:51] ParadoxQuine: haha [06:51] kawohi: So is nodejs like PHP? [06:51] ParadoxQuine: nope [06:51] jesusabdullah: It's moar betters [06:51] blkcat: (thank god) [06:51] ParadoxQuine: nodejs is a technology for serverside js [06:51] ParadoxQuine: php is a language [06:51] jesusabdullah: It's like javascript ;) [06:51] ParadoxQuine: and javascript is somewhat like php [06:52] ParadoxQuine: only even more mutable... [06:52] ParadoxQuine: but the way you program in nodejs is radically different from any php i've done [06:52] kawohi: I know, but people are talking about using nodejs for back-end But I'm confussed for what can it really do in the backend [06:52] ajnasz has joined the channel [06:52] ParadoxQuine: same thing any serverside coding can [06:52] jesusabdullah: Well, what do you WANT, kawohi? [06:52] V1 has joined the channel [06:52] ParadoxQuine: you can make a REST backend for a blog [06:52] jesusabdullah: kawohi: You can use it for not-web pages, too [06:52] ParadoxQuine: or a live chat service [06:53] jesusabdullah: kawohi: In fact, it's pretty good for simple cli apps [06:53] ParadoxQuine: or you can rearrange your filesystem with it [06:53] dominictarr has joined the channel [06:53] ParadoxQuine: basically, node lets you do with javascript what you can do with php, ruby, perl, or python [06:53] jesusabdullah: I think of node as v8 with an awesome set of core libraries [06:53] jesusabdullah: and a module system [06:54] jesusabdullah: Technically not quite right, I suppose, but that's kinda what it feels like [06:54] ParadoxQuine: what isnt right? [06:54] muhqu has joined the channel [06:54] kawohi: Wow. The first thing I want to do is create a nice designed chat room.. I'm pro with HTML and CSS. I just want to learn nodejs and get it started [06:54] ParadoxQuine: have you seen the node chat demo? [06:54] kawohi: chats.io [06:55] kawohi: awesome [06:55] ParadoxQuine: yea [06:55] jesusabdullah: kawohi: In that case, your back end would take messages from clients and propogate them accordingly [06:55] jesusabdullah: Right? [06:56] jesusabdullah: kawohi: Can you make an irc client? Pweeeez? :D [06:56] mraleph has joined the channel [06:56] Tug has joined the channel [06:56] jesusabdullah: kawohi: https://github.com/martynsmith/node-irc [06:56] blkcat: jesusabdullah: ooh, irc node library [06:56] Tug: Hi [06:56] jesusabdullah: Ayup [06:56] blkcat: jesusabdullah: i might have to take a crack at that [06:56] jesusabdullah: I wrote a bot with it once [06:56] saschagehlich_ has joined the channel [06:56] jesusabdullah: It's not running anymore, but [06:56] jesusabdullah: yeah [06:56] kawohi: I got a lot of learning to do :D [06:57] SamuraiJack has joined the channel [06:57] ParadoxQuine: =D [06:57] jesusabdullah: I think a good way to do it would be to combine that node library with dnode (or socket.io for those that swing that way) and a nice front-end [06:58] ivanfi1 has joined the channel [06:58] jesusabdullah: and, I think, you'd have to create a new irc for each person connected [06:58] kawohi: Thanks guys. [06:58] jesusabdullah: but that shouldn't be TOO bad right? [06:58] simme has joined the channel [06:58] Lorentz has joined the channel [06:58] jb55 has joined the channel [06:58] jesusabdullah: People have taken a crack at it in the past, actually, but their irc's weren't fully-featured [06:58] dominictarr has joined the channel [06:59] kawohi: I just installed Ubuntu too [first time!] so this should be fun [06:59] dominictarr has joined the channel [06:59] negative has joined the channel [07:00] jesusabdullah: Nice kawohi! I'm using the unbuntuos myself [07:01] reid_ has joined the channel [07:01] Fenda has joined the channel [07:01] kawohi: Hey I'm a noobie. How do I add another irc tab so I can connect to another room too. [07:02] jaket_ has joined the channel [07:02] jeffmoss has joined the channel [07:02] kawohi: nvm got it! [07:02] jeffmoss: is there a way to scope "this"? I can't remember how to do it but I know i've done it before [07:02] groom has joined the channel [07:02] jeffmoss: like, this.Klass [07:04] dominictarr has joined the channel [07:04] dominictarr has joined the channel [07:05] dominictarr has joined the channel [07:05] dominictarr has joined the channel [07:06] a_ has joined the channel [07:06] dominictarr has joined the channel [07:06] dominictarr has joined the channel [07:07] dominictarr has joined the channel [07:07] dominictarr has joined the channel [07:09] Tug: Hey I just installed jsdom via npm, do you know why require('jsdom/browser/domtohtml') does not work ? [07:09] Tim_Smart has joined the channel [07:09] jesusabdullah: I haven't heard of that one [07:10] jesusabdullah: I mean, I've heard of jsdom, just not the domtohtml bit [07:10] Tug: it's just that express-jsdom uses this module from jsdom [07:11] Tug: but I don't understand why the require fails [07:11] jesusabdullah: Maybe jsdom changed on them? [07:11] reid_ has joined the channel [07:11] jesusabdullah: *shrug* [07:11] jesusabdullah: That's all I can really think of [07:11] Tug: nop the file is here [07:11] fangel has joined the channel [07:11] jesusabdullah: huh [07:11] Tug: ok [07:11] jesusabdullah: weird! D: [07:11] jesusabdullah: I wish I could help [07:12] beejeebus has joined the channel [07:12] Tim_Smart: Wish no longer! With magical fairy dust! [07:12] Tug: thx anyway [07:12] Tug: lol [07:12] SvenDowideit has joined the channel [07:13] tilgovi has joined the channel [07:13] mAritz has joined the channel [07:14] Tug: there is a jsdom.js and a jsdom folder, does node load both when calling require('jsdom') ? [07:15] indutny has joined the channel [07:16] stepheneb has joined the channel [07:17] sheerun has joined the channel [07:17] Epeli: Can I somehow enable tab completion in Node debugger? [07:18] dominictarr has joined the channel [07:18] dominictarr has joined the channel [07:19] mhooker has joined the channel [07:19] dominictarr has joined the channel [07:19] saschagehlich has joined the channel [07:19] dominictarr has joined the channel [07:20] matyr_ has joined the channel [07:20] dominictarr has joined the channel [07:24] Shrink has joined the channel [07:25] ryankirkman has joined the channel [07:25] dominictarr has joined the channel [07:26] ryankirkman has joined the channel [07:26] jaxdahl has joined the channel [07:26] ryankirkman has joined the channel [07:26] dominictarr has joined the channel [07:26] dominictarr has joined the channel [07:27] brianloveswords has joined the channel [07:27] dominictarr has joined the channel [07:27] Polysics has joined the channel [07:27] Polysics: hello [07:27] Polysics: is anyone using socket.io, please? [07:27] V1: yup [07:27] Polysics: i would like to know what trasnport an user is on server-side [07:27] dominictarr has joined the channel [07:27] Polysics: but can't find the relevant property anywhere in the code [07:28] Polysics: any pointers, please? [07:28] seivan has joined the channel [07:28] dominictarr has joined the channel [07:28] dominictarr has joined the channel [07:29] seivan has joined the channel [07:29] robb1e has joined the channel [07:29] dominictarr has joined the channel [07:30] Polysics: been grepping the code but no cookie [07:30] Polysics: not being a node expert does not ehlp :-D [07:30] dominictarr has joined the channel [07:30] V1: Polysics: There is no way to see that from the client except importing all transports.. and checking if the connected client is an instanceof that transport [07:30] dominictarr has joined the channel [07:31] Polysics: the client itself is an instanceof a transport? [07:31] temp01 has joined the channel [07:31] V1: yup [07:31] Polysics: V1: can i go with an array of strings for the testing? [07:32] dominictarr has joined the channel [07:32] ehedenst has joined the channel [07:32] newy has joined the channel [07:32] dominictarr has joined the channel [07:33] V1: Polysics: What do you mean? [07:33] dominictarr has joined the channel [07:33] troessner has joined the channel [07:33] dominictarr has joined the channel [07:33] Polysics: instanceof doesn't test on a string, i need the class itself, right? [07:33] Polysics: client instanceof "Websocket" does not work [07:34] dominictarr has joined the channel [07:34] Leonidas has joined the channel [07:34] [AD]Turbo has joined the channel [07:34] dominictarr has joined the channel [07:35] mhooker: what about parsing client.request.url? [07:35] Polysics: mhooker: isn't the URL the same anyway? [07:35] Polysics: besides, this is for debugging purpose, it's a static list of the connected clients [07:35] mhooker: I just did a quick spot check, and for websockets that url is /socket.io/websocket' [07:36] V1: Polysics: Yes you need to have access to the class [07:36] Polysics: so i do not have a proper request to parse at all times [07:36] Polysics: i suppose the class is there, but i can just try [07:36] V1: mhooker: There is no reliable way of accessing the request object. [07:36] mhooker: ok [07:36] mhooker: good to know [07:36] __tosh has joined the channel [07:37] bergie has joined the channel [07:37] seivan has joined the channel [07:37] mpoz2 has joined the channel [07:38] jaxdahl has joined the channel [07:39] seivan has joined the channel [07:40] mAritz: wow... writing documentation for something seems to increase peoples interest by 100000% percent... go figure... :D [07:40] Polysics: V1: mind if i ask how i would import those modules? [07:41] groom has joined the channel [07:41] V1: Polysics: It depends how you installed socket.io.. if you use npm you have to fetch all transports out of the npm module directory [07:41] Knio has joined the channel [07:42] mAritz: V1: what do you mean by "no reliable way"? only on connect or something else? [07:43] dubbe has joined the channel [07:43] seivan has joined the channel [07:43] msucan has joined the channel [07:43] dekervit has joined the channel [07:43] sreeix has joined the channel [07:44] jeffmoss: anybody know how to load a list of objects asyncronously? i.e. for(...){ new Object(function(obj){ list[i] = obj } } [07:44] jeffmoss: in that example, i is a reference so it always puts them all at the end of the list [07:44] ckknight_: use list.push(obj) [07:44] V1: mAritz: Polling transports might close / destory the connection before you where able to access the client.request object [07:44] ckknight_: :P [07:44] jeffmoss: i need to preserve the order [07:45] ckknight_: ah, okay then [07:45] seivan_ has joined the channel [07:45] jeffmoss: am I even going about this the right way? [07:45] jeffmoss: never done much async programming [07:45] ckknight_: where are you getting these objects? [07:45] Polysics: V1: i do use npm [07:45] jeffmoss: mysql [07:45] V1: Polysics: But an easier way would just be, cloning the socket.io-node project, edit the transports with a "type" property.. So you can do.. client.type to get the transport [07:46] ckknight_: jeffmoss: can I see your surrounding code? [07:46] Polysics: V1: i do not feel confident enugh in node to go hack the library :-) [07:47] V1: Polysics: I'll hold your hand ;D [07:47] jeffmoss: ckknight_: https://gist.github.com/d0a60ecf62e15205e597 [07:47] ckknight_: jeffmoss: setTimeout takes milliseconds, not seconds [07:47] ckknight_: btw [07:47] jeffmoss: see that indexOf is where things started to feel hackish [07:48] shaun_ has joined the channel [07:48] jeffmoss: thanks [07:48] shaunau: hi [07:48] ckknight_: yeah, the indexOf would always return -1 [07:49] shaunau: i have a quick question about expressjs [07:49] shaunau: i have a really basic skeleton app at the moment, it has a login page which does a form post [07:49] jeffmoss: plus the indexof is looping, and anything else I come up with is looping, is it psosible to use a reference here? [07:50] shaunau: when i login and then click back button and relogin i get an error about not being able to set immutable headers [07:50] shaunau: not sure how i should handle this, can anyone offer some advise [07:50] shaunau: http.js:525 [07:50] shaunau: throw new Error("Can't set headers after they are sent."); [07:50] z80 has joined the channel [07:51] dominictarr has joined the channel [07:51] seivan has joined the channel [07:51] z80: q [07:51] dominictarr has joined the channel [07:52] dominictarr has joined the channel [07:52] matyr has joined the channel [07:52] littke has joined the channel [07:52] samcday: Hey guys - somewhat dumb question. If I have just made a bunch of requests using http.get and opted for connection: keep-alive, how do I actually close these connections? [07:52] dominictarr has joined the channel [07:53] jeffmoss: ckknight_: any ideas? [07:53] ckknight_: jeffmoss: what is Content? [07:53] [AD]Turbo: hi there [07:53] jeffmoss: ckknight_: it's a mysql ORM [07:53] ckknight_: jeffmoss: from first glance, it's overly complex :P [07:54] jeffmoss: well that loop is the part I want to look right [07:54] jeffmoss: this is a legacy dataset [07:54] ckknight_: what is the ORM library? [07:54] jeffmoss: just something I wrote, uses the libmysql native async stuff [07:54] shaunau: hmm actually, ignore that it's not what i thought it was [07:55] ckknight_: jeffmoss: so when does it call the callback? [07:55] ajsie: with node.js i can stream data to the client .. but when do i want to use node.js to stream data through HTTP and when do i want to use sockets.io do stream? [07:56] jeffmoss: ckknight_: when it's done loading, like an onLoaded callback [07:57] dominictarr has joined the channel [07:57] ckknight_: what is "it" in this case? [07:58] jeffmoss: a bunch of database tables, structured data [07:58] mikey_p has joined the channel [07:59] FMJaggy has joined the channel [08:00] teemow has joined the channel [08:00] mraleph has joined the channel [08:00] saschagehlich has joined the channel [08:02] derferman has joined the channel [08:02] Leonidas: hi [08:03] Leonidas: shouldn't the on-join-chanserv message be changed now? [08:03] Leonidas: (just noticed) [08:03] Polysics: V1: sorry to bother you, but could you give me an example of how to import those classes? [08:04] V1: Polysics: I'll see if i can mash something up [08:05] jeremyselier has joined the channel [08:05] Remoun has joined the channel [08:05] dominictarr has joined the channel [08:06] dominictarr has joined the channel [08:06] romainhuet has joined the channel [08:06] dominictarr has joined the channel [08:06] mikedeboer has joined the channel [08:07] dominictarr has joined the channel [08:08] dominictarr has joined the channel [08:08] dominictarr has joined the channel [08:09] dominictarr has joined the channel [08:10] dominictarr has joined the channel [08:10] Polysics: V1: thanks [08:10] dominictarr has joined the channel [08:11] beawesomeinstead has joined the channel [08:11] beawesomeinstead has joined the channel [08:12] mc_greeny has joined the channel [08:12] dominictarr_ has joined the channel [08:12] dominictarr_ has joined the channel [08:12] matyr_ has joined the channel [08:13] dominictarr_ has joined the channel [08:13] dominictarr_ has joined the channel [08:14] dominictarr_ has joined the channel [08:14] dominictarr_ has joined the channel [08:14] V1: Polysics: almost have a working example [08:15] dominictarr_ has joined the channel [08:15] dominictarr_ has joined the channel [08:16] dominictarr_ has joined the channel [08:16] dominictarr_ has joined the channel [08:17] dominictarr_ has joined the channel [08:17] stonebranch has joined the channel [08:17] sreeix: is it normal to check in the node_modules folder for your app? [08:17] dominictarr_ has joined the channel [08:18] dominictarr_ has joined the channel [08:18] dcelix has joined the channel [08:18] dominictarr_ has joined the channel [08:19] Polysics: V1: thanks [08:20] dominictarr_ has joined the channel [08:20] V1: Polysics: gisted: https://gist.github.com/903224 [08:20] dominictarr_ has joined the channel [08:23] FireFly|n900 has joined the channel [08:24] f1lt3r_ has joined the channel [08:25] dominictarr_ has joined the channel [08:26] dominictarr_ has joined the channel [08:26] dominictarr_ has joined the channel [08:27] dominictarr_ has joined the channel [08:27] Croms has joined the channel [08:27] dominictarr_ has joined the channel [08:28] dominictarr_ has joined the channel [08:28] Polysics: V1: reading up, thanks [08:28] dominictarr_ has joined the channel [08:29] nyholt has joined the channel [08:29] skohorn has joined the channel [08:29] matyr has joined the channel [08:32] christophsturm has joined the channel [08:32] markwubben has joined the channel [08:34] ajsie: anyone using jasmine here? [08:35] astropirate has joined the channel [08:37] mischief has joined the channel [08:39] jimt_ has joined the channel [08:43] matyr_ has joined the channel [08:44] xla has joined the channel [08:44] romainhuet has joined the channel [08:44] jeremyselier has joined the channel [08:44] bergie has joined the channel [08:44] Lorentz has joined the channel [08:44] SamuraiJack has joined the channel [08:44] matjas has joined the channel [08:44] raphdg has joined the channel [08:44] perezd has joined the channel [08:44] chrischris has joined the channel [08:44] baudehlo has joined the channel [08:44] Blackguard has joined the channel [08:44] ExsysTech has joined the channel [08:44] jacobolus has joined the channel [08:44] danyork has joined the channel [08:44] themiddleman has joined the channel [08:44] piroshi has joined the channel [08:44] TheCowboy has joined the channel [08:44] sstreza has joined the channel [08:44] TimerCroumlich has joined the channel [08:44] voodootikigod has joined the channel [08:44] chapel has joined the channel [08:44] jbergstroem has joined the channel [08:44] gredman has joined the channel [08:44] wang has joined the channel [08:44] maru_cc has joined the channel [08:44] mmso has joined the channel [08:44] swaj has joined the channel [08:44] rphillips has joined the channel [08:44] apoc has joined the channel [08:44] up_the_irons has joined the channel [08:44] hoodow has joined the channel [08:44] Virtuo has joined the channel [08:44] wao has joined the channel [08:45] jimt has joined the channel [08:46] Polysics: V1: thanks, it works [08:48] tim has joined the channel [08:49] tim: when working with node_redis and getting a hash back out of Redis with hgetall the integers are interpreted as strings did I do somthing wrong ? [08:52] bzinger has joined the channel [08:52] stagas: tim: in redis values are strings only [08:52] liquidproof has joined the channel [08:53] dylang has joined the channel [08:56] Polysics: uh-oh [08:56] Polysics: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. [08:56] Polysics: i do have more than 11 clients connected [08:56] cyraxx: that's a bug in socket.io [08:56] Polysics: how do i increase that number/is it a good idea to/how to solve that? [08:56] cyraxx: there's already an open issue/pull request for that [08:56] Polysics: when i get that error some clients get the boot at random [08:56] V1: Polysics: Glad it works [08:56] V1: Polysics: Update npm [08:57] V1: It's already fixed [08:57] Polysics: cyraxx: is there a fix i can go slap in in the meantime? [08:57] Polysics: i just need to update npm? [08:57] V1: Polysics: Yup [08:57] V1: doing a simple npm update will update your installed packages to the latest version [08:58] sigue has joined the channel [08:58] Polysics: i did that but i still happens [08:58] Polysics: just went "npm update" and restarted the service [08:58] beejeebus has joined the channel [08:59] Polysics: socket.io is at the proper version [08:59] Polysics: that is, 0.6.1 [08:59] eschnou has joined the channel [08:59] V1: 0.6.17 is the latest version Polysics [09:00] alek_br has joined the channel [09:00] mrkurt_ has joined the channel [09:00] sstephenson_ has joined the channel [09:00] skohorn has joined the channel [09:00] dcelix has joined the channel [09:00] shaunau has joined the channel [09:00] JY__ has joined the channel [09:00] walkah has joined the channel [09:00] cnu has joined the channel [09:00] amackera_away has joined the channel [09:00] piroshi` has joined the channel [09:00] zorzar has joined the channel [09:00] davidcoallier has joined the channel [09:00] BHSPitMonkay has joined the channel [09:00] jspiros has joined the channel [09:00] Polysics: my npm is at 0.3.4 [09:00] meso has joined the channel [09:00] tim has joined the channel [09:00] mrkurt has joined the channel [09:00] sstephenson has joined the channel [09:01] V1: and if you do npm install socket.io does it install the latest version? [09:01] Polysics: ok, the version is correct, 0.6.17 [09:02] dylang has joined the channel [09:02] brianloveswords has joined the channel [09:03] tisba has joined the channel [09:05] V1: And you still have the listener issue? [09:06] Polysics: yes [09:06] sigue has joined the channel [09:06] Polysics: there is a patch on github [09:06] Polysics: is taht ok? [09:09] V1: Polysics: That patch is applied in 0.6.17 [09:09] tbassetto has joined the channel [09:10] JimBastard: i think i got it jesusabdullah [09:10] Polysics: V1: i will go look in my own library, but the version is reported, yet i still have the issue [09:10] Polysics: *is AS reported 0.6.17 [09:11] tisba has joined the channel [09:12] V1: Polysics: I can't even reproduce it in 0.6.17, as I created that patch.. So I'm clueless [09:13] Atomy has joined the channel [09:13] misterncw has joined the channel [09:13] MattJ has joined the channel [09:13] sigue has joined the channel [09:15] Polysics: how can i be sure i am running the correct version? i know it is "just like that", but hey [09:16] yojimbo87 has joined the channel [09:16] Polysics: i do have a socket.io@0.6.12 directory in my lib dir [09:17] thermal has joined the channel [09:17] Polysics: i suppose that is the old version i had on the server [09:17] V1: Polysics: Thats odd. but is that also the "active" version? [09:17] tisba: hey folks. I'm looking for a way to profile node (0.4.5). node-profile looks a bit outdated and is not working for me [09:17] Polysics: how do i know? [09:17] Polysics: maybe it is just that [09:17] V1: npm ls installed [09:18] V1: that gives you a listed with installed modules, and you can see which version is "active" [09:21] pdelgallego has joined the channel [09:21] sigue has joined the channel [09:24] unlink has joined the channel [09:24] unlink has joined the channel [09:25] tim has joined the channel [09:25] tim_ has joined the channel [09:29] sigue has joined the channel [09:29] Jonasbn_ has joined the channel [09:30] rchavik has joined the channel [09:31] JimBastard: jesusabdullah: https://github.com/Marak/xp [09:31] alek_br has joined the channel [09:31] JimBastard: chapel: you alive? [09:31] JimBastard: wanna do a sanity check to see if that actually installs? [09:34] Ori_P has joined the channel [09:36] astropirate: sanity is overrated [09:37] kal-EL_ has joined the channel [09:37] sigue has joined the channel [09:40] thermal has joined the channel [09:43] jesusabdullah: You guys pair program, JimBastard ? [09:43] Polysics: V1: sorry, i was caught up in a meeting [09:43] Polysics: anyway, npm ls installed returns "nothing found" [09:43] JimBastard: jesusabdullah: i figured we all this hiring we got i'll want to [09:43] JimBastard: you know, ill yell at them to type [09:43] JimBastard: pair programming [09:43] jesusabdullah: That imgur guy looks nice [09:43] jesusabdullah: lol [09:43] JimBastard: that way i can dance with my spare hands [09:43] JimBastard: the web command is pimp [09:43] Polysics: i never got pair programming, you probably need people with very similar skills [09:44] JimBastard: i added AutoIndex into node-static [09:44] JimBastard: so you can html listings [09:44] __tosh has joined the channel [09:45] jesusabdullah: I bet it's hard at first, at least. [09:45] sigue has joined the channel [09:45] ParadoxQuine: i've pair programmed successfully but you need a certain combination of people [09:45] ParadoxQuine: specifically, someone who wants to control the comp and someone who wants no control over the comp [09:45] jetienne has joined the channel [09:45] Samot: i pair programmed for a few months [09:46] Samot: me and my mate used two keyboards and two mice on the same pc [09:46] Samot: was great [09:46] ParadoxQuine: haha [09:47] Samot: use to troll him by moving the mouse when he was clicking [09:47] Samot: fun times [09:48] JimBastard: jesusabdullah: did you try to install? i havent got a confirmation it actually works [09:49] JimBastard: its all magic to me [09:49] jeremyselier has joined the channel [09:50] incon: only been an advisor programmer.... kind of like pair programming but watching over the new programmers. [09:50] JimBastard: fuck, bad dep [09:51] V1: Polysics: Thats odd :) [09:52] sigue has joined the channel [09:53] incon: starting a new job on the 11th, I get to code again and not just look after people! looking forward to it. [09:53] jakehow has joined the channel [09:54] katspaugh has joined the channel [09:58] sivy has joined the channel [09:59] shaunau: I'm using expressjs middleware function, does anyone know if i'm meant to: next(new Error("You must login")) from my validateLogin function or should i redirect or something else? I keep getting: Error: Can't use mutable header APIs after sent. [10:00] shaunau: anyone have any examples other than the expressjs ones. [10:00] JimBastard: okay, xp seems to be working [10:00] JimBastard: sent the troll bait to HN http://news.ycombinator.com/item?id=2410330 [10:00] sigue has joined the channel [10:01] shaunau: using node 0.4.3 and the corresponding expressjs installed via npm [10:01] dekervit has joined the channel [10:02] shaunau: if i hit a url which generates a next(new Error()) it takes down the app - not so good :) [10:05] Jonasbn_ has joined the channel [10:05] shaunau: ah sorted. [10:06] shaunau: its funny how habits established over time using one environment can really fuck you over in another environment. [10:06] katspaugh has left the channel [10:08] sigue has joined the channel [10:09] tisba: does anybody know if V8::ResumeProfiler() is accessible via a JS api in node? [10:10] matyr has joined the channel [10:12] tdmackey: there's wholesale profiling with the --prof tag when you startup node oetherwise you have to resort to something like https://github.com/bnoordhuis/node-profiler i think [10:13] tdmackey: but i could be wrong [10:13] tdmackey: its been a while since i've looke [10:13] tdmackey: d [10:13] tisba: tdmackey: the problem is, I have to start the profiler by hand, since I'm doing some initialization work [10:13] tisba: --prof --prof_auto works fine [10:13] tisba: maybe I can get node-profiler to work [10:14] tdmackey: there are a whole lot of node profiler type libraries [10:16] jesusabdullah: JimBastard: Upboat and comment. [10:16] sigue has joined the channel [10:17] ajsie: are there good bbds for node and frontend? [10:18] jesusabdullah: bbds? [10:18] JimBastard: jesusabdullah: saying butthurt out of context is guaranteed downvotes on HN [10:19] mpoz2 has joined the channel [10:19] jesusabdullah: Good thing I don't really care about my karma that much. [10:20] ajsie: BDDs [10:20] jetienne: ajsie: repeat the acronym some more [10:20] jesusabdullah: behavior driven development? [10:20] jesusabdullah: Well, he jumbled it up the first time [10:20] jetienne: ajsie: or just explain what you mean. acronym cant be understood [10:21] jesusabdullah: so I can cut slack this time ;) [10:21] GriffenJBS has joined the channel [10:21] ajsie: yeah [10:21] ajsie: BDD testing frameworks for both front end back [10:22] jetienne: hehe :) [10:22] jetienne: ajsie: try without acronyms [10:22] jesusabdullah: Hmm [10:22] jetienne: BDD is an acronym [10:22] jesusabdullah: Well [10:22] jetienne: ajsie: what do you mean by bdd [10:22] jesusabdullah: vows is BDD-inspired [10:22] ajsie: BDD testing frameworks? [10:22] jesusabdullah: jetienne: behavior-driven development. It's kinda like test-driven development [10:22] ajsie: its like saying MVC =) [10:23] jetienne: oh testing [10:23] ajsie: jesusabdullah: but only for node.js [10:23] jetienne: ajsie: yep node got stuff to test your code [10:23] mike5w3c_ has joined the channel [10:23] jetienne: jqunit is on both [10:23] ajsie: i'd like one that works on both frontend and backend [10:23] jesusabdullah: ajsie: kyuri is supposed to convert cucumber-ish code into vows tests [10:23] jesusabdullah: Ah, I see [10:23] jesusabdullah: Yeah, that does make it more difficult doesn't it? [10:23] jetienne: jqunit doesnt do the job ? [10:24] ajsie: jqunit doesn't seem to bdd [10:24] ajsie: too [10:24] jetienne: dont worry this is testing [10:24] jesusabdullah: jetienne: It probably works but doesn't have that "behavior-driven" feel [10:24] jetienne: bdd is just the paint [10:24] ajsie: jasmine is one of them ... [10:24] ajsie: jetienne: id say more than paint [10:24] sigue has joined the channel [10:24] jetienne: ajsie: i guess :) [10:24] ajsie: with bdd you can get more document-oriented tests [10:24] ajsie: lika tutorials =) [10:25] ajsie: documentation oriented i mean [10:25] jesusabdullah: *shrug* [10:25] jetienne: you test your doc ? [10:25] jesusabdullah: Different strokes, I guess [10:25] jesusabdullah: not my deal [10:25] ajsie: wonder if there are more than jasmine that could do the job [10:25] jesusabdullah: *sigh* I have to do work tomorrow :C [10:25] jetienne: damn you guys are crazy [10:25] jesusabdullah: I'm so done with this thesis thing [10:25] jetienne: already testing the code i dont do it so much [10:25] jetienne: but testing hte doc [10:25] jesusabdullah: but only in spirit. [10:26] jesusabdullah: I still need to rewrite a bunch. [10:26] jesusabdullah: And get it out the door. [10:26] jesusabdullah: And catch up on my class. [10:26] jesusabdullah: and catch up on grading [10:26] jesusabdullah: #F7U12 [10:26] jesusabdullah: Oh well, tonight was kinda nice [10:26] jesusabdullah: Gnight cool cats [10:27] oktav has joined the channel [10:29] eirikurn has joined the channel [10:29] ruxpin` has joined the channel [10:30] tokumine has joined the channel [10:30] fly-away has joined the channel [10:30] xla has joined the channel [10:31] ajsie: anyone here is using jasmine for node.js? [10:32] ajsie: cant get that npm package to work [10:32] sigue has joined the channel [10:40] sigue has joined the channel [10:41] eee_c has joined the channel [10:42] patzak has joined the channel [10:45] badboy_: So what's the best way to start a node.js server as a daemon? [10:48] sigue has joined the channel [10:49] V1: badboy_: https://github.com/indexzero/daemon.node ? :) [10:49] ruxpin` has left the channel [10:49] badboy_: thanks, will look at it [10:49] gJ|Alex has joined the channel [10:50] ph^ has joined the channel [10:52] Poetro has joined the channel [10:53] JimBastard: badboy_: we use that for our production stack, i think forever deps on it too [10:53] badboy_: ok, seems to work :) [10:53] badboy_: now I can monitor my 2 nodejs processes :) [10:53] liar has joined the channel [10:55] Gruni has joined the channel [10:56] sigue has joined the channel [10:57] dekervit has joined the channel [11:02] badboy_: so is it possible to change the process name (at least what is displayed in top) of the nodejs process? [11:02] badboy_: (in ruby $0="new name" works) [11:04] sveisvei has joined the channel [11:04] sigue has joined the channel [11:05] mraleph1 has joined the channel [11:07] hij1nx has joined the channel [11:08] matschaffer has joined the channel [11:09] m00p has joined the channel [11:11] k1ttty has joined the channel [11:11] sigue has joined the channel [11:14] jetienne has joined the channel [11:14] astropirate has joined the channel [11:15] littke has joined the channel [11:19] sigue has joined the channel [11:20] ExsysTech has joined the channel [11:20] Throlkim has joined the channel [11:20] wao has joined the channel [11:21] ajnasz has joined the channel [11:21] swaj has joined the channel [11:21] swaj has joined the channel [11:21] danyork has joined the channel [11:21] piroshi has joined the channel [11:21] Virtuo has joined the channel [11:22] hoodow has joined the channel [11:22] hoodow has joined the channel [11:22] Druide_ has joined the channel [11:22] rphillips has joined the channel [11:25] up_the_irons has joined the channel [11:27] sigue has joined the channel [11:27] fairwinds has joined the channel [11:28] markc_ has joined the channel [11:29] apoc has joined the channel [11:31] dylang_ has joined the channel [11:31] stepheneb has joined the channel [11:33] matyr has joined the channel [11:37] matyr_ has joined the channel [11:39] eirikurn has joined the channel [11:40] sigue has joined the channel [11:40] Samot has joined the channel [11:43] ph^ has joined the channel [11:43] saschagehlich has joined the channel [11:47] blacktorn has joined the channel [11:48] stonebranch has joined the channel [11:49] Kingdutch has joined the channel [11:50] messju: ja, bebamkt [11:51] tiemonster has joined the channel [11:51] fermion has joined the channel [11:52] sigue has joined the channel [11:55] hvgotcodes has joined the channel [11:56] Gruni has joined the channel [11:58] pdelgallego has joined the channel [11:59] incon: so many join and parts my buffer can not keep up. Moved fron irssi to textual (osx client) as a trail anyone now how to fix the buffer at all? [12:00] dyer has joined the channel [12:00] littke has joined the channel [12:00] eee_c has joined the channel [12:00] incon has joined the channel [12:01] incon: think i found it [12:04] dnolen has joined the channel [12:04] littke has joined the channel [12:08] muhqu_ has joined the channel [12:08] bradleymeck has joined the channel [12:11] sigue has joined the channel [12:11] matyr has joined the channel [12:13] pietern has joined the channel [12:15] pdelgallego has joined the channel [12:18] deedubs has joined the channel [12:20] mikegerwitz: incon: http://www.irssi.org/documentation/tips You can hide joins/parts (I have to in this channel). See "my anti annoyance filters" [12:20] deedubs has joined the channel [12:21] Vertice has joined the channel [12:21] jbergstroem: ignore is your friend [12:23] hwinkel has joined the channel [12:23] jaket has joined the channel [12:23] sigue has joined the channel [12:25] jscheel has joined the channel [12:25] nmtmason has joined the channel [12:26] SamuraiJack_ has joined the channel [12:27] tjholowaychuk has joined the channel [12:28] ph^ has joined the channel [12:28] beejeebus has joined the channel [12:29] postwait has joined the channel [12:31] sigue has joined the channel [12:32] Charuru has joined the channel [12:33] pc1oad1etter has joined the channel [12:37] royvandermeij has left the channel [12:38] liar has joined the channel [12:39] matyr has joined the channel [12:39] sigue has joined the channel [12:41] jonaslund has joined the channel [12:42] pauls has joined the channel [12:44] b3f0r3 has joined the channel [12:44] alek_br has joined the channel [12:45] littke has joined the channel [12:45] ph^ has joined the channel [12:46] hdon has joined the channel [12:46] jeremyselier has joined the channel [12:46] sigue has joined the channel [12:47] eee_c has joined the channel [12:49] sheerun has joined the channel [12:49] kriszyp has joined the channel [12:50] luke` has joined the channel [12:51] FireFly has joined the channel [12:51] FireFly|n900 has joined the channel [12:52] bcelenza has joined the channel [12:54] garrensmith has joined the channel [12:54] sigue has joined the channel [12:55] garrensmith: ping tjholowaychuk [12:56] pyrony has joined the channel [12:57] piscisaureus has joined the channel [12:57] pietern has joined the channel [12:57] tjholowaychuk: garrensmith: hey [12:57] tjholowaychuk: whats up [12:57] garrensmith: tjholowaychuk: you accepting pull requests on assets for other assets? [12:59] littke has joined the channel [12:59] davidsklar has joined the channel [12:59] tjholowaychuk: garrensmith: totally [13:00] garrensmith: tjholowaychuk interested in some of the new stuff Dustin Diaz has been doing scriptjs and ender. I was also thinking three.js? [13:01] tjholowaychuk: garrensmith: added three.js actually [13:01] garrensmith: tjholowaychuk: ok just realised you beat me to three.js lol [13:01] tjholowaychuk: :D [13:01] tjholowaychuk: "ender" ? what is that [13:01] phiggins: http://dustindiaz.com/ender [13:01] garrensmith: tjholowaychuk: very new could be interesting https://github.com/ded/Ender.js [13:01] sigue has joined the channel [13:02] tjholowaychuk: hm [13:02] tjholowaychuk: i dont know why you would copy jquery [13:02] devdazed has joined the channel [13:03] garrensmith: tjholowaychuk: agreed but I think the idea is a more module pick and choose idea [13:03] phiggins: ?dadt [13:03] tjholowaychuk: yeah [13:04] tjholowaychuk: i just dont like jquery haha [13:04] Samot: i don't think i've ever liked any library by dd [13:04] Samot: lol [13:04] tjholowaychuk: lets hope it gets the map/each param order correct [13:04] tjholowaychuk: at least [13:05] jlecker has joined the channel [13:09] christophsturm has joined the channel [13:10] sigue has joined the channel [13:12] unomi has joined the channel [13:12] tony_ has joined the channel [13:13] wink_ has joined the channel [13:14] baudehlo has joined the channel [13:17] sigue has joined the channel [13:17] arpegius has joined the channel [13:18] fumanchu182 has joined the channel [13:19] sunblush has joined the channel [13:20] garrensmith: tjholowaychuk: an issue with the min, it seems to replace the first occurance of the filename instead of the last [13:20] tjholowaychuk: garrensmith: hmm one sec [13:21] MaxguN has joined the channel [13:21] graysky has joined the channel [13:22] losing has joined the channel [13:22] beawesomeinstead has joined the channel [13:22] beawesomeinstead has joined the channel [13:22] shaunau_ has joined the channel [13:22] tjholowaychuk: garrensmith: not sure what you mean [13:22] tjholowaychuk: garrensmith: what I do is path.replace(/\.js$/, '.min.js'); [13:23] bradleymeck has joined the channel [13:24] hij1nx has joined the channel [13:24] garrensmith: tjholowaychuk: lol which should work in 99% of cases, I just sent you a pull request. It has script.js and the url is http://githuib.com/ded/script.js/some/path/script.js and it replaces the first occurance instead of the last one [13:25] sigue has joined the channel [13:26] tjholowaychuk: garrensmith: OH I see what you mean now haha [13:26] tjholowaychuk: duh [13:26] tjholowaychuk: didnt get what you were saying at first [13:26] graysky has left the channel [13:26] garrensmith: tjholowaychuk: lol no worries. [13:29] kal-EL_ has joined the channel [13:32] skm has joined the channel [13:32] jbpros has joined the channel [13:32] sigue has joined the channel [13:32] rfay has joined the channel [13:34] stepheneb has joined the channel [13:35] MaxguN has left the channel [13:36] fadeddata has joined the channel [13:39] mattmcmanus has joined the channel [13:39] sigue has joined the channel [13:41] alex_b has joined the channel [13:42] Insanity5902 has joined the channel [13:43] sirkitree has joined the channel [13:46] davidwalsh has joined the channel [13:46] malkomalko has joined the channel [13:46] mc_greeny has joined the channel [13:47] V1: Finally someone that doesn't like jquery praise the lord! I'm not alone lol [13:47] kriszyp has joined the channel [13:47] sigue has joined the channel [13:47] tbranyen: V1: Why the hate on jQuery? [13:47] arpegius_ has joined the channel [13:47] systemfault: jQuery does the job, that's all I have to say about it. [13:47] tbranyen: I hate things that are popular and work well! Down with progress! [13:48] wilmoore has joined the channel [13:48] systemfault: F.... improvements! [13:48] JojoBoss has joined the channel [13:48] systemfault: ACTION breaks his lcd panel and brings back his CRT from the garage [13:49] akahn has joined the channel [13:49] Samot: r0fl tbranyen [13:49] Samot: right on! [13:49] V1: tbranyen: Everytime, I work with jQuery I find a bug.. I haven't encountered one single project where it worked flawlessly. [13:50] tbranyen: V1: I work with two core committers, if you find a bug, report it and it will be promptly fixed [13:50] tbranyen: Chances are the bug is in your code and not in a library used by millions of websites [13:50] V1: tbranyen: Also the documentation of jQuery is full of bad practices [13:50] tbranyen: Oh well as for the documentation... [13:50] tjholowaychuk: jquery IMO isn't very nice if you take away the cross-browser compat [13:50] tbranyen: Thats pretty much true for all libraries [13:50] tjholowaychuk: that is the main win obviously [13:50] V1: Working with jQuery in team format with a bunch of chained code.. Is awful [13:51] tbranyen: tjholowaychuk: Well luckily thats what jQuery is choice at [13:51] tjholowaychuk: yup [13:51] tbranyen: You take away its core competency and yeah, not much left [13:51] tjholowaychuk: wouldn't use it otherwise [13:51] tbranyen: Well yeah... lol imagine using it in node [13:51] tbranyen: i can't! [13:51] eb4890 has joined the channel [13:52] gtramont1na has joined the channel [13:52] tbranyen: Although working with the DOM its very convenient [13:52] MaxguN has joined the channel [13:52] tbranyen: I tried using Dojo before and the docs for that... didn't work [13:52] davidwalsh has joined the channel [13:52] V1: Also, jQuery is bloated and there is no way to put it on a diet [13:52] tbranyen: also didn't feel like the docs were up to date [13:53] tbranyen: V1: yeah under 30k is a tough download [13:53] tbranyen: i can agree with that [13:53] tbranyen: pushes my dialup to the limit [13:53] tjholowaychuk: tough to find decent plugins too [13:53] tjholowaychuk: it's like drupal all over again [13:53] tjholowaychuk: 95% crap [13:53] tbranyen: tjholowaychuk: i work with ben alman, his array of plugins are quite good [13:53] V1: tbranyen: Yup, especially if you require it for your mobile framework [13:53] tbranyen: he would agree [13:53] slickplaid: hehe [13:53] tbranyen: that why he writes them [13:54] tbranyen: since most of them are crap [13:54] slickplaid: Are we trolling? Starting the javascript holy war in here. [13:54] tjholowaychuk: haha [13:54] tjholowaychuk: ACTION one [13:54] tbranyen: V1: jquery is not a mobile library [13:54] tjholowaychuk: ACTION done* [13:54] tbranyen: why would you use it as such? [13:54] tbranyen: jQuery mobile was created for that reason [13:54] romanmt has joined the channel [13:54] V1: tbranyen: jQuery mobile deponds on jQuery.. [13:54] sigue has joined the channel [13:54] tbranyen: Ha I probably walked into that one [13:55] V1: tbranyen: so you will need to load, jQuery including all bug fixes for desktop browsers so you can deploy on a mobile phone.. [13:55] tbranyen: I keep thinking its own thing [13:55] tbranyen: its it's* [13:55] Venom_X has joined the channel [13:55] tbranyen: V1: yeah i'm not sold at all on jquery mobile tbh [13:55] V1: If it was it's own thing, it would be awesome, but because it depends on the full jQuery source its meh [13:55] patzak has joined the channel [13:55] patzak has joined the channel [13:56] tbranyen: Everytime i use a jquery mobile site it either doesn't work right or god awful slow [13:56] Vladimir1 has joined the channel [13:56] tbranyen: Its still in alpha tho [13:56] tbranyen: i talked to Scott @ filament and i think he said it going into beta next [13:57] Horofox has joined the channel [13:57] tbranyen: V1: there really isn't a good mobile lib, even zepto has lots of faults [13:57] tjholowaychuk: and a stupid name [13:57] tbranyen: haha [13:58] tjholowaychuk: sorry lol, I've been up since 2am, complainy today [13:58] eirikurn has joined the channel [13:58] tbranyen: tjholowaychuk: i pulled an all nighter two nights ago, slept like 12 hours last night [13:58] dylang has joined the channel [13:58] tjholowaychuk: lucky! [13:58] tbranyen: drank a guiness and passed the fuck out [13:59] dylang has joined the channel [13:59] tbranyen: Oh yeah and the new jQuery deferreds are pretty amazing [14:00] tbranyen: So glad those made it in [14:00] astropirate has joined the channel [14:01] marcello3d has joined the channel [14:02] sigue has joined the channel [14:02] amacleod has joined the channel [14:02] icebox has joined the channel [14:02] xandrews has joined the channel [14:02] gtramont1na: tjholowaychuk: quick question, dude. Yesterday I added this conf to my app in order to make it compile my coffee scripts: app.use(express.compiler({src: __dirname+'/public', enable: ['coffeescript']}). This works, but once the scripts are compiled, they are never compiled again. So I have to delete the .js files whenever I change the .coffee. Is there a better practice? [14:03] alek_br has joined the channel [14:03] dustym has joined the channel [14:04] vladikoff has joined the channel [14:04] akahn has left the channel [14:04] kkaefer: when writing custom module loaders (require.extensions), is there a way to adjust line numbers? [14:08] hvgotcodes has joined the channel [14:08] colinclark has joined the channel [14:09] sigue has joined the channel [14:09] timmywil has joined the channel [14:10] tjholowaychuk: gtramont1na: hmm it should compare mtimes [14:11] gtramont1na: If you say so... :-) I then need the review my code. [14:11] matyr has joined the channel [14:12] tjholowaychuk: aka it should work when you edit the file [14:12] chrislerum has joined the channel [14:12] tjholowaychuk: might be a bug in the compiler, i dunno, i dont use CS [14:12] hornairs has joined the channel [14:12] tjholowaychuk: someone else added it [14:13] gtramont1na: Cool. I'll see if I can find what is going wrong. Thx. [14:13] c4milo has joined the channel [14:15] springmeyer has joined the channel [14:16] patzak has joined the channel [14:16] patzak has joined the channel [14:18] meandi has joined the channel [14:18] arpegius has joined the channel [14:18] jiveB has joined the channel [14:19] Booths has joined the channel [14:19] baudehlo: quick npm Q - I did "npm install sqlite" and it worked fine, but now when I do "require('sqlite')" it still says Cannot find module 'sqlite' - how do I go about debugging that? [14:19] liquidproof: baudehlo: npm version? [14:20] eresair has joined the channel [14:20] matyr_ has joined the channel [14:20] baudehlo: latest. [14:20] baudehlo: just installed it. [14:20] baudehlo: ah! [14:20] baudehlo: npm installs locally in node-modules [14:20] baudehlo: I didn't realise that. [14:20] liquidproof: yep, 1.0 does that [14:21] v8bot has joined the channel [14:21] postwait has joined the channel [14:21] matyr_ has joined the channel [14:22] fadeddata: Hey all, any ideas as to why I can't get the basic memory session store working with Express? req.session is undefined... [14:22] Know1edge has joined the channel [14:22] tjholowaychuk: fadeddata: gist your setup [14:22] fadeddata: ok [14:23] gbot2 has joined the channel [14:23] fadeddata: https://gist.github.com/903681 [14:23] skohorn has joined the channel [14:24] tjholowaychuk: fadeddata: your session middleware is below the routes [14:24] tjholowaychuk: so when you hit a route, you haven't hit the session middleware yet [14:24] tjholowaychuk: the ordering matters [14:24] tjholowaychuk: ™ [14:25] tjholowaychuk: :) [14:25] fadeddata: ooooooooh [14:25] fadeddata: hah [14:25] fadeddata: tjholowaychuk: Thanks! [14:26] mattrobenolt has joined the channel [14:26] meandi has joined the channel [14:26] Booths: I've got some weird problem here and I'm not even sure where to look. I get hit w/ XML Packets from various sources, sometimes they hit me with the same packet 4-5 times, so I check an array for the packet and push it into the array before parsing it. Problem is, some unique packets are failing and saying that there's a duplicate, which doesn't really make any sense to me. [14:27] shaunau_: interesting read about the comma in js http://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/ [14:28] fadeddata: tjholowaychuk: Where can I learn about app.use? Is that part of express/connect/node? Also how would I know about the ordering issue? [14:28] tbranyen: shaunau_: yeah the comma operator is very misunderstood [14:29] tjholowaychuk: fadeddata: it's part of connect. basically the ordering is just logical from the point of request. so the first middleware gets the request, it can choose to respond, if not the next one gets it, and so on [14:29] philhawksworth has joined the channel [14:29] newy_ has joined the channel [14:29] tjholowaychuk: fadeddata: when you do app.use(app.router) you "place" the routes at that position [14:29] fadeddata: tjholowaychuk: Ok, I'll go read through the connect docs/source. Thanks again. [14:29] shaunau_: tbranyen: the ternary example was something i'd thought about in the past but didnt realise it could be done like that [14:30] tbranyen: shaunau_: yea https://github.com/jshint/jshint/issues#issue/56 [14:30] tbranyen: is an example of when i was using it [14:30] tbranyen: i ended rewriting it differently [14:30] tbranyen: but thats an interesting use case [14:31] tbranyen: pushing an element to an array, but returning the array instead of the item pushed [14:31] arpegius has joined the channel [14:31] kenbolton has joined the channel [14:31] shaunau_: tbranyen: nice :) [14:32] pietern has joined the channel [14:32] Me1000 has joined the channel [14:32] sonnym has joined the channel [14:32] shaunau_: tjholowaychuk: ive just started using expressjs and thought i'd say thanks for building it. i like it. [14:33] shaunau_: so, thanks! :) [14:33] Booths: Hmm, I guess it's an issue unique to me then [14:34] shaunau_: tjholowaychuk: cluster looks like a piece of awesomness to. will probably use that at some stage i reckon. [14:34] tjholowaychuk: shaunau_: cool man :) appreciated [14:35] matyr has joined the channel [14:36] shaunau_: ok. it's midnight... time to crash i think. ciao. \0 [14:36] lucastorri has joined the channel [14:37] mAritz: is it save to just do "delete someEventListenerWithEvents"? [14:37] bradleymeck: mAritz you wont be destructing it if thats what you are asking [14:37] lucastorri has left the channel [14:38] mAritz: :( [14:38] Yuffster has joined the channel [14:38] lukus has joined the channel [14:38] mAritz: so i have to call removeAllListeners first?! [14:39] bradleymeck: well not exactly, sec writing [14:40] micheil has joined the channel [14:41] bradleymeck: maritz if it is still referenced somewhere it may continue to send out events. delete will never ever destruct anything, it only removes references attached to objects (some funky stuff can happen w/ variables made through eval). So, if you want to stop sending events, use removeAllListeners (which is logical). If you merely want to let it be GC'd just remove any reference / set any variable containing it to something else (null [14:42] mAritz: okay, thanks :) [14:43] bcelenza: ls [14:43] bcelenza: oops! [14:43] nefD has joined the channel [14:45] davidvanleeuwen has joined the channel [14:45] littke has joined the channel [14:47] phing_work has joined the channel [14:47] stevereed has joined the channel [14:48] springmeyer has joined the channel [14:48] alex_b has joined the channel [14:49] saschagehlich has joined the channel [14:49] dmcquay has joined the channel [14:49] ZeroCoder has joined the channel [14:49] d0k has joined the channel [14:52] jakehow has joined the channel [14:52] matschaffer has joined the channel [14:54] jeffmoss has joined the channel [14:56] sub_pop has joined the channel [15:00] BillyBreen has joined the channel [15:02] kriszyp has joined the channel [15:02] tiemonster: Is it possible to unit test for segfaults in .node module code? [15:03] willwhit_ has joined the channel [15:03] tjholowaychuk: tiemonster: pretty sure you can trap SIGSEGV [15:03] highermath_away has joined the channel [15:03] tjholowaychuk: haven't tried [15:03] tiemonster: in the same process? [15:03] tiemonster: it's not like you can wrap it in a try block... [15:04] tjholowaychuk: process.on() [15:04] tiemonster: hmm [15:04] jtsnow has joined the channel [15:04] tjholowaychuk: you can still register signal handlers in c++ [15:04] tjholowaychuk: but if you are testing with js try process.on() [15:05] aheckmann has joined the channel [15:05] tiemonster: tjholowaychuk: I'll give it a shot. Thanks! [15:05] tjholowaychuk: tiemonster: let me know lol im curious [15:06] themiddleman_itv has joined the channel [15:06] bradleymeck: one of these days going to need a unix <-> node writeup [15:07] bingomanatee has joined the channel [15:07] tjholowaychuk: tiemonster: because afaik only KILL/STOP cannot be handled, but yeah havent tried a few [15:07] tiemonster: tjholowaychuk: then the next task is artificially creating null pointers :-D [15:08] bradleymeck: why does it have to be artificial? [15:09] tiemonster: because in the course of normal execution, I would hope that I'm not passing null pointers! :-) [15:09] shiawuen has joined the channel [15:09] tjholowaychuk: tiemonster: just add asserts to your code [15:09] stonecobra has joined the channel [15:10] tiemonster: in C++? [15:10] tjholowaychuk: yeah [15:10] tjholowaychuk: assert(something && "oh noes im broken") [15:10] tiemonster: I'd rather handle the null pointers and respond appropriately/gracefully [15:11] tiemonster: Well, I guess that would be pretty bad [15:11] tiemonster: might lead to data corruption [15:11] littke has joined the channel [15:12] tjholowaychuk: tiemonster: its a macro so you can def it out [15:12] tjholowaychuk: tiemonster: not like it adds overhead or anything [15:12] mscdex: source code overhead! [15:13] tiemonster: it would end the program with a non-0 exit code, correct? would that show up in unit testing/CI? [15:13] pdelgallego has joined the channel [15:14] tjholowaychuk: tiemonster: yeah, but you can control when that macro operates or not, so when in development you will want to know [15:14] tiemonster: ok [15:14] tjholowaychuk: i dunno dont listen to me im no c guru, just throwing ideas out there [15:16] eventi has joined the channel [15:16] christophsturm: why does node.js implement spawn, but not fork? [15:17] stepheneb has joined the channel [15:17] kevwil has joined the channel [15:17] alek_br has joined the channel [15:17] warz has joined the channel [15:18] brianmario has joined the channel [15:18] ph^ has joined the channel [15:19] k1ttty has joined the channel [15:20] simme has joined the channel [15:22] mscdex: christophsturm: because fork isn't portable [15:23] mscdex: christophsturm: especially if node wants to support Windows [15:24] mscdex: christophsturm: but here's fork if you want it: https://github.com/felixge/node-nix [15:24] raidfive has joined the channel [15:25] [AD]Turbo has joined the channel [15:25] flippyhead has joined the channel [15:25] Basant has joined the channel [15:26] mc_greeny has joined the channel [15:28] pquerna: http://news.ycombinator.com/item?id=2411144 [15:29] zemanel has joined the channel [15:29] joshthecoder has joined the channel [15:30] christophsturm: mscdex: thanks! [15:31] indutny has joined the channel [15:32] xastey` has joined the channel [15:32] dmcquay_ has joined the channel [15:33] Draggor: How expensive are try/catch blocks in node? [15:33] piscisaureus has joined the channel [15:35] christophsturm: it seems fugue and node cluster both use spawn instead of fork. is there a problem with node and fork? [15:35] tjholowaychuk: christophsturm: there is no fork [15:35] ajsie: Draggor: why shouldnt i be more expensive than usual? [15:36] mscdex: Draggor: there is a performance cost [15:36] lessthanzero has joined the channel [15:36] tjholowaychuk: christophsturm: and it's not advantageous in all cases, even if we had fork() I wouldnt change cluster [15:36] Draggor: I was reading this fun little blog post about implementing continuations/using cps in node, and it uses try/throwing errors to get around lack of TCO [15:37] softdrink has joined the channel [15:37] ryah_: pquerna: nice blog post! [15:37] stepheneb_ has joined the channel [15:37] christophsturm: tjholowaychuk: with fork you can avoid passing around the http socket. [15:38] tjholowaychuk: christophsturm: not a huge issue [15:38] MaxguN has left the channel [15:39] tjholowaychuk: christophsturm: and from what I have heard fork() would introduce state issues [15:39] christophsturm: tjholowaychuk: yeah, i agree, and for reloading a master without downtime you need spawn anyway. [15:40] christophsturm: tjholowaychuk: btw, are you the author of cluster? maybe extending cluster for what i need is the my best option [15:40] tjholowaychuk: christophsturm: yeah [15:40] pcardune has joined the channel [15:40] tjholowaychuk: christophsturm: check the issue queue, depending on what you need it might already be in there [15:41] christophsturm: tjholowaychuk: i have an app that has an http and a memcache frontend, so it has two servers in one process. [15:41] boaz has joined the channel [15:41] estrathmeyer has joined the channel [15:41] estrathmeyer has left the channel [15:42] fangel has joined the channel [15:43] baudehlo1 has joined the channel [15:44] vipaca has joined the channel [15:45] tylerstalder has joined the channel [15:47] hwinkel has joined the channel [15:47] skm has joined the channel [15:47] stephank has joined the channel [15:48] joshthecoder: Node for C? :) https://gist.github.com/b39cc2f3d515c82b350c [15:48] nciagra has joined the channel [15:49] AAA_awright_ has joined the channel [15:49] joshthecoder: crazy idea I know, but just something that came to mind the other night when I was looking at clang's block extension [15:50] Yuffster_work has joined the channel [15:50] tjholowaychuk: joshthecoder: that's ironic, playing around with something like that right now [15:50] mscdex: heh [15:51] sub_pop has joined the channel [15:51] joshthecoder: tjholowaychuk: I haven't coded anything just some proto code [15:51] sub_pop has joined the channel [15:51] tjholowaychuk: joshthecoder: clang ftw [15:52] joshthecoder: libdispatch makes heavy use of it [15:52] tbranyen: llvm ftw [15:52] mscdex: anyone else notice that google groups sometimes displays earlier messages after later posts? [15:52] softdrink: want. [15:52] mscdex: :s [15:52] tbranyen: anyone else notice that google groups is a pos [15:53] softdrink: (i also want vim keybindings in xcode RIGHT NOW) [15:53] mscdex: i'd rather use it than have emails in my box from the group every day [15:53] mscdex: heh [15:53] timcosgrove has joined the channel [15:54] joshthecoder: mscdex filters ftw [15:54] mscdex: you still get the emails [15:54] mscdex: :) [15:54] joshthecoder: I just tag mailing lists and archive right away [15:55] joshthecoder: I've got like 7 gb of freespace to fill up with email :) [15:55] wilmoore has joined the channel [15:55] meandi has joined the channel [15:55] mscdex: i dunno, i've never had any problems with google groups until this issue that i noticed recently [15:56] briznad has joined the channel [15:57] tiemonster: tjholowaychuk: it seems to trap it, but then it just hangs [15:57] kriszyp has joined the channel [15:57] drunknbass has joined the channel [15:57] AAA_awright has joined the channel [15:57] bradleymeck: it probably dies due to queueing the event rather than handling it right there in js [15:58] tiemonster: so I won't be able to handle in js then? [15:58] sub_pop has joined the channel [15:59] tiemonster: I was hoping to be able to just fail the test and move on [16:00] davemo has joined the channel [16:01] willwhite has joined the channel [16:01] mytrile has joined the channel [16:02] simme has joined the channel [16:02] robotarmy has joined the channel [16:02] jano has joined the channel [16:04] bingomanatee: Morning noders [16:04] bingomanatee: don't forget - the BEST NODE.JS meetup ever is tonight! [16:04] dyer has joined the channel [16:04] dyer has joined the channel [16:05] ohtogo has joined the channel [16:05] mscdex: bingomanatee: how can you say it's the best if it hasn't happened yet? :-D [16:05] bingomanatee: Because I lined up the speakers. [16:06] jeffmoss has left the channel [16:06] ckknight: shouldn't you at least provide a link or a location for where it is? :P [16:06] mscdex: west coast somewhere [16:06] bingomanatee: oh so now you want me to do all your thinking for you? [16:06] mscdex: :p [16:07] timcosgrove has left the channel [16:07] softdrink: it's the best ever because i'm /not/ speaking :D [16:07] bingomanatee: http://www.meetup.com/Node-js-Serverside-Javascripters-Club-SF/events/16604867/ [16:07] stonebranch has joined the channel [16:08] softdrink: ACTION sets cocoa on fire [16:08] bingomanatee: The only bad part is we don't have a preso from SubStack... :( but he's been pretty awesome to date and I'm sure we'll see him in the future. [16:09] colinclark has joined the channel [16:09] mischievious has joined the channel [16:10] colinclark has joined the channel [16:10] bingomanatee: But as far as I know this is the first SF meetup in which multiple noSQL speakers will be available for a cross-noSQL comparitive panel. [16:10] no-gooder has joined the channel [16:10] slaskis_ has joined the channel [16:11] matschaffer has joined the channel [16:11] bingomanatee: Something the PHP meetup has been trying to do for a long time but has not succeeded in. [16:11] rudebwoy has joined the channel [16:11] no-gooder: #npm is node package manager room ?? [16:12] bingomanatee: not, probably [16:12] bingomanatee: isaacs is the npm guy and he's here. [16:12] bradleymeck: i dont think npm has a room [16:12] Sembianc1 has joined the channel [16:13] bingomanatee: isaacs: have you opened up an IRC room for npm? [16:13] BB^101 has joined the channel [16:13] aconran__ has joined the channel [16:13] mattrobenolt: tjholowaychuk: ping [16:14] tjholowaychuk: mattrobenolt: hey [16:14] mattrobenolt: Hey, you work on both Express and Connect, correct? [16:14] adamholt has joined the channel [16:15] artgoeshere has joined the channel [16:15] tjholowaychuk: mattrobenolt: yup [16:15] mattrobenolt: What's the general benefits you get from using Express instead of using Connect directly? [16:15] hucker has joined the channel [16:15] abraham has joined the channel [16:15] tjholowaychuk: well first off connect is not meant to be used directly [16:15] scrogson has joined the channel [16:15] tjholowaychuk: its there to support higher level frameworks [16:16] Martz has joined the channel [16:16] Martz has joined the channel [16:16] ivan has joined the channel [16:16] larsemil has joined the channel [16:16] ryan[WIN] has joined the channel [16:16] ekes has joined the channel [16:16] mattrobenolt: Well, does it do routing and whatnot in Connect? Or is that added in with Express? [16:16] tjholowaychuk: you gain a nicer interface to routing, higher level request / response apis, view system etc [16:16] mattrobenolt: (Excuse the ignorance, I haven't dug through the source of either yet) [16:16] tjholowaychuk: yeah i moved the router to connect, but for other frameworks to use [16:16] tjholowaychuk: not really public api [16:16] sheerun1 has joined the channel [16:16] bengl has joined the channel [16:16] postwait has joined the channel [16:16] no-gooder: i couldn't make work "npm install mysql-libmysqlclient" on CentOS. where are node-mysql-libmysqlclient guys ?? :)) [16:17] Benn has joined the channel [16:17] roger_raymond has joined the channel [16:17] tsyd has joined the channel [16:17] Croms has joined the channel [16:17] Crshman has joined the channel [16:17] mattrobenolt: I guess I'm just trying to evaluate if it's worth it for our application to be written using Connect directly, or to keep using Express. We don't need anything that I can see specifically using Express. We have 3 main entry points, and all parsing of headers and responses are done by our app. [16:18] mattrobenolt: And pretty much the only middleware we use is the cookie middleware. [16:18] tjholowaychuk: gotcha, in that case maybe not, but not like express adds extra overhead [16:19] tjholowaychuk: if I were to use the router at all I would use express [16:19] mattrobenolt: I guess that's what I was getting at as well. How much of a performance hit comes with Express added on top. Or even Connect vs a raw http connection. [16:19] tjholowaychuk: connect vs raw is the difference, express adds no overhead [16:19] tjholowaychuk: simply extends things [16:20] no-gooder: what is the main approach for restart the node automaticly when something goes worng and stopped ????? [16:20] simme has joined the channel [16:20] tjholowaychuk: but I mean you should scale horizontally anyway, so dont be THAT crazy about performance vs production [16:20] no-gooder: i mean is there any modeule or someting ?? [16:20] tjholowaychuk: it's nice to be careful but not crazy [16:21] broofa has joined the channel [16:21] no-gooder: when it's down it's down [16:21] noahcampbell has joined the channel [16:21] bradleymeck: generally you use something else, ala monit, but some things like cluster will restart for you [16:22] mattrobenolt: tjholowaychuk: Good point. It's small enough that we could transition over to raw http requests when the time comes. Our app will potentially be holding tens of thousands of requests per second by the end of June, so I'm trying to be a little cautious now. :) [16:22] broofa has joined the channel [16:22] Spion__ has joined the channel [16:22] tjholowaychuk: mattrobenolt: yeah, but cluster(server).set('workers', 8).listen() and your done [16:22] monty-1 has joined the channel [16:22] tjholowaychuk: thats how you scale, not by being paranoid [16:22] tjholowaychuk: lol [16:23] dguttman has joined the channel [16:23] mattrobenolt: Yeah, I'm currently running cluster. :) [16:23] mike5w3c_ has joined the channel [16:23] tjholowaychuk: start building things, profile, and if connect truely becomes the bottleneck then worry about it [16:24] mattrobenolt: Right, just figured with our actual request parsing needs, if we can just avoid any of the overhead of a framework now, it'd be simple enough. [16:24] mattrobenolt: But thanks for the information. :) [16:24] mattrobenolt: tjholowaychuk++ [16:24] v8bot: mattrobenolt has given a beer to tjholowaychuk. tjholowaychuk now has 20 beers. [16:25] tschundeee has joined the channel [16:26] sirkitree has joined the channel [16:26] daniellindsley has joined the channel [16:27] pquerna: sh1mmer: okay, troll post done to nodejs-dev, now you can stear the conversation please :) [16:27] ryanfitz has joined the channel [16:30] no-gooder: bradleymeck, thanks buddy [16:30] confoocious has joined the channel [16:30] crodas has joined the channel [16:30] randalla1ordon has joined the channel [16:30] hucker_ has joined the channel [16:31] kuya_ has joined the channel [16:31] caligula__ has joined the channel [16:31] geoffeg_ has joined the channel [16:31] yenz has joined the channel [16:32] mavin|gone has joined the channel [16:32] ysynopsi1 has joined the channel [16:32] tbranyen_ has joined the channel [16:32] mlangenb1rg has joined the channel [16:33] Charuru: tjholowaychuk hi [16:33] Charuru: regarding https://github.com/LearnBoost/stylus/issues/#issue/208 [16:33] Leonidas: well…, I have a GPX (XML) file which I would like to import to my database. now I looked at the XML parsers and most of them are quite ugly. whats the best library? [16:33] Charuru: do i make sense? [16:33] tolaine_ has joined the channel [16:33] nciagra1 has joined the channel [16:33] frodeniu1 has joined the channel [16:33] oscarkilhed has joined the channel [16:33] defeated has left the channel [16:33] Leonidas: ACTION is a bit spoiled by lxml which is awesome [16:33] rudebwoy has joined the channel [16:34] tjholowaychuk: Charuru: yeah makes sense, but at the same time how some framework structures their app is not really something stylus (core) should be involved in [16:34] Martz has joined the channel [16:34] Martz has joined the channel [16:34] Prometheus has joined the channel [16:34] tjholowaychuk: Charuru: one could easily write functions or override url() to do what you want though [16:34] morgabra has joined the channel [16:34] mattrobenolt: Anyone familiar using Redis and Node? [16:34] baudehlo1: woot, Haraka is now my incoming mail server. [16:34] papyromancer has joined the channel [16:34] nmtmason has joined the channel [16:34] shift__ has joined the channel [16:35] inarru has joined the channel [16:35] killfill has joined the channel [16:35] aheckmann has joined the channel [16:35] Charuru: ok, I will do that if that's what you advise tjholowaychuk [16:35] phing1 has joined the channel [16:35] arpegius has joined the channel [16:35] norviller has joined the channel [16:35] augustl has joined the channel [16:36] tjholowaychuk: Charuru: I just dont think it really makes sense to have it in core, mmmmmmaybe optionally but still, that is a pretty ad hoc thing [16:36] tjholowaychuk: geared towards a drupal-ish framework I agree it's a feature that is useful [16:36] tjholowaychuk: but [16:36] baudehlo: someone should write node-xml-simple [16:36] tjholowaychuk: still [16:36] mediacoder has joined the channel [16:36] Charuru: you haeve umm [16:36] Charuru: 64base encode in core [16:36] arexus has joined the channel [16:36] pzich has joined the channel [16:36] tjholowaychuk: yeah, because that can easily be applied to any project [16:37] bsparks has joined the channel [16:37] jroes_ has joined the channel [16:37] larsemil_ has joined the channel [16:38] Charuru: alright, thanks. i think everyone has their styl files not in public though [16:38] Charuru: and it would make sense to put their images next to their styl [16:38] justis has joined the channel [16:38] Charuru: but in the end it's no big deal [16:38] tjholowaychuk: IMO the images should be where the css will end up [16:38] beppu has joined the channel [16:38] tjholowaychuk: just like you would with real css [16:39] tjholowaychuk: you might have ./views/css/foo.styl but you wouldnt have ./views/css/images/foo.png [16:39] gnagno has joined the channel [16:39] gnagno: hello all [16:39] DJBouche has joined the channel [16:39] Charuru: ./views/images/foo.png? [16:39] gnagno: is there someone who is using the redis client ? [16:39] tjholowaychuk: Charuru: doesn't make sense to me :p [16:40] Charuru: you can even add a spriting step :) [16:40] willwhite has joined the channel [16:40] Charuru: and then you would have a better metaphor for pre-compile imgs and post-compile imgs [16:40] tjholowaychuk: in that case it would make sense yeah [16:40] ajsie has joined the channel [16:40] tjholowaychuk: spriting is pretty out of scope for core stylus though definitely, the url() thing is pushing it [16:41] indutny1 has joined the channel [16:41] tjholowaychuk: (and might be moved to a diff library anyway) [16:41] gwoo has joined the channel [16:41] tanepipe1 has joined the channel [16:41] gwoo has joined the channel [16:41] trotter has joined the channel [16:41] Charuru: alright cool, thanks for your help, i'll close the issue now I guess :) [16:42] Charuru: i understand how it might not be in scope, though you have other border-line features that make me think you're open to pushing the scope haha [16:42] vuliev has joined the channel [16:42] tjholowaychuk: no i agree lol the image size stuff / url() should move [16:42] tjholowaychuk: to large [16:43] atmos has joined the channel [16:43] killfill_ has joined the channel [16:43] sanslocu1t has joined the channel [16:43] Charuru: haha [16:44] xastey has joined the channel [16:44] vuliev_ has joined the channel [16:44] ivan_ has joined the channel [16:47] pedrobel_ has joined the channel [16:47] vuliev_ has left the channel [16:47] zylo has joined the channel [16:47] jb55 has joined the channel [16:48] fmarceau has joined the channel [16:48] cyraxx_ has joined the channel [16:48] k1ttty_ has joined the channel [16:48] s0enke has joined the channel [16:48] Twelve-60` has joined the channel [16:50] darklaji1 has joined the channel [16:50] kkaefer has joined the channel [16:50] kkaefer has joined the channel [16:50] btipling has joined the channel [16:52] adambeynon has joined the channel [16:53] Croms_ has joined the channel [16:53] Validatorian has joined the channel [16:53] Validatorian has joined the channel [16:55] dahankzter has joined the channel [16:55] steph021 has joined the channel [16:56] bzinger_ has joined the channel [16:58] seivan has joined the channel [16:59] no-gooder has joined the channel [16:59] indutny has joined the channel [17:00] springmeyer has joined the channel [17:00] ryah_: pquerna: there's a comment on HN which points to http://search.cpan.org/~mlehmann/AnyEvent-5.31/lib/AnyEvent/TLS.pm [17:00] eirikurn_ has joined the channel [17:00] ryah_: nice api [17:02] konobi: ryah_: heh... libev comes back [17:03] yozgrahame has joined the channel [17:04] synkro has joined the channel [17:05] mike5w3c has joined the channel [17:06] matjas has joined the channel [17:06] kriszyp has joined the channel [17:09] er1c_ has joined the channel [17:09] bergie has joined the channel [17:11] ngs has joined the channel [17:12] perezd has joined the channel [17:12] seivan has joined the channel [17:13] eee_c has joined the channel [17:13] hosh_work has joined the channel [17:14] hosh_work has joined the channel [17:15] jasong_at_apache has joined the channel [17:18] darshanshankar has joined the channel [17:19] SamuraiJack__ has joined the channel [17:19] sdecastelberg has joined the channel [17:20] sh1mmer has joined the channel [17:20] ryah_: "Compression in TLS doesn’t merely help reduce the size of bulk data transfers. It also increases security by obscuring the plaintext before encrypting the data. Consequently, pre-encryption compression is a step that is almost always recommended by security experts." [17:20] ryah_: yeha right [17:20] meandi has joined the channel [17:21] ryah_: (that was a sarcastic 'yeah right') [17:21] tiemonster: security through obscurity \o/ [17:21] tschundeee has joined the channel [17:23] pquerna: ryah_: i'm not sure thats what he meant in a way, i was talking about it to rphillips here, I think he mant it reduces the size of the cipher text, meaning you have less data to play an attack against [17:23] pquerna: not that in the real world I think its viable concern [17:24] pquerna: ie, if you have 10gb of cipher text to run an attack against, that'd be easier than 2gb [17:24] pquerna: depending on the type of attack [17:24] akashiraffee has joined the channel [17:24] saikat has joined the channel [17:24] stepheneb has joined the channel [17:25] bergie has joined the channel [17:25] akashiraffee: anyone got two seconds to answer a quick question from a newbie? [17:25] indiefan2a has joined the channel [17:25] qFox has joined the channel [17:25] pquerna: ask [17:25] ryah_: i think worrying about brute force attacks against the cipher is insane [17:25] pquerna: agree :) [17:26] jpick has joined the channel [17:26] bingomanatee has joined the channel [17:26] akashiraffee: how can I get the value of the http headers from an incoming request? req.headers is an array of strings corresponding to field names (host, user-agent) etc, but without value... [17:27] pquerna: req.headers['user-agent'] [17:27] pt_tr: JSON.parse is as safe as jQuery.parseJSON, right? [17:27] tbranyen: pt_tr: no [17:27] pquerna: pt_tr: its a v8 builtin; yes, its safe, it won't execute code or anything bad [17:27] tbranyen: its safer [17:27] mattly has joined the channel [17:27] pt_tr: Sweet, thanks [17:28] tbranyen: jquery parsejson just runs the json through a regex and then new Function's it [17:28] pquerna: pt_tr: it is pretty strict about things following the exact json spec though [17:28] pquerna: tbranyen: ah [17:28] pquerna: so yes, a million times safer :) [17:28] tbranyen: yeah crockfords just evals at the end of its test [17:28] akashiraffee: req.headers['user-agent'] -> nope, this is undefined: [17:28] akashiraffee: for (e in req.headers) { [17:28] akashiraffee: console.log(e+": "+req.headers['e']); [17:28] akashiraffee: } [17:29] akashiraffee: yields "host: undefined" "user-agent: undefined", etc. [17:29] tbranyen: akashiraffee: uhhh thats because you're check for the key e in headers [17:29] pquerna: remove the quotes around 'e' [17:29] tbranyen: like literally the letter e [17:29] tbranyen: also don't use + with console.log [17:30] tbranyen: you're infering coercion [17:30] tbranyen: use a comma [17:30] akashiraffee: sheepish grin -- thanx [17:31] SamuraiJack has joined the channel [17:31] steffkes has joined the channel [17:31] pandeiro has joined the channel [17:31] tbranyen: akashiraffee: http://pastie.org/1759647 [17:31] tbranyen: benefits of using comma over + [17:32] tiemonster: true that [17:33] charlesjolley- has joined the channel [17:33] dekervit: Hey, has anyone tried express-jsdom ? I can't make it work :( [17:33] ph^ has joined the channel [17:34] jakehow has joined the channel [17:34] Martz has joined the channel [17:37] bingomanatee: tbranyen: any limit to the number of args to console.log? [17:37] bingomanatee: is there api/docs on console? [17:37] technoweenie has joined the channel [17:38] tiemonster: Does anyone have a design pattern for something that must run on an interval, but be atomic (complete before the next iteration starts)? [17:38] FireFly: I'd suppose it simply iterates over its arguments [17:39] llkazu has joined the channel [17:39] tbranyen: bingomanatee: the limit is your imagination [17:39] prettyrobots has joined the channel [17:39] tbranyen: and resource consumption [17:39] tbranyen: or something along those lines [17:39] creationix has joined the channel [17:39] creationix has left the channel [17:40] bingomanatee: ACTION hasn't suffered from consumption since the War of Northern Aggression [17:40] tbranyen: bingomanatee: bring down that hammer of justice [17:40] iseenoevil has joined the channel [17:40] bingomanatee: Hope Neil Young will remember, a Southern Man don't need him around anyhow. [17:43] arpegius has joined the channel [17:44] micheil has joined the channel [17:44] dahankzter has joined the channel [17:45] tiemonster: bingomanatee: hey, were you the one running the game meetup? [17:46] brianloveswords has joined the channel [17:46] maushu has joined the channel [17:49] wdperson has joined the channel [17:49] jeffmoss has joined the channel [17:50] dguttman has joined the channel [17:55] hvgotcodes has joined the channel [17:56] pmahon has joined the channel [17:57] pmahon: Does anyone have any suggestions for scraping pages that make heavy use of javascript, and also use https? [17:58] pmahon: I looked at Apricot, but the https support is broken. [17:58] max_dev has joined the channel [17:59] mikeal has joined the channel [17:59] Nevtus has joined the channel [17:59] Nevtus has joined the channel [17:59] christophsturm has joined the channel [18:01] Epeli: phiggins: Phantomjs? [18:01] phiggins: eh? [18:01] Epeli: oh, sorry. pmahon I mean [18:01] phiggins: ACTION steps back slowly [18:02] Samot: m [18:02] meandi2 has joined the channel [18:03] stepheneb has joined the channel [18:03] phing_work has joined the channel [18:04] pedrobelo has joined the channel [18:05] langworthy has joined the channel [18:09] brianloveswords has joined the channel [18:09] skm has joined the channel [18:09] softdrink has joined the channel [18:10] broofa has joined the channel [18:11] insin has joined the channel [18:13] hvgotcodes has joined the channel [18:13] arpegius_ has joined the channel [18:14] thiessenp has joined the channel [18:14] JianMeng has joined the channel [18:14] Martz^ has joined the channel [18:16] lukegalea: tjholowaychuk: hey. I'm trying to wrap my head around moving from spark -> cluster. (finally). Not sure what you mean in the docs re: long running database connections. Are you recommending moving all those definitions out of app.js into server.js ?? [18:16] heavysixer has joined the channel [18:17] mikedeboer has joined the channel [18:17] fmarceau: someone tried yui3 with node.js ? [18:18] fmarceau: I think there's a memory leak somewhere [18:18] tjholowaychuk: lukegalea: yeah, otherwise you will have connections in the master process, not always a big deal but i would advise against it [18:18] tjholowaychuk: lukegalea: or you can do master.on('closing', function(){}) and close the connections [18:18] lukegalea: so.. server.js is the worker? [18:18] micheil has joined the channel [18:18] tanepipe1: tjholowaychuk: assets look awesome! [18:19] thiessenp: Can someone point me to a good tutorial on node/mongoose? (by good, I mean concise for someone with a CS background :) [18:19] bradleymeck: fmarceau it doesnt run on latest, but i havent heard any leaks for it on 0.2.x [18:19] bingomanatee: tiemonster: yes, why? [18:20] skm has joined the channel [18:20] tilgovi has joined the channel [18:20] tjholowaychuk: tanepipe1: thanks man [18:20] fmarceau: trying to do web page scraping in order to index some stuff... and it eventually fails become of memory usage [18:20] Venom_X_ has joined the channel [18:20] lukegalea: tjholowaychuk: hrm.. so server.js would initialize mongoose.. and you would pass the mongoose var into app somehow? [18:20] tjholowaychuk: thiessenp: was just a quick hour-ish thing, got sick of looking up urls [18:20] ji0n has joined the channel [18:20] bingomanatee: thiessnip: yes, mine: http://www.wonderlandlabs.com/wll_drupal/node/mongoose/index.html [18:20] fmarceau: but from what I can see... it's always using the same variables (i.e. Browser.doc) [18:21] tjholowaychuk: lukegalea: just have server.js or w/e export the app, all your connections are fine in there, that file is not executed in anything but the workers [18:21] jetienne has joined the channel [18:21] tjholowaychuk: lukegalea: app.js (or whatever you call cluster() in) is executed in both the worker(s) / master [18:21] thiessenp: bingomanatee: merci buckets - reading now [18:22] Ezku\: bingomanatee: oh thank god for that link [18:22] lukegalea: tjholowaychuk: oh.. okay.. so if I follow your docs and have a server.js with the cluster call in it and an app.js.. server.js will only get called once, but app.js will get called for every worker process? [18:22] bingomanatee: Let me know if you have any other questions and I'll expand - I am talking to a core contributor to mongoose tonight at the Node meetup. [18:22] Ezku\: I was so lost with mongoose, reading the manual pages over and over again in case I missed some tidbit [18:22] akashiraffee has left the channel [18:22] tjholowaychuk: lukegalea: correct [18:22] ZeroCoder has joined the channel [18:22] lukegalea: aah. perfect. Thanks! [18:23] tjholowaychuk: lukegalea: it's just confusing when you use the same file, because it plays two different roles, which is fine for simple apps but not for others [18:23] thiessenp: bingomanatee: wow, I definitely will [18:23] bingomanatee: no the manual is a pretty sham excuse for docs with all due respect - they cover schema and pretty much expect people to read the API for everything else. [18:23] patcito has joined the channel [18:23] mdoan has joined the channel [18:23] Ezku\: i'm fine with reading an api, really, it just seems to be rather dense as well [18:23] lukegalea: tjholowaychuk: Ya. I think my confusion came from the fact that the docs talk about worker processes, etc.. but don't make it clear which is which. Makes sense. [18:24] tjholowaychuk: lukegalea: well the workers are the ones doing the work, the master process doesn't actually even need the server instance [18:24] tjholowaychuk: it's not used [18:24] lukegalea: yep. makes sense. [18:24] micheil has joined the channel [18:25] timcosgrove has joined the channel [18:25] timcosgrove has left the channel [18:27] lukegalea: tjholowaychuk: man.. cluster is sooo much better than spark2. [18:27] lukegalea: thanks :) [18:28] tjholowaychuk: lukegalea: haha yeah man, np [18:28] tjholowaychuk: just a little weird to use at times since its not a CLI [18:28] tjholowaychuk: but non-CLI is way more flexible [18:28] micheil has joined the channel [18:29] lukegalea: tjholowaychuk: I heard through the grapevine that you had defined some kind of auto git checkout process to use with cluster.. ie: have a production tag checked out automatically on startup, etc. Is that documented anywhere? [18:29] tjholowaychuk: lukegalea: its just a private plugin we have [18:29] c4milo: tjholowaychuk: why private! [18:30] tjholowaychuk: its not very robust [18:30] tjholowaychuk: haha [18:30] c4milo: tjholowaychuk: we need it too :P [18:30] tjholowaychuk: or polished, but it works [18:30] c4milo: tjholowaychuk: we can make it robust [18:30] tjholowaychuk: and ih ave a mixpanel one, private as well [18:30] tjholowaychuk: and a cluster irc bot [18:30] Ezku\: bingomanatee: http://www.wonderlandlabs.com/wll_drupal/node/268 says mongoose.connect is blocking, which is not true [18:30] c4milo: tjholowaychuk: nice [18:30] bingomanatee: really? Ever try to run mongoose with mongo off? [18:30] christophsturm: tjholowaychuk: we couldnt get cluster running on our ubuntu servers. even the test suite does not work there. we get the EINVAL error thats in this ticket: https://github.com/learnboost/cluster/issues#issue/47 [18:30] Ezku\: bingomanatee: yes, plus i've read the manual [18:30] bingomanatee: I'll show you blocking! freezes your whole app. [18:31] Ezku\: bingomanatee: what happens is mongoose.connect does not block, but any following queries you do will [18:31] bingomanatee: I find the distinction a little academic. [18:31] bingomanatee: but I will revise the docs. [18:32] Ori_P has joined the channel [18:32] Ezku\: bingomanatee: well, it bit me just an hour ago :) [18:32] lukegalea: tjholowaychuk: Do you find you use the cluster REPL the way one would use script/server in a rails app? As a console for working with the app? [18:33] lukegalea: Or just for managing workers, etc? [18:33] vipaca has joined the channel [18:33] tjholowaychuk: lukegalea: its for inspecting / managing the live process [18:33] stepheneb has joined the channel [18:33] lukegalea: My workflow is usually to have app.js, when running in development mode, fire up a repl with a ton of stuff defined.. [18:33] ckknight has joined the channel [18:33] tjholowaychuk: lukegalea: for starting / stoping etc you can use the cli plugin [18:33] ckknight has joined the channel [18:33] tjholowaychuk: ex: $ node app.js start [18:34] tjholowaychuk: sorry there is no start [18:34] tjholowaychuk: haha [18:34] lukegalea: tjholowaychuk: okay.. answers my question. So if you want to have a REPL for working with DB, utilities, etc.. then you define that seperateely. [18:34] tjholowaychuk: i lied, $ node app.js restart etc [18:34] lukegalea: that's cool. I was thinking of combining them.. but perhaps not best. [18:34] tjholowaychuk: lukegalea: yeah, cluster.repl.define('function [18:34] tjholowaychuk: yeah, might not be an easy way to do that, although the context object could be altered [18:34] tjholowaychuk: not sure I expose that right now, i dont think so [18:34] lukegalea: yeah... my current pre-cluster config uses node's REPL directly and defines a whole bunch of stuff in the context object. [18:35] tjholowaychuk: christophsturm: yeah sorry :( not sure exactly whats going on there [18:35] tjholowaychuk: been to busy to take the time to discover why ubuntu hates me [18:35] christophsturm: tjholowaychuk: i just commented on the issue, i think the file descriptor is not valid [18:35] tjholowaychuk: lukegalea: yeah, if I dont expose it we should open an issue and expose it [18:36] lukegalea: tjholowaychuk: k. I'll play around with it. [18:36] V1 has joined the channel [18:36] __tosh has joined the channel [18:36] tjholowaychuk: christophsturm: yeah, but why is a different story. some race-condition, or an event that is mis-fired, or me fucking something up [18:36] tjholowaychuk: haha [18:36] tjholowaychuk: one of those [18:37] christophsturm: actually I think node should call an error callback in that case and not throw [18:38] bingomanatee: Ezku\ okay I moved the warning to the query section [18:38] bingomanatee: AFK for lunch [18:38] pietern_ has joined the channel [18:40] hwinkel has joined the channel [18:40] robb1e has joined the channel [18:41] ckknight has joined the channel [18:42] mjr_ has joined the channel [18:44] dve has joined the channel [18:44] arpegius_ has joined the channel [18:46] kmwallio has joined the channel [18:47] aho has joined the channel [18:48] hvgotcodes has joined the channel [18:49] Booths has joined the channel [18:52] pdelgallego has joined the channel [18:52] zeke_sikelianos has joined the channel [18:52] losing has joined the channel [18:53] Buttons840 has joined the channel [18:53] max_dev has joined the channel [18:54] omni5cience has joined the channel [18:55] vipaca has joined the channel [18:55] christophsturm: what's a recommended command line parser in javascript? seems there are a lot of options https://github.com/joyent/node/wiki/modules#parsers-commandline [18:56] mhooker has joined the channel [18:56] stutter: i am getting intermittent exceptions "Error: socket hang up" when using https.get. anyone had any similar experiences? [18:56] tjholowaychuk: christophsturm: switch(){} [18:58] kriszyp has joined the channel [18:58] Booths: stutter: what version? [18:58] stutter: $ node --version [18:58] stutter: v0.4.6-pre [18:59] stutter: not sure what other details to give you to help find / rectify the problem [18:59] stutter: heh [19:00] stepheneb has joined the channel [19:01] thiessenp: bingomanatee / *: hmm I think I need a more newby article - that begins with the install, how to structure/save a very basic db/object, then the script code on how to connect node.js, mongoose and an existing/new db - ever come across anything like this? Once I get a basic hello world going, I'll be rolling :-) [19:01] Buttons840: is node still experimental is or is ready for production? (i know this might be a matter of opinion) [19:01] visa has joined the channel [19:01] blueadept has joined the channel [19:01] wink_: it's a matter of opinion :> [19:01] wink_: Buttons840: plenty of us use it in production, but you're going to get a heavy sampling bias here [19:01] insin: both :) [19:01] wink_: there are lots of people that aren't going to be willing to use it in production yet [19:02] konobi: github uses node to handle all their "downloads" for example [19:02] konobi: and it's much better than their previous solution [19:03] creationix has joined the channel [19:03] Buttons840: i've always liked twisted, i've been happy to see it was an inspiration for node; and i'm hoping i don't have to write php anymore ;) [19:03] creationix has left the channel [19:04] hvgotcodes has joined the channel [19:04] Buttons840: where are the docs or api? [19:04] konobi: we use it heavily in production... but then again that not new [19:04] wink_: Buttons840: www.nodejs.org [19:05] wink_: your best bet is to implement a proof of concept that uses the functionality you'll need and make sure everything works as you'd expect [19:05] wink_: if it does, you're good to go :> [19:06] Buttons840: does node.js aim to be generally useful (outside of web development)? [19:06] konobi: yes [19:06] bradleymeck: i dont use it for web almost at all [19:06] tjholowaychuk: Buttons840: if anything its less about that, and more about networking [19:07] stutter: i'm writing a daemon that has nothing to do with web, other than a web client sends data to it [19:07] konobi: most of our stuff is not web related [19:07] Buttons840: sounds great, can it call c libs? [19:07] stutter: oh [19:07] zeke_sikelianos has left the channel [19:07] stutter: and it makes web requests [19:07] Buttons840: maybe i better just read the docs ;) [19:07] stutter: networking ;x [19:07] bradleymeck: node-ffi if you need a quick and dirty thing, c++ modules if you want to do it hardcore [19:07] Scala has joined the channel [19:07] bradleymeck: buttons840^ [19:08] stutter: sometimes i can make 10 requests before "Error: socket hangup" sometimes i can make 200 requests before "Error: socket hangup" [19:08] stutter: not sure how to diagnose that. [19:08] wink_: i use node in production for non web related things [19:09] bradleymeck: im hoping to use haraka soon [19:09] bcelenza: bradleymeck: thanks for the node-ffi reference. slick module! [19:09] bradleymeck: though smtp is kinda web? [19:09] stutter: smtp is kinda suck [19:09] stutter: ): [19:10] tjholowaychuk: the smtp modules are really messy :( [19:10] tjholowaychuk: ACTION cannot use messy code [19:10] bradleymeck: tj you barely use other ppls code as it is, lol [19:10] tjholowaychuk: we have like 40+ mods for learnboost :p [19:10] tjholowaychuk: sure we do [19:10] Buttons840: my knowledge of js is limited and dated; does js have classes/instances/methods and all that other standard OO stuff? [19:11] tbranyen: tjholowaychuk: i feel like learnboost has technology thats way too cool for what it is [19:11] bradleymeck: buttons840 it is not class based OO it is prototypical [19:11] wink_: Buttons840: yes, you'll definitely want to bone up though [19:11] tjholowaychuk: bradleymeck: just prefer to use things that are easy to contribute back to later [19:11] tjholowaychuk: and things without bad apis [19:11] bradleymeck: ouch [19:11] tjholowaychuk: tbranyen: haha kinda, but the industry needs it, our competitors blow [19:11] bradleymeck: i have a half working smtp server, not plugin based though :/ [19:12] tbranyen: bradleymeck: you're doing SMTP with Node? [19:12] bradleymeck: i can do basic no-auth smtp serving [19:12] tjholowaychuk: we might need smtp soonish [19:12] tbranyen: ralphholzmann is too [19:12] tbranyen: is why i ask [19:12] ralphholzmann: wat [19:12] bradleymeck: haraka came out so i put it on the back burner [19:12] tbranyen: ralphholzmann: smtp [19:12] ralphholzmann: ah yeah [19:12] sdecastelberg has joined the channel [19:13] ralphholzmann: I have an smtp server in node [19:13] ralphholzmann: incoming only at the moment [19:14] arpegius has joined the channel [19:15] bradleymeck: we really need to separate out arpanet message parsing, stream wrapping, and attachments for heavy duty smtp stuff [19:15] bradleymeck: the headers etc arent so bad [19:15] tbranyen: tjholowaychuk: learnboost needs opera vendor prefixes :( [19:15] tbranyen: losers like me use it! [19:16] tjholowaychuk: haha :p [19:16] tbranyen: even if its just for the feedback button [19:16] tbranyen: since thats the only thing that stands out on the homepage [19:16] V1: window.opera && ( window.location = 'http://disney.com' ) ;) [19:16] tbranyen: !!!! [19:16] tjholowaychuk: ahahaha [19:16] tjholowaychuk: niiice [19:16] tbranyen: lol V1 why does disney redirect opera users to the iphone page [19:17] tbranyen: is this some kind of jab at opera [19:17] captain_morgan has joined the channel [19:17] pmahon: Epeli, Thank I'll take a look at it [19:17] V1: hahaha See, redirecting opera is a common practice ;) [19:17] pietern has joined the channel [19:18] hvgotcodes has joined the channel [19:18] dmcquay has joined the channel [19:18] V1: Naw, Opera is fine.. It just has a to small market share to even worry about supporting it :) [19:19] Martz^ has joined the channel [19:20] galaxywatcher has joined the channel [19:22] tbranyen: V1: yea but adding in a prefix to fix a glaring graphical issue [19:22] robb1e has joined the channel [19:22] tbranyen: won't hurt anything [19:23] ckknight has joined the channel [19:23] cloudhead has joined the channel [19:23] ralphholzmann: bradleymeck: I have an email parser that I use to parse emails with large attachments [19:24] ncb000gt has joined the channel [19:24] ralphholzmann: I've tested it against emails with 14MB+ sized attachments [19:24] ralphholzmann: you pass it a raw email, get something back like [19:24] bradleymeck: nice, im not to worried about size, just maintainability [19:24] herbySk has joined the channel [19:24] ralphholzmann: { headers: { ... }, text : { ... }, html : { ... }, attachments: [ {} ... ] } [19:26] bradleymeck: is it on github somewhere? and can i get events rather than a full on blob? [19:26] ralphholzmann: bradleymeck: its on github, I'll grab you a link [19:26] skm has joined the channel [19:26] ralphholzmann: but theres no events :/ [19:26] bradleymeck: i can force events down its throat then with some recoding when iget free time from work (neveR) [19:27] eschnou has joined the channel [19:29] ralphholzmann: bradleymeck: https://github.com/ralphholzmann/node-smtp/blob/master/lib/parse.js [19:30] tiemonster: bingomanatee: sorry - had to step out to a meeting. [19:30] tiemonster: still here? [19:32] mike5w3c has joined the channel [19:32] thiessenp has joined the channel [19:32] stutter: sigh [19:32] stutter: this is killing me [19:32] stutter: KILLING! [19:32] bradleymeck: softly? and what? [19:33] stutter: lol [19:33] Croms has joined the channel [19:33] colinclark has joined the channel [19:33] markwubben has joined the channel [19:33] Croms has joined the channel [19:34] stutter: bradleymeck: running a lot of https.get requests, and after a inconsistent number of requests, node throws an exception "Error: socket hang up" [19:34] Croms has joined the channel [19:35] bradleymeck: probably the server you are getting it is not accepting more concurrent requests? [19:35] stutter: oooo that could be true [19:35] stutter: is there a way to limit the concurrency? [19:35] tjholowaychuk: stutter: the source has an explanation of that error [19:36] tjholowaychuk: somewhere in net.js [19:36] stutter: tjholowaychuk: you don't have a link handy do you? >< [19:36] baudehlo: bradleymeck: Haraka has a mail parser now. [19:36] tjholowaychuk: one sec [19:37] tjholowaychuk: stutter: nvm it doesnt anymore, just this https://gist.github.com/4cc9c7f934dfec89a086 [19:38] bradleymeck: baudehlo yep, just like to see all the options since your work made me stall mine for other things [19:38] stutter: tjholowaychuk: hmm [19:38] tjholowaychuk: stutter: when the connection is dropped or something [19:38] baudehlo: bradleymeck: yep no worries. It should nicely deal with attachments too fwiw. [19:39] baudehlo: you just do: connection.transaction.attachment_hooks(start_cb, data_cb) [19:39] bradleymeck: yea, i might have some time in next couple of weeks to test it out programatically rather than straight up as a daemon if i can figure it out [19:39] baudehlo: *nod* [19:39] stutter: tjholowaychuk: sounds like what this guy was explaining http://permalink.gmane.org/gmane.comp.lang.javascript.nodejs/20386 [19:40] baudehlo: bradleymeck: this is how you use it outside of Haraka: https://gist.github.com/904366 [19:40] teemow has joined the channel [19:40] baudehlo: it does make assumptions about receiving line by line though, so it might not be what you want. [19:40] tjholowaychuk: stutter: ah [19:42] bradleymeck: baudehlo i meant haraka as a whole instead of the parser, sorry about that. But yea, im excited about deploying a full server stack possibly in a single deploy step, so im slowly merging things in with my routing ideas for request/response [19:42] baudehlo: bradleymeck: here's my real-time graphs of Haraka on my personal domain (doesn't get that much mail sadly, but gives you an idea: http://www.sergeant.org/graphs/ [19:44] pcardune has joined the channel [19:44] baudehlo: I think I'm happy enough with it all now that I'm going to just sit and let it be. [19:44] Draggor: can anyone use the v8 bot? [19:44] baudehlo: and see if it leaks memory or anything :) [19:44] arpegius_ has joined the channel [19:45] bradleymeck: v8: 1+! [19:45] v8bot: bradleymeck: SyntaxError: Unexpected end of input [19:45] Draggor: v8> [1,2,3].map(function(i) { return i * i; }) [19:45] v8bot: Draggor: [1,4,9] [19:45] no-gooder has joined the channel [19:45] no-gooder: hey guys [19:45] vipaca has joined the channel [19:45] vipaca has joined the channel [19:45] no-gooder: i have problme with my vps. [19:46] no-gooder: first of all what does this do : export PATH=$HOME/local/node/bin:$PATH [19:46] Draggor: is the source available somewhere? [19:46] no-gooder: i have installed node but if i don't type this i can't use node.js [19:47] mikegerwitz: Draggor: https://github.com/eisd/v8bot [19:47] mikegerwitz: `v about [19:47] v8bot: mikegerwitz: v8bot is an IRC bot written entirely in Javascript using Google's v8 Javascript engine and Node.js. Credits: eisd, Tim_Smart, gf3, MizardX, inimino. Join us at #v8bot ! [19:48] baudehlo: no-gooder: you need to take a basics of unix course :) [19:48] no-gooder: baudehlo, yes i know :)but now i need help. can you help me? [19:49] baudehlo: well yes we can probably help, but if we tell you to add that line to your .bash_profile are you going to ask how to do that? [19:49] stutter: lol [19:49] markc_ has joined the channel [19:50] tschundeee has joined the channel [19:51] no-gooder: yeah, in a view it might be funny [19:53] no-gooder: baudehlo, also i wouldn't ask. i would search an learn. you know what? because you are kind enough to answer :) [19:53] jtsnow has joined the channel [19:54] stutter: his question to you was funny [19:54] baudehlo: I hope it didn't come across as rude, I mean we can help, but if every step of the way leads to more questions you're better off learning how computers work first. [19:54] stutter: i don't really think it's funny that you may or may not know much about unix [19:54] baudehlo: and not understanding PATH is pretty fundamental. [19:55] tshpaper has joined the channel [19:55] stutter: we could certainly tell you what commands to run and get you going [19:55] stutter: but i mean, you'll never learn from commands [19:55] stutter: you need the why [19:55] jeffmoss: no-gooder: http://en.wikipedia.org/wiki/Environment_variable [19:55] stutter: and the why takes forever when you need to explain everything [19:56] stonebranch has joined the channel [19:56] tbranyen: how: set the path, why: to make it work [19:56] tbranyen: done [19:56] stutter: lol [19:56] stutter: zing [19:56] timcosgrove1 has joined the channel [19:56] timcosgrove1 has left the channel [19:57] mytrile has joined the channel [19:57] no-gooder: baudehlo, i dind't want you to write me a code. you could have just sent me a link about environment variable... [19:58] no-gooder: jeffmoss, i'm a windows user i knwo about environment variables. thanks ii2ll check it for unix. [20:00] stutter: omgosh [20:00] stutter: it's working [20:00] stutter: if i had thought about it a little more, i would have added an on error event handler sooner! [20:01] tshpaper has joined the channel [20:03] AlexMax has left the channel [20:04] Venom_X has joined the channel [20:05] tmzt: no-gooder: that let's you run node in a local directory, if you really have a VPS you should not need that [20:06] dmcquay has joined the channel [20:06] tmzt: it does the same thing as in windows (NT), it looks weird because it adds the new path to the begining of the old PATH which is a stanard unixism [20:07] tmzt: you should know that the local directory is not in your path by default, unlike on windows [20:07] tmzt: current directory [20:07] saschagehlich: tlrobinson: ping [20:08] timcosgrove has joined the channel [20:08] timcosgrove has left the channel [20:08] bingomanatee_ has joined the channel [20:10] jeffmoss: that wiki is quite good, I've found the programming/computer and math topics are very good on wikipedia [20:11] jeffmoss: I took a calc 2 class a few years back and I didn't even use the book lessons, the book was totally inferior [20:11] no-gooder: tmzt, i did the same things on ubuntu. i wouldn't mes any of this. i just add .require('express') and use. but on vps i can't. it says "node: command not found" [20:11] zakabird has joined the channel [20:12] skm has joined the channel [20:13] tmzt: no-gooder: no, I mean if it's a real VPS you should have root, what service are you using? [20:14] no-gooder: tmzt, yes there is root. i use hostgator. [20:14] arpegius has joined the channel [20:14] Venom_X has joined the channel [20:14] JimBastard has joined the channel [20:18] springmeyer has joined the channel [20:19] robb1e has joined the channel [20:19] tmzt: no-gooder: so what is the issue? if you have node installed $HOME/local/node it should work if you add that to your PATH [20:19] mike5w3c has joined the channel [20:19] techwraith has joined the channel [20:19] piscisaureus: ACTION waves [20:19] bradleymeck: ACTION waves [20:19] techwraith: ACTION waves back [20:19] tmzt: discovered /me ? [20:20] piscisaureus: ACTION discovered me a long time ago. [20:20] techwraith: Nope, just being polite :) [20:20] bradleymeck: ACTION is waiting on /you [20:20] techwraith: lol [20:21] insin: ACTION -> o/ \o <- bradleymeck [20:24] Scala has joined the channel [20:24] devdazed has joined the channel [20:25] devdazed: hi all, i am trying to assert a jsonp response to ensure it is valid javascript. is there a way i can test to see if a string compiles to javascript? [20:26] TooTallNate has joined the channel [20:27] jimt_ has joined the channel [20:27] saschagehlich: devdazed: JSON.parse(string)? [20:28] devdazed: saschagehlich: its jsonp not json [20:28] techwraith: devdazed: Eval()? [20:28] mattmcmanus has joined the channel [20:28] techwraith: Seems like an OK time to use it anyways [20:29] devdazed: techwraith: i thought about that, but would i just make a dummy function or something? because wouldnt eval try to call the function? [20:29] jesusabdullah: JimBastard: Man, they *really* hate you on HN. I've never seen somebody get so much hate for such stupid stuff. [20:29] JimBastard: jesusabdullah: what now? [20:29] jesusabdullah: Oh, just following up on that xp link on HN [20:29] JimBastard: Ahh [20:30] jesusabdullah: I was actually *surprised* to see the top comment [20:30] JimBastard: Well, I'm okay with that [20:30] creationix has joined the channel [20:30] creationix has left the channel [20:30] techwraith: link? [20:30] JimBastard: jesusabdullah: It was all a trick, I really just wanted someone to teach me how to use Unix [20:30] Venom_X has joined the channel [20:30] JimBastard: *nix [20:30] jesusabdullah: http://news.ycombinator.com/item?id=2410330 [20:30] jesusabdullah: JimBastard: lol, yeah [20:30] JimBastard: If I posted a message asking for all those commands no one would have answered [20:30] jesusabdullah: Now you know how to type one-liner python programs instead of one-liner javascript programs [20:31] techwraith: devdazed: if you pass it in as a function, I don't think it gets called automatically... But I never really use eval, so I could be wrong. [20:31] JimBastard: jesusabdullah: well, i think you could make a nice app that actually used the system calls [20:31] JimBastard: or maybe get xp to have a systems mode [20:31] devdazed: well it would essentially be eval('someFunc(123);') [20:31] jesusabdullah: Yeah, sure [20:31] JimBastard: caus like [20:31] devdazed: so i think it would look for someFunc in the current scope [20:31] JimBastard: xp loc . will shit itself [20:31] JimBastard: it cant handle large dirs [20:31] jesusabdullah: I mean, that's fine, but if it was anybody else they'd be like, "oh cool, a jumble of utils" [20:31] pc1oad1etter: I wonder how feasible it would be to access the skype api from nodejs. Anyone know? [20:32] JimBastard: jesusabdullah: ahahahaha [20:32] jesusabdullah: But then they see you're attached to it, and, even not knowing about the asciimo debacle (which is of course gonna haunt you forever), they still find some reason to get excitable [20:32] jesusabdullah: You're such an internet shit magnet, it's amazing [20:33] Country has joined the channel [20:33] JimBastard: jesusabdullah: I'm still young, I'll have much greater things to haunt me yet [20:34] jesusabdullah: For me: The sticker incident. [20:34] stepheneb has joined the channel [20:34] jesusabdullah: It's been days and my parakeet still hasn't forgiven me. [20:34] dans has joined the channel [20:35] itmben has joined the channel [20:36] bradleymeck: devdazed, Function(string) [20:36] bradleymeck: will test if it compiles without running [20:37] devdazed: bradleymeck: thanks! [20:37] amacleod has joined the channel [20:37] supsup has joined the channel [20:37] itmben: hi, pretty new to this. my node -v reports v0.5.0-pre. Is this the correct version i should be using? [20:37] bradleymeck: devdazed, you should include the jsonp function name as an argument if you want to let it be valid [20:38] flippyhead has joined the channel [20:38] devdazed: bradleymeck: how would that work? [20:38] darshanshankar has joined the channel [20:38] supsup: trying to do git install of node.js i'm getting to the part where u do ./configure --prefix=$HOME/local/node and it's saying openssl is not found even tho openssl is there [20:38] devdazed: say the jsonp is 'someFunc(1323);' [20:38] bradleymeck: Function("someFunc",jsonp) [20:38] supsup: anyoen run into this do i have to add openssl to my path? [20:41] stutter: k [20:41] stutter: so now i need to find some kind of http request concurrency limiter [20:41] stutter: heh [20:42] monokrome: throttling? [20:42] stutter: yup [20:42] piscisaureus: ryah_: here? [20:42] mikegerwitz: supsup: Make sure the openssl development files are installed. (e.g. libssl-dev) [20:43] supsup: mikegerwitz: openssl works fine via command promp [20:43] supsup: or are they extra? [20:43] mikegerwitz: supsup: That's different than openssl-dev. Openssl binaries are separate. These are the headers, etc [20:44] mikegerwitz: supsup: If you're on a gnu/linux system, install libssl-dev from your repository. Otherwise, you'll have to look it up for your OS [20:45] ryah_: piscisaureus: yes [20:45] arpegius_ has joined the channel [20:45] piscisaureus: ryah_: -> pm [20:45] itmben: supsup: I managed to install mine using (sudo apt-get install g++ curl libssl-dev apache2-utils) [20:45] mikegerwitz: supsup: (I'm taking off for a bit. Hopefully someone else can help out) [20:46] itmben: supsup: this seemed to cover all of the files it was after [20:47] SvenDowideit has joined the channel [20:47] supsup: mike: that worked. successful, few other yellow warnings tho about kqueue/event.h / port.h [20:48] supsup: hurm still saying openssl is not found tho. [20:48] itmben: I installed node.js using git clone git://github.com/joyent/node.git method. How do i update this to the latest version? (new to linux) [20:50] supsup: i'm using openssh - v 0.9.8g do i have to be using 1.0? [20:50] techwraith: has there been any thought put into a node --upgrade command? [20:55] itmben: back to googling... [20:55] itmben has left the channel [20:56] meder: what can i use to easily make a HTTP request and read headers? [20:58] stutter: http.get [20:58] stutter: or http.request [20:58] stutter: (get is just a wrapper for request) [20:58] Venom_X has joined the channel [20:59] viirya has joined the channel [20:59] indiefan2a: is there any documentation somewhere on the tls api? [21:00] mhooker has joined the channel [21:01] bergie has joined the channel [21:01] sub_pop has joined the channel [21:04] fljitovak has joined the channel [21:04] mraleph has joined the channel [21:05] fljitovak has left the channel [21:05] mytrile has joined the channel [21:05] jetienne_ has joined the channel [21:05] fljitovak has joined the channel [21:05] framlin has joined the channel [21:06] fumanchu182 has joined the channel [21:07] chapel has joined the channel [21:07] fljitovak has joined the channel [21:07] sstreza has joined the channel [21:07] niclone has joined the channel [21:07] ajsie: anyone is using jasmine bdd for node? [21:08] apanek has joined the channel [21:08] ajsie: kinda crazy .. not even the author knows how to use it on node.js [21:08] ajsie: https://github.com/mhevery/jasmine-node/issues/25/#comment_961211 [21:08] yozgrahame has joined the channel [21:08] daleharvey has joined the channel [21:08] ajsie: i just wanna do some jasmine testing! god [21:08] supsup: installing pkg-config got ride of openssl not found [21:09] matthijs has joined the channel [21:10] dgathright has joined the channel [21:10] tyler-iphone: how do you trigger repl in your code? [21:10] christophsturm has joined the channel [21:11] kmwallio has joined the channel [21:11] McMAGIC-- has joined the channel [21:13] rudolfrck has joined the channel [21:13] artgoeshere has joined the channel [21:13] mattrobenolt: Hey, I got a question about using nodejs and Redis subscriptions. [21:15] supsup has left the channel [21:15] bcelenza has joined the channel [21:15] felixge has joined the channel [21:15] felixge has joined the channel [21:16] wilmoore has joined the channel [21:17] philhawksworth has joined the channel [21:18] jeremyselier has joined the channel [21:19] Gruni has joined the channel [21:20] hornairs has joined the channel [21:20] MikhX has joined the channel [21:21] jga023 has joined the channel [21:21] Yuffster_work has joined the channel [21:23] bcelenza has left the channel [21:24] ajsie: no one is using jasmine on node? [21:26] FireFly|n900 has joined the channel [21:27] tjholowaychuk: ajsie: jasmine sucks for async stuff [21:27] ajsie: but i want one that could work both on frontend and backend [21:27] ajsie: and why does it suck for async stuff? [21:28] ajsie: why cant vowsjs work on frontend .. what would have solved everything [21:29] captain_morgan has joined the channel [21:30] warchiefThrall has joined the channel [21:30] warchiefThrall has joined the channel [21:31] vuliev has joined the channel [21:31] dispalt has joined the channel [21:32] creationix has joined the channel [21:32] creationix has left the channel [21:33] drudge has joined the channel [21:34] insin: the sample code on the jasmine front page saves me having to come up with my own jokey english-aping code to demonstrate why I dislike that style :) [21:35] noahcampbell has left the channel [21:37] EyePulp has joined the channel [21:37] bergie has joined the channel [21:38] ajsie: insin: http://pivotal.github.com/jasmine/ this ? [21:38] teemow has joined the channel [21:38] Scala has joined the channel [21:39] c4milo: does anybody know if there is a socket.io client for java or ruby? [21:39] c4milo: I was looking for them in google with not success [21:39] gzmask has joined the channel [21:42] johans has joined the channel [21:43] stagas: tjholowaychuk: in ejs if a var isn't in locals and I do an if (some_var) it breaks. is this desired behavior? [21:43] tjholowaychuk: stagas: that is js behavior, nothing I can do about that [21:43] tjholowaychuk: with a js expression [21:44] tjholowaychuk: stagas: but you can do if (locals.somevar) [21:44] stagas: tjholowaychuk: oh right [21:44] jimt has joined the channel [21:44] gzmask: tjholowaychuk: can express work without any of the haml/jade/ejs/etc. packages? [21:44] tjholowaychuk: gzmask: of course [21:44] Kholo has joined the channel [21:45] sveisvei has joined the channel [21:45] gzmask: tjholowaychuk: I tried *.html in views but can't be load [21:45] stalled has joined the channel [21:45] tjholowaychuk: gzmask: because html is not a template [21:45] gzmask: what is the default template then? [21:46] tjholowaychuk: there is none [21:46] ajsie: are you using different testing frameworks for backend and frontend? [21:46] EyePulp: yo ho ho [21:46] yozgrahame has joined the channel [21:46] tjholowaychuk: the overhead of the view system for html, woudl be retarded lol [21:46] tjholowaychuk: just serve the file [21:47] brianc has joined the channel [21:47] gzmask: tjholowaychuk: so that jade should be use if I want to serve html? [21:47] tjholowaychuk: gzmask: or ejs, or haml, anything you want [21:48] tjholowaychuk: if it has a variable output, then you need a template engine [21:48] brianc: tjholowaychuk: any recommendation on a good template engine for use in the browser? [21:48] gzmask: tjholowaychuk: i see... any preference for those template engines? [21:48] tjholowaychuk: brianc: for browser stuff I usually just use jade or a little mustache-ish thing I have laying around [21:49] tjholowaychuk: gzmask: IMO jade [21:49] KieranYo has joined the channel [21:49] brianc: tjholowaychuk: didn't know jade worked in browser. so hot. [21:49] brianc: tjholowaychuk: i should read documentation more often. ;) [21:49] sveimac has joined the channel [21:49] tjholowaychuk: brianc: kinda, its a little broken since there are a few things still not exactly cross-browser friendly, but you can peek at the compiler, it's at support/compile.js I think [21:50] stagas: tjholowaychuk: to declare locals to be used everywhere is it app.set('locals', {}) ? [21:50] tjholowaychuk: stagas: many ways to do that, app.locals({ foo: 'bar' }) for example [21:50] tjholowaychuk: is probably what you want there [21:51] tjholowaychuk: each call gets merged [21:52] kriszyp has joined the channel [21:53] KieranYo: Hi [21:53] stagas: tjholowaychuk: merged? basically I want to declare some vars undefined so that if (blah) doesn't break unless I pass it in res.render locals [21:53] KieranYo: I can't seem to get openssl onto my Mac OS 10.5.6 [21:53] KieranYo: Checking for openssl : not found [21:53] bcelenza has joined the channel [21:53] tjholowaychuk: stagas: undefined will break [21:54] tjholowaychuk: stagas: with(){} doesnt help that [21:54] tjholowaychuk: js is not very template engine friendly [21:54] EyePulp: so is there a simple library to chain together a series of async functions cleanly? I found creationx's Step, which might be enough, but was curious about other options [21:55] stagas: v8: var foo = { bar: undefined }; with(foo) { bar ? true : false } [21:55] v8bot: stagas: false [21:55] tjholowaychuk: stagas: hmm that threw for me in the repl [21:56] tjholowaychuk: stagas: nvm, you are right, just the repl was messed for some reason [21:56] stagas: tjholowaychuk: so it's possible! :) [21:56] tjholowaychuk: stagas: cool. would be nice if we could magically figure out all the vars used and default them [21:56] tjholowaychuk: learn new things about js every day haha [21:57] tjholowaychuk: with() is fucked [21:57] stagas: tjholowaychuk: I don't mind passing in an array of variable names [21:57] tjholowaychuk: the fact that you can do bar = 'rawr' in there is just wrong [21:57] zcopley has joined the channel [21:57] tjholowaychuk: stagas: I bet with proxies it could work for anything [21:57] tjholowaychuk: maybe [21:57] tjholowaychuk: but meh [21:59] mattrobenolt: Hey tjholowaychuk, with Express, is there a nice way to do a raw regex pattern in a request path? [21:59] tjholowaychuk: mattrobenolt: app.get(/whatever/, fn) [21:59] mattrobenolt: Instead of doing: app.get('/something/:id' ..') [21:59] mattrobenolt: Ahh, that's nice. :) [21:59] tjholowaychuk: mattrobenolt: yeah just pass a regexp, the capture groups are req.params (array) [21:59] stagas: tjholowaychuk: but you said with app.locals() they are merged in so will they lose the undefined on the next view? it's confusing [22:00] mattrobenolt: Yep, was just going to ask about the capture groups then. :) [22:00] tjholowaychuk: stagas: nope, do app.locals() out of a route [22:00] Martz^ has joined the channel [22:00] tjholowaychuk: stagas: they will always be applied [22:00] tjholowaychuk: stagas: or res.locals({}), res.local(key, val), etc [22:02] stephen_mcd has joined the channel [22:03] stagas: tjholowaychuk: it worked! [22:03] tjholowaychuk: stagas: awesome :D [22:03] tjholowaychuk: we could use static analysis to pre-undefine them [22:03] tjholowaychuk: haha [22:03] tjholowaychuk: [22:03] stagas: tjholowaychuk: no it didn't. it's replaced haha [22:04] tjholowaychuk: stagas: hmm, it should work, I dont think I do any undefined === checks [22:04] stagas: no it worked I'm stupid [22:04] stagas: :P [22:05] mcantelon has joined the channel [22:05] tyler-iphone: is there a way i can bind to an object so i can fire a callback everytime its properties change? [22:06] sheerun has joined the channel [22:07] stagas: tjholowaychuk: so just make app.locals if array populate locals object with undefined, new feature! :P [22:07] tjholowaychuk: haha :D [22:09] Venom_X has joined the channel [22:10] bradleymeck: tyler-iphone check for es harmony proxies, couple impls around and also another called 'magic' [22:10] Kholoa has joined the channel [22:10] tyler-iphone: thnx [22:11] fermion has joined the channel [22:14] mscdex has joined the channel [22:18] Determinist has joined the channel [22:21] hvgotcodes has joined the channel [22:21] stagas: tjholowaychuk: here's a fix :P https://gist.github.com/904705 [22:21] tjholowaychuk: baha :) [22:23] tyler-iphone: what version of ecmascript does nodejs use? [22:23] mscdex: 5 [22:23] jscheel has joined the channel [22:23] jscheel has joined the channel [22:23] mscdex: tyler-iphone: https://github.com/joyent/node/wiki/ECMA-5-Mozilla-Features-Implemented-in-V8 [22:23] tyler-iphone: thnx [22:23] brianc: anyone know what's going on with libol? Is it gonna replace libeio? or libev? both? neither? beuler? [22:24] brianc: well it looks like it has libev inside it, so doubt it's going to replace libev [22:24] ryah_: brianc: both [22:24] tjholowaychuk: brianc: probably another layer of abstraction [22:24] tjholowaychuk: for windows support i dunno [22:25] brianc: ryah_: sweet [22:25] tjholowaychuk: ryah_: is windows the main reason? or is there something about libev/io? [22:25] balaa has joined the channel [22:26] brianc: tjholowaychuk: Yah I think they been tryin' to make the same API for async socket, fs, tty, and domain socket (named pipes) across all OSs [22:26] ryah_: tjholowaychuk: windows, yes [22:26] tjholowaychuk: k cool [22:26] ryah_: layer above libev/eio since those don't work as well on windows [22:27] baudehlo: next step node support in Visual Studio? [22:27] ryah_: eventually. obviously the massive engineering effort is the first thing to overcome before worrying about build systems [22:28] brianc: next step node works on windows! [22:28] baudehlo: ACTION couldn't care less about windows support [22:28] llkazu: +1 baudehlo [22:28] ryah_: but libol is building on visual studio [22:28] tjholowaychuk: world domination cares [22:28] ryah_: ACTION rolls his eyes [22:28] tjholowaychuk: unfortunately [22:28] baudehlo: but I admit it seems necessary for some people. [22:28] bingomanatee_: +1 buhadehlo [22:28] jeffmoss has left the channel [22:29] brianc: yeah, i was thinking how enabling it will be for new coders on windows to come to node, download 1 .exe and write some javascript, type "node.exe myserver.js" and have a full blown web server and app framework [22:29] baudehlo: I'm looking forward to seeing some sort of cross platform visual debugger some day though. [22:30] stepheneb has joined the channel [22:30] brianc: baudehlo: have you seen node-inspector? [22:31] msucan has joined the channel [22:31] baudehlo: no... [22:31] balaa_ has joined the channel [22:31] baudehlo: ACTION googles [22:31] brianc: "cross platform visual debugger" [22:33] charlesjolley- has joined the channel [22:34] baudehlo: neat! [22:34] baudehlo: ACTION wonders if it works with stuff other than web [22:34] konobi: any nodejs app [22:35] brianc: it's magical [22:35] baudehlo: I rarely use debuggers, but that's nice to know it's there. [22:35] brianc: you can set breakpoints, step over, into, out of. lions and tigers and node oh my [22:35] baudehlo: esp since I still don't seem to get good line numbers out of Haraka failures. [22:35] KieranYo: hi, I'm having real trouble installing node with crypto/openssl support on Mac OS X 10.5.8 [22:36] KieranYo: any ideas anyone? please? [22:36] baudehlo: KieranYo: did you install the latest XCode? [22:36] luismreis has joined the channel [22:36] KieranYo: No [22:36] baudehlo: well, the latest XCode 3 [22:36] baudehlo: you need to. [22:36] KieranYo: Ah right [22:36] dmcquay has joined the channel [22:36] baudehlo: it includes all the .h files [22:36] KieranYo: How does XCode relate to it? [22:37] KieranYo: ahh [22:37] baudehlo: and compilers [22:38] mraleph1 has joined the channel [22:38] baudehlo: http://developer.apple.com/xcode/ and the link is to the bottom right. [22:38] KieranYo: Great, thanks so much, I'll try that now [22:38] baudehlo: you have to pay for XCode 4, and I don't think it runs on 10.5 [22:38] max_dev has joined the channel [22:38] baudehlo: but XCode 3 works [22:39] bingomanatee_: ACTION is actually surprised how well Node works on a mac - but I keep a Ubuntu laptop around as a backup for when the OS matters... [22:41] qbert_ has joined the channel [22:41] Yuffster_work has joined the channel [22:41] llkazu: i just run everything on an ec2 instance [22:42] llkazu: that said, it would be lovely to have Qt bindings... [22:42] ChrisPartridge has joined the channel [22:43] bradleymeck: baudehlo never let anonymous functions exist in your code and it will help w/ debugging bad stack traces [22:43] qbert_: anyone know any IDE plugins for node ? [22:43] llkazu: who needs IDE plugins when you have cloud9? [22:43] bradleymeck: ^ [22:43] qbert_: ^^ [22:44] baudehlo: bradleymeck: yeah I don't think that's the problem - I think it's just PEBCAK. [22:44] bradleymeck: plus IDE integration w/ JS is terrible pretty much everywhere [22:44] tjholowaychuk: who needs an IDE for js period [22:44] bingomanatee_: I like Komodo - it has good JS introspection, formatting, just all around nice. [22:44] qbert_: tjholowaychuk, use WebStorm and refactor a bunch of JS and come back and say that [22:44] bingomanatee_: I wouldn't say I require it - do plenty of naked text editing - but its convenient. [22:44] tjholowaychuk: pff [22:44] qbert_: /eyeroll [22:45] bradleymeck: refactoring or renaming? [22:45] qbert_: refactoring, including the HTML you may or may not call it in [22:45] tjholowaychuk: i dont find that hard as-is [22:45] tjholowaychuk: so meh [22:45] bingomanatee_: JS, Node !== Java/PHP - you won't find intrpspection, refctoring or renaming assistance from your IDE [22:46] qbert_: seriously, try WebStorm, I was blown away [22:46] balaa has joined the channel [22:47] mscdex: i use notepad++ [22:47] mscdex: :-D [22:47] qbert_: I used it for a bunch of sencha touch stuff, make life so much easier, but I'll shutup about it now [22:47] qbert_: made* [22:47] qbert_: now I shut up [22:47] mscdex: :S [22:49] fljitovak has joined the channel [22:49] c4milo1 has joined the channel [22:50] bradleymeck: idk, if i tend to avoid mixing code that is client side / of a different locality (location not i18n) with my node stuff [22:51] yozgrahame has joined the channel [22:51] davidwalsh has joined the channel [22:52] hwinkel has joined the channel [22:54] brianc: hmm...can you not add a link to a header element in markdown? Seems like github's markdown parser decided to change how it parsed things. "### _this_ does not work anymore" [22:55] dans_ has joined the channel [22:55] brianc: qbert_: those jetbrains guys are good w/ the code introspection [22:58] gazumps has joined the channel [22:59] unlink has joined the channel [22:59] malkomalko has joined the channel [23:05] ckknight has joined the channel [23:05] ckknight has joined the channel [23:05] twoism has joined the channel [23:08] osserver has joined the channel [23:08] kmwallio has joined the channel [23:08] postwait has joined the channel [23:09] horofox has joined the channel [23:13] gukov has joined the channel [23:14] ckknight: hey beautiful people [23:14] ckknight: anyone make any shiny stuff today? [23:14] bradleymeck: i made ouchies with ASP [23:15] brianmario has joined the channel [23:15] tjholowaychuk: ckknight: depends if you use cluster or not :p [23:15] f1lt3r_ has joined the channel [23:15] ckknight: tjholowaychuk: the concept interests me, and I've done clustering in the past [23:15] ckknight: bradleymeck: you'd better be talking ASP.NET, because classic ASP is a hellhole [23:16] bradleymeck: .net is still hell [23:16] brianc: bradleymeck: agr33d [23:16] ckknight: bradleymeck: far less so than VBScript, and there is no denying that. [23:17] bradleymeck: my problem lies with the IIS stack more than the language [23:17] jimt has joined the channel [23:17] ckknight: hmm [23:17] ckknight: I'd offer my help, but it's very off-topic in this channel [23:17] brianc: bradleymeck: it's not a stack, it's a roller coaster track welded to a battleship [23:17] ckknight: that kind of language is shunned. [23:20] ckknight: tjholowaychuk: cluster looks really cool [23:20] tjholowaychuk: ckknight: added two more plugins today [23:20] tjholowaychuk: a remote logger (with redis) and an exception mailer [23:21] ckknight: very needed things. [23:23] tim_smart has joined the channel [23:24] jimt has joined the channel [23:25] timmywil has joined the channel [23:28] WRAz has joined the channel [23:28] mikeal has joined the channel [23:28] hwinkel has joined the channel [23:29] rubicon has joined the channel [23:29] k1ttty has joined the channel [23:29] rubicon: Hello! [23:30] rubicon: just found out about Node.js through a friend... gunna probably get to work on learning that this week ^_^ [23:30] rubicon: anyone here use Node.js currently? [23:30] sorens3n: i think we all are [23:30] halfhalo: or are we.... [23:30] sorens3n: :D [23:30] halfhalo: 0_o [23:30] rubicon: oh lol :D [23:30] sorens3n: well, i mean it is #node.js after all [23:31] rubicon: rofl [23:31] sorens3n: just being funny [23:31] rubicon: well i mean, i think my question was poorly worded [23:31] sorens3n: its been a good day [23:31] sorens3n: hehe :P [23:31] rubicon: :D [23:31] sorens3n: anyone want to be a dnode guinea pig? [23:32] rubicon: :o what's that entail? [23:32] sorens3n: http://darkteal.org:3000/ [23:32] sorens3n: going there [23:32] sorens3n: lol [23:32] dgathright_ has joined the channel [23:32] sorens3n: its a chat app [23:32] maushu has joined the channel [23:32] rubicon: promise you wont hack me -___- [23:32] sorens3n: promise [23:32] techwraith: lol [23:32] rubicon: :/ [23:33] rubicon: well... ok then *takes the plunge* [23:33] rubicon: wow sorens, this is cool [23:33] rubicon: im in the node.js chat [23:35] techwraith: I'm still toying with making a web based irc client with node [23:36] mikeal: i'm hungry [23:36] techwraith: mikeal: me too [23:36] mikeal: i'm in lower nob hill [23:36] mikeal: i don't know where any of the food is around here [23:37] mikeal: ryah_: you hungry? let's get some food, i'm kinda near you :) [23:37] mikeal: if you are at the office [23:37] rubicon: im just g etting started with node.js, how long do you think it will take to make a client like sorens? [23:37] mikeal: if you're at home then i don't wanna get food with you [23:37] sorens3n: aha [23:37] sorens3n: thanks [23:37] sorens3n: got a phone call sorry [23:37] rubicon: got a phone call aka hacked my computer :( [23:37] mikeal: techwraith: you just have to wait till 6 :) [23:37] mikeal: then food will just appear in front of you [23:38] rubicon: :P [23:38] JimBastard has joined the channel [23:38] JimBastard: hey mscdex , can you use ncurses to plot x y points on a canvas like object in the terminal? then update that with a high refresh rate? [23:38] techwraith: Mikeal: That's the awesomeness of working at Yammer for ya ;) [23:39] balaa has joined the channel [23:39] mscdex: JimBastard: ermm... the best you can do is line graphics, that's about it [23:39] ezmobius has joined the channel [23:39] gJ|Alex has joined the channel [23:39] mscdex: besides regular text [23:39] JimBastard: mscdex: you can plot points on a x / y grid? [23:39] JimBastard: like a square? [23:39] JimBastard: can't* [23:40] mscdex: well, i suppose you could use "." or "o" for a point [23:40] mscdex: and plot using that [23:41] mscdex: ncurses is character based, not pixel based, so you'd have to have a pretty small scale to get good precision [23:41] JimBastard: any idea on the refresh rates you can get? [23:41] techwraith: Mikeal: Looks like Louisiana Fried Chicken and Garlic Mash tonight :) [23:41] mscdex: i'd imagine pretty decent [23:41] JimBastard: will it flicker? [23:41] mscdex: mape was going some realtime refreshing stuff awhile back [23:41] mikeal: techwraith: fuck you man :) [23:42] JimBastard: with ncurses? [23:42] mscdex: *doing [23:42] rfay_afk has joined the channel [23:42] mscdex: yeah [23:42] JimBastard: cool [23:42] sorens3n: aha [23:42] sorens3n: thanks for testing [23:42] mikeal: if i wasn't lazy i woul djust ride by bike to the office :) [23:42] mikeal: techwraith: is it from marlowe again? [23:42] sam0t has joined the channel [23:42] mikeal: or somewhere else [23:42] mscdex: JimBastard: with ncurses you can manipulate a virtual layer and then update to the physical screen [23:42] sorens3n: techwraith / rubicon [23:42] techwraith: I think so [23:43] mscdex: JimBastard: doing that is much more efficient [23:43] jaxdahl has joined the channel [23:43] rubicon: hey srry i was afk [23:43] sorens3n: same, got a phone call as soon as you guys went lol [23:43] rubicon: oh lol [23:43] rubicon: dude, your site is awesome [23:43] sorens3n: ah thanks [23:43] rubicon: that's kinda what my goal is for learning node.js [23:43] rubicon: ^_^ [23:43] sorens3n: this is build primarily with dnode / backbone [23:43] linkmauve has joined the channel [23:44] sorens3n: using pub/sub through dnode [23:44] techwraith: sorens3n: Is there any persistance? [23:44] no-gooder has joined the channel [23:44] sorens3n: yes, using visionmedia/keys [23:44] sorens3n: the redis is bugged at the moment [23:44] rubicon: at the moment, i am too noob to know what those are [23:44] sorens3n: but its on Memory right now [23:45] sorens3n: keys is a key storage interface to redis/mongo/memory/nStore/riak [23:45] tjholowaychuk: is irc-js dude in here? [23:45] sorens3n: which provides a standard API [23:45] sorens3n: thank tjholoway for that [23:45] sorens3n: :) [23:45] tjholowaychuk: sorens3n: is it? I havent touched it in a while [23:45] sorens3n: its alllmost the same [23:45] techwraith: lol, we have to thank tjholowaychuk for almost everything. [23:45] tjholowaychuk: to be honest i dont use it haha i wanted to use it for a unified session store [23:45] no-gooder: i get an error somethin like : xhr -multipart message handle error [23:46] no-gooder: what is it ? [23:46] sorens3n: as in, memory returns a buffer, redis doesnt [23:46] techwraith: (well, for most the modules that I use anyways) :) [23:46] sorens3n: ah i really like it man, makes it very clean [23:46] sorens3n: thanks much [23:46] sorens3n: http://darkteal.org:3000/ [23:46] sorens3n: is running on Keys [23:46] sorens3n: and express too of course ;) [23:47] mscdex: tjholowaychuk: gf3 pops in occasionally [23:47] tjholowaychuk: haha sweet :D [23:47] tjholowaychuk: mscdex: ah thanks [23:47] tjholowaychuk: wondering how to disable the logging [23:47] tjholowaychuk: if possible (hope so) [23:47] mscdex: out of curiousity, what problem were running into with node-irc? [23:48] hlindset has joined the channel [23:48] hlindset has joined the channel [23:48] Charuru: tjholowaychuk: just curious and hope you don't mind me asking, but why did learnboost decide to invest so heavily into node? [23:48] Kholoa has joined the channel [23:48] tjholowaychuk: just weird api design [23:48] Charuru: just for funsies? [23:48] tjholowaychuk: and logging that is enabled by default haha [23:48] [[zzz]] has joined the channel [23:48] tjholowaychuk: Charuru: I wasn't around at the beginning so im not 100% sure, but we have a lot of realtime stuff planned [23:48] tjholowaychuk: so that was obviously most of the motiviation [23:49] tjholowaychuk: plus hiring js devs that can work on the server / client no problem is great [23:49] Charuru: ahh ok, cool, yeah me too :) [23:50] Charuru: that answer was rather more normal than i had thought it might be, i dunno why but i expected something more arcane lol [23:50] binarypie has joined the channel [23:51] deedubs: tjholowaychuk: I'm trying to use cluster with capistrano for deploy and the reload plugin seems to disagree with running from a symlinked dir. Does that seem possible? [23:51] binarypie has joined the channel [23:52] tjholowaychuk: deedubs: possibly yeah, not sure how the watchers react to symlinks, I would use reload() for dev though, not production [23:52] MikhX has joined the channel [23:52] deedubs: ah okay [23:52] tjholowaychuk: cluster restarts on its own, reload() is just mainly for development with a hard restart [23:52] tjholowaychuk: so you dont have to wait [23:52] tjholowaychuk: for connections to close [23:52] deedubs: 'cluster restarts on its own'? [23:53] tjholowaychuk: without the reload() plugin you can still restart [23:53] tjholowaychuk: SIGUSR2 [23:53] deedubs: yeah [23:53] tjholowaychuk: or the repl / cli [23:53] secoif has joined the channel [23:54] deedubs: I think that running from a symlink'd dir messes up as well [23:54] graysky has joined the channel [23:54] deedubs: havent tested extensively, just using upstart commands for now [23:54] tjholowaychuk: hmm, let me know if you have any debug output that I can see if you get a stack [23:54] graysky has left the channel [23:54] deedubs: for sure [23:56] deedubs: luckily the app restarts very very fast atm [23:57] tjholowaychuk: ours is huge and its not very bad [23:57] balaa has joined the channel [23:57] dgathright has joined the channel [23:58] EyePulp: if I require a module twice, aren't I creating two separate instances of whatever it returns each time? [23:59] EyePulp: modules are limited to their own scope, except for what they export, no?