[00:00] niftylettuce has joined the channel [00:01] azeroth__ has joined the channel [00:02] tshpaper has joined the channel [00:04] stepheneb has joined the channel [00:06] timmywil has joined the channel [00:08] materialdesigner has joined the channel [00:09] ParadoxQuine has joined the channel [00:09] dantalizing has joined the channel [00:09] dantalizing has joined the channel [00:11] tonymilne: https://github.com/baudehlo/Haraka/blob/master/docs/Tutorial.md [00:12] tonymilne: Looks like you make a plug in and add a hook for rcpt (receipt) [00:12] tonymilne: exports.hook_rcpt = function (next, connection, params) { ... }) [00:12] Dinosaurus has joined the channel [00:12] Chani: so, ah, I discovered something Bad about https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager [00:13] Chani: the instructions for opensuse seem to have installed version 8 of some sip module [00:13] Chani: and calibre insists it requires version 7 [00:13] Chani: so node.js broke my calibre :( [00:13] Marak has joined the channel [00:14] aguynamedben has joined the channel [00:14] Chani: does anyone have any idea how I can get them to coexist? [00:14] podman has joined the channel [00:14] davidwalsh has joined the channel [00:14] Dinosaurus has left the channel [00:14] azeroth___ has joined the channel [00:16] segdeha has left the channel [00:18] [[zz]] has joined the channel [00:18] dguttman_ has joined the channel [00:19] davidban_ has joined the channel [00:22] cummingscm1 has joined the channel [00:26] cummingscm has joined the channel [00:29] gavin_huang has joined the channel [00:30] hermanjunge has joined the channel [00:32] themiddleman_itv has joined the channel [00:32] rain_ has joined the channel [00:33] Ken has joined the channel [00:33] sh1mmer has joined the channel [00:35] paul_k has joined the channel [00:37] lukstr: ryah: have you given much thought to adding chroot? [00:38] sh1mmer: lukstr: process.chdir() [00:39] F1LT3R has joined the channel [00:39] sh1mmer: you could do that with a child process [00:39] lukstr: sh1mmer: heh, yeah I know [00:39] sh1mmer: lukstr: also, I don't think ryan is really online [00:40] lukstr: I'm more interested in what ryah thinks about including chroot as per https://github.com/joyent/node/pull/737 [00:40] _jgr has left the channel [00:41] dgathright has joined the channel [00:45] hugs_ has joined the channel [00:46] jslatts has joined the channel [00:47] mikeal1 has joined the channel [00:47] user___ has joined the channel [00:48] saschagehlich has joined the channel [00:50] temp01 has joined the channel [00:50] bad_at_math has joined the channel [00:52] baudehlo has joined the channel [00:52] jacter has joined the channel [00:53] k1ttty has joined the channel [00:55] jacter has left the channel [00:59] saschagehlich has joined the channel [01:01] jakehow has joined the channel [01:02] webster has joined the channel [01:03] webster has joined the channel [01:03] jslatts has joined the channel [01:05] bentruyman has joined the channel [01:06] slpixe has joined the channel [01:06] ezmobius has joined the channel [01:08] Ken has joined the channel [01:09] abraxas has joined the channel [01:11] AaronMT has joined the channel [01:11] Bradleymeck has joined the channel [01:12] digman543 has joined the channel [01:13] jtsnow has joined the channel [01:14] fr0stbyte has joined the channel [01:14] brimster has joined the channel [01:14] AaronMT has joined the channel [01:15] paul_irish has joined the channel [01:16] cjm_ has joined the channel [01:17] AvianFlu has joined the channel [01:18] F1LT3R_ has joined the channel [01:18] Ken has joined the channel [01:18] `steve has joined the channel [01:20] `steve: Hey, was wondering which was the better method for coercing an integer (as in the truthy values returned by redis) to a boolean: !!x or Boolean(x). [01:20] F1LT3R__ has joined the channel [01:20] `steve: I'm fairly sure the first method is faster, but it's possibly less readable to folks who don't spend all their time playing with JS. [01:21] fr0stbyte has joined the channel [01:22] justinTNT: ACTION takes a second long, slow, deep breath ... [01:23] skm has joined the channel [01:23] skm has joined the channel [01:24] skm has joined the channel [01:24] skm has joined the channel [01:24] hij1nx has joined the channel [01:26] isaacs: `steve: i'm a fan of using !! [01:26] isaacs: `steve: or !== 0, since that's actually what you mean :) [01:27] `steve: Fair enough, yeah, that's probably better for this specific case. [01:27] ji0n_ has joined the channel [01:27] markstory has joined the channel [01:29] dguttman has joined the channel [01:29] samyak has joined the channel [01:29] isaacs: lukstr: i think chroot will not land in node-core any time soon [01:30] Ken has joined the channel [01:30] jkridner: I can't figure out why ioctl isn't part of the standard I/O functions of node.js. [01:30] fakewaffle has joined the channel [01:30] isaacs: lukstr: you can chroot the node process itself when you start it [01:30] patcito has joined the channel [01:30] stepheneb has joined the channel [01:30] lukstr: isaacs: cool, I didn't think it belonged there anyways. [01:30] fakewaffle: howdy [01:31] lukstr: jkridner: freopen would actually be pretty great [01:31] idefine has joined the channel [01:31] jkridner: I've seen a couple of attempts at creating some native libraries for talking to serial ports, ttys, etc., but I don't understand why the ioctl portion isn't just exposed and have the others stuff implemented in JS. [01:31] jkridner: freopen, eh? [01:32] jkridner: I'm trying to do a quick demonstration of opening up various device drivers in Linux, so I need to be able to send ioctls and possibly syscalls. [01:32] lukstr: jkridner: yeah, currently you can't control how other modules use stdout or stderr, it would make it trivial to actually do sane things with them [01:33] lukstr: i.e. if you want to use stderr/stdout but something else is writing terrible crap [01:33] jkridner: right. [01:33] gtramont1na has joined the channel [01:33] lukstr: jkridner: does it map well to windows [01:33] jkridner: no. [01:34] jkridner: you mean windows the OS, right? [01:34] lukstr: yes :P [01:34] lukstr: jkridner: you could always wrap it in a module [01:34] jkridner: yeah, I'm talking about creating non-portable code. [01:34] wadey has joined the channel [01:35] jkridner: just looking if anyone else is doing it before I start. [01:35] jkridner: getting advice on the right way to approach it, if anyone has any. [01:35] AvianFlu has joined the channel [01:35] lukstr: ACTION is fresh out [01:37] ngs has joined the channel [01:38] briznad has joined the channel [01:40] tauren has joined the channel [01:41] fakewaffle: if (typeof someVar === 'function') {...}. Is this ok to do? [01:41] fakewaffle: im scared of typeof [01:41] SubStack: typeof is great [01:42] SubStack: I've had problems with instanceof though [01:42] davidascher has joined the channel [01:44] tmfkmoney has joined the channel [01:45] digman543 has joined the channel [01:45] chjj: typeof v === 'function' is fine [01:46] MooGoo: == [01:46] AvianFlu has joined the channel [01:46] brainproxy: Crockford has a helpful expanded typeof available [01:46] chjj: imo typeof is fine altogether if you know what to look for [01:47] brainproxy: http://javascript.crockford.com/remedial.html [01:47] MooGoo: crockford sucks [01:47] brainproxy: http://pastie.org/2011645 [01:47] dyer has joined the channel [01:47] dyer has joined the channel [01:48] brainproxy: I use plain typoef wherever I can, but if I really need to know whether an argument is an array, his typeOf comes in handy [01:50] sheenobu has joined the channel [01:51] themiddleman has joined the channel [01:51] jslatts: if I am trying to write my functions using CPS, should I return the result of the callback call or undefined in a function? [01:51] jslatts: e.g.: return fn && fn(someValue); [01:51] jsulak has joined the channel [01:51] brainproxy: jsulak: are you using a particular CPS library? [01:51] temp01 has joined the channel [01:51] jslatts: or fn && fn(someValue); return; [01:51] jslatts: brainproxy: no, just writing my own [01:52] tahu has joined the channel [01:52] brainproxy: JooseX-CPS can run in standalone mode if you want to use its CPS facilities w/o actually writing code that makes use of the Joose class system [01:52] ryanmcgrath has joined the channel [01:53] brainproxy: studying Nickolay's code might give you some inspiration too, for your own [01:53] Pilate has joined the channel [01:53] jslatts: brainproxy: i have seen both styles, I guess I am just trying to figure out if one is bad for any reason [01:53] sheenobu: got some good form validation going. Can I get some comments/critiques? [01:53] brainproxy: jslatts: see http://samuraijack.github.com/JooseX-CPS/doc/html/JooseX/CPS.html [01:53] sheenobu: http://pastie.org/2011665 [01:54] sheenobu: actually I'll throw up the module code on a gist [01:54] jslatts: brainproxy: interesting. totally different than what I am doing [01:55] bwinton has joined the channel [01:55] bartt has joined the channel [01:55] azeroth___ has joined the channel [01:56] sheenobu: here is the module code with the examples https://gist.github.com/1005722 [01:57] boaz has joined the channel [01:57] ack has joined the channel [01:58] sheenobu: I'm happy with the interface but unhappy with the implementation code -_- [01:59] boaz has joined the channel [02:00] timmywil has joined the channel [02:01] jamey-uk has joined the channel [02:03] Bradleymeck has joined the channel [02:04] Azeroth__ has joined the channel [02:05] fakewaffle: chjj: thanks [02:07] Azeroth___ has joined the channel [02:07] jmoyers: sheenobu it'd be nice if the form 'definition' wasn't inline in the logic [02:08] Me1000 has joined the channel [02:08] jmoyers: it'd be nice if it was organized as a middleware, and you could use server.post() instead of server.all with server.form( 'post' ) inside all [02:10] briznad has joined the channel [02:11] Renegade001 has joined the channel [02:11] Azeroth____ has joined the channel [02:11] digman543 has left the channel [02:13] Nican has joined the channel [02:14] niles|iPod has joined the channel [02:16] fakewaffle has joined the channel [02:17] kersny has joined the channel [02:18] digman543 has joined the channel [02:20] dyer_ has joined the channel [02:20] dyer_ has joined the channel [02:21] patcito has joined the channel [02:22] Pilate has joined the channel [02:23] sheenobu: jmoyers: hrm [02:25] sheenobu: I'll have to brush up on how to code middleware. So 1) do like a form.register("formName") { definition } and then So you would have something like app.get('/',form("formName") to insall the form as middleware? [02:26] ji0n_ has joined the channel [02:26] sheenobu: server.form('post') makes 'post' the form name, it has nothing to do with HTTP POST [02:27] kriszyp has joined the channel [02:27] flippyhead_ has joined the channel [02:29] jmoyers: sheenobu hmm [02:29] jmoyers: i see [02:29] jmoyers: poking around [02:29] jmoyers: this is more what i was talking about [02:29] jmoyers: https://github.com/dandean/express-form [02:29] jmoyers: form() returns a middleware function [02:30] jmoyers: and attached a form object to the request [02:30] brownies has joined the channel [02:30] sheenobu: ooo I like that [02:30] jmoyers: has the concept of defining fields, validation, and attaches it to the request object, all parsed and ready to go [02:31] jmoyers: that way there's a nice seperation of concerns -- the request handler has business logic -- the form middleware handles structure and input validation [02:32] sheenobu: I see [02:32] jmoyers: though [02:32] jmoyers: to be honest [02:32] jmoyers: i wouldn't write my own validation [02:32] jmoyers: there's a nice enough module out there for comon tasks [02:32] sheenobu: you are talking about node-validator? [02:32] jmoyers: thats one, yeah [02:33] edgarallanpoe has joined the channel [02:33] jmoyers: i'd probably integrate, or accept that kind of signature [02:33] sheenobu: Haven't been working on nodejs long. Built my personal site in it and I'm wanting to flesh it out with some forms so I was looking into form validation. [02:33] sheenobu: Didn't find an existing solution -_- [02:33] jmoyers: well [02:34] jmoyers: modules are scattered, but i usually start with an npm search [02:34] megatx has joined the channel [02:34] jmoyers: and there's no harm in implementing something like that [02:34] tbranyen: the module page is good too [02:35] gf3: mape's npm listing thinger [02:35] gf3: is good [02:35] davidascher has joined the channel [02:35] gf3: npm.mape.me or something [02:36] gf3: sheenobu ^ [02:36] fakewaffle_ has joined the channel [02:36] jmoyers: wow... [02:36] jmoyers: does that REALLY load all the modules from the entire registry? [02:36] sheenobu: whoa [02:36] jmoyers: that seems a little heavy handed ;-) [02:37] tbranyen: probably a few megs easy [02:37] megatx has joined the channel [02:37] jmoyers: heh [02:37] jmoyers: i hope it has a nice cache [02:37] jtsnow has joined the channel [02:38] jmoyers: or else its just humping the crap out of isaacs server [02:38] gf3: 1.79MB [02:38] ryankirkman has joined the channel [02:38] levi501d has joined the channel [02:38] gf3: jmoyers: it's cached after first load [02:39] gf3: REGARDLESS [02:39] jmoyers: per client? [02:39] gf3: it's a nice interface [02:39] jmoyers: aye, beautiful design ;-) [02:39] jmoyers: pagination isn't the enemy though [02:40] Me1000 has joined the channel [02:40] sheenobu: does express-form touch the templating at all, or is that up to the library user? [02:41] jmoyers: library user almost certainly [02:42] sheenobu: meh there is just little mention of how to get validation messages to the context. I guess it's req.form.errors ? [02:43] jmoyers: yes [02:44] jmoyers: sheenobu also looks like it has an option [02:44] jmoyers: to expose as locals automatically [02:44] jmoyers: 'autoLocals' [02:45] megatx: can i ask stupid questions here? [02:45] megatx: like really stupid [02:45] megatx: like what does .require() do [02:45] megatx: is that lik an import [02:46] tbranyen: require is global [02:46] tbranyen: no . [02:46] tbranyen: and yeah it imports modules [02:46] megatx: just modules? can i use it to import a local .js script [02:46] jmoyers: megatx http://nodejs.org/docs/v0.4.8/api/modules.html [02:47] megatx: oh so modules are just .js scripts [02:47] jmoyers: yes [02:47] megatx: see i told you my questions are stupid [02:47] jmoyers: but they have a syntax for exposing things [02:47] jmoyers: exports. [02:47] megatx: what do you mean [02:47] wookiehangover has joined the channel [02:47] jmoyers: i mean, if you want something to be available [02:47] jmoyers: you hang it off the global exports object [02:47] jmoyers: see the circle.js example [02:48] jmoyers: on that modules page [02:48] megatx: yea [02:48] jmoyers: and its not actually 'globa; [02:48] jmoyers: global [02:48] jmoyers: its an object that gets handed to it when you require(''); it [02:48] chjj: yeah, each module gets its own require function [02:49] megatx: so whats the difference between exporting an anonymous module function and just importing a .js script with a name [02:49] ParadoxQuine has joined the channel [02:49] edgarallanpoe: i want to repeatedly retrieve a value from a web page (the same one, over and over, at least once per second). is node.js an appropriate tool for this? [02:49] jmoyers: megatx you can't just import any old js file per se [02:49] jmoyers: in html, you can [02:49] jmoyers: or rather, in the browser context [02:49] megatx: ok [02:49] jmoyers: in node, each module has its own context [02:50] chjj: edgarallanpoe: yes, node is a good tool for that [02:50] edgarallanpoe: ok thanks chjj, i was hoping you'd say that. been looking for an excuse to play do a small node project for fun [02:50] edgarallanpoe: any advice on where to look? i am starting here: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs [02:51] jmoyers: edgarallanpoe https://github.com/mikeal/spider [02:52] edgarallanpoe: jmoyers: thanks, i saw that it looked a bit heavy. my requirements are just that there is one value behind an authentication wall that i want to keep retrieving. the spider seems to be... well, a full spider. [02:52] edgarallanpoe: jmoyers: should i sitll be looking at that? [02:52] slickplaid: Is EJS not included in a default install of express? [02:52] jmoyers: you can [02:52] jmoyers: jsdom IS heavy [02:52] jmoyers: you can look at what spider is built on [02:52] jmoyers: mikeals request module [02:52] chjj: slickplaid: no templating engine is included with express [02:52] chjj: slickplaid: which is good [02:53] jmoyers: if you just want to grab the page and feel comfortable parsing the value [02:53] jmoyers: https://github.com/mikeal/request or just use the standard node http methods [02:53] slickplaid: Ah okay :) Thanks [02:54] edgarallanpoe: (i've never done anything with node, this is my first foray into it -- is handling authentication and passing the cookies in subsequent requests relatively straightforward in "standard node http methods"? [02:54] niles|iPod has joined the channel [02:54] jmoyers: uh [02:54] jmoyers: its 'straightforward' yes [02:54] jmoyers: if you understand http headers and how to parse them [02:55] jmoyers: request handles cookies and such automatically as of recently [02:55] jmoyers: if im not mistaken [02:55] levi501d has joined the channel [02:55] edgarallanpoe: ok thanks jmoyers [02:56] tahu has left the channel [02:56] tahu has joined the channel [02:56] justinTNT: ACTION takes a second long, slow, deep breath ... [02:56] jmoyers: i wonder if v8bot would let me modify Object.prototype [02:57] jmoyers: and be a bad javascript citizen [02:57] pifantastic has joined the channel [02:57] slickplaid: Quick noob question... trying to use EJS w/express: Is there a way to <% partial() %> include a partial in the ejs source? [02:57] isaacs: jmoyers: doesn't matter. each script is run in a separate context. [02:57] jmoyers: ah [02:57] isaacs: jmoyers: inimino is sharp :) [02:57] jmoyers: that makes sense [02:57] isaacs: v8: Object.prototype.foo = "bar" [02:57] v8bot: isaacs: "bar" [02:57] isaacs: v8: Object.prototype.foo [02:57] v8bot: isaacs: undefined [02:58] jmoyers: indeed [02:58] jmoyers: no script context graffiti [02:58] slickplaid: I tried doing this: http://embeddedjs.com/examples/partials.html but it doesn't seem to work. :-/ [02:58] Dinosaurus has joined the channel [03:00] Viriix has joined the channel [03:00] Dinosaurus has left the channel [03:00] niles|iPod has joined the channel [03:01] rputikar has joined the channel [03:02] mynyml has joined the channel [03:03] up_the_irons has joined the channel [03:03] abraxas: With an HttpResponse after doing http.request(), is it appropriate to call response.destroy() when receiving say a 404, and you don't care about the data? [03:04] abraxas: ClientResponse I mean [03:04] broofa has joined the channel [03:04] sstephenson: you can just ignore the data events [03:04] jspiros has joined the channel [03:05] abraxas: Okay [03:05] abraxas: A followup question to that, [03:06] abraxas: To set the encoding, one has to tell this to the response object. Isn't it technically possible that when you call response.setEncoding (or on('data') for that matter), the first data event was already thrown? [03:06] abraxas: iow: race condition. [03:07] darshanshankar has joined the channel [03:08] ceej has joined the channel [03:08] dipser has joined the channel [03:09] tbranyen has joined the channel [03:09] boaz has joined the channel [03:10] sstephenson: not if you're in the request() callback. but if you do some async operation there and then try to set up the response, you may have missed events [03:11] cafesofie has joined the channel [03:12] blueadept: anybody seen marcello3d around lately? [03:12] btipling has joined the channel [03:13] Gurpartap has joined the channel [03:13] fakewaffle has joined the channel [03:14] roger_raymond has joined the channel [03:14] gf3: sstephenson: oh hai! [03:15] blueadept: anyone know how you can pipe a file from a url? [03:16] gf3: blueadept: curl? [03:16] blueadept: nah already did that [03:16] saschagehlich has joined the channel [03:17] blueadept: wait, i think i figured it out just now, n/m [03:18] Ken has joined the channel [03:18] mr-black has joined the channel [03:19] davidban_: Is there a particular disadvantage to adding a lot of listeners to an event emitter? Like, thousands? [03:19] gf3: davidban_: is there an advantage? [03:21] davidban_: gf3: The only other way I can think of doing it is to hook up a key value store or similar. Provided adding a whole heap of listeners won't ruin my performance I think it'll simplify my design. [03:21] CIA-1 has joined the channel [03:22] Yuffster has joined the channel [03:22] idefine has left the channel [03:24] pandeiro has joined the channel [03:24] xhp637 has joined the channel [03:24] xhp637 has left the channel [03:25] ditesh|cassini has joined the channel [03:25] philtor has joined the channel [03:26] zacharyc has joined the channel [03:26] zacharyc has left the channel [03:26] jacobolus has joined the channel [03:27] zacharyc has joined the channel [03:28] springmeyer has joined the channel [03:32] sechrist has joined the channel [03:35] kriszyp has joined the channel [03:37] mikeal has joined the channel [03:37] christopherbull: can anyone explaing to me the difference between the rcpt and data hooks in Haraka? [03:38] paul_irish has left the channel [03:38] christopherbull: *explain - english is actually my first language :sigh [03:38] cafesofie has joined the channel [03:38] niles|iPod has joined the channel [03:39] monokrome has joined the channel [03:40] ghost has joined the channel [03:43] davidban_: It's possible I'm doing it wrong, but is there a good way to share nodejs events between multiple node processes? [03:44] charlesjolley- has joined the channel [03:44] mjr_: davidban_: a lot of people use dnode for that [03:44] _jgr has joined the channel [03:46] davidban_: mjr_: Thanks, I'll look into it futher. On first read, though, it seems to be targeted towards interaction between server and browser, rather than multiple servers. [03:47] davidban_: Is that correct or am I missing something? [03:47] mjr_: That's certainly a clever application of it [03:47] mjr_: But it works well server to server [03:47] _jgr has left the channel [03:47] davidban_: mjr_: Awesome, I'll read further. Thanks. [03:47] Qbix2 has joined the channel [03:47] mjr_: And the venerable SubStack is usually around on IRC as well. [03:47] ryan[WIN] has joined the channel [03:49] davidban_: mjr_: One of the things I really like about this community. If you have a question about somthing you can often ping the person that wrote it pretty easily! [03:49] brraaains has joined the channel [03:52] beriberikix has joined the channel [03:52] tilgovi has joined the channel [03:52] tilgovi has joined the channel [03:53] zacharyc: can anyone help me with an install of node.js from source? I'm running into an issue making libeio [03:53] sh1mmer has joined the channel [03:54] davidban_: zacharyc: What error are you seeing? [03:54] LowValueTarget has joined the channel [03:54] LowValueTarget has joined the channel [03:55] fakewaffle has joined the channel [03:55] zacharyc: {task: cc eio.c -> eio_1.o} [03:55] Viper-7 has joined the channel [03:55] _jgr has joined the channel [03:55] zacharyc: also complaining a bit about --arch flag... [03:56] zacharyc: don't know if that is related. [03:57] davidban_: zacharyc: Can you post the full output as a pastebin? [03:58] Ken has joined the channel [03:59] zacharyc: http://pastebin.com/nA2C4Baz [03:59] fakewaffle has joined the channel [04:00] Aria has joined the channel [04:01] EyePulp has joined the channel [04:02] davidban_: zacharyc: Strange. What commands have you issued up until that point? Do you get better results just following the plain instructions here: https://github.com/joyent/node/wiki/Installation ? [04:02] zacharyc: those are instructions I'm following [04:03] abraxas: How do you turn a module into an event emitter? [04:03] abraxas: Are there any good examples around? [04:03] chjj: abraxas: util.inherits(MyConstructor, EventEmitter) [04:04] chjj: and then in your constructor: EventEmitter.call(this) [04:04] abraxas: But it's a module.. [04:04] darshanshankar has joined the channel [04:04] abraxas: I can only use exports, right? [04:04] chjj: sorry? [04:04] chjj: you can expose a constructor [04:04] chjj: module.exports = function() {}; [04:04] abraxas: Ah, cool [04:05] jacter has joined the channel [04:05] tylerstalder has joined the channel [04:08] abraxas: Would that not do the same as: module.exports = new EventEmitter(); ? [04:09] brownies has joined the channel [04:09] davidascher has joined the channel [04:11] Me1000 has joined the channel [04:11] Adman65 has joined the channel [04:13] yhahn has joined the channel [04:16] _jgr has joined the channel [04:16] Aria: That'd do for a bare even emitter, not a subclass, abraxas [04:16] ryankirkman_ has joined the channel [04:16] c4milo has joined the channel [04:17] SubStack: mjr_: and lo, here I am! [04:18] SubStack: ACTION has dnode on highlight [04:18] Oryx has joined the channel [04:18] SubStack: davidban_: http://substack.net/posts/9bac3e/Roll-your-own-PubSub-with-DNode [04:21] davidban_: SubStack: Thanks! I actually already saw it linked from one of your other pages and put it in my "to read soon" pile. Thanks for taking the time to write it. [04:24] themiddleman has joined the channel [04:24] skm has joined the channel [04:24] brianseeders has joined the channel [04:25] skm has joined the channel [04:25] skm has joined the channel [04:25] skm has joined the channel [04:26] skm has joined the channel [04:26] skm has joined the channel [04:27] cafesofie has joined the channel [04:27] skm has joined the channel [04:27] skm has joined the channel [04:28] herbySk has joined the channel [04:28] fakewaffle has joined the channel [04:28] skm has joined the channel [04:28] skm has joined the channel [04:29] darshanshankar: woot got my nodejitsu beta invite haha [04:29] skm has joined the channel [04:30] skm has joined the channel [04:30] skm has joined the channel [04:32] hermanjunge has joined the channel [04:33] harth has joined the channel [04:34] amerine has joined the channel [04:34] slloyd_ has joined the channel [04:36] Vladimir_ has left the channel [04:36] amerine has joined the channel [04:37] jacobolus has joined the channel [04:38] cafesofie has joined the channel [04:38] pifantastic has joined the channel [04:44] Rodtusker has joined the channel [04:45] jacter has joined the channel [04:47] AvianFlu has joined the channel [04:50] __class__ has joined the channel [04:51] caolanm_ has joined the channel [04:51] caolanm_ has joined the channel [04:56] cafesofie has joined the channel [04:56] pplante has joined the channel [04:58] cha0s has joined the channel [04:58] cha0s has joined the channel [05:01] nornagon has left the channel [05:01] darshanshankar has joined the channel [05:02] brraaains: there a good module for going from xml to json? [05:03] sh1mmer: brraaains: you can't really do that [05:03] gf3: see JSONx [05:03] sh1mmer: the semantics are wrong [05:03] gf3: ORLY [05:03] brraaains: you def can go from xml to json [05:03] sh1mmer: ACTION sighs [05:03] sh1mmer: you can sort of do it [05:04] darshanshankar: brraaains: iirc there's a module like xml2js or something in npm [05:04] sh1mmer: but the modeling doesn't work properly [05:04] sh1mmer: e.g. an XML item of one doesn't imply a list [05:04] sh1mmer: but it might be a list with different data [05:04] sh1mmer: so you get really shitty JSON that requires lots of error handling code [05:05] brraaains: thanks darshanshankar [05:06] markbao has joined the channel [05:06] brraaains: i thought i tried to install that but it said it wasnt a package in npm. apparently it is lol [05:06] tauren has joined the channel [05:07] aakour has joined the channel [05:08] brraaains: sh1mmer how could you not go from xml to json. they are basically the same thing just json cuts all the fat [05:09] sh1mmer: brraaains: json has implied semantics [05:09] sh1mmer: because it has metadata [05:09] sh1mmer: e.g. json objects conform to typeof [05:09] sh1mmer: XML doesn't have those implied semantics [05:09] sh1mmer: you could make XML that did [05:09] sh1mmer: but generic XML doesn't [05:09] jacobolus has joined the channel [05:10] sh1mmer: Say you have two sets of data foo -> { myList: foo [05:10] sh1mmer: } [05:11] sh1mmer: foobar -> { myList : ['foo', 'bar'] } [05:11] sh1mmer: see the point? [05:11] sh1mmer: you can't tell from the first XML that it's actually a list [05:11] darshanshankar: markbao: gratz on the onswipe! [05:11] markbao: :) thanks! [05:11] bad_at_math has joined the channel [05:12] SubStack: you can use xml schemas but those are a whole bag of worms themselves [05:13] __main__ has joined the channel [05:13] mike5w3c has joined the channel [05:14] Marak has joined the channel [05:14] brraaains: wouldn it actually be { [05:14] brraaains: mylist:{ [05:14] brraaains: item:[ [05:14] brraaains: 'foo', [05:14] brraaains: 'bar' [05:14] brraaains: ] [05:14] brraaains: } [05:14] Marak: ... [05:14] itissid has joined the channel [05:14] brraaains: } [05:14] brraaains: looks like a list of items to me lol [05:15] Marak: jesus christ [05:15] Marak: dont do that [05:15] Marak: is there anyone who moderates the nodejs google group in here? i think my friends post might have got flagged as spam [05:15] brettgoulder has joined the channel [05:16] markbao has joined the channel [05:17] brraaains: don't do what marak? [05:17] mscdex: don't think the cake is not a lie [05:17] mscdex: :-D [05:17] brraaains: lol [05:18] Marak: brraaains: use https://gist.github.com/ [05:18] sh1mmer: brraaains: the point is that you can't tell the first thing with is a list unless you know it is [05:18] mscdex: you can make it always be a list [05:18] sh1mmer: so translating xml to json makes shitty json [05:18] mscdex: :p [05:19] sh1mmer: mscdex: if you are doing app specific coertion then sure, but then you might as well write a translation for that schema [05:19] boehm has joined the channel [05:20] mscdex: well, i mean for general/abitrary xml conversion [05:20] ryanmcgrath: boehm: Your first name isn't Matt, by any chance, is it? [05:20] mscdex: obviously if you know what you're going to be converting you'd just pull the parts into a much more convenient format [05:20] sh1mmer: mscdex: right [05:21] brraaains: and thats what i am doing lol [05:21] mscdex: brraaains: which one? [05:21] brraaains: i know what i am converting [05:21] mscdex: ah ok [05:22] mscdex: async xml parsers ftw! [05:22] tbranyen: sax ftw [05:22] brraaains: going from xml to json is just the lazy approach i guess lol. if you know its gonna work then might as well use it [05:22] caolanm_ has joined the channel [05:23] brraaains: unless you prefer xml [05:23] mscdex: ACTION shakes a fist at XML [05:23] Marak: thanks moderators! [05:23] Marak: :-) [05:23] Marak has left the channel [05:23] sh1mmer: brraaains: what I'm trying to say is that if you lazily convert you get ambiguity [05:23] sh1mmer: so you should dump it into an XML tree [05:23] sh1mmer: and then enforce semantics on it [05:23] caolanm has joined the channel [05:23] sh1mmer: so you get the right object out [05:24] leahculver has joined the channel [05:24] leahculver has joined the channel [05:24] rputikar has joined the channel [05:24] brraaains: so like xpath or something? [05:24] sh1mmer: whatever works for you [05:25] sh1mmer: but auto-conversion won't be able to know when a single item is a single item or a list [05:25] sh1mmer: so if you know you can force single item lists to act as lists [05:26] brraaains: why can't a single item be a list of a single item. its like an array of one item. it might be one thing but its still an array [05:27] sh1mmer: right, totally [05:27] sh1mmer: but XML doesn't express that [05:27] sh1mmer: you have to enforce that semantic by hand [05:27] brraaains: ah yeah i see what you are saying [05:28] sh1mmer: you can also do it with a DTD or a schema [05:28] sh1mmer: if you have one [05:28] brraaains: yeah [05:28] sh1mmer: but I haven't seen many tools that do that [05:28] k1ttty has joined the channel [05:32] jmoyers has joined the channel [05:32] brraaains: i don't know many people who right dtds lol. unless you are writing some serious xml or working for some company [05:32] brraaains: write* [05:33] brownies has joined the channel [05:35] jmoyers: brraaains java guy at my company [05:35] jmoyers: luuurves his dtds [05:35] jmoyers: 'i can validate whats being parsed!!' me: 'aaand...?' [05:35] brraaains: lol. well i understand the benefit of dtds. especially if you need validation [05:36] brraaains: but for me, my projects never require so much rigor so i'm like: "who cares?" lol [05:36] jmoyers: ACTION loves malformed html [05:36] brraaains: i know what my xml is gonna look like and i can validate it myself [05:37] unomi has joined the channel [05:37] matjas has joined the channel [05:38] brraaains: i have an odd obsession with parsing things. i find it fun. never took a compilers class though lol [05:38] beriberikix: for those of us who still have to live in XML hell, relaxng is a friendlier alternative [05:39] petrjanda has joined the channel [05:40] SubStack: xml makes me sad in the stack [05:43] tauren has joined the channel [05:45] jmoyers: well, no question about that [05:46] gkmngrgn has joined the channel [05:47] fakewaffle: stupid question: how do i convert text into html entities: <div class="clear-both"></div> [05:48] Lorentz: gf3: It's been a while since i worked on my irc bot [05:48] Lorentz: Thanks for the update on jerk, don't think I need my code anymore [05:48] gf3: Lorentz: wooo [05:48] charlesjolley- has joined the channel [05:48] pquerna: fakewaffle: escape? [05:48] gf3: Lorentz: let me know if there's anything you need [05:49] Lorentz: gf3: Sure will [05:49] pquerna: guess its not html entiteis really [05:50] TheEmpath has joined the channel [05:50] TheEmpath: In the middle of writing my game simulator, I realized that allowing people to claim ownership over a finite amount of virtual land in a real-time MMO pretty quickly plateaus. Ultimately, what I will need is a sine wave in the perception of how that land profits non-land owners, regardless of who owns it. Then I realized that sine wave is what we call Democracy. [05:50] fakewaffle: %3Cdiv%20class%3D%22clear-both%22%3E%3C/div%3E%0A [05:50] gf3: Lorentz: not to toot my own horn or anything, but I had to make a new bot the other day, and I surprised myself in that I had forgotten how easy it was to write them [05:50] gf3: haha [05:50] gf3: https://github.com/gf3/hackfest [05:51] pquerna: fakewaffle: http://phpjs.org/functions/htmlentities:425 [05:51] fakewaffle: no native support with ecma 5? :/ [05:51] aguynamedben has joined the channel [05:51] dgathright has joined the channel [05:52] gf3: fakewaffle: this is modified from somewhere else: https://github.com/gf3/protobot/blob/master/vendor/unescape/unescape.js [05:52] gf3: fakewaffle: avoid PHP.js [05:52] fakewaffle: gf3: thank you [05:56] TomY has joined the channel [05:56] Lorentz: gf3: Yep, it's pretty easy with jerk [05:56] Lorentz: Mine just adds mongodb and stuff for additional hilarity etc. [05:56] Lorentz: haven't touched it in a while though, poor bot [05:56] brraaains has left the channel [05:58] digman543: /quiet [05:58] digman543 has left the channel [05:58] jaket has joined the channel [05:59] Lorentz: and hotloading modules [05:59] gf3: mmm [05:59] gf3: I added some basic reloading stuff to protobot if you need any ideas [06:00] mechanate has joined the channel [06:01] Lorentz: gf3: You're reading the file, and parsing it through JSON.parse(), no? [06:01] justinTNT: fakewaffle: jsdom [06:01] vdemedes has joined the channel [06:01] gf3: Lorentz: yessir [06:01] Lorentz: I'm simply doing require() [06:01] coffeecup: is it possible to cancel a fileupload so that the client actualy stops uploading the file? [06:01] gf3: Lorentz: require is cached though, non? [06:02] Lorentz: There's a way to uncache it. [06:02] fakewaffle: justinTNT: eh? [06:02] vdemedes: coffeecup: res.end() ? [06:02] Lorentz: require.cache [06:03] catshirt has joined the channel [06:03] justinTNT: fw: use jsdom to convert text to dom elements [06:03] btipling: php.js, now I can finally use node [06:03] btipling: jk [06:04] btipling: pquerna: :P [06:04] btipling: jsdom works most of the time [06:05] btipling: it has problems with a few things here and there [06:05] ParadoxQuine has joined the channel [06:05] btipling: it doesn't support any cssom [06:05] btipling: like offsetHeight etc [06:05] fangel has joined the channel [06:06] Wizek has joined the channel [06:08] Lorentz: gf3: Check out my misao-chan bot [06:09] Lorentz: that require.cache was ridiculous to find, it's just embedded in a changelog long ago. [06:09] Lorentz: Not even documented. [06:09] gf3: shiii- [06:09] chapel: Lorentz: require.cache is deprecated [06:09] Lorentz: chapel: It's been a while [06:09] Lorentz: if it's deprecated and there's a better way, awesome [06:09] chjj: btipling: thats not the cssom, and it probably doesnt support it because all of those offset top, left, height, etc properties are non-standard to begin with, theyve never been defined in any spec, every browser just reverse engineered IE [06:09] chapel: atm, there is no way to unload a required file [06:10] skm has joined the channel [06:10] chapel: I know of no plans either [06:10] Lorentz: I'm on 0.4.6, hrm [06:10] Lorentz: When did it get deprecated [06:10] chapel: umm, 0.3.x probably [06:11] chapel: what are you trying to do gf3? [06:11] ryah: require.cache isn't deprecated? [06:11] chapel: ryah [06:11] gf3: chapel: nothing [06:11] chapel: sorry [06:11] gf3: chapel: just chatting [06:11] chapel: I was under the impression, it wasn't supposed to be used [06:11] chapel: but I am happy to be corrected [06:12] ngs has joined the channel [06:12] ryah: let it be corrected [06:12] ryah: :) [06:12] pquerna: let it be documented [06:12] Lorentz: > delete require.cache[modulePath]; [06:13] Lorentz: That's what I'm doing now to delete the cached require thing. But yeah, should doc it, or preferably, have something cleaner than just delete. [06:13] Lorentz: And then doc that. [06:13] timmywil has joined the channel [06:14] matjas has joined the channel [06:14] CIA-1: node: 03Ryan Dahl 07v0.4 * rb96ae66 10/ doc/api/globals.markdown : document require.cache - http://bit.ly/mxCCtT [06:15] justinTNT: lorentz: yeah me too, I'm counting on it ... [06:15] gf3: LOL [06:15] gf3: ryah++ [06:15] v8bot: gf3 has given a beer to ryah. ryah now has 2 beers. [06:16] Lorentz: Niiice [06:17] chapel: hey, at least my misunderstanding lead to some documentation [06:17] pquerna: ttp://www.youtube.com/watch?v=3bQnxlHZsjY [06:17] pquerna: http://www.youtube.com/watch?v=3bQnxlHZsjY [06:18] sreeix has joined the channel [06:18] chjj: oh wow, has the module cache always been exposed and just not documented until now? i was doing hacky stuff like require('module')._cache [06:20] Lorentz: Learn new things! [06:21] chjj: damn, i feel stupid now [06:21] chapel: :) [06:22] SubStack: don't feel stupid, feel awesome [06:22] SubStack: since you just leveled up [06:22] chapel: yep [06:22] SamuraiJack has joined the channel [06:22] chapel: SubStack++ [06:22] v8bot: chapel has given a beer to SubStack. SubStack now has 34 beers. [06:22] ryah: ACTION looks longingly at substack's beer [06:23] chjj: ryah-- [06:23] v8bot: chjj has taken a beer from ryah. ryah now has -1 beers. [06:23] skm has joined the channel [06:24] gf3: rude [06:25] chjj: negative beer tastes better anyway [06:25] halfhalo: Lol [06:25] mscdex: ryah++ [06:25] v8bot: mscdex has given a beer to ryah. ryah now has 0 beers. [06:25] chjj: mscdex, you literally just gave ryah no beer [06:25] blup has joined the channel [06:25] mscdex: that's incorrect [06:25] mscdex: -1 + 1 = 0 [06:25] halfhalo: Ryah++ [06:25] v8bot: halfhalo has given a beer to Ryah. Ryah now has 1 beers. [06:25] mscdex: :) [06:25] btipling: chjj: they are not nonstandard [06:26] chjj: btipling, yes they are [06:26] halfhalo: There we go [06:26] btipling: chjj: http://dev.w3.org/csswg/cssom/ [06:26] mscdex: halfhalo: you capitalized it! [06:26] halfhalo: Dammit iPad! [06:26] chjj: and where is offsetheight in there? [06:26] mscdex: `v beers ryah [06:26] v8bot: mscdex: ryah has 0 beers. [06:26] mscdex: case-sensitive :\ [06:27] halfhalo: What a fail [06:27] mscdex: ACTION shakes a fist at v8bot [06:27] jmoyers: well, no question about that [06:27] tauren has joined the channel [06:27] chjj: btipling: the IE positioning properties !== cssom [06:27] jmoyers: whoops [06:27] gozala has joined the channel [06:27] chapel: jesus++ [06:27] v8bot: chapel has given a beer to jesus. jesus now has 1 beers. [06:27] mscdex: cssomg? [06:27] btipling: chjj: http://www.w3.org/TR/cssom-view/ [06:27] btipling: chapel: Cntrl+F offsetHeight etc [06:28] btipling: er [06:28] btipling: chjj: ^^ [06:28] pplante has joined the channel [06:28] mikeal has joined the channel [06:28] chjj: oh wow, im wrong then, i remember Anne posting about that a while ago [06:28] btipling: :P [06:28] chjj: i didnt realize it reached TR [06:29] btipling: would be nice if jsdom supported it [06:29] btipling: very nice [06:29] chjj: still it started out with every browser reverse engineering IE's bullshit, which is why those properties are so inconsistent [06:29] btipling: yep [06:29] chjj: not to mentionm [06:29] chjj: utterly divorced from the css [06:29] chjj: conceptually [06:29] btipling: but so helpful [06:29] btipling: it's needed [06:30] chjj: yes, needed, but there couldve been better ways of going about it [06:30] btipling: agreed [06:31] chjj: like offsetParent has some very arbitrary rules to accompany it, why isnt there a .getContainingBlock method or something? [06:32] fangel has joined the channel [06:32] chjj: if i could redo that i would start using css concepts instead to make the dom and css more cohesive [06:33] `3rdEden has joined the channel [06:33] matjas has joined the channel [06:34] fayce has joined the channel [06:34] neurone-1337 has joined the channel [06:37] jmoyers: whoops [06:37] jmoyers: god DAMN it [06:37] jmoyers: i keep doing that [06:37] jmoyers: alt-tab up arrow [06:37] jmoyers: enter [06:37] jmoyers: damn you irc window. you sir are NOT the terminal [06:37] chjj: lol [06:38] chjj: at least what you repeated actually probably accurately expressed how youre feeling [06:39] sechrist has joined the channel [06:39] chjj: couldve been worse [06:39] mechanat1 has joined the channel [06:40] emattias has joined the channel [06:40] CIA-1: node: 03Jérémy Lal 07v0.4 * rf23c45f 10/ (src/node_crypto.cc wscript): [06:40] CIA-1: node: Option to disable SSL v2 [06:40] CIA-1: node: Fixes #880 - http://bit.ly/mS9oA6 [06:42] stonebranch has joined the channel [06:43] skm has joined the channel [06:43] _jgr has joined the channel [06:44] Yoric has joined the channel [06:44] Shrink has joined the channel [06:44] jmoyers: huh [06:44] jmoyers: interesting [06:44] Shrink has joined the channel [06:44] jmoyers: this data structure i made [06:44] jmoyers: its apparently called something [06:44] jmoyers: a 'suffix tree' [06:44] jmoyers: i love it when that shit happens [06:45] AvianFlu has joined the channel [06:45] mechanate has joined the channel [06:45] chjj: theres a million different trees, you could prepend any prefix to the word "tree" and it probably exists as a data structure [06:45] jmoyers: i guess so :P [06:45] CiRlE has joined the channel [06:46] chjj: ill make a data structure called an "oak tree" to confuse people [06:47] mechanate has joined the channel [06:47] sreeix has joined the channel [06:49] pigmej has joined the channel [06:49] darshanshankar: lol [06:49] jmoyers: its just nice when you 'invent' some shitty thing to serve your needs [06:49] jmoyers: and then it turns out to be some sort of documented cs concept [06:50] blueadept has joined the channel [06:51] simenbrekken has joined the channel [06:52] groom has joined the channel [06:52] ryankirkman has joined the channel [06:56] __doc__ has joined the channel [06:56] shajith has joined the channel [06:56] matt_c has joined the channel [06:56] jbpros has joined the channel [06:57] sechrist has joined the channel [06:58] hassox has joined the channel [06:59] cafesofie has joined the channel [06:59] Marak has joined the channel [07:00] kohai has joined the channel [07:00] ttpva has joined the channel [07:01] Marak: ( dynamic volume control is now in effect for kohai, the more chatter in the room, the less he talks ) [07:02] matjas has joined the channel [07:03] mendel_ has joined the channel [07:03] Dreamer3: hmmm [07:03] Dreamer3: npm install -g eco / shouldn't that install the binary? [07:03] ryah: Dreamer3: yes [07:04] Dreamer3: it's not [07:04] ryah: Dreamer3: make sure your PATH is correct [07:04] Dreamer3: npm -g bin [07:04] Dreamer3: it's not there [07:04] Dreamer3: i did --verbose on the install and don't see it installing the bi [07:05] Dreamer3: it installs the bins for coffee script under the eco directory... but no eco bins that i see [07:05] Dreamer3: am i missing something? [07:05] matt_c has joined the channel [07:07] jbpros has joined the channel [07:07] qFox has joined the channel [07:07] webben has joined the channel [07:08] skm has joined the channel [07:08] charlesjolley- has joined the channel [07:09] kohai: @ReSTARTR: node. js vs clojure+netty. マルチコア機にはやはりnettyですかね。> Clojure's edge on Node.js - dosync http://bit.ly/l9lSF5 (link: http://dosync.posterous.com/22397098) [07:10] Dreamer3: ? [07:10] webben has joined the channel [07:10] tauren has joined the channel [07:11] jmoyers: i .. just don't like how clojure looks [07:11] __tosh has joined the channel [07:11] Marak: hey jmoyers ! [07:11] jmoyers: hey man [07:11] chjj: uhoh, kohai is back [07:12] skm has joined the channel [07:12] jmoyers: apparently with more volume control [07:12] Dreamer3: ah [07:12] Dreamer3: 1.0.3 has no bin [07:12] Dreamer3: annoying [07:12] chjj: ;p [07:12] Marak: chjj: http://groups.google.com/group/nodejs/browse_thread/thread/d81068f99db61d38 [07:12] webben has joined the channel [07:12] Marak: chjj: please read, we've spent a lot of time trying to make improvements based on everyones feedback :-) [07:13] chjj: ah, i see [07:13] chjj: cool [07:16] matt_c has joined the channel [07:16] `3rdEden: Marak but chinees tweets aren't really that helpfull ;) [07:16] sebbie has joined the channel [07:17] AvianFlu: what sucks, `3rdEden, is that that tweet is flagged as being in english [07:17] Marak: you can join #kohai for dev talk, lets keep it clean in here [07:17] webben has joined the channel [07:17] jmoyers: ps [07:17] jmoyers: thats not chinese [07:17] `3rdEden: japaneese? [07:17] jmoyers: yurp [07:18] Opaque has joined the channel [07:18] `3rdEden: AvianFlu howmuch % confidence did that tweet had [07:18] mAritz has joined the channel [07:18] Bj_o_rn has joined the channel [07:19] webben has joined the channel [07:22] temp01 has joined the channel [07:22] webben has joined the channel [07:23] Marak: !config get plugins:twitter:track [07:23] kohai: plugins:twitter:track is [#nodejs, node.js, @nodekohai] [07:23] Marak: !config get plugins:irc:channels:#Node.js:volume [07:23] kohai: plugins:irc:channels:#Node.js:volume is 10 [07:23] Marak: oops [07:24] Marak: wrong channel [07:24] webben has joined the channel [07:26] Qbix2 has joined the channel [07:26] webben has joined the channel [07:29] webben has joined the channel [07:29] aliem has joined the channel [07:30] itissid has joined the channel [07:31] McMAGIC--Copy has joined the channel [07:31] webben has joined the channel [07:32] tilgovi has joined the channel [07:33] kohai: @morgancheng: Data and flow are hot potatoes, the sooner you get rid of them, the better. ——From discussion about node.js #nodejs [07:33] webben has joined the channel [07:36] webben has joined the channel [07:38] webben has joined the channel [07:39] kohai: @Ayame__: Experimenting with #nodeJS #thrilled [07:40] kohai: @Ouark: Monitorer ses applications #PHP avec les websockets et node.js http://fdw.lu/as6 #fdw #nodejs #monitoring (link: http://css.dzone.com/news/real-time-monitoring-php) [07:40] webben has joined the channel [07:42] fly-away has joined the channel [07:42] TomY has joined the channel [07:43] webben has joined the channel [07:45] Marak: !part #Node.js [07:45] kohai has left the channel [07:45] webben has joined the channel [07:46] kohai has joined the channel [07:47] webben has joined the channel [07:48] wbw72 has joined the channel [07:50] webben has joined the channel [07:51] robhawkes has joined the channel [07:52] tylerstalder has joined the channel [07:52] webben has joined the channel [07:53] ditesh has joined the channel [07:53] justinTNT: \ignore kohai [07:53] __tosh has joined the channel [07:55] webben has joined the channel [07:55] kohai: @Shezard: mouahah générateur de template custom en node.js =) [07:55] chjj: kohai++ [07:55] v8bot: chjj has given a beer to kohai. kohai now has 4 beers. [07:55] postwait has joined the channel [07:56] AvianFlu: chjj++ [07:56] v8bot: AvianFlu has given a beer to chjj. chjj now has 2 beers. [07:56] chjj: thank you sir [07:57] webben has joined the channel [07:58] Prinzhorn has joined the channel [07:58] jetienne has joined the channel [07:58] troessner has joined the channel [07:59] kohai: @morganhillcouk: Cloud Foundry supports Spring, Grails, Rails, Sinatra, Node.js AND Scala http://ow.ly/59c63 (link: http://blog.cloudfoundry.com/post/6109591023/cloud-foundry-now-supporting-scala) [07:59] webben has joined the channel [08:01] skm has joined the channel [08:02] webben has joined the channel [08:03] msucan has joined the channel [08:03] harth has joined the channel [08:03] jomoho has joined the channel [08:04] webben has joined the channel [08:05] kohai: @NodeKohai: @robby_pelssers #nodejitsu and #Node.js on irc.freenode.net [08:05] rauchg has joined the channel [08:05] thalll has joined the channel [08:05] jbpros has joined the channel [08:06] NetRoY has joined the channel [08:06] webben has joined the channel [08:07] uchuff has joined the channel [08:08] rputikar has joined the channel [08:09] webben has joined the channel [08:10] jarek has joined the channel [08:11] webben has joined the channel [08:12] jarek has joined the channel [08:12] jarek has joined the channel [08:13] neaf has joined the channel [08:13] sreeix has joined the channel [08:13] webben has joined the channel [08:14] jmoyers: oh.. my god [08:14] jmoyers: i just went into #javscript [08:14] jmoyers: its fucking hell on earth in there [08:14] kohai: @felixout: О, автор и разработчик Node.js работает под Маком. А под Винду пишет в виртуальных машинах. [08:16] nannto has joined the channel [08:16] webben has joined the channel [08:17] jbpros has joined the channel [08:18] kohai: @Ayame__: #nodeJS doesn't sleep but is good at "idle"-ing #interesting [08:18] kohai: @drypot: Node.js 개발자가 윈도우 개발환경을 세팅하였다. @ryah http://tinyclouds.org/screenshot-20110603.png [08:18] webben has joined the channel [08:18] alindeman has joined the channel [08:18] viktors has joined the channel [08:19] liar has joined the channel [08:19] viktors: hi. For a small site (~10k visitors a day) does it make sense to put nginx in front of express/connect/cluster? [08:19] Yoric has joined the channel [08:21] webben has joined the channel [08:21] _jgr has joined the channel [08:21] jeremyselier has joined the channel [08:21] jmoyers: viktors for what purpose? [08:21] justinTNT: why would you do that? [08:21] jamey-uk has left the channel [08:21] jmoyers: probably ought not run node as root for port 80 [08:21] viktors: jmoyers: for serving static content (we don't use CDN) [08:21] jmoyers: but you can do port forwarding other ways [08:22] jmoyers: well ngnix is waaay better at serving static content [08:22] stonebranch has joined the channel [08:22] jmoyers: but 10k visitors? [08:22] viktors: jmoyers: it's on amazon, so uid0 is not an issue [08:22] jmoyers: not sure it warrants the complexity [08:22] justinTNT: it doesn't need to sit in front of node tho, it can run beside it. [08:23] jmoyers: uh [08:23] jmoyers: i think it'd still have to delegate [08:23] jmoyers: non-static content to your node app [08:23] viktors: justinTNT: good idea, thanks, would also avoid sending cookies for static content [08:23] jmoyers: so it'd be running through ngnix regardless [08:23] webben has joined the channel [08:23] Emmanuel__ has joined the channel [08:23] justinTNT: not if you used different domains for static content [08:23] jmoyers: oh, different subdomain? [08:23] emattias has joined the channel [08:23] jmoyers: ah [08:23] viktors: yep [08:23] gausby_ has joined the channel [08:23] viktors: thanks guys, that was indeed a brilliant idea, nginx for static content on different subdomain, node for dynamic content [08:24] viktors: served from same web root [08:24] justinTNT: and in fact node can sit in front of ngnix [08:24] ph^ has joined the channel [08:24] viktors: justinTNT: yep but that's not very useful [08:25] justinTNT: um [08:25] justinTNT: no [08:25] viktors: total offtopic, just found this: http://deftserver.appspot.com/ [08:25] webben has joined the channel [08:26] asabil has joined the channel [08:28] webben has joined the channel [08:28] jamey-uk has joined the channel [08:28] uchuff has joined the channel [08:29] sechrist has joined the channel [08:29] jamey-uk: I'm trying to use this module for the first time https://github.com/nodejitsu/node-cloudfiles. I can connect (first sample) but get an odd error when I try to create a container: http://pastebin.com/kB2XWNnX any ideas? [08:30] webben has joined the channel [08:30] NetRoY has joined the channel [08:31] lansea has joined the channel [08:32] webben has joined the channel [08:33] Wa has joined the channel [08:35] secoif has joined the channel [08:35] kohai: @matmaw: JSApp.US: quick way to try #nodejs and host web based node application http://t.co/G9jVAcM (link: http://jsapp.us/) [08:35] webben has joined the channel [08:35] sreeix has joined the channel [08:36] djcoin has joined the channel [08:37] webben has joined the channel [08:38] kohai: @rattazong: Finally writing a blog post about "How to run a node.js project on 40+ servers" #nodejs #scaling [08:39] `3rdEden: saschagehlich Y U NO present ^^^^ that @nodecampeu [08:40] webben has joined the channel [08:40] saschagehlich: naaah;) [08:41] catshirt has joined the channel [08:42] markwubben has joined the channel [08:42] webben has joined the channel [08:44] alindeman has joined the channel [08:44] alindeman has joined the channel [08:44] webben has joined the channel [08:45] pdrummond has joined the channel [08:46] itissid has joined the channel [08:47] webben has joined the channel [08:48] Renegade001 has joined the channel [08:48] secoif_ has joined the channel [08:49] jmoyers: ACTION leaves #javascript [08:49] jmoyers: ridiculous [08:49] webben has joined the channel [08:50] jamey-uk: Can anyone help me with this odd error? http://pastebin.com/kB2XWNnX [08:51] jmoyers: code [08:52] webben has joined the channel [08:52] adrianmg has joined the channel [08:53] kohai: @BP_Contractor: BPC: Debugging Node.js SSL Negotiation: http://bit.ly/lMKbQo (link: http://www.maxzimus.com/boxofsand/?p=42568&utm_source=BPC&utm_medium=twitter) [08:53] jamey-uk: jmoyers: was that directed at me? [08:53] jmoyers: yurp [08:53] jmoyers: cant help without the code that threw the error [08:54] jmoyers: are you requesting something thats not http://? [08:54] webben has joined the channel [08:55] jamey-uk: jmoyers: yep, here's my code http://pastebin.com/M1yjBQj4 am using this module https://github.com/nodejitsu/node-cloudfiles it's an https URL but I'm confused as to why it's not working... [08:55] ewdafa has joined the channel [08:56] webben has joined the channel [08:57] knucklepants has joined the channel [08:57] webben has joined the channel [08:58] jamey-uk: jmoyers: it's the exact example code on the github readme [08:59] jmoyers: nod [08:59] jmoyers: looking at it [08:59] jamey-uk: thanks very much [09:00] webben has joined the channel [09:02] webben has joined the channel [09:02] bzinger has joined the channel [09:03] tomtomaso has joined the channel [09:03] fille12 has joined the channel [09:03] fille12: hell0 [09:04] Schnitz has joined the channel [09:04] Schnitz: hi guys [09:04] Schnitz: does anyone have a good explanation of node.js memory management at hand? [09:04] webben has joined the channel [09:07] webben has joined the channel [09:09] blup has joined the channel [09:09] sreeix has joined the channel [09:09] webben has joined the channel [09:10] saschagehlich: `3rdEden: actually right now I don't know whether this blog post will be that interesting since I've done a lot of stuff I regret now when I was deploying the project [09:11] `3rdEden: saschagehlich you can always blog about the mistakes you made so people can learn and iterate on that [09:11] saschagehlich: like not using chef but using a vserver-copy-deployment-system and capistrano for updates [09:11] hassox has joined the channel [09:11] webben has joined the channel [09:12] `3rdEden: saschagehlich pff no rsync? [09:12] `3rdEden: ;D [09:12] saschagehlich: sure, rsync to copy the vservers [09:12] saschagehlich: huge fail [09:12] saschagehlich: guess I will focus on the deployment process within the next weeks to improve that [09:13] saschagehlich: should I call it "How to NOT run a node.js project on 40+ servers"? :D [09:13] nornagon_ has joined the channel [09:14] webben has joined the channel [09:17] neaf has joined the channel [09:17] adambeynon has joined the channel [09:19] jamey-uk: this code http://pastebin.com/M1yjBQj4 throws this error http://pastebin.com/kB2XWNnX I am using this module https://github.com/nodejitsu/node-cloudfiles with the sample code from the github readme... seems like options.httpModule (line 186 of main.js) isn't being set but I don't know why? [09:20] kohai: @pulseus1: "sj.edon might be short for 'super joke. ever dynamic object network-engine'". said node.js N years later :) [09:23] bkozal has joined the channel [09:23] mattyod has joined the channel [09:24] philhawksworth has joined the channel [09:24] `3rdEden: saschagehlich even bumi thinks you should talk ;D [09:25] Schnitz: does anyone have a good explanation of node.js memory management at hand? [09:25] Xano has joined the channel [09:25] kohai: @old_sound: @roidrage and 6 years of professional node.js deployments… [09:27] markwubben has joined the channel [09:27] d0k has joined the channel [09:28] saschagehlich: Schnitz: memory management? are you running into memory leaks? [09:28] Schnitz: saschagehlich: no, but interested :-) [09:28] philhawksworth has left the channel [09:29] saschagehlich: Schnitz: well, usually you don't have to struggle with memory management since v8 as a garbage collection [09:29] saschagehlich: *has [09:30] Schnitz: saschagehlich: sure, but I am still interested to understand more about how it works :-) [09:31] Schnitz: saschagehlich: is memory management in node.js handled by v8 completely, meaning that I can read about "v8 memory management"? [09:31] saschagehlich: Schnitz: I think so. ppl will correct me if I'm wrong I hope [09:31] easternbloc: Schnitz: http://code.google.com/apis/v8/embed.html#handles [09:32] kohai: @ReSTARTR: Async I/O & Node.js http://bit.ly/iTpE0W (link: http://pfleidi.github.com/slides-async-nodejs/) [09:33] Schnitz: easternbloc: great! thanks! [09:33] ffffffff has joined the channel [09:33] skm has joined the channel [09:34] easternbloc: no worries [09:34] k1ttty has joined the channel [09:36] kohai: @chazzuka: How far node.js could save this async process? [09:38] hellp has joined the channel [09:39] mgkimsal has joined the channel [09:39] ewdafa has joined the channel [09:40] fille12: so im playing with jade and i injected a function inside a json object from node.js, wondering how do i get the server side render objekt inside the Jade scripting tag [09:41] adnam: fille12: anything passed in the second arg of render is turned into a local var in the jade doc [09:41] adnam: render("x", { myVar : 1 }) [09:41] fille12: yes put inside the script tag [09:41] fille12: it will just render as simple text [09:42] fille12: myRenderArray[0].content [09:42] stagas: fille12: try: script!= your.func [09:42] adnam: ooh you mean you have a client side script? [09:42] sharkbone has joined the channel [09:42] fille12: exactly [09:42] fille12: okej [09:42] fille12: i will try it, time for lunch [09:42] adnam: what stagas said, or use #{} for interpolation [09:42] fille12: i will return [09:42] thalll has joined the channel [09:42] fille12: thanks! [09:43] jamey-uk: Can anyone help me with my node-cloudfiles problem? I'm trying to run the example given on their readme and it's failing because it doesn't set the httpModule up properly for some reason. [09:48] kohai: @acostoss: @Gargron I am also getting Sinatra errors when attempting to use chat. Have node.js set up, along with fugue and npm. [09:51] vdemedes has joined the channel [09:52] sonnym has joined the channel [09:54] hybsch has joined the channel [09:55] skm has joined the channel [09:56] temp01 has joined the channel [09:59] sjbreen has joined the channel [09:59] eldar has joined the channel [10:00] mgkimsal has joined the channel [10:01] mgkimsal has left the channel [10:01] Hadaka has joined the channel [10:01] mraleph has joined the channel [10:02] Hadaka: hello! what would be a good web framework / middleware thingy to use with the dust template engine? [10:02] ffffffff: jamey-uk: open up an issue on the github support page for that project [10:02] kohai: @mmakoto37: Node.js とは一体何か?: http://me.lt/1L0rg (link: http://www.ibm.com/developerworks/jp/opensource/library/os-nodejs/?cmp=dw&cpb=dwope&ct=dwrss&cr=dwrss&ccy=jp&csr=060311) [10:02] sreeix has joined the channel [10:03] jamey-uk: ffffffff: thanks, will do [10:03] burningdog_ has joined the channel [10:04] stephank has joined the channel [10:10] jeremyselier has joined the channel [10:10] `3rdEden: jamey-uk or go to #nodejitsu [10:10] `3rdEden: they probably have a channel here [10:11] sjbreen_ has joined the channel [10:12] jamey-uk: `3rdEden: thanks, I'll check it out [10:15] Dreamer3 has joined the channel [10:16] AvianFlu has joined the channel [10:19] sebbie has joined the channel [10:20] kohai: @christkv: if you start coding #nodejs this library is essential to avoid banana code https://github.com/creationix/step [10:23] NetRoY has joined the channel [10:23] kohai: @ALarkinDesign: Web Design Issues Building your first node.js app – Part 1: Installing node on Windows 7: An obvious use case fo... http://bit.ly/jjpgJE (link: http://www.google.com/url?sa=X&q=http://www.dzone.com/links/building_your_first_nodejs_app_part_1_installing.html&ct=ga&cad=CAcQARgAIAEoATAAOABAo-ui7wRIAlgAYgVlbi1VUw&cd=jxDGpIue8yw&usg=AFQjCNGOE-cpEwhuxS72QneSrk00RDnaIw) [10:23] NetRoY has joined the channel [10:24] SuMarDi has joined the channel [10:24] sgimeno has joined the channel [10:26] kohai: @nicholefoss: Official Node.js Job Board Pops Onto the Web http://pulsene.ws/1641d (link: http://mashable.com/2011/03/23/node-job-board/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Mashable+%28Mashable%29) [10:26] Multiply has joined the channel [10:27] Multiply: I'm thinking of writing a scalable web load balance-solution in node.js, but would it be a good choice to do so? I love javascript, and node is just what I've been wanting for quite some time. [10:28] tux21b has joined the channel [10:28] tux21b has left the channel [10:28] Multiply: And would it be worth it, vs. nginx/apache2's load balancing? [10:32] chapel: how do you do custom error handling using connect, eg if the static file handler cant find the file? [10:33] skm has joined the channel [10:35] skm has joined the channel [10:35] vdemedes: chapel: app.error() [10:35] vdemedes: chapel: express.errorHandler() middleware [10:35] chapel: not using express [10:35] chapel: using connect [10:37] chapel: connects errorHandler also is for stack trace errors [10:41] skohorn has joined the channel [10:44] fairwinds has joined the channel [10:44] fly-away has joined the channel [10:45] Multiply has left the channel [10:47] criswell has joined the channel [10:49] NetRoY has joined the channel [10:50] NetRoY has left the channel [10:50] Guest90318 has joined the channel [10:51] Guest90318 has left the channel [10:52] evilcelery has joined the channel [10:54] Yoric1 has joined the channel [10:56] mahna has joined the channel [10:57] mahna has joined the channel [10:58] xandrews has joined the channel [11:01] xandrews has joined the channel [11:02] niftylettuce: \o/ [11:04] temp01 has joined the channel [11:06] icebox has joined the channel [11:07] kohai: @tzmtk_search: Nodeアプリの設定系モジュールいろいろ(sugyan) | node.js 通信 http://ff.im/-EPOm7 (link: http://node-js.info/?p=588) [11:08] Robster has joined the channel [11:08] kohai: @bitlogics: kiki: simple but great app for regexp testing #debian #linux #regexp #php #nodejs #python #perl #js http://ow.ly/59gIE (link: http://packages.debian.org/squeeze/kiki) [11:09] Robster: are there already any node libraries offering support for doing XSLT ? [11:10] kohai: @robby_pelssers: @NodeKohai thx m8... checking it out now [11:11] sreeix has joined the channel [11:12] DTrejo has joined the channel [11:14] off_ has joined the channel [11:14] fille12: it worked with #{} in jade [11:14] fille12: but jade is rendring alert('') [11:14] fille12: like alert(quot;hrm;quat;) [11:17] adnam: not sure, but #! or !# might skip the escaping [11:18] eee_c has joined the channel [11:21] fille12: okej [11:22] fille12: loving 3rdEden latest twitt [11:22] `3rdEden: which one [11:22] tomtomaso has joined the channel [11:23] fille12: ab outy the silverligth [11:23] fille12: silverlight forum [11:24] jsulak has joined the channel [11:27] papandreou has joined the channel [11:28] `3rdEden: oh yeah [11:28] `3rdEden: Another nail in the Silverlight coffin [11:29] fille12: :D [11:29] `3rdEden: Microsoft put the silver-lights out [11:31] kohai: @peterhellberg: The Mongoose ORM for #nodejs looks kind of neat. /via @ullmark [11:32] chapel: !config get [11:32] chapel: :( [11:32] seivan has joined the channel [11:33] tomtomaso has joined the channel [11:33] matjas: is this a known issue? https://github.com/isaacs/npm/issues/1003 [11:34] `3rdEden: Argh [11:34] `3rdEden: unicode chars kill the node.js repl [11:34] matjas: :'( [11:35] `3rdEden: matjas try using a stable release [11:35] `3rdEden: instead of node 0.5.0 [11:35] matjas: `3rdEden: k, thanks! [11:40] materialdesigner has joined the channel [11:40] sjbreen has joined the channel [11:40] k1ttty has joined the channel [11:41] hij1nx has joined the channel [11:43] sebbie has joined the channel [11:45] vdemedes has left the channel [11:45] temp02 has joined the channel [11:46] cjm_ has joined the channel [11:46] postwait has joined the channel [11:47] tdegrunt has joined the channel [11:48] Druide_ has joined the channel [11:50] fille12: so i made my site as a module [11:50] fille12: and got a proxy script thats routes [11:51] fille12: the problem is that my sitemodule cant find the views [11:51] fille12: from the routing script [11:51] fille12: anyone following me [11:51] `3rdEden: yup [11:52] `3rdEden: but no clue why [11:52] Mrfloyd has joined the channel [11:52] fille12: so my site module is located in a site folder [11:52] fille12: :D [11:52] chapel: fille12: do path.resolve http://nodejs.org/docs/v0.4.8/api/path.html#path.resolve [11:52] fille12: thanks ! [11:53] chapel: __dirname, '/views' [11:53] xandrews has joined the channel [11:53] chapel: __dirname isn't actually a global but rather local to each module. [11:55] robster has joined the channel [11:58] neaf has joined the channel [12:01] mendel_ has joined the channel [12:05] BlackFate has joined the channel [12:05] Bradleymeck has joined the channel [12:07] adambeynon has joined the channel [12:10] jsulak has joined the channel [12:11] petrjanda has left the channel [12:11] TheFuzzball has joined the channel [12:11] Glenjamin has joined the channel [12:12] Glenjamin has left the channel [12:12] petrjanda has joined the channel [12:12] Glenjamin has joined the channel [12:12] replore_ has joined the channel [12:14] CIA-1: node: 03Ryan Dahl 07v0.4 * r0cb4484 10/ (3 files): [12:14] CIA-1: node: Doc improvements [12:14] CIA-1: node: Fixes #1147. [12:14] CIA-1: node: Fixes #1139. [12:14] CIA-1: node: Fixes #1126. [12:14] CIA-1: node: Thanks ctide, kext, disfated. - http://bit.ly/iF7txc [12:14] CIA-1: node: 03Ryan Dahl 07v0.4 * r4956e3c 10/ (6 files): Upgrade http-parser to eee60127c0df551be085cc8e7983e36d7700d885 - http://bit.ly/igFkoY [12:14] djcoin has joined the channel [12:15] Glenjamin: Hi guys, is there any hook/event I can capture that will fire *before* process exit, but after everything else? [12:16] edude03 has joined the channel [12:18] sebbie has joined the channel [12:19] chapel: Glenjamin: process.on('exit', function() { //... }); [12:20] xandrews has joined the channel [12:20] Glenjamin: chapel: I'm after something before that event, so that I can still use the event loop [12:21] chapel: thats the last event, there really isn't anything before that [12:21] chapel: not as an event [12:21] sechrist has joined the channel [12:22] samyak has joined the channel [12:22] Glenjamin: so there's no way to have cleanup actions which use the event loop? [12:22] jmar777 has joined the channel [12:23] chapel: how is your app laid out? [12:23] hojberg has joined the channel [12:24] asabil has joined the channel [12:25] eee_c has joined the channel [12:25] bshumate has joined the channel [12:25] Glenjamin: it currently isn't yet, so this isn't a huge problem. I'm working on a testing library, and I wanted a way to have files which you can run via `node test.js`, but still be able to require [12:25] Glenjamin: my plan was to have an exit event run the tests unless told not to [12:25] fumanchu182 has joined the channel [12:26] BlackFate has left the channel [12:26] _jgr has left the channel [12:26] chapel: you mean, you can run them individually, or include them? [12:27] edgarallanpoe has joined the channel [12:28] m00p has joined the channel [12:29] pkarl has joined the channel [12:32] dipser has joined the channel [12:32] Glenjamin: yup [12:32] Glenjamin: iteration 1 was going to be no commandline test runner [12:33] chapel: well exports.blah = function() {} [12:33] unomi has joined the channel [12:34] chapel: well there are multiple ways, but basically you just invoke the main function inside the module (outside of the function) so when called directly from cli, it will run [12:34] Glenjamin: hang on, i'll pastebin my acceptance test [12:34] Glenjamin: http://paste2.org/p/1449596 [12:35] Glenjamin: that's my ideal - not having to call any sort of run() method. However thats not a key feature - i just assumed it'd be doable [12:35] JoshC1 has joined the channel [12:36] hellp has joined the channel [12:36] pastak has joined the channel [12:39] kohai: @OhMeadhbh: blargh. woke up @ 4:30AM due to a kitteh tussle outside. so i drank some coffee and hacked some javascript: http://j.mp/jvIz9i #nodejs (link: https://github.com/OhMeadhbh/node-props) [12:39] boaz has joined the channel [12:39] lukstr: `3rdEden: the return of kohai? [12:40] `3rdEden: kohai has been tuned with rate limiting [12:40] lukstr: sexy [12:40] `3rdEden: So spam has reduced with 200% [12:40] matbee has joined the channel [12:41] chapel: well it has levenstein algo too [12:41] lukstr: any way to filter english? I don't have unicode on this terminal so I see a lot of ?'s [12:41] chapel: to limit repeats [12:41] chapel: find a good module or code to eliminate non-english and Im sure they will use it [12:41] kohai: @tmatheson: Geddy a node.js framework nice http://geddyjs.org/ [12:43] F1LT3R has joined the channel [12:43] lukstr: chapel: we could train it by negatively weighting non-english posts manually... hmm [12:43] chapel: eh, thats pretty complicated [12:44] chapel: it doesn't have anything for that, so again, would need more code [12:44] lukstr: probably not a good idea as there is the odd non-english speaker in here [12:44] _jgr has joined the channel [12:44] thomblake has joined the channel [12:44] miccolis has joined the channel [12:46] sledge has joined the channel [12:48] bentruyman has joined the channel [12:48] lukstr: `3rdEden: you are speedy with the github issues -- unicode filtering would probably be the fastest. [12:48] `3rdEden: :D [12:48] `3rdEden: And it would filter out most of the tweets [12:48] lukstr: ? [12:49] lukstr: false positives? [12:50] kohai: @ploeh: @Danielovich @windcape node.js ? ;p [12:50] `3rdEden: it would filter out most foreign tweets [12:50] F1LT3R_ has joined the channel [12:50] lukstr: yeah [12:50] lukstr: google translate api is EOL too, iirc [12:51] ben_alman: does node have any built-in utils for pretty-printing dates? [12:51] lukstr: ben_alman: I think Date can do that? [12:51] ben_alman: yeah but it's a bit verbose [12:51] CIA-1: node: 03Ryan Dahl 07v0.4 * r1d7a46a 10/ src/node_crypto.cc : [12:51] CIA-1: node: Disabling SSL compression is dependent on OpenSSL version 0.9.8 [12:51] CIA-1: node: Fixes #1087. - http://bit.ly/mPvQYm [12:51] CIA-1: node: 03Siddharth Mahendraker 07v0.4 * r37d529f 10/ lib/_debugger.js : [12:51] CIA-1: node: debugger: don't allow users to input non-valid commands [12:51] CIA-1: node: Fixes #1144. - http://bit.ly/kmZuSL [12:52] lukstr: shouldn't ryah be asleep? [12:52] `3rdEden: Google translate is going to shut down anyways [12:52] rauchg has joined the channel [12:52] `3rdEden: ^ the api [12:52] lukstr: `3rdEden: just the api [12:52] ryah: ACTION is in europe [12:52] lukstr: nice [12:53] `3rdEden: ryah you going home before nodecampeu or after it? [12:53] coleGillespie has joined the channel [12:54] konobi: ryah: do we support SO_BINDTODEVICE at all? [12:54] FireFly has joined the channel [12:54] Dreamer3 has joined the channel [12:54] lukstr: ben_alman: you're talking about time formatting right [12:54] ben_alman: yeah [12:54] lukstr: ben_alman: I think you're stuck with what Date provides :/ [12:55] ben_alman: k [12:55] lukstr: there may be modules though [12:55] ben_alman: no prob, easy enough [12:55] lukstr: yeah JS dates are annoying [12:55] fille12: sorry for using w3schools [12:55] fille12: as javascript reference [12:56] lukstr: fille12: ? [12:56] eikaas has joined the channel [12:56] fille12: a joke [12:56] kohai: @marcusklaas: Vakantieproject: shit bouwen met node.js [12:57] chapel: ben_alman: http://ejohn.org/blog/javascript-pretty-date/ [12:57] adambeynon has joined the channel [12:57] ben_alman: chapel, np i don't want deps [12:57] chapel: its just a function [12:57] ben_alman: i just wanted to format MM/DD/YYYY quickly [12:57] ben_alman: heh [12:57] ben_alman: np [12:57] chapel: like 9 loc [12:57] kriszyp has joined the channel [12:57] chapel: look at it, and make it work how you want it [12:57] chapel: :) [12:58] cafesofie has joined the channel [12:59] ryah: konobi: no [12:59] ryah: konobi: do you need that? [13:00] chapel: v8: new Date().toDateString() [13:00] v8bot: chapel: "Fri Jun 03 2011" [13:00] konobi: ryah: nah, i think i'll be okay... it's work-roundable in other ways... just a udp multicast issue... but solvable [13:01] chapel: v8: new Date().toLocaleString() [13:01] v8bot: chapel: "Fri Jun 03 2011 09:01:08 GMT-0400 (EDT)" [13:01] chapel: hmm [13:02] jonasen has joined the channel [13:02] chapel: v8: new Date().toLocaleDateString() [13:02] v8bot: chapel: "Friday, June 03, 2011" [13:02] chapel: bleh [13:02] AaronMT has joined the channel [13:02] `3rdEden: v8: (function(d,f){return f.replace(/{(.+?)(?::(.*?))?}/g,function(v,c,p){for(v=d["get"+c]()+/h/.test(c)+"";v.length [13:33] samyak: wish me a goodweek end [13:34] samyak: does anybody running node.js on ec2 ? [13:34] Emmanuel__ has joined the channel [13:34] samyak: what are the amis they take as base ami ? [13:34] eikaas has joined the channel [13:35] sledge: samyak: I do. [13:35] samyak: chapel, where should I start looking at ? [13:35] samyak: sledge, what are the ami's you use ? [13:35] rtweed has joined the channel [13:35] samyak: which ec2 plan you are using , is micro plan a good option ? [13:36] m00p has joined the channel [13:36] sledge: samyak: I started out with the micro Amazon Linux instance, but the rpm package management was a huge pain in the gut. Now I'm using a Ubuntu 11.04-derived one. [13:36] samyak: could you share the ami ... is it public ami ? [13:37] sledge: samyak: Yes, one decond. It's public and it's micro, so it qualifies for the free tier. [13:37] sledge: samyak: One second. [13:37] stephank: ubuntu here too, works a charm [13:37] sledge: samyak: ami-4a936a23 [13:39] sledge: samyak: sudo apt-get install nodejs couchdb && you're good to go. [13:39] rtweed: Ive had weird problems with running Node.js process on EC2. I use Ubuntu too. I described the issue here: https://groups.google.com/group/nodejs/browse_thread/thread/b105b912e370b02b/e1983673a5a7e834?hl=en&lnk=gst&q=ec2+micro#e1983673a5a7e834 [13:39] rtweed: sorry for that long URL! [13:39] eliziario has joined the channel [13:40] rtweed: perhaps it's the AMIs I've used - the Alestic ones, but I've not found a solution yet [13:41] sledge: rtweed: Amazon introduced a new instance setting. [13:41] rtweed: oh really? [13:41] sledge: rtweed: Shutdown protection or something like that. [13:41] djcoin has joined the channel [13:42] jasong_at_apache has joined the channel [13:42] sledge: rtweed: I believe it's seperate from termination protection. [13:42] stephank: you mean the default shutdown behavior? [13:42] rtweed: yeah i know about that - this is different. I've found that a running Node.js process will lock up after a time - the AMI is still running, but the Node process becomes unusable [13:42] kohai: @relequestual: @skippychalmers yeh its going to be pretty damn good =] Long summer before uni starts again! Went to #phplondon last night, node.js vs php [13:42] sledge: stephank: hmm, no. [13:42] cjm_: Hey all, I'm looking for some help figuring out sessions on a server that uses express and socket.io. The goal is handling things like pairing socket.io session ids with user ids, maintaing state on reconnects, and being able to easily group any actors on the server. [13:42] rtweed: I get round it by getting the Node process to write to the console [13:43] sledge: rtweed: Weird. I've had node run for days without lock-ups. [13:43] rtweed: so every 2 mins i do a console.log [13:43] rtweed: yeah on my non EC2 servers I get no probs with the same Node .js file [13:43] rtweed: they'll run forever [13:43] Swimming_bird has joined the channel [13:43] stephank: We run node on Ubuntu 10.10, and a variety of instance types. Small, high cpu, large, extra large, haven't see anything like that thread describes. Never tried on a micro instance though, and there could be other things at play, like zone-specific stuff. [13:44] sledge: rtweed: are wrapping the node invocation in anything like screen or nohup? [13:44] samyak: rtweed, I am going through the post ... [13:44] rtweed: well i thought it might be the t1.micro but I even got it when i tried a big instance [13:44] rtweed: like i say, maybe its the Alestic AMI I use [13:44] kohai: @emerleite: Pessoal, na próxima quarta-feira, dia 08/06/2011 acontecerá o primeiro encontro da lista Node.JS Brasil na @caelum do Rio. [13:45] sreeix has joined the channel [13:45] rtweed: no sledge, though I'm running it in a puTTy window rather than as a service. Might be to do with that of course [13:45] samyak: stephank, could you share your base ami so i can test the things on that [13:46] lackac: hey, is someone here familiar with zombie.js? [13:46] rtweed: yeah samyak let me find it - I think i mentioned it in the post though [13:46] sledge: rtweed: try running in a cygwin+ssh session. [13:47] kohai: @joomlachamp: Εθνικό Φασκελόμετρο | Ρίξε και εσύ μια μούντζα μπορείς! #faskelometro http://t.co/IRxMyxC ( via @faskelometro ) node.js rulezzz!!! (link: http://www.vouleftis.gr/index.live.php) [13:47] c4milo has joined the channel [13:47] samyak: sledge, rtweed , I am running ssh seesion using gnome-terminal on my local ubuntu still I am facing the same symptoms [13:48] rtweed: ami-cef405a7 [13:48] stephank: samyak: They're the standard ubuntu AMIs. [13:48] samyak: and on top of that you installed node on your own ? [13:48] kohai: @G64: @mranney @felixge Really? I'm just starting out with #nodejs. This is discouraging; but to think that it was perfect was naïve, I guess. [13:48] rtweed: yep samyak [13:49] samyak: if is it in public please share it .. so i am sure the ami is not the evil . [13:49] rtweed: its a public Alestic-issued one, samyak [13:49] samyak: k [13:49] rtweed: just fire it up = I'd be interested to see what you find [13:49] samyak: rtweed, I am asking for an ami which is used by stephank as he is not having any issue the way we have [13:50] stephank: samyak: We basically use these: http://cloud.ubuntu.com/ami/ [13:50] stephank: samyak: and yes, then just build-essential, libssl-dev, and compile node manually [13:50] samyak: rtweed, did you did dmesg ? [13:50] sjbreen has joined the channel [13:50] rtweed: ok I'd certainly give others a go [13:50] samyak: I could see that for being idle for some time it was memory leak [13:51] samyak: stephank, k I need to do that ... I guess [13:51] stephank: samyak: looks like the URL didn't include search params, but I search for "maverick eu-west" [13:51] stephank: on EBS, btw [13:51] sledge: stephank: Isn't 0.4.8 the version in the repo? [13:51] rtweed: no i haven't - but I think you may be right about a memory leak. Sometimes after running the process for a day or so, it will come up "killed" and the process will be gone [13:51] stephank: sledge: we don't use the PPA [13:52] samyak: oh yeah I am also on 8 GB EBS with west cost only [13:52] nornagon_ has joined the channel [13:52] sledge: stephank: Neither am I. [13:52] stephank: sledge: wait, are we on the same topic? For a moment I thought you were samyak :D [13:52] samyak: rtweed, it is indeed memory leak ... when it is idle for say few minutes [13:52] sledge: stephank: haha lol [13:52] samyak: try using pingdom ... to ping every minute and that issue will be resolved [13:53] rtweed: samyak - not sure what you mean by that [13:53] samyak: sledge == samyak , returns false ... on any system arch .. [13:53] samyak: rtweed, my memory leak was due the fact that server used to remain idle... [13:54] samyak: I used pingdom to do a GET request every minute and server was up and running for many hours ... [13:54] rtweed: samyak -ok....so what's pingdom? [13:54] samyak: pingdom.com [13:55] samyak: it is monitorin service, but I used it for different purpose [13:55] rtweed: ok so what, you send a GET request to it just to keep your process alive [13:55] Mrfloyd has joined the channel [13:55] samyak: yup ... and there were no memory leaks if the server is busy serving request ... [13:55] rtweed: but is this a general feature of running Node on EC2 servers? [13:56] samyak: memory leaks start if there is no request for around 10 minutes [13:56] __doc__: how do I exit node.js once all pending i/o is finished? [13:56] rtweed: yeah i found it was about 7 mins or so [13:56] samyak: rtweed, certainly not !!! please somebody correct me if I am wroing [13:56] samyak: rtweed, yup and then "killed" message [13:57] pradeepto has joined the channel [13:57] samyak: what were the modules you have used ? [13:57] samyak: may be it could be something due to that [13:57] samyak: I am using express.js and log4js [13:57] kohai: @RobAshton: @thomasjo @slace @ryah I've decided in that talk I'm going to do a RavenDB demo in Node.js [13:57] samyak: also mongodb ( the driver ) [13:57] rtweed: don't think it's anything in the modules I'm using = the same stuff runs just fine on my physical linux server [13:58] sledge: samyak: try coming up with the smallest test case that reproduces the leak. [13:58] samyak: rtweed, your server may have provision for more memory than that on ec2, which may not force the kernel to kill the process !!!!! have you also checked that ? [13:59] samyak: sledge, I need to ... this weekend is not for anything else it seems !!!! [14:00] rtweed: samyak - no i haven't - to be honest I only use the EC2 server for my testing and to allow people to try the stuff I've done remotely. It's not business critical to me so I've not been able to justify spending much time tracking down the reason [14:00] rtweed: samyak: so I just live with it. But interested to know whether anyone else had seen similar probs [14:01] SuMarDi has joined the channel [14:01] rtweed: the one key module I use is redis-node. Maybe it has a memory leak in it? [14:02] Qbix2 has joined the channel [14:02] rtweed: but i don't really understand why/how the console.log call keeps it alive? [14:03] samyak: rtweed, I don't use that and I have same symptom... looks we can spare redis-node [14:03] tdegrunt has joined the channel [14:03] rtweed: samyak ok thats good to know [14:03] samyak: rtweed, well you found an hack that doing console.log alive it works .. for me it was usng GET request every minute [14:03] yhahn has joined the channel [14:04] pastak has joined the channel [14:04] samyak: rtweed, please give me the complete list of modules you are using... that would be really a great help [14:04] samyak: coz common modules could be really the key to find out what is going wrong !!! [14:05] rtweed: well its my node-mdb package which uses node-mwire which in turn uses redis-node, and also node-uuid [14:05] gtramont1na has joined the channel [14:05] rtweed: https://github.com/robtweed/node-mdb gives you the details [14:06] samyak: oh you code is on github .. I would infact put that up as well [14:06] rtweed: when i'm running mdb.js, it's hooked up to 5 child processes that are just sitting listening on the end of a TCP connection [14:06] samyak: but strange you are not using even epxress.js [14:07] avalanche123 has joined the channel [14:07] samyak: I mean, I suspected that to be issue [14:08] samyak: well I am also using mersenne for UUID stuff [14:08] rtweed: samyak - I wanted to build the core of it myself - the http service needed to emulate the AWS signing etc [14:08] mkrecny has joined the channel [14:09] boaz has joined the channel [14:09] Xano has joined the channel [14:10] rtweed: samyak - anyway I may do some experimentation to see if I can detect a memory leak when I'm running on my physical server [14:11] jslatts has joined the channel [14:11] strmpnk has joined the channel [14:12] gtramont1na has joined the channel [14:12] kohai: @MartinGross: Bad and good use cases for node.js http://bit.ly/mTvxTG (link: http://nodeguide.com/convincing_the_boss.html) [14:13] samyak: rtweed, good luck to you as well [14:14] replore_ has joined the channel [14:14] samyak: one thing common to us is use of uuid, though we are not using same module [14:14] rtweed: samyak - thanks! [14:14] copongcopong has joined the channel [14:14] pandeiro has joined the channel [14:14] rtweed: samyak - I'd be surprised if something that is simply generating uuids would be leaking? [14:15] mkrecny has joined the channel [14:15] rtweed: and it's only called in node-mdb at the end of a request being processed, to add a uuid to the response, so most of the time it's not being used [14:16] BillyBreen has joined the channel [14:16] DoNaLd` has joined the channel [14:17] sirkitree|afk has joined the channel [14:18] rfay has joined the channel [14:18] rtweed: samyak - i could always eliminate that possibility by replacing node-uuid with a bit of code that generated uuids, and see what happens, but i doubt if it should make any difference....worth a try though as it wouldn't take long [14:18] stepheneb has joined the channel [14:18] malkomalko has joined the channel [14:19] ceej has joined the channel [14:19] samyak: just completed reading the post ... I guess using cluster would be a safe bet [14:19] akshatj has joined the channel [14:21] eee_c has joined the channel [14:21] jtsnow has joined the channel [14:21] kohai: @pedrogteixeira: Just sold: Hands-on Node.js e-book ($ 4.99) http://tpay.me/j8ujC3 (link: http://tinypay.me/~iJg3vAz) [14:23] enotionz has joined the channel [14:23] MikeMakesIt has joined the channel [14:23] samyak: rtweed, would be doing forever.js experiments !!! [14:23] mscdex: kohai! [14:23] samyak: SubStack, Hi There , it is zilch only [14:24] mynyml has joined the channel [14:24] megatx has joined the channel [14:24] samyak: hope you remember, party.js is still without any line of code :P [14:24] pandeiro has joined the channel [14:25] niles|iPod has joined the channel [14:28] azeroth_ has joined the channel [14:28] cognominal has joined the channel [14:29] mendel_ has left the channel [14:29] Mrfloyd has joined the channel [14:29] cognominal has joined the channel [14:29] mendel_ has joined the channel [14:31] EyePulp has joined the channel [14:32] nibblebot has joined the channel [14:32] skm has joined the channel [14:34] sivy has joined the channel [14:35] davidascher has joined the channel [14:35] migimunz has joined the channel [14:36] c4milo has joined the channel [14:36] BlackFate has joined the channel [14:39] akshatj has joined the channel [14:42] postwait has joined the channel [14:44] swajr: does anyone know if the socket.io server protocol is defined anywhere? I'm thinking about implementing it in C#, and I would rather not poke around the code if I don't have to :) [14:44] brianseeders has joined the channel [14:44] bentruyman has joined the channel [14:45] `3rdEden: swaj [14:45] `3rdEden: there is a socketio-spec in the learnboost github [14:45] `3rdEden: https://github.com/LearnBoost/Socket.IO-spec [14:45] `3rdEden: It's the protocol that is going to be used for socket.io 0.7 [14:46] Tidwell has joined the channel [14:46] swaj: `3rdEden: awesome. I'll start working with that. Is the current master branch compatible with this spec for testing purposes? [14:48] lukstr: `3rdEden: do you have a log of tweets somewhere I can grep? [14:48] ckknight has joined the channel [14:48] `3rdEden: swaj there are `develop` branches these will be the 0.7 releases [14:48] sh1mmer has joined the channel [14:49] swaj: `3rdEden: good deal. thanks for the help. I'll check it out [14:49] edude03 has joined the channel [14:49] `3rdEden: lukstr nope don't have them [14:49] `3rdEden: swaj if you need help, feel free to join #socket.io [14:50] trotter has joined the channel [14:50] robhawkes has joined the channel [14:50] jtsnow has joined the channel [14:51] colinclark has joined the channel [14:54] `3rdEden: lukstr AvianFlu probably has them [14:54] Charuru: `3rdEden: what's the option in socket.io [14:54] kohai: @yosuke_furukawa: IBM developerWorks: What is Node.js ? http://goo.gl/JV7G1 It is easy to understand for Node.js. (link: http://www.ibm.com/developerworks/jp/opensource/library/os-nodejs/?cmp=dw&cpb=dwope&ct=dwrss&cr=dwrss&ccy=jp&csr=060311) [14:54] Charuru: to make it forget your saved transport? [14:54] `3rdEden: rememberTransport:false [14:55] `3rdEden: Charuru ^ [14:55] Charuru: thanks [14:55] dmcquay has joined the channel [14:56] fakewaffle has joined the channel [14:56] fakewaffle: does function myFunction() {...} make it global? [14:57] kohai: @collinvandyck: Oh, all of the .NET handwringing over HTML/JS. Don't worry! Node.js will not be replacing the backend.. [14:57] gf3: did node lose it's object inspection method? [14:58] fson: fakewaffle: if it's not inside some other function, yes [14:58] themiddleman_itv has joined the channel [14:58] fakewaffle: fson: thanks [14:58] gf3: util.inspect [14:58] yhahn: not yet at lesat [14:58] fson: it's same as var myFunction = function () ... [14:58] fakewaffle: it is or isnt? [14:58] eee_c1 has joined the channel [14:58] mscdex: there's console.dir() too for inspection to stdout [14:59] fakewaffle: var myFunction = function () does not make it global though so how is it the same? [15:00] davidwalsh has joined the channel [15:01] davidascher has joined the channel [15:01] Charuru: it's normal for xhr-polling to show perpetual loadinng icon right? [15:02] c4milo: what's the current status of the gzip support in nodejs/connect? [15:03] kohai: @yosuke_furukawa: Load balancing using Node.js. http://goo.gl/yoaPq Node.js will become cloud-friendly language. (link: http://www.ibm.com/developerworks/jp/cloud/library/cl-nodejscloud/?cmp=dw&cpb=dwcld&ct=dwrss&cr=dwrss&ccy=jp&csr=060311) [15:03] sharkbone has joined the channel [15:03] gazumps has joined the channel [15:05] NetRoY has joined the channel [15:05] Ken has joined the channel [15:06] boaz has joined the channel [15:06] philtor has joined the channel [15:07] `3rdEden: Charuru update to 0.6.18 [15:07] `3rdEden: that should kill the loading icon [15:07] `3rdEden: if not, create bug report [15:07] Charuru: cool, thanks! [15:07] `3rdEden: or spam the #socket.io channel [15:07] noocx has joined the channel [15:07] noocx: hi [15:08] Charuru: ohh there's such a thing [15:08] kelvin has joined the channel [15:08] Glenjamin: fakewaffle: the function statement is roughly equivalent to defining the function at the first line of the current scope. [15:09] sreeix has joined the channel [15:09] fakewaffle: i dont follow [15:10] fakewaffle: does function myFunction() {...} make myFunction global? like myFunction = function() {...} would? [15:10] Glenjamin: yes, but they're not quite the same [15:10] kohai: @kunteemu: Keeping CouchDB design docs up to date with Node.js http://wp.me/p1e5Le-2h [15:11] brraaains has joined the channel [15:11] tauren has joined the channel [15:11] kohai: @robin_ricard: If you are a Node.js developer : Let's meet @Cloud9IDE ! [15:12] niles|iPod has joined the channel [15:12] fakewaffle: thanks:) [15:14] mkrecny: yo, if anyone wants to get stuck into node, redis and lua at the same time, pretty fun project going on here: https://github.com/mkrecny/redis-extend [15:14] tbranyen: mkrecny: i just came [15:14] \sega has joined the channel [15:14] ewdafa has joined the channel [15:15] mkrecny: tbranyen: buzzwords do that to me aswell [15:15] tbranyen: mkrecny: last week i read the entire programming in lua up to when he starts using she/her instead of he/him [15:15] tbranyen: as far as i'm concerned thats where the book ends [15:15] colinclark has joined the channel [15:16] mkrecny: tbranyen: sexist a little? [15:16] tbranyen: what? no [15:16] sub_pop has joined the channel [15:16] lukstr: mkrecny: he found it too arousing [15:16] hij1nx has joined the channel [15:16] tbranyen: i'd just prefer the gender neutral style of writing that has existed for thousands of years [15:16] sonnym has joined the channel [15:16] mkrecny: haha [15:16] c4milo has joined the channel [15:16] fakewaffle: lol @ thousands [15:17] NetRoY_ has joined the channel [15:17] tbranyen: its called the bible, read it [15:17] tbranyen: God is he/him [15:17] fakewaffle: i just came [15:17] mkrecny: what about species neutral? [15:17] tbranyen: :3 [15:17] mkrecny: land of lisp might tickle you [15:17] tbranyen: ha i just honestly find it uncomfortable to read [15:17] tbranyen: especially in a technical book in which case i'd prefer absolutely nothing at all if possible [15:18] tbranyen: but yeah lua owns [15:18] strmpnk has joined the channel [15:18] lukegalea: tbranyen: perhaps we should all use regexes :) s?he.. oh wait. that looks like she... [15:19] pixel13 has joined the channel [15:19] mkrecny: i'm diving in for the first time this past week - just scripting a few redis commands in lua - seems like a powerful scripting lang [15:20] tbranyen: mkrecny: yeah i've been meaning to dig into what the whole scripting redis shit is about [15:20] lukstr: mkrecny, tbranyen: I agree, it's not that it's sexist, but that it can be surprising to come across and I actually find it distracting due to thinking about the stupid scenarios [15:20] mkrecny: tbranyen: fork away [15:20] tbranyen: mkrecny: i did :-p [15:20] mkrecny: tbranyen: cool [15:21] tbranyen: i probably won't be able to look at it till tonight/monday since there is a wedding this weekend [15:21] tbranyen: and i've been told no laptops [15:21] mkrecny: tbranyen: have fun! [15:22] tjholowaychuk has joined the channel [15:23] thalll has joined the channel [15:23] adelgado: geez, Land of Lisp for the Kindle is $27.86 [15:23] madsleejensen has joined the channel [15:23] tbranyen: adelgado: i'd avoid coding books on kindle from their store [15:23] tbranyen: they do horrid job rendering code [15:23] tbranyen: although might be publisher specific [15:24] NetRoY has joined the channel [15:24] kohai: @ropog: Learning about node.js from @mamund. This sounds interesting. #codestock [15:25] hafthor has joined the channel [15:25] Poetro1 has joined the channel [15:25] kohai: @jagregory: @ICooper @dylanbeattie Git and Node.js should be enough to start with. Homebrew can install both of them pretty painlessly [15:25] tshpaper has joined the channel [15:26] kohai: @KETANP: Anyone know of any nice Node.js tutorials? #node #help [15:27] ryanmcgrath has joined the channel [15:29] cloudhea1_ has joined the channel [15:29] rpflo has joined the channel [15:29] softdrink has joined the channel [15:31] podman has joined the channel [15:31] squaretone has joined the channel [15:31] jslatts has joined the channel [15:31] pietern has joined the channel [15:34] cloudhead_ has joined the channel [15:34] edude03 has joined the channel [15:35] tjholowaychuk: drudge linkinus "VIRT 10.8G" [15:35] wookiehangover has joined the channel [15:35] tjholowaychuk: *wtf face* [15:35] tjholowaychuk: not sure what's up there [15:35] tikva has joined the channel [15:36] hunterloftis has joined the channel [15:36] cloudhead has joined the channel [15:37] hunterloftis: authorize.net integration - who's done it? [15:37] tjholowaychuk: i think paynode has support [15:38] kohai: @leonardoeloy: Rails makes you smile. Node.js makes you giggle. CoffeeScript makes you gitty-gitty-goo. [15:38] RORgasm has joined the channel [15:39] tbranyen: tjholowaychuk: writing a new language as backup in case javascript goes down the shitter? [15:39] tjholowaychuk: tbranyen haha nah just for fun [15:40] temp01 has joined the channel [15:40] fakewaffle: what is the most simple syntax highlighter for JS? [15:40] tjholowaychuk: i really want message passing for stuff like "users select(age > 20)" etc [15:40] tbranyen: http://dev.tabdeveloper.com/ << weird shit on the last li [15:40] tbranyen: if you keep refreshing i get random binary data [15:40] tbranyen: so effing weird [15:40] tjholowaychuk: markdown? [15:40] tbranyen: yea [15:40] tjholowaychuk: haha [15:40] tjholowaychuk: that explains it [15:40] tbranyen: using robotskirt [15:41] tbranyen: which in turn uses upskirt which is what github uses [15:41] tbranyen: dunno wtf [15:41] tbranyen: maybe robotskirt has a bug [15:41] tjholowaychuk: it's because of the v8 bindings [15:41] pixel13 has left the channel [15:41] tjholowaychuk: i have it in discount too [15:41] tjholowaychuk: just improperly done [15:41] tjholowaychuk: and never bothered to fix it [15:41] tbranyen: heh [15:42] coreb has joined the channel [15:42] iori has joined the channel [15:43] tbranyen: tjholowaychuk: weird thing is that it doesn't happen locally [15:44] tbranyen: so confused [15:44] tjholowaychuk: hmm it did for me [15:44] tjholowaychuk: at random still [15:44] tbranyen: probably some cpu computer sciency explanation [15:45] tbranyen: since my linode is a very different environment from my desktop [15:45] tjholowaychuk: it's just an encoding issue iirc [15:45] temp02 has joined the channel [15:45] tjholowaychuk: and im pretty sure that guy copied node-discount so now they both have the bug [15:45] niles|iPod has joined the channel [15:45] tbranyen: lol [15:46] mhausenblas has joined the channel [15:46] tbranyen: looks like node-discount creates a slow buffer [15:46] tbranyen: oh wait just a string [15:46] tbranyen: wonder if using a buffer would help [15:49] kohai: @gijskruitbosch: #nodejs cluster.exception infinite mail loop. 10k to inbox, nuked 40k out of spool. It killed the mail app on my android. :-( [15:49] kevm has joined the channel [15:50] EyePulp has joined the channel [15:51] rudebwoy has joined the channel [15:51] Yuffster_work has joined the channel [15:52] easternbloc: where can I find global variables in a module? [15:52] baudehlo: at the top, usually. [15:53] easternbloc: hoho [15:53] easternbloc: :) [15:53] tbranyen: global. [15:53] easternbloc: I mean I wanna do this sorta thing: module[variable] [15:53] kohai: @bdickason: Trying to decide on a node.js PDF or ebook that i can read on the plane to St. Louis today... any suggestions? [15:53] tbranyen: exports.somevar = 'lol' [15:53] lukstr: a lot of people want node.js books... [15:53] cloudhea1_ has joined the channel [15:53] mendel__ has joined the channel [15:53] easternbloc: tbranyen: I dont wanna do that either [15:54] tbranyen: easternbloc: well cry me a river [15:54] ack has joined the channel [15:54] easternbloc: it's not to access them from another module [15:54] easternbloc: are they not available any other way? [15:55] lukstr: easternbloc: they are available the way tbranyen showed [15:55] isaacs has joined the channel [15:55] lukstr: easternbloc: what are you trying to do exactly? [15:56] easternbloc: something horrible [15:56] lukstr: no doubt [15:56] easternbloc: :) [15:56] cloudhead has joined the channel [15:56] ack: someone know of a cache engine that let me change backends? [15:56] shanez has joined the channel [15:56] easternbloc: I'm trying to mock modules after an include [15:57] mateu has left the channel [15:58] briznad has joined the channel [15:58] eee_c has joined the channel [16:00] jakehow has joined the channel [16:01] mbrevoort has joined the channel [16:01] mattly has joined the channel [16:02] eyesUnclouded has joined the channel [16:03] samsonjs has joined the channel [16:04] brettgoulder has joined the channel [16:05] arianrock_ has joined the channel [16:05] arianrock_: hai [16:05] alexanderdaw09 has joined the channel [16:05] broofa has joined the channel [16:05] arianrock_: Does anyone have some cool links on node.js? I have nothing to do and need some reading material [16:06] EyePulp: nodejs.org is pretty cool. [16:07] steffkes has joined the channel [16:08] mscdex: arianrock_: http://nodebeginner.org/ http://nodetuts.com/ http://www.youtube.com/watch?v=jo_B4LTHi3I http://nodeguide.com/ http://howtonode.org/ [16:08] hij1nx has joined the channel [16:08] kohai: @otaku_coder: To the midlands devs/techies, how many would be interested in a #nodejs usergroup? [16:08] arianrock_: merci [16:08] lukstr: mscdex: we could replace you with a robot, you know [16:09] mscdex: lukstr: eh? [16:09] lukstr: :) [16:09] baudehlo: how do you know he isn't? [16:11] lukstr: mscdex: You're in a desert, walking along in the sand, when all of a sudden you look down [16:11] dshaw_ has joined the channel [16:11] baudehlo: lol [16:11] kohai: @arunoda: #NodeJS #meetup in #SriLanka :) Anybody interested? [16:11] timmywil has joined the channel [16:12] DTrejo: !help [16:12] Xano has joined the channel [16:13] DTrejo: !kohai [16:13] niles|iPod has joined the channel [16:14] dans has joined the channel [16:16] jerrysv has joined the channel [16:18] kohai: @MikeKroger: Installing Node.js on CentOS 5.5 - http://bit.ly/l4cze8 (link: http://stuff.blat.co.za/2011/06/03/installing-node-js-on-centos-5-5/) [16:18] herbySk has joined the channel [16:19] kohai: @mgiglesias: #Nodejs is now starting to have #oracle support thanks to yours truly http://j.mp/mR4Tek (link: https://github.com/mariano/node-db-oracle) [16:19] davidascher has joined the channel [16:19] Shrink has joined the channel [16:19] Shrink has joined the channel [16:20] supakow has joined the channel [16:20] JakeyChan has joined the channel [16:20] kohai: @hij1nx: Interested in #MongoDB or #Nodejs? @Nodejitsu and @LearnBoost will give epic panel discussion via Webinar!! http://bit.ly/jYmxRQ #javascript (link: http://www.10gen.com/webinars/nodejs) [16:22] TooTallNate has joined the channel [16:22] jgv has joined the channel [16:22] hij1nx: kohai just followed me 5 times on twitter after i tweeted that =o/ [16:22] JakeyChan: hi, how to use express .use() function ?? what does it do ?? [16:23] kohai: @nathanhammond: @gjohnson391 Heroku's Node.js service was hardly usable during last year's Node Knockout. I'm sure it has improved since then. [16:23] tbranyen: you aren't jackey chan [16:23] lukstr: hij1nx: wasn't aware you could follow someone multiple times? [16:23] mundanity has joined the channel [16:23] EyePulp: tbranyen: no, he's Jakey Chan [16:23] tbranyen: oh good call [16:24] tbranyen: i was gettin upset [16:24] EyePulp: heh [16:24] rauchg: JakeyChan: [16:24] rauchg: you aren't jackey chan [16:24] EyePulp: I could see the consternation. [16:24] JakeyChan: rauchg: i am JackeyChan [16:24] kohai: @hij1nx: @NodeKohai bad bot! http://lockerz.com/s/107325689 [16:24] sirkitree has joined the channel [16:24] JakeyChan: I changed my name because the jackey look like strange :D [16:24] hij1nx: hah [16:25] JakeyChan: sorry for my change name :) [16:25] JakeyChan: please forget the jackey chan. :D [16:26] DTrejo: !tweet @member:hij1nx so sad now :| [16:27] mustalac has joined the channel [16:27] DTrejo: !tweet @hij1nx so sad now! [16:28] JakeyChan: DTrejo: ? [16:28] DTrejo: ACTION was pretending to be kohai, and copy paste failing [16:29] jameson has joined the channel [16:29] lukstr: !tweet @hij1nx D: I'll cry myself to sleep tonight [16:29] JakeyChan: :D [16:29] timmywil has joined the channel [16:29] CoverSlide has joined the channel [16:30] hij1nx: kohai gtfo [16:30] hij1nx: kohai: gtfo [16:30] sebbie_ has joined the channel [16:30] Ken has joined the channel [16:30] hij1nx: hey stupid gtfo [16:30] hij1nx: hmm [16:30] DTrejo: ;) [16:30] hij1nx: only works in the #nodejitsu room i guess =) [16:30] DTrejo: it works here too [16:31] DTrejo: you're forgetting something [16:31] rpflo has joined the channel [16:31] hij1nx: is the bang? [16:31] rfay has joined the channel [16:31] DTrejo: don't forget to bang [16:31] lukstr: AvianFlu: kohai busted? [16:31] hij1nx: not really, just acts a little screwy with twitter [16:31] lukstr: hij1nx: no he's not responding to me [16:32] hij1nx: THE ROBOT IS OUT OF CONTROL!!! [16:32] davida has joined the channel [16:32] hij1nx: heh [16:32] ph^ has joined the channel [16:33] mkrecny: jij1nx: what's it been like working w/ jvduf on EE2? [16:33] caolanm has joined the channel [16:33] mkrecny: *hij1nx: hat's it been like working w/ jvduf on EE2? [16:34] mustalac has joined the channel [16:34] hij1nx: mkrecny: jvduf is awesome, he's the man [16:34] davida has joined the channel [16:34] stagas has joined the channel [16:34] hij1nx: mkrecny: he's going to help me write more tests [16:34] CoverSlide: ee on node? [16:34] hij1nx: mkrecny: i dont have a lot of bandwidth for that [16:34] mkrecny: hij1nx: good to hear - really digging him as well - good luck w/ EE [16:35] jerrysv: coverslide: eventemitter2 [16:35] hij1nx: CoverSlide: https://github.com/hij1nx/EventEmitter2 [16:35] CoverSlide: we alread have calipso [16:35] hij1nx: calipso is a canned cms [16:36] hij1nx: eventEmitter is something completely different [16:36] jarek has joined the channel [16:36] jarek has joined the channel [16:36] jarek: Hi [16:36] CoverSlide: sorry i thought ee2 was expressionengine [16:36] jarek: is it a good idea to develop a desktop application in node.js? [16:36] jerrysv: calipso looks interesting, but way too drupal like [16:36] DTrejo: jarek: YES! [16:36] hij1nx: jarek: yes [16:37] CoverSlide: gnome3 uses js for scripting [16:37] jarek: but I suspect that users will not be very happy with a webserver running in the background [16:37] hij1nx: DTrejo: hah [16:37] DTrejo: jarek: npm docs topcube [16:37] CoverSlide: just like all java applications always run a webserver in the background [16:37] CoverSlide: oh wait [16:37] jarek: DTrejo: yeah, I have already heard about topcube [16:37] CoverSlide: that's actually almost true [16:38] jarek: DTrejo: it's a nice idea, but still it's far from Mozilla Chromeless [16:38] jarek: I would like to use node.js server for accessing the filesystem [16:39] jarek: how do I implement it securily? [16:39] notgeorge has joined the channel [16:39] CoverSlide: node.js does access the filesystem [16:39] jarek: by default, anyone in the local network will be able the files on the computer that is running my app :/ [16:39] jarek: s/will be able the files/will be able to access the files [16:39] jarek: sorry for typos [16:40] addisonj: sweet, just got a beta invite to google music... 20,000 songs in the cloud for free, beats the hell outta amazon cloud player [16:40] lukstr: jarek: node.js doesn't have to be a webserver, as others pointed out [16:41] arianrock_: I actually use it as a game server [16:41] lukstr: s/webserver/server/g [16:41] arianrock_: I made a nifty module to data serialisation [16:41] arianrock_: input is an object that describes sizes, output is the serialized data / deserialized data [16:42] nanreh has joined the channel [16:42] arianrock_: Should I add byteorder support, or is that overkill? [16:42] kohai: @hij1nx: @dalmaer i rewrote the #nodejs EventEmitter to support namespaces and wildcards + other features its faster and smaller http://bit.ly/l8C433 (link: https://github.com/hij1nx/EventEmitter2) [16:42] stepheneb has joined the channel [16:42] hij1nx: ugh [16:43] hij1nx: seriously i feel like there is a parrot on my shoulder [16:43] rfay has joined the channel [16:43] addisonj: oh its back [16:43] springmeyer has joined the channel [16:43] hunterloftis has joined the channel [16:44] __sorin__ has joined the channel [16:44] Marak has joined the channel [16:45] micheil has joined the channel [16:45] ryanj has joined the channel [16:45] Mrfloyd has joined the channel [16:46] Marak: DTrejo: RTFM thats not a valid command [16:46] charlesjolley- has joined the channel [16:46] zzak has joined the channel [16:46] zzak has joined the channel [16:46] CoverSlide: hij1nx: here's something I've never seen before: ;!function(exports, undefined) { [16:47] CoverSlide: what's up wit dat? [16:47] MikeMakesIt has joined the channel [16:47] hij1nx: ";" prevents collisions with other parens, ! forces the function to return true instead of undefined [16:48] nanreh: kohai: doc bug? --> Adds a listener that will execute n times for the event before being removed. The listener is invoked only the first time the event is fired, after which it is removed. [16:48] CoverSlide: oic [16:48] niles|iPod has joined the channel [16:48] zmbmartin: tjholowaychuk: is there a method in jade templates to check if an object is included in an array? [16:50] tjholowaychuk: zmbmartin it's just raw js [16:50] tjholowaychuk: so indexOf() [16:50] CoverSlide: v8: 5 in [1,2,3] [16:50] v8bot: CoverSlide: false [16:50] CoverSlide: v8: 5 in [1,2,3,4,5] [16:50] v8bot: CoverSlide: false [16:50] zmbmartin: tjholowaychuk: oh ok thanks [16:50] CoverSlide: thats odd [16:50] CoverSlide: worked in my node repl [16:50] tjholowaychuk: v8: ~[1,2,3,4].indexOf(3) [16:50] v8bot: tjholowaychuk: -3 [16:50] tjholowaychuk: v8: ~[1,2,3,4].indexOf(10) [16:50] v8bot: tjholowaychuk: 0 [16:51] zeade has joined the channel [16:51] CoverSlide: oh [16:51] CoverSlide: ACTION facepalms [16:52] tjholowaychuk: v8: !!~[1,2,3,4].indexOf(3) [16:52] v8bot: tjholowaychuk: true [16:52] tjholowaychuk: makes more sense i guess [16:52] tjholowaychuk: but you get the idea [16:52] charlesjolley-_ has joined the channel [16:52] dnuke has joined the channel [16:53] steyblind has joined the channel [16:53] hij1nx: tjholowaychuk: some people avoid the bitwise not op because its more obscure, i personally think its more readable [16:53] squaretone has left the channel [16:53] tbranyen: tjholowaychuk: don't need the !! [16:53] sh1mmer has joined the channel [16:54] tbranyen: if( ~[1,2,3,4].indexOf(3) ) { ... } [16:54] tjholowaychuk: tbranyen i know, just for illustration [16:54] tbranyen: nice save [16:54] tjholowaychuk: hij1nx yeah i like it better than >= [16:54] perezd has joined the channel [16:54] tbranyen: its not as readable tho for noobs [16:54] tbranyen: but then again... [16:54] tbranyen: noobs shouldn't be noobs [16:54] hij1nx: double negations dont make sense in english, they make even less sense in code [16:55] tjholowaychuk: haha not not not not true [16:55] tjholowaychuk: though nothing makes sense in english [16:55] zzak: reminds me of logic class [16:55] CoverSlide: english is illogical [16:55] CoverSlide: lojban is [16:55] nyuszika7h has joined the channel [16:55] nyuszika7h has left the channel [16:55] nyuszika7h has joined the channel [16:55] nyuszika7h: Hi, can I do something like //!/usr/bin/env node ? [16:55] CoverSlide: vulcans would be more likely to speak lojban than english [16:55] aguynamedben has joined the channel [16:56] tbranyen: nyuszika7h: #!/usr/bin/env node [16:56] tbranyen: its a shebang shebang [16:56] tjholowaychuk: nyuszika7h node strips out the hash bang [16:56] nyuszika7h: Yeah, but in JS, # isn't a comment. [16:56] nyuszika7h: tjholowaychuk: ah. [16:56] tbranyen: all languages i know of strip out hash bangs [16:56] lukstr: tbranyen: c? [16:56] CoverSlide: if it's an executable specifically for node, I don't know where else you would want to use it [16:57] nyuszika7h: nice [16:57] nyuszika7h: I didn't know about that [16:57] CoverSlide: if you use tcc, tes [16:57] CoverSlide: *yes [16:57] lukstr: sigh [16:58] context: really piss people off in your code and do: undefined = true; [16:58] perezd has joined the channel [16:58] temp01 has joined the channel [16:58] CoverSlide: haha [16:58] nyuszika7h: I love node [16:58] CoverSlide: node loves you [16:58] tbranyen: context: thats hard to do in node tho isn't it, since each module has its own sandbox [16:59] nyuszika7h: I was wondering why did cloning from git took so long... You want to know why? [16:59] perezd has joined the channel [16:59] hunterloftis has joined the channel [16:59] tbranyen: it was a big repo? [16:59] nyuszika7h: No... [16:59] nyuszika7h: I cloned the HTML page, not the .git file. [16:59] CoverSlide: bandwidth-stealing elves? [16:59] context: tbranyen: yes. [16:59] nyuszika7h: srsly :P [17:00] kohai: @julien_c: Hands-on Node.js e-book » $ 4.99 » Pedro Teixeira 1 http://t.co/8D4MBOo via @pedrogteixeira (link: http://tinypay.me/~iJg3vAz) [17:01] kohai: @vicmargar: Oh, Node.js vs Erlang argument again at the office, it gets much better with a few beers [17:01] mjr_ has joined the channel [17:02] niles|iPod has joined the channel [17:02] rputikar has joined the channel [17:02] jslatts has joined the channel [17:02] kohai: @mikeal: seattle node.js peoples? @dandean @topfunky http://t.co/JVond4W (link: http://groups.google.com/group/nodejs/browse_thread/thread/48411f169e3d8012) [17:03] ebryn has joined the channel [17:03] boaz has joined the channel [17:03] pjacobs has joined the channel [17:04] CoverSlide: grr how the fuck do i keep npm from updating itself? [17:06] cloudhead has joined the channel [17:06] eee_c has joined the channel [17:06] samsonjs has joined the channel [17:06] cloudhead_ has joined the channel [17:07] neaf has joined the channel [17:07] pigmej has joined the channel [17:07] nyuszika7h: Hi, is it possible to get text on standard input (STDIN) with node? [17:08] nyuszika7h: I always say 'Hi' >_> [17:08] nyuszika7h: even if I were on the channel earlier [17:08] kohai: @Nodester: @arunoda DM us your email address and we'll send you a node.js hosting coupon that everyone at the meetup can use ;) [17:08] srid has joined the channel [17:09] colinclark_ has joined the channel [17:09] hunterloftis has joined the channel [17:09] context: nyuszika7h: yes. [17:10] nyuszika7h: context: how? [17:10] context: http://nodejs.org/docs/v0.4.8/api/process.html [17:10] isaacs: CoverSlide: just don't update it? [17:10] isaacs: CoverSlide: what are you doing that's causing npm to update itself? [17:11] CoverSlide: npm -g update [17:11] isaacs: CoverSlide: yeah, that's gonna update npm [17:11] isaacs: CoverSlide: just specify the things that you want updated, or update npm first. [17:11] isaacs: CoverSlide: npm -g update whatevs [17:11] isaacs: npm -g update express sax glob whatever [17:12] CoverSlide: but [17:12] isaacs: CoverSlide: that breakage, where npm updates itself adn fails? that sucks a lot. that's a bug, and it'll be fixed soon. [17:12] CoverSlide: im lazy :'( [17:12] colinclark_ has joined the channel [17:12] context: npm breaks itself? i wanna see ! [17:12] isaacs: context: sudo npm update npm -g [17:13] context: still works here :x [17:13] isaacs: context: then do the curl | sh to install it again. only breaks if you have a 1.0 that isn't the latest [17:13] context: oh [17:13] isaacs: context: oh, also, --no-unsafe-perm [17:13] isaacs: (tha's the default anyway, but just to be sure, in case you set unsafe-perm = true) [17:13] context: heh ive wiped/installed node/npm like 2-3 since 1.0 was released [17:13] isaacs: :) [17:14] isaacs: ok, commute time. have fun, node peoples. [17:14] shanez has joined the channel [17:14] harth has joined the channel [17:15] andrenkov has joined the channel [17:15] colinclark_ has joined the channel [17:16] dshaw_ has joined the channel [17:16] hunterloftis has joined the channel [17:16] colinclark_ has joined the channel [17:17] colinclark has joined the channel [17:19] dshaw_ has joined the channel [17:19] Shrink has joined the channel [17:20] chrislorenz has joined the channel [17:20] Timothee has joined the channel [17:21] jeremyselier has joined the channel [17:22] kohai: @franklywatson: Shared: .. was wondering if there was a snappy way to oauth integrate 2 just about everything, stat... #nodejs http://bit.ly/l8xDhY (link: https://github.com/ciaranj/connect-auth?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+jpimmel%2Fshared+%28J+Pimmel+shared+reader+items%29) [17:22] Guest89560 has joined the channel [17:22] colinclark_ has joined the channel [17:23] cjm: I'm looking for some help figuring out best practices for sessions on a server that uses express and socket.io. The goal is handling things like pairing socket.io session ids with user ids, maintaing state on reconnects, and being able to easily group any actors on the server. [17:25] jslatts: cjm: what questions do you have? [17:28] cjm: I'm just not sure if the best way to go about it. Build active user objects with the information? Add objects to an array to group them and give them the ability to send to one another? User socket.broadcast() and fill the exceptions with anyone not in their array? [17:28] context: cjm: express has session support [17:29] cjm: ok, ill dive deeper into that [17:29] jslatts: cjm: if the goal is to make groups of users interact with each other, there are two basic paths I have tried. 1) keep the user objects in memory on the server [17:29] bartt has joined the channel [17:29] jslatts: cjm: 2) use a pubsub system (like redis) and subscribe groups to appropriate channels [17:30] cjm: have you discovered any major pros or cons to either? [17:31] jslatts: cjm: the downside of the in memory approach is that you complicate things like running multiple instances of node [17:31] dmcquay has joined the channel [17:31] jslatts: cjm: and if your node process goes down, you need to think about how to rebuild those objects when it starts up [17:31] malkomalko has joined the channel [17:32] cjm: right, ok [17:32] trotter has joined the channel [17:32] jslatts: cjm: to hand off from express -> node, you can use the session cookie, or pass in some sort of hash to the client. I wrote an example of the latter up on my blog (http://fzysqr.com/2011/04/11/sending-your-clients-to-purgatory-a-node-jssocket-io-tutorial/) [17:33] __sorin__ has joined the channel [17:33] jslatts: cjm: i can also give you an example of the session approach if you want/need/prefer that [17:34] Timothee: hello there. I'm getting started with Node and was wondering what major companies/apps are using it [17:34] cjm: jslatts: ill read thorugh this first, thanks very much [17:34] Timothee: let's say to convince some non/less-technical people [17:34] Timothee: (I've read through the list on the Github wiki, but couldn't find a lot of mainstream names) [17:34] adambeynon has joined the channel [17:35] mjr_: There aren't a lot of mainstream names yet [17:35] context: passing auth information BACK to the client? thats gotta be a security hole BEGGING to happen [17:35] scoates has joined the channel [17:35] jslatts: Yahoo and HP [17:35] mjr_: Yahoo and Facebook have both publicly admitted that they are working with it in some capacity. [17:35] jslatts: context: not any worse than a session cookie [17:35] edgarallanpoe has joined the channel [17:35] mjr_: And clearly HP has embedded node in every WebOS device, which will soon include every HP windows machine ever. [17:36] Timothee: mjr_, jslatts oh ok cool [17:36] context: jslatts: yes huh [17:36] jslatts: context: and you could make the hash a one time throw away [17:36] context: instead of a random cookie id you have a username AND password pair. [17:37] tilgovi has joined the channel [17:37] raidfive has joined the channel [17:37] Timothee: mjr_, it's true that it's always hard to know what companies are *actually* doing with one tech or another... [17:37] Timothee: thanks [17:37] jslatts: context: yes, that is a bad example. I should make it just do a random hash [17:37] cjm: jslatts, can you socket.broadcast to an array of clients instead of the array being of the exceptions? would you jsut client.send for each instead? [17:38] context: does socket.io send cookies on intial connection? [17:38] context: and does express-session support cookie sessions [17:39] philhawksworth has joined the channel [17:39] jslatts: context: yes on the latter. [17:40] davida has joined the channel [17:40] context: and the former? :x [17:40] mjr_: Timothee: oh also Rackspace is using a bunch of node. [17:40] jslatts: cjm: I would just loop through each client object and broadcast to each. I don't think you can broadcast to a list [17:40] context: id imagine the browser has to send the cookie [17:40] cjm: ok thanks [17:40] gozala has joined the channel [17:40] jslatts: context: as I recall, I had to manually scrape the cookie contents out to use the session id for socket [17:41] gozala has joined the channel [17:42] kohai: @keoko: @vicmargar for a moment I thought you were migrating to node.js :D [17:43] arianrock_ has joined the channel [17:43] arianrock_: the step library + coffeescript gives an interesting syntax o.o [17:43] arianrock_: http://pastebin.com/H7yBCiqx [17:43] baoist has joined the channel [17:43] tjholowaychuk: ew [17:44] gozala has joined the channel [17:44] arianrock_: it kind of defeats the purpose though [17:44] arianrock_: as now you ident even more then you did before [17:44] arianrock_: oops forgot (err,text)-> there [17:44] arianrock_: o well [17:45] addisonj: i thought I would eventually start using coffeescript once I got more comfortable with node, but the more I see it, the less I like it [17:45] addisonj: i guess I should try it first, but meh [17:45] tjholowaychuk: it looks kinda nice in small examples [17:45] tjholowaychuk: sorta [17:45] tjholowaychuk: some times [17:46] tjholowaychuk: but large bodies of code == puke [17:46] CoverSlide: yeah coffee add a couple nice features [17:46] arianrock_: it's awesome for small pieces of code [17:46] arianrock_: but the syntax is too minimalsitic for big things [17:46] mikeal has joined the channel [17:46] tjholowaychuk: i really hate stuff like "if foo is bar and this isnt that" to much english, tough to read imo [17:46] tjholowaychuk: I prefer to see == != etc, breaks it up better [17:46] addisonj: ACTION agrees [17:47] davidascher has joined the channel [17:47] addisonj: i don;t mind operators [17:47] tjholowaychuk: everything starts to look the same [17:47] arianrock_: I reminds me of a piece of code in an old chat server I wrote [17:47] tbranyen: if((( (foo === bar) && !(this === that) ))) [17:47] tbranyen: or bust [17:47] tbranyen: need parens to guide the eyes [17:47] CoverSlide: i wish they didn't break the conditional [17:47] arianrock_: for c in clients when c isnt client and c.name? then c.write "#{client.name} has joined the chat!"\n [17:47] tjholowaychuk: the only thing syntax-wise i wish js had, is ||= [17:48] tjholowaychuk: and unless [17:48] tbranyen: and yield :-/ [17:48] tbranyen: wish v8 had yield [17:48] arianrock_: there is no need for yield? [17:48] tbranyen: would stop a majority of the bitching about callbacks [17:48] tbranyen: specifically nested callbacks [17:48] arianrock_: I don't mind the callbacks, but I don't nest them [17:48] arianrock_: that's a result of writing evented i/o in C before [17:49] tbranyen: right but javascript isn't c [17:49] tjholowaychuk: i dont get why we dont have ||= yet [17:49] tbranyen: tjholowaychuk: or = ? [17:49] tbranyen: not familiar with that operator [17:49] jslatts: context: I added a disclaimer to the tutorial :) [17:49] thomblake: Joined the nodejs google group and tried to send an e-mail about an hour ago but it does not appear on the web view and didn't give me a bounceback - any thoughts? [17:49] tjholowaychuk: tbranyen yeah and &&= [17:49] tjholowaychuk: etc [17:49] tbranyen: https://developer.mozilla.org/en/New_in_JavaScript_1.7 would love to see all of this implemented in v8 [17:49] addisonj: hrm, someone should just write a little parses and add yield to mostly vanilla js, that would be interesting [17:49] tbranyen: would be a sick binding too [17:50] tjholowaychuk: foo = foo || bar foo ||= bar [17:50] tbranyen: tjholowaychuk: yeah that would be nice [17:50] adambeynon has joined the channel [17:50] NuckingFuts has joined the channel [17:50] gf3: tjholowaychuk: HARMONY [17:50] gf3: also [17:50] leahculver has joined the channel [17:50] leahculver has joined the channel [17:50] gf3: ( foo = foo || bar ) != ( foo ||= bar ) [17:51] CoverSlide: so its in spidermonkey but not v8? [17:51] gf3: CoverSlide: not even [17:51] systemfault: Is harmony just an impossible dream? [17:51] systemfault: Seriously. [17:51] gf3: systemfault: no, see Traceur [17:51] systemfault: We all know what happened with ES4.. :( [17:51] sreeix_ has joined the channel [17:51] arianrock_: I'm eating nachos with alot of cheese :3 [17:51] arianrock_: ACTION is enjoying this alot [17:52] CoverSlide: so theres no reference implementation for js 1.7+? [17:52] systemfault: gf3: Nice project :) [17:52] gf3: CoverSlide: see Traceur [17:52] gf3: systemfault: mhmm, pretty cool [17:52] tbranyen: CoverSlide: pretty sure mozilla implements all that shit [17:53] tjholowaychuk: tbranyen most of it at least [17:53] tjholowaychuk: narcissus wouldnt run on node [17:53] tjholowaychuk: because of that crap [17:53] tbranyen: heh [17:53] tjholowaychuk: with the exception of let [17:53] tjholowaychuk: != crap [17:53] tjholowaychuk: catch gaurds == meh, most of it == meh [17:53] shanez has joined the channel [17:53] tjholowaychuk: "meh" should be a keyword [17:54] tbranyen: for callbacks that you don't care if they return or not [17:54] tbranyen: async rather [17:54] addisonj: hah, i wait the release of tjholowaychuk's "apathetic js" [17:54] Yoric has joined the channel [17:55] tjholowaychuk: haha [17:55] tbranyen: i often use callback and async interchangeably :| [17:56] arianrock_: whoever decided that html should be some xml-like thingy is not my friend [17:56] arianrock_: I wish html was in TeX syntax or something [17:56] tbranyen: siml [17:56] CoverSlide: html came before xml [17:57] xandrews has joined the channel [17:57] jdalton has joined the channel [17:57] jdalton has left the channel [17:57] arianrock_: same difference, essence of the story stays the same [17:57] ckknight: tbranyen: I think the generators are the coolest things. [17:57] baudehlo: sgml [17:57] tbranyen: ckknight: yeah, but like all cool things, we can't use them :( [17:58] ckknight: I know :'( [17:58] gf3: indeed [17:58] gf3: also [17:58] tbranyen: ckknight: would be interesting to implement them as a native module [17:58] gf3: I'm more interested in the everyday shit [17:58] tbranyen: but my v8 skills can't do such things [17:58] jmoyers has joined the channel [17:58] gf3: that's what'll make the most difference [17:58] ckknight: tbranyen: I haven't played with the C++ API yet [17:58] johnnywengluu_ has joined the channel [17:59] tbranyen: ckknight: if it takes google this long to implement features, i think we'll be safe not worrying about es.next stuff for at least 4-5 years [17:59] jgv has joined the channel [17:59] nanreh: anyone using sinon.js/sinon-nodeunit? good, bad, ugly? [17:59] tbranyen: javascript 1.7 page was published 2006 [17:59] tbranyen: heh [18:00] kohai: @RWW: ReadWriteHack: Node.js PaaS Nodejitsu Open-Sources Several Tools http://rww.to/mU6L5o (link: http://www.readwriteweb.com/hack/2011/06/nodejitsu-open-source-nodejs.php) [18:00] tauren has joined the channel [18:00] kohai: @tzmtk_reader: Node.js PaaS Nodejitsu Open-Sources Several Tools http://ff.im/-ERFcZ (link: http://www.readwriteweb.com/hack/2011/06/nodejitsu-open-source-nodejs.php) [18:00] dve has joined the channel [18:00] facepunch has joined the channel [18:01] Croms has joined the channel [18:03] ckknight: tbranyen: Google implementing official ECMAScript publications is more likely than just copying Mozilla, they've been pretty good about ES5. [18:03] chrislor_ has joined the channel [18:03] tbranyen: yeah good point [18:03] tbranyen: which is def for the best [18:04] ckknight: Mozilla's pretty liberal about what it puts into its Javascript implementation [18:04] qFox has joined the channel [18:04] tjholowaychuk: because brendan is all over the place [18:04] systemfault: That must be because they had "Mr. Javascript" in their team [18:04] systemfault: Indeed. [18:04] systemfault: *have [18:05] bartt has joined the channel [18:05] chrislorenz has joined the channel [18:05] ryankirkman has joined the channel [18:07] tikva has joined the channel [18:08] nyuszika7h_ has joined the channel [18:08] kohai: @EdmondLauCA: Time to hack and code! - Node.js PaaS Nodejitsu Open-Sources Several Tools http://t.co/OGVz85I via @RWW #in (link: http://www.readwriteweb.com/hack/2011/06/nodejitsu-open-source-nodejs.php) [18:09] kohai: @weremight: #whigger #internut Node.js PaaS Nodejitsu Open-Sources Several Tools: Nodejitsu, the original Node.js platform-a... http://bit.ly/m2jCw6 (link: http://whigger.weremight.com/whigger/story.php?title=node-js-paas-nodejitsu-open-sources-several-tools&utm_source=twitterfeed&utm_medium=twitter&utm_campaign=candi&utm_term=topic&utm_content=computer%2Binternet) [18:09] matjas has joined the channel [18:09] CoverSlide: wow [18:09] CoverSlide: same article 3x [18:09] CoverSlide: wtg kohai [18:09] rpflo has joined the channel [18:10] ngs has joined the channel [18:10] hosh_work has joined the channel [18:11] jacobolus has joined the channel [18:12] pixel13 has joined the channel [18:12] ankush has joined the channel [18:12] coreb has joined the channel [18:12] tanepiper has joined the channel [18:12] pixel13: hello all, can anyone quickly remind me the global system object in node? (e.g. like "window" is in the browser) [18:13] pixel13: …having a brain-fart. [18:13] DTrejo: GLOBAL [18:13] DTrejo: and maybe also global [18:13] DTrejo: pixel13: ^ [18:13] pixel13: hmmm... [18:13] gsmcwhirter has joined the channel [18:13] pixel13: aah, GLOBAL it is [18:13] pixel13: global = {} [18:14] pixel13: DTrejo: thx! [18:14] ardcore has joined the channel [18:14] kohai: @Juev: cuppster.com - http://t.co/hgJe5GU // Сайт работающий на node.js Что интересно, работает очень быстро! (link: http://cuppster.com/) [18:14] nuba has joined the channel [18:14] dstufft has joined the channel [18:14] _jdalton has joined the channel [18:14] ardcore has left the channel [18:15] jdalton has left the channel [18:15] markwubben has joined the channel [18:15] _rain has joined the channel [18:15] sethmcl has joined the channel [18:16] madsleejensen has joined the channel [18:16] dstufft: Here's a question, can node.js function as a sort of TCP/UDP proxy (or firewall?). not in the traditional sense but I need to read the data in incoming TCP/UDP packets and reject/proxy them based on the data inside the packets. Im not sure if this is something node.js can do or not (after being programmed to do it anyways) [18:16] jerrysv: ryah: you around? [18:17] wink_: dstufft: the answer is a little tricky, but yes [18:18] wink_: dstufft: it wont be cross platform either [18:18] NetRoY_ has joined the channel [18:19] dstufft: wink_: ok, thanks, I'll look into it further then and see what information I can dig up [18:19] _jdalton has joined the channel [18:19] petrjanda has joined the channel [18:20] wink_: dstufft: you'll need a little c++ and whatever network apis your os provides (some may not) [18:20] wink_: linux has an api that'd do that job pretty easily [18:20] wink_: osx/bsd/windows, who knows.. [18:20] pixel13: DTrejo: thx again, and yes, turns out global also works as well, for recursion, etc [18:20] pixel13: console.log(global.process.versions) _vs_ console.log(GLOBAL.process.versions) [18:21] pixel13: and console.log(GLOBAL) _vs_ console.log(global) [18:21] DTrejo: v8bot: 1 + 1 [18:21] v8bot: DTrejo: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [18:21] DTrejo: v8: console.log(global.process.versions); console.log(GLOBAL.process.versions) [18:21] v8bot: DTrejo: ReferenceError: global is not defined [18:21] crodas has joined the channel [18:22] Bradleymeck has joined the channel [18:22] dshaw_ has joined the channel [18:22] cha0s has joined the channel [18:22] cha0s has joined the channel [18:22] sudhirjonathan has joined the channel [18:22] NetRoY has joined the channel [18:22] sudhirjonathan: which is the recommended mysql client right now? [18:22] maushu has joined the channel [18:22] CoverSlide: v8: GLOBAL [18:22] v8bot: CoverSlide: ReferenceError: GLOBAL is not defined [18:23] CoverSlide: v8: Buffer [18:23] v8bot: CoverSlide: ReferenceError: Buffer is not defined [18:23] pixel13: v8: console.log( global ); [18:23] v8bot: pixel13: ReferenceError: global is not defined [18:23] crodas has joined the channel [18:23] srid has joined the channel [18:23] srid has joined the channel [18:23] CoverSlide: v8: this [18:23] v8bot: CoverSlide: {console:{log:function (x){console.out.push(pp…,out:[]},print:function print(x){console.log(x)…,pp:function pp(o,depth){return pp_r…,pp_r:function pp_r(o,d){var a=[],p if…} [18:23] pixel13: sweet! [18:24] gf3: yuck [18:24] kohai: @Nodester: We're proud to be able to claim that we are the first and only 100% opensource node.js hosting PaaS - http://github.com/nodester #FOSS (link: https://github.com/nodester) [18:25] gf3: `about [18:25] gbot2: http://developer.mozilla.org/en/docs/About_JavaScript [18:25] pixel13: v8: if( typeof v8bot == 'undefined' ){ var pixel13 = 'sad face'; } [18:25] v8bot: pixel13: undefined [18:25] CoverSlide: oooh what's nodejitsu gonna say to that [18:28] NetRoY has left the channel [18:28] _jdalton has left the channel [18:28] NetRoY has joined the channel [18:30] insin has joined the channel [18:30] davida has joined the channel [18:30] kohai: @robinbateboerop: Anyone know of a good Node.js tutorial for advanced programmers? http://t.co/MfjI1P2 maybe? (link: http://nodebeginner.org/) [18:30] jerrysv: coverslide: apparently that it's true, kohai retweeted :) [18:31] kohai: @islandguybyu: @roidrage That would probably make more sense if Node.js were a database. [18:32] kohai: @del_javascript: This Time, You’ll Learn Node.js | Nettuts+ http://owl.li/1d2czy (link: http://net.tutsplus.com/tutorials/javascript-ajax/this-time-youll-learn-node-js/) [18:35] kohai: @coverslide: So apparently I just mention node.js and kohai spits it out in chat? [18:36] chjj: lol [18:36] NetRoY_ has joined the channel [18:37] context: coverslide: twitter + node.js is pretty awesome [18:37] NetRoY__ has joined the channel [18:37] nyuszika7h has joined the channel [18:40] adambeynon has joined the channel [18:40] NetRoY has joined the channel [18:40] perezd_ has joined the channel [18:40] ben_alman: does node or even native js have anything to merge objects? [18:40] zeade has joined the channel [18:40] ben_alman: ACTION has no idea [18:41] tjholowaychuk: just iterate and assign the vals [18:41] ben_alman: so the answer is "no" [18:41] CoverSlide: correct [18:41] tjholowaychuk: nah, would be kinda nice if there was Object.merge(a,b) or something but [18:41] eldar has joined the channel [18:41] ben_alman: ya [18:41] tjholowaychuk: people have different needs [18:41] CoverSlide: although the code is trivial [18:41] ben_alman: sure [18:42] ben_alman: i just don't want to write it if it already exists [18:42] CoverSlide: just make a "utils" package [18:42] ben_alman: i'm not familiar with all the latest ECMA methods [18:42] CoverSlide: er module [18:42] CoverSlide: most packages have that in their utils [18:42] CoverSlide: not most, but lots [18:43] Bradleymeck: merge is a hard thing to get right, most people end up eventually hitting the edge cases that cause problems [18:43] ben_alman: the one in jquery works pretty well, i can dig it [18:43] ben_alman: but i don't really need it, it would just be a little sugar here [18:44] ben_alman: not worth a dep [18:44] dnuke has joined the channel [18:44] tjholowaychuk: it can be like 4 lines [18:44] chjj: well do you really need a deep copy of all properties? [18:44] context: tjholowaychuk: might be useful for you: http://javascriptweblog.wordpress.com/2011/05/31/a-fresh-look-at-javascript-mixins/ [18:44] context: javascript weekly is really useful [18:44] pixel13 has left the channel [18:44] chjj: a simple merge is easy [18:44] tjholowaychuk: i'll have to kill you if you add a dep [18:44] ben_alman: no i don't really need it, even at all [18:44] chjj: deep traversal is what makes it verbose [18:44] CoverSlide: oooh a new one [18:44] ben_alman: which is why i'm not really worried about it [18:44] CoverSlide: i've been reading dailyjs [18:45] perlmonkey2 has joined the channel [18:45] tjholowaychuk: context the article or the blog/ [18:45] tjholowaychuk: ? [18:45] context: the article [18:45] context: err.. the article i got from javascript weekly [18:45] jerrysv: context: thanks, instapapered [18:46] tjholowaychuk: it's just some objects [18:46] tjholowaychuk: that's like every-day js stuff [18:46] tjholowaychuk: though I'm not a fan of "private" methods [18:47] trotter has joined the channel [18:50] CoverSlide: Object.prototype.merge = function(o){for(var i in o)this[i] = o[i];return this};console.log({a:1}.merge({b:2})) [18:50] CoverSlide: v8: Object.prototype.merge = function(o){for(var i in o)this[i] = o[i];return this};console.log({a:1}.merge({b:2})) [18:50] v8bot: CoverSlide: {a:1,b:2,merge:function (o){for(var i in o)this…} [18:50] tjholowaychuk: noOoO [18:50] tjholowaychuk: dont do that [18:50] CoverSlide: i nose [18:51] ben_alman: how do you handle async stuff in a .js file being run as a shell script? [18:51] kohai: @seanpmcb: Node.js PaaS Nodejitsu Open-Sources Several Tools http://t.co/EjbBX7a via @RWW #node.js #javascript (link: http://www.readwriteweb.com/hack/2011/06/nodejitsu-open-source-nodejs.php) [18:51] ben_alman: like, when does the process exit? [18:51] strmpnk_ has joined the channel [18:51] herbySk has joined the channel [18:51] tjholowaychuk: CoverSlide I dont mind people extending other stuff so much but Object.prototype [18:51] tjholowaychuk: is not fun [18:52] kohai: @OpenStackClouds: #OpenSource #Cloud Node.js PaaS Nodejitsu Open-Sources Several Tools: ... check out this helpful resource f... http://bit.ly/jc6mnT #TCN (link: http://www.google.com/url?sa=X&q=http://www.readwriteweb.com/hack/2011/06/nodejitsu-open-source-nodejs.php&ct=ga&cad=CAcQARgAIAAoATAAOABAsdKk7wRIAlAAWABiBWVuLUNB&cd=DyXsGsyEGa4&usg=AFQjCNGy0zt_x6OkwntEVRqqZG46cfSWtA&utm_source=twitterfeed&utm_medium=twitter) [18:52] chjj: yeah, Object prototype is everything [18:52] sledge: CoverSlide: What do you do if two objects have the same property? [18:52] Marak has joined the channel [18:52] ben_alman: CoverSlide, if anything make a static Object.merge(obj1, obj2, ...) method [18:52] ben_alman: but don't extend the prototype [18:53] ben_alman: anyone have an answer on async in node shell scripts? [18:53] ben_alman: at what point does the process exit [18:53] chjj: when theres nothing left to execute [18:53] ben_alman: so when the last callback is executed? [18:53] chjj: yes [18:53] ben_alman: so it keeps track of all callbacks? [18:54] chjj: thats what node does, yeah [18:54] kohai: @dwenomo: Node.js とは一体何か? - 後で読む http://tumblr.com/xsr2tooc0t [18:54] ben_alman: does it expose it as some kind of promise you can utilize? [18:54] kohai: @santyprada: Heroku Ruby fluffer embraces Node.JS • The Register http://www.theregister.co.uk/2011/06/02/heroku_nodejs_update/ [18:54] edgarallanpoe has joined the channel [18:54] chjj: well, it would be exposing the event loop then, no it doesnt do that [18:55] ben_alman: man, non-blocking io patterns make shell script awkward [18:55] tjholowaychuk: bash ftw [18:55] gkmngrgn has joined the channel [18:56] chrisdickinson: v8bot: hop=Object.prototype.hasOwnProperty.call.bind(Object.prototype.hasOwnProperty); Object.defineProperty(Object.prototype, 'merge', {'value':function(rhs) { for(var key in rhs) if(hop(rhs, key)) this[key] = rhs[key]; return this; }}); console.log({a:2}.merge({b:3})) [18:56] v8bot: chrisdickinson: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [18:56] chrisdickinson: v8: hop=Object.prototype.hasOwnProperty.call.bind(Object.prototype.hasOwnProperty); Object.defineProperty(Object.prototype, 'merge', {'value':function(rhs) { for(var key in rhs) if(hop(rhs, key)) this[key] = rhs[key]; return this; }}); console.log({a:2}.merge({b:3})) [18:56] v8bot: chrisdickinson: {a:2,b:3} [18:57] sledge: CoverSlide: Try masquerading the merge behind a proxy: http://soft.vub.ac.be/~tvcutsem/proxies/ [18:57] Dinosaurus has joined the channel [18:57] megatx has joined the channel [18:58] sledge: CoverSlide: You essentially create a composite object and look up up the property on every encapsulated one. [18:58] Dinosaurus has left the channel [18:58] brraaains has joined the channel [18:58] chrisdickinson: CoverSlide: you can also use the above to define a non-enumerable property on Object.prototype [18:58] chrisdickinson: ACTION gets ready to have beer bottles and tomatoes thrown at him [18:59] kelvin has joined the channel [19:00] chrisdickinson: (sidenote, i'm a big fan of using the .prototype.function.call.bind(.prototype.function) way to turn a prototype-based method into a floating function that accepts ``this`` as it's first argument) [19:02] chrisdickinson: v8: array_max = Math.max.apply.bind(Math.max, {}); array_max([1,2,3,4,5,6,3,2,1,2,12,4,0]) [19:02] robhawkes has joined the channel [19:02] v8bot: chrisdickinson: 12 [19:02] tjholowaychuk: ACTION throws tomatoe [19:02] sirdancealot has joined the channel [19:02] insin: ACTION goes metamad for anything which puts a . after call/apply [19:03] Schmallon has joined the channel [19:03] chrisdickinson: v8: var listify = Array.prototype.slice.call.bind(Array.prototype.slice); (function() { return listify(arguments); })(1,2,3,4,5); [19:03] v8bot: chrisdickinson: [1,2,3,4,5] [19:03] edgarallanpoe has joined the channel [19:03] kohai: @guiquental: mmo game with #nodejs #express #mongodb - http://bit.ly/bARn3s (link: http://www.startupmonkeys.com/2010/09/building-a-scrabble-mmo-in-48-hours/) [19:04] megatx: how do i make my app just return a static html page [19:04] EyePulp: what's the switch for making npm a little noisier on install/update? [19:04] merlinm: chrisdickinson: neato [19:04] CoverSlide: --verbose [19:05] Mrfloyd has joined the channel [19:05] dgathright has joined the channel [19:05] CoverSlide: same as 90% of unix tools [19:06] EyePulp: 90% - wow. Thanks coverslide. [19:06] blkcat: --verbose or -v, yeah. [19:06] Counter has joined the channel [19:07] CoverSlide: npm -v gets the version [19:07] mikenel has joined the channel [19:07] F1LT3R has joined the channel [19:07] megatx: can i do response.write('index.html') [19:08] themiddleman_itv has joined the channel [19:08] mikenel has joined the channel [19:09] NetRoY: megatx: for the regular response object u cant ... but u can write a wrapper to do exactly that [19:09] CoverSlide: fs.readFile('index.html', 'utf-8',function(err,data){if(err)throw err;response.end(data)}); [19:09] sreeix_ has joined the channel [19:09] dshaw_1 has joined the channel [19:09] CoverSlide: or just use connect.static() [19:09] themiddleman_itv has joined the channel [19:10] CoverSlide: that way it caches [19:10] niles|iPod has joined the channel [19:11] galaxywatcher has joined the channel [19:11] megatx: what do the mvc modules use for reading views and sending them to the response? [19:12] megatx: like express and stuff [19:12] akshatj has joined the channel [19:12] kohai: @wscreative: @chriseppstein have you looked into stylus at all? similar to sass/compass but on node.js I believe... [19:12] CoverSlide: anything on the filesystem uses fs [19:12] megatx: gotcha [19:13] MatthewS has joined the channel [19:13] megatx: caching sounds good tho [19:13] darshanshankar has joined the channel [19:13] patcito has joined the channel [19:13] megatx: how do i use connect.static() with fs [19:13] megatx: to cache [19:13] darshanshankar: Marak: I had no idea NodeFu and Nodester were the same! [19:14] darshanshankar: i also find it hilarious that they're based on nodejitsu code [19:14] Marak: darshanshankar: its all crap to me [19:14] darshanshankar: like...how do they plan on differentiating..? O_O [19:14] Dinosaurus has joined the channel [19:14] Marak: darshanshankar: they are using outdated versions of most of our stuff. their platform is written very poorly CS wise [19:14] Dinosaurus has left the channel [19:15] Marak: darshanshankar: it really makes me sad, but thats the risk of being OSS, so fuck it. people can use that until we are ready for everyone [19:15] ajpiaNOU has joined the channel [19:16] CoverSlide: megatx: set up your web server using connect. its easier than using the plain http [19:16] AaronMT has joined the channel [19:17] darshanshankar: i mean i have nothing against nodester/fu (or nodejitsu), i just want to see more innovation [19:17] megatx: http://senchalabs.github.com/connect/ this? [19:17] darshanshankar: with you guys, i clearly see the tech innovation [19:17] CoverSlide: megatx: yes [19:17] darshanshankar: for example, i had no idea you guys were behind "Forever" [19:17] darshanshankar: i love Forever [19:18] CoverSlide: Im still waiting for my beta invite [19:19] akshatj: Marak, which license are nodejitsu tools under? [19:19] CoverSlide: license it under PD [19:19] darshanshankar: akshatj: somethings are MIT, iirc [19:20] tjholowaychuk: watch out, he will claim you stole their stuff lol [19:20] tjholowaychuk: even when completely unrelated [19:20] drudge: ha [19:21] akshatj_ has joined the channel [19:22] akshatj_: hate this connection >< [19:23] prettyrobots: sstephenson: Hello? [19:23] EyePulp: any way to get node's --verbose to just put out the info level of message to stdout? [19:23] akshatj_: CoverSlide, what does PD mean? [19:24] EyePulp: er, not node's but NPM's [19:24] CoverSlide: Public Domain [19:24] kohai: @andrefaria: Just finish reading #Continuous #Testing with Ruby, Rails and JavaScript. Great Insights, gonna use #nodejs and #jasmine to test javascript [19:24] CoverSlide: i.e. anyone can use it with no restrictions [19:24] CoverSlide: SQLite is under PD [19:24] kuya: 1/10 [19:24] kuya: fail [19:24] Marak: akshatj_: everything is MIT [19:25] akshatj_: cool [19:25] akshatj_: ACTION has never been a fan of GPL [19:25] arpegius has joined the channel [19:26] tjholowaychuk: ryah would you hate it if Stream#pipe() returned the stream? part.pipe(stream).on('end' ...) [19:26] Marak: tjholowaychuk: stfu lol, don't blame me for your NIH syndrome. :-p [19:27] cha0s has joined the channel [19:27] cha0s has joined the channel [19:27] chjj: yeah, .pipe is always the combo breaker [19:27] tjholowaychuk: Marak haha well I prefer only to use reasonable quality code [19:27] tjholowaychuk: so if it sucks, I write it [19:27] tjholowaychuk: you could say that to anyone who writes for a new platform [19:27] Mrfloyd has joined the channel [19:28] OhMeadhbh has joined the channel [19:29] DTrejo: tjholowaychuk: you should rewrite commonjs with kris! [19:29] tjholowaychuk: pff [19:29] tjholowaychuk: not much interest in commonjs [19:29] tjholowaychuk: to be honest [19:29] darshanshankar has joined the channel [19:29] tjholowaychuk: what works for node, works for node [19:29] DTrejo: was just playin [19:30] DTrejo: agree [19:30] Marak: tjholowaychuk: I'm not hating, perhaps just a shade of jealous. :p [19:31] tjholowaychuk: Marak: just a naive comment lol you could say that about ryan, he didnt invent the event loop lol he just recognized that it could be utilized better [19:31] Marak: tjholowaychuk: What was a naive comment? [19:32] cjm has joined the channel [19:32] edgarallanpoe has joined the channel [19:32] sudhirjonathan has joined the channel [19:32] timmywil has joined the channel [19:32] JJMalina has joined the channel [19:32] DTrejo: ACTION ding ding let the discussion begin [19:33] dmcquay_ has joined the channel [19:33] nexxy has joined the channel [19:33] nexxy has joined the channel [19:33] topfunky has joined the channel [19:34] stagas has joined the channel [19:35] taf2 has joined the channel [19:35] jbpros has joined the channel [19:36] Rodtusker has joined the channel [19:38] SubStack: commonjs is a mailing list about bike sheds right? [19:38] chjj: yes [19:38] dshaw: lol [19:39] LowValueTarget has joined the channel [19:39] kohai: @kadirpekel: My new shinny #nodejs project is coming out :) Thanks to @mauricemach, the wise guy inspired me with zappa. http://t.co/zfwCmsy Soon! (link: https://github.com/coffeemate/coffeemate) [19:39] kohai: @robermiranda: Heroku Releases Celadon Cedar, Includes New Process Model, Full Node.js Support http://bit.ly/j9op11 (link: http://devcenter.heroku.com/articles/cedar) [19:40] zhami has joined the channel [19:40] mcluskydodallas has joined the channel [19:42] CoverSlide: hm very shinny indeed [19:43] kohai: @lucjuggery: I did not know heroku now support node.js !!! That's great news [19:44] CoverSlide: apparently heroku just uses nodejitsu stuff too, huh? [19:45] raidfive has joined the channel [19:45] markwubben has joined the channel [19:45] colinclark has joined the channel [19:46] niles|iPod has joined the channel [19:47] Marak: CoverSlide: i doubt it, because they dont support proxying websockets like we do :-) [19:47] niftylettuce has joined the channel [19:48] CoverSlide: i didnt theink they would [19:48] CoverSlide: but wouldn't that be something [19:50] kjdfkjdkfjdfk has joined the channel [19:50] tikva has joined the channel [19:51] rfay has joined the channel [19:51] dve: ive just blindly run npm update (again... iim not learning) and either jade or express has changed maybe.. and I just get an 'Unexpected token <' error in the browser.... any ideas? [19:51] tjholowaychuk: dve shit :( best to peg those versions [19:52] dve: i know... not the first time ive done it [19:52] tlrobinson has joined the channel [19:52] tjholowaychuk: we used to run into a lot of that [19:52] tjholowaychuk: but we are very explicit now and it's wayyyy easier to maintain [19:53] dve: FF is telling me 'illegal XML character' as I have a scriptblock in jade acting as a temple [19:53] EyePulp: bah - live on the edge... OF RELIABILITY!!! [sweet guitar lick] [19:53] dve: template* [19:54] dve: shit bollocks... 3 steps forward 2 steps back :( [19:54] tjholowaychuk: dve check the changelogs [19:55] matti has joined the channel [19:56] SamuraiJack has joined the channel [19:56] kohai: @halfageekinfo: Deploying Node.JS Apps to Nodester http://is.gd/lrJBPz #javascript (link: http://javascript.halfageek.info/2011/05/24/deploying-node-js-apps-to-nodester/) [19:57] dve: kohai oh your still here are you [19:57] dve: :P [19:58] rfay_ has joined the channel [19:58] themiddleman_itv has joined the channel [19:59] rpflo has joined the channel [19:59] vipaca has joined the channel [20:00] chjj: http://groups.google.com/group/nodejs-dev/browse_thread/thread/6822672d76157e12 [20:00] chjj: gzip in core [20:00] chjj: hmmm [20:00] chjj: wonder what that would look like [20:00] tjholowaychuk: nice [20:01] kohai: @pquerna: Re: Job it also has a ton of Node.js services being built now too: http://bit.ly/jHRqV5 (link: http://jobs.rackspace.com/job/San-Francisco-Linux-Systems-Engineer-II-III-Job-CA-94110/1287118/) [20:01] bladibla has joined the channel [20:01] bladibla: hey [20:02] Marak: hey bladibla [20:02] Mrfloyd has joined the channel [20:03] eventEmitter has joined the channel [20:03] ph^ has joined the channel [20:03] Marak: upboat! for great justice! http://news.ycombinator.com/item?id=2617700 [20:04] dve: tjholowaychuk ah so jade uses = instead of : now?! [20:04] Skola has joined the channel [20:04] tjholowaychuk: dve it's always had = [20:04] tjholowaychuk: but that's the standard now (i'll be adding : back as an option) [20:04] dve: but also : ? [20:05] tjholowaychuk: : fucks with namespacing [20:05] dve: ahh ok [20:05] Skola: Heya, what's the recommended method of serving static files with Express? [20:05] Skola: I mean with node [20:05] Skola: :[] [20:05] tjholowaychuk: Skola connect.static() [20:05] tjholowaychuk: you can use it stand-alone too [20:05] tjholowaychuk: with or without connect [20:05] Skola: alright, already using that :) [20:05] Skola: it's running fine, but just curious [20:05] m3nt0r: dve: you still have that problem with scriptblock templates in ff? [20:05] tjholowaychuk: it supports more than most do [20:05] tjholowaychuk: that i've seen [20:06] megatx: why wont the items my static html page reference appear [20:06] megatx: my css and client scripts and images [20:06] Skola: tj I have heard people prefer NGINX for static file serving, alongside node [20:06] Skola: does that make sense? should I look into it? [20:06] SubStack: not me [20:06] dve: m3nt0r dont know yet,, just doing a mass search and reaplce on : [20:06] m3nt0r: dve: im doing the same and had the same issue. i could solve it by adding a custom type attribute. script(type="application/x-template"). no more complaints [20:07] Skola: or is connect.static() as good as I think it is? [20:07] tjholowaychuk: Skola yeah that would be good too, i thought you just meant node itself [20:07] tjholowaychuk: node is not as fast but hey [20:07] SubStack: depends on where your bottlenecks are [20:07] dve: m3nt0r ive been using type=text/template [20:07] Skola: yeah I prefer to keep everything in node right now, including static file serving [20:07] tjholowaychuk: Skola i would just use node unless you know it's an issue [20:07] SubStack: yep [20:07] Skola: current project is very low load [20:07] Skola: alright [20:08] Skola: thanks : ) [20:08] rfay has joined the channel [20:08] SubStack: do what's easiest/prettiest until you can prove that it's actually a problem backed up by measurements [20:08] Skola: I favor that approach too [20:09] Skola: but it's good to know that nginx is something to look into when I need it [20:10] megatx: is there something i need to do to allow the client to pull the items my html page links [20:10] davidascher has joined the channel [20:10] megatx: ffor example [20:10] megatx: should that just work or do i need to add the styles path [20:11] kohai: @G64: @mranney @felixge Of all the emerging new tech, I feel most confident about #nodejs. Learning it will pay well, to the mind if not the body. [20:11] eventEmitter: hi, does anyone know if it's possible to listen on one port for multiple ssl hosts which use different ssl certificates each (Server Name Indication,SNI) with node.js? [20:11] rfay has joined the channel [20:12] kriszyp has joined the channel [20:13] samsonjs_ has joined the channel [20:14] __tosh has joined the channel [20:14] bentruyman has joined the channel [20:14] rfay_ has joined the channel [20:15] beriberikix has joined the channel [20:16] sjbreen has joined the channel [20:17] Rodtusker has joined the channel [20:17] edgarallanpoe has joined the channel [20:17] kohai: @NodeKohai: @G64 I agree completely! Then again, I'm a bot written in node.js... [20:18] dve: !mute NodeKohai [20:18] ben_alman: where would i be able to find docs on fs (ie require('fs') ) ? [20:18] kersny has joined the channel [20:19] tbranyen: http://nodejs.org/docs/v0.4.8/api/fs.html [20:19] ben_alman: awesome thx [20:19] ben_alman: hmmn [20:19] ben_alman: what's the best way to check and see if a file exists? [20:20] sreeix_ has joined the channel [20:20] dstufft has left the channel [20:20] tbranyen: fs.stat prolly [20:20] tbranyen: thought there was a path.exists tho [20:20] dve: when will sys.puts be totally removed from node (if ever)? [20:20] tbranyen: ben_alman: http://nodejs.org/docs/v0.4.8/api/path.html path.exists [20:20] ben_alman: ah [20:21] ben_alman: yay for *Sync functions [20:21] tbranyen: yeah i use them quite a bit for shell stuff [20:23] rfay_ has joined the channel [20:23] tjholowaychuk: y npm so slow today :( [20:24] DTrejo has joined the channel [20:24] megatx has joined the channel [20:24] JustCute has joined the channel [20:25] ben_alman: is there a way to console.log but without a linefeed? [20:25] SubStack: tjholowaychuk: http://github.com/substack/node-jadeify [20:26] SubStack: it's super nice [20:26] chjj: path.exists is essentially just an alias for fs.stat, it just stats the file and checks for an error [20:26] pifantastic has joined the channel [20:26] MatthewS: write to standard err instead of console.log? [20:26] tjholowaychuk: SubStack sweet :D [20:26] tjholowaychuk: I have something similar running express on the client-side [20:26] tjholowaychuk: with pushstate blah blah [20:27] tjholowaychuk: not sure if i'll finish it though [20:27] tbranyen: ben_alman: process.stdout [20:27] ryanfitz has joined the channel [20:27] ben_alman: awesome, thx [20:27] madsleejensen has joined the channel [20:27] mikeal has joined the channel [20:28] tbranyen: chjj: ha, figures really isn't much magic to detecting if a file exists [20:28] brownies has joined the channel [20:28] SubStack: tjholowaychuk: I've been thinking about registering setters for attribute updates too [20:28] SubStack: might be able to get away with http-chunk style placeholder hashes and then just do a naive search for those strings [20:29] SubStack: since you can't wrap everything in an inline div for updates [20:29] tjholowaychuk: the thing i had degrades any page no problem with more or less the same source [20:29] tjholowaychuk: but [20:29] tjholowaychuk: i dont personally care about degradation [20:29] tjholowaychuk: if people don't have js enabled [20:29] tjholowaychuk: they should probably die [20:29] bladibla: :)) [20:30] Yoric has joined the channel [20:30] SubStack: also jade should have a browserify field in its package.json! [20:30] SubStack: except it shouldn't point to the jade.min.js since that has its own require() thing that browserify doesn't know what to do with [20:31] swaj: the socket.io protocol spec is helpful. I think I might be able to get a .NET version of the server rolling soonish. it will be MIT licensed if I'm pleased with it :P [20:31] ardcore has joined the channel [20:31] kohai: @neojp: @the_fricky Hmm, bueno yo experimento con #nginx para archivos estaticos y mantengo los puertos en proxy con #nodejs cc @Yaraher [20:31] kmwallio has joined the channel [20:31] SubStack: isaacs should really bump the uglify-js version on npm so I can turn on the minifier by default already [20:31] SubStack: it's been months since that patch landed >_< [20:32] baudehlo: are there any memory cache modules for node/js that you can give entries timeouts? Sort of like memcached but in the local process? [20:32] ardcore has left the channel [20:32] SubStack: considering just sticking the damn thing in node_modules myself [20:32] rfay has joined the channel [20:33] swaj: baudehlo: not built in, although it wouldn't be hard to write one. [20:33] baudehlo: Yeah I guess. [20:33] baudehlo: Just wondered if there were one on npm [20:34] swaj: baudehlo: https://github.com/ptarjan/node-cache looks fairly newish, may work on the current version. [20:34] shajith has joined the channel [20:34] kohai: @neojp: @the_fricky Yo le estoy apuntando a node.js y mongodb :) [20:34] matt_c has joined the channel [20:35] baudehlo: swaj: yeah I don't want to use a timer for every entry though. [20:35] baudehlo: I want something more like memcached's architecture. [20:35] swaj: baudehlo: you don't have to with that module. [20:35] baudehlo: you do. [20:35] swaj: baudehlo: for expiring entries, yeah [20:35] baudehlo: https://github.com/ptarjan/node-cache/blob/master/index.js#L16 [20:35] swaj: you're looking for something that sweeps periodically? [20:36] flippyhead has joined the channel [20:36] webben has joined the channel [20:36] baudehlo: no, just the exact same architecture as memcached. [20:36] swaj: sorry I'm not familiar with how memcached expires cached objects [20:37] baudehlo: it's a fixed cache size, so it doesn't specifically expire entries. [20:37] baudehlo: it just returns null if you ask for one that it finds has expired. [20:37] kohai: @eswat2: Heroku | Dev Center | Getting started with Node.js on Heroku/Cedar http://t.co/nrwZDc0 (link: http://devcenter.heroku.com/articles/node-js) [20:37] swaj: oh I see, it just removes the oldest cached items as it needs space? [20:37] baudehlo: yep [20:38] swaj: probably not hard to do that either, with node [20:38] insin: ACTION wonders in https://github.com/visionmedia/nedis supports expiry [20:38] cjm has joined the channel [20:38] insin: s/in/if/ [20:38] tjholowaychuk: insin yup [20:38] dve: SubStack: if im going to pub/sub with redis through dnode... do I need to JSON stringify the data? [20:38] webben has joined the channel [20:38] tjholowaychuk: insin https://github.com/visionmedia/nedis/blob/master/lib/database.js#L82-89 [20:39] SubStack: dve: I haven't used redis [20:39] dve: oh [20:39] SubStack: but with dnode you don't need to stringify anything [20:39] baudehlo: swaj: nope it would be easy, though I wonder which would be easier - turning the memcached internals into a linked library, or just re-implementing. [20:39] dve: SubStack: ok cool that answer my question pretty much :) [20:39] insin: cool! [20:39] marshall has joined the channel [20:39] swaj: tjholowaychuk: so it's a passive expiration. [20:39] marshall: hey node [20:39] tjholowaychuk: swaj same thing redis does [20:39] tjholowaychuk: basically [20:40] swaj: yeah [20:40] SubStack: dve: you can pass around functions, circular references, whatever [20:40] Qbix2 has joined the channel [20:40] SubStack: and it all just works™ [20:40] marshall: nodester uses express, isn't that exciting tjholowaychuk? [20:40] swaj: I like the idea of memcached never using more than x number of bytes [20:40] ardcore has joined the channel [20:40] tjholowaychuk: swaj you can lock redis down too [20:40] ardcore has left the channel [20:40] tjholowaychuk: just configure it [20:40] swaj: does your nedis clone support that feature? [20:41] baudehlo: right but I don't want to talk over the network. [20:41] baudehlo: I just want something embedded in my app. [20:41] tjholowaychuk: swaj nope [20:41] tjholowaychuk: haha [20:41] tjholowaychuk: it doesn't even read the config [20:41] tjholowaychuk: and only supports AOF [20:41] swaj: baudehlo: if you use a unix socket there's basically zero overhead. [20:41] thalll has joined the channel [20:41] sirkitree has joined the channel [20:41] edgarallanpoe has joined the channel [20:41] baudehlo: swaj: that's so not true. [20:42] swaj: baudehlo: what do you mean? [20:42] beriberikix: Is jsdom the best way to work with XML? [20:42] SubStack: who are the people behind nodester anyways? [20:42] baudehlo: compared with setting properties in-process. [20:42] SubStack: are they on irc? [20:42] nuba has joined the channel [20:43] themiddleman_itv: beriberikix: no, there are xml parsers [20:43] baudehlo: vs talking to something like memcached or redis over any kind of socket. [20:43] baudehlo: local memory is going to blow that away [20:43] swaj: baudehlo: I mean, I understand the value of writing directly to memory without having to use sockets at all, but what I mean is: is the performance of your memory cache so critical that the overhead from unix or tcp sockets likely to make a difference in your implementation? [20:43] baudehlo: yes :) [20:43] themiddleman_itv: beriberikix: https://github.com/joyent/node/wiki/modules#parsers-xml [20:43] mikl has joined the channel [20:43] swaj: you must be doing some pretty crazy stuff then :P [20:44] swaj: in which case: roll your own (tm) :P [20:44] beriberikix: themiddleman_itv: I've tried xml2js and it blows. Recommendations? [20:44] dve: SubStack: so once ive setup the emitter in dnode. i can jsut mit anything on that emitter and dnode deals with it? [20:44] SubStack: dve: correct [20:44] themiddleman_itv: beriberikix: we use node-expat [20:44] baudehlo: I'm partly being facetious - I just would rather not run another service frankly. [20:44] swaj: hah [20:44] dve: magic [20:44] swaj: so the real story comes out :P [20:45] baudehlo: but don't underestimate the overhead of syscalls. [20:45] caolanm has joined the channel [20:45] shajith has joined the channel [20:45] SubStack: dve: your event emitters can even return objects of arrays of objects of functions [20:45] SubStack: s/return/get called with/ [20:45] matt_c has joined the channel [20:45] swaj: I understand, but memcached is really, really good. I guess I'm the type that would rather use something that's very well established and easy as balls to use :) [20:45] beriberikix: themiddleman_itv: cool, I'll try it out. thx [20:46] ben_alman: if i fs.writeFile a read-only file, I get a "Permission denied" error. if i fs.writeFileSync a read-only file, i get a "Bad file descriptor" error. why? [20:46] dve: SubStack: think ill jsut stick to arrays of objs for now :) [20:46] baudehlo: swaj: well it is good, though the node libraries for it aren't very complete. [20:47] kohai: @phplondon: .@davidd audio recording of @MarcGear 's talk last night on PHP vs. node.js is now up at http://ht.ly/59Mu0 Is there a URL for slides, Marc? (link: http://www.phplondon.org/wiki/Server_Side_Scripting_Smackdown) [20:47] webben has joined the channel [20:47] nuba has joined the channel [20:47] baudehlo: mp3 gives a 404. [20:48] swaj: baudehlo: perhaps. maybe you could help out there :) [20:48] baudehlo: I know I know... [20:48] SubStack: dve: and if you don't understand, those functions can be called and if they are called, when you put your arguments in, it gets sent to the other side and it's not going to be delayed [20:48] baudehlo: le-sigh :) [20:48] swaj: haha [20:48] kohai: @VitreousHumor: Reading: Node.js PaaS Nodejitsu Open-Sources Several Tools http://cli.gs/DLBIM #vitpicks [20:48] baudehlo: I did bitch at 3rd-Eden about what nMemcached needs. [20:48] dve: SubStack: thats roughly what im hoping to hook redis in for [20:48] nyu|Infinite has joined the channel [20:48] SubStack: unless somebody puts into those arguments massive amounts of material, enormous amounts of material [20:48] baudehlo: that counts, right? [20:48] swaj: what I want is a ZeroC Ice driver for node.js [20:49] jbpros_ has joined the channel [20:49] swaj: and no, that doesn't :P [20:49] swaj: I bet 3rd-Eden would love a pull request :) [20:49] SubStack: dnode is a series of tubes, you see [20:49] baudehlo: when I get around to using memcached in node, I'll send him a pull. [20:49] swaj: SubStack: no no, that's the internet [20:49] webben has joined the channel [20:50] raidfive has joined the channel [20:50] kohai: @theiw: Need some Node.js and @nodejitsu Weld hacking over the weekend... [20:50] kohai: @jimpick: Tried installing Calipso (a Node.js CMS). Worked first attempt. Nice. http://calip.so/ [20:50] springmeyer has joined the channel [20:51] pietern has joined the channel [20:52] temp02 has joined the channel [20:53] pplante has joined the channel [20:53] jameson has joined the channel [20:53] shajith has joined the channel [20:54] Hadaka: hey, what is the contract of stream.pause? does it guarantee that 'data' will not be called until resume, or is it just a hint? [20:54] webben has joined the channel [20:57] webben has joined the channel [20:57] kohai: @andorbal: @mamund hey, i liked your Node.js session quite a bit. Great job! [20:57] broofa_ has joined the channel [20:57] gazumps has joined the channel [20:57] swaj: I'm beginning to think kohai is a twitter bot :P [20:58] Marak: swaj: http://github.com/nodejitsu/kohai [20:58] Marak: !tweet #nodejs rules! [20:58] Marak: dynamic volume control seems to be working nicely [20:59] webben has joined the channel [21:01] zmbmartin: anyone know how you can pass multiple objects to a handlebars helper? [21:01] webben has joined the channel [21:04] webben has joined the channel [21:04] rfay has joined the channel [21:04] jameson_ has joined the channel [21:05] WrErase has joined the channel [21:06] webben has joined the channel [21:08] dipser has joined the channel [21:08] AhtiK has joined the channel [21:08] sreeix_ has joined the channel [21:08] webben has joined the channel [21:10] kohai: @TheAllSeeingPie: Node.js support has been announced for @heroku! Happy hacking times ahead! [21:10] baudehlo: ACTION is bummed heroku won't support port 25 [21:11] webben has joined the channel [21:11] kohai: @glougheed: @mcantelon @nodefly yep, we are using node.js to service the UI with data [21:13] webben has joined the channel [21:15] webben has joined the channel [21:16] christoph101 has joined the channel [21:18] webben has joined the channel [21:18] Remoun has joined the channel [21:20] baudehlo: swaj: this looks pretty decent actually: http://www.monsur.com/projects/jscache/downloads/cache.js [21:20] baudehlo: no max size of memory used, but times out items. [21:20] sh1mmer has joined the channel [21:20] webben has joined the channel [21:21] edgarallanpoe has joined the channel [21:21] baudehlo: oh, actually it has a maxItems [21:21] baudehlo: which is close enough. [21:21] tjholowaychuk: lololol [21:21] tjholowaychuk: nice comments [21:21] tjholowaychuk: he has [21:21] tjholowaychuk: / *************************************************************************** [21:22] megatx has left the channel [21:22] halfhalo: i like those comments [21:22] megatx has joined the channel [21:23] webben has joined the channel [21:23] Marak: baudehlo: what do you need an in-memory cache for? [21:23] Marak: and what is up with this webben person, ive been watching him excess flood for days [21:25] webben has joined the channel [21:26] pixel13 has joined the channel [21:26] Bj_o_rn has left the channel [21:27] tbranyen: tjholowaychuk: this is so mind boggling, rewrote most of that upskirt binding works flawlessly locally [21:27] kohai: @jgv: just published a module for @hyperpublic on npm! go install it and build something cool. #nodejs [21:27] tbranyen: spews out so much binary shit on the server [21:27] tjholowaychuk: hm [21:27] tbranyen: these are identical os's running the same repo [21:27] tbranyen: only diff is arch [21:27] webben has joined the channel [21:27] tbranyen: and kernel prob [21:28] tbranyen: figured using node's buffer constructor would help [21:28] tbranyen: at least its not happening *in* the markdown section anymore [21:28] tbranyen: happens after [21:28] tbranyen: http://dev.tabdeveloper.com/ [21:28] andrewfff has joined the channel [21:29] tbranyen: gonna test what sizes are being reported [21:29] stagas_ has joined the channel [21:29] tjholowaychuk: just looks like a overflow, wish i could remember what the issue with node-discount was [21:30] webben has joined the channel [21:30] tbranyen: yeah wondering why there is an overflow on my server, but not locally [21:30] tbranyen: grrr [21:30] vipaca_ has joined the channel [21:30] tjholowaychuk: maybe because i used String::Utf8Value instead of ascii [21:30] tjholowaychuk: dunno [21:30] tbranyen: hmmm yea i'm using utf8value [21:30] tjholowaychuk: try ascii [21:31] edude03 has joined the channel [21:31] hellp has joined the channel [21:32] webben has joined the channel [21:32] hij1nx has joined the channel [21:32] christoph101 has joined the channel [21:34] kohai: @NodeKohai: @KohaiTestbot Did you get that thing I sent you? [21:34] webben has joined the channel [21:34] johnnywengluu_ has joined the channel [21:35] tbranyen: hmmm no go :-/ [21:35] tbranyen: eff [21:35] kohai: @florinmatinca: Training for #developers and #designers http://bit.ly/jo17m6 Learn #html5 #css3 #nodejs #ruby #rails #php (link: http://membership.thinkvitamin.com/?aid=206&utm_source=aff) [21:36] dmcquay has joined the channel [21:36] vincenteh has joined the channel [21:37] webben has joined the channel [21:37] megatx: anyone know a cool way to push specific server objects to the cliet? [21:37] Marak: megatx: dnode [21:37] vincenteh: Hey, can anyone help me? I'm having trouble using Statsd (a NodeJS daemon). [21:37] Marak: vincenteh: link to project? [21:37] darshanshankar: megatx: or nowjs ;) [21:37] megatx: cool thanks [21:38] vincenteh: Uh, I can link you to the Graphite client [21:38] MatthewS: what kind of issues are you having with statsd? [21:38] `steve has joined the channel [21:38] vincenteh: I think the "issue" I'm having is that I don' [21:38] vincenteh: t know how to use it [21:38] Marak: vincenteh: you talking about https://github.com/sivy/node-statsd ? [21:39] vincenteh: Uh, no. Let me link you to the github,... [21:39] simenbrekken has joined the channel [21:39] megatx has joined the channel [21:39] webben has joined the channel [21:39] Marak: vincenteh: you trying to integrate with https://github.com/etsy/statsd ? [21:39] vincenteh: https://github.com/etsy/statsd [21:39] MatthewS: vince: you send an event with the client code and it gets passed to statsd which then passes it to graphite. something is breaking in that chain? [21:39] tbranyen: bleh no issue with a test file, error has to be someplace else [21:39] tbranyen: same md source [21:40] vincenteh: I don't think so. The problem is probably just that I lack any kind of documentation. I'm using it and it is doing SOMETHING [21:40] vincenteh: but not what I expect [21:40] kohai: @danielwanja: I'm bit late to the game.. Heroku has a new stack, Celadon Cedar, with full node.js support http://bit.ly/lzfr93 and http://bit.ly/kbJ22z (link: http://news.heroku.com/news_releases/heroku-announces-major-new-version-celadon-cedar-includes-new-process-model-full-nodejs-) [21:40] MatthewS: statsd is pretty simple, as long as you are pushing events to it and it's got a graphite setup to send the collected events to it should be fine [21:40] idefine has joined the channel [21:41] MatthewS: then you just have to find your events in the graphite interface and start graphing them [21:41] dshaw_ has joined the channel [21:41] vincenteh: Well, when I call Statsd.increment("foo.bar", 5) [21:41] vincenteh: or any value realy [21:41] vincenteh: A graph is created [21:41] vincenteh: but it may or may not have anything graphed. [21:41] softdrink: does anyone know of a particularly good client-side md5 solution? [21:41] webben has joined the channel [21:41] vincenteh: And if it does it isn't what I'd expect [21:41] MatthewS: you have to keep passing events [21:42] MatthewS: a single even just creates a dot [21:42] MatthewS: event [21:42] vincenteh: So if I create a loop that loops ~100 times I should see something? [21:42] MatthewS: loop something a few thousand times over the course of 10 minutes. you should see something then [21:43] rphillips has joined the channel [21:43] baudehlo: Marak: mostly just so I don't have to run memcached as well. [21:43] vincenteh: Matthew: I'll give that a try......... [21:44] webben has joined the channel [21:44] pixel13: softdrink: http://code.google.com/p/js-methods/downloads/detail?name=md5-0.9.js ? [21:44] pixel13: * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message [21:44] pixel13: * Digest Algorithm, as defined in RFC 1321. [21:44] MatthewS: vince: im logging about 1200/events/sec with our setup right now [21:45] softdrink: pixel13: lovely. thanks :) [21:45] pixel13: softdrink: does so via String.prototype.md5 [21:45] softdrink: that's precisely what i wanted [21:45] chunhao: I'm performing some async operations inside a for loop, but by the time the callbacks in the async operations are called, the loop is finished and I can't access any data except the last iteration of the loop, is there a way to get around this? [21:45] CoverSlide: md5 is broken [21:45] CoverSlide: use sha1 or greater [21:46] pixel13: exactly, something salted > md5 [21:46] wadey has joined the channel [21:46] softdrink: CoverSlide: it's not something i can control. it's for api access to something else [21:46] nexxy: ripemd160!!!! [21:46] nexxy: whirlpool!!!1 [21:46] CoverSlide: oic [21:46] webben has joined the channel [21:47] tanepiper: tjholowaychuk: the qs module used in express, where is it on github? [21:47] vincenteh: Mathew: right now I'm sending it one event every 0.3 seconds until I've sent 2,000 events. That should show something right, or do I need more frequency? [21:47] tjholowaychuk: tanepiper visionmedia/node-querystring [21:47] tjholowaychuk: renamed it because of core's querystring [21:47] tjholowaychuk: haha [21:47] Marak: chunhao: yes there is [21:47] chjj: tanepiper: https://github.com/visionmedia/node-querystring [21:48] tanepiper: thanks [21:48] Marak: chunhao: you need to implement asynchronous iteration, try https://github.com/caolan/async [21:48] chunhao: Marak: thanks, I'll check it out! [21:48] tanepiper: ahh it just has parse, right i need to use the core one then [21:48] webben has joined the channel [21:48] SubStack: asyncery! [21:49] Marak: chunhao: you can also wrap your whole method in a closure, but you prob just want async [21:49] CoverSlide: i always confuse async and async.js. one of them should change their name [21:49] Marak: but you can do something like (function(myvar){ // do stuff })(myvar) [21:49] SubStack: asink [21:49] Marak: and it should scope it for you inside the for loop [21:50] MatthewS: vince: should show something depending on how you configure the display [21:50] tjholowaychuk: /clear [21:50] tjholowaychuk: FUCK [21:50] tjholowaychuk: omg [21:50] ben_alman: Marak, that's funny, I just wrote my own async iteration like (function next(arr){ /* do stuff with arr[0] */ next(arr.slice(1)})(myArray); [21:51] Marak: ben_alman: nice, i try to just use the libs now [21:51] Marak: im tired of reinventing that stuff [21:51] ben_alman: well i have no idea what lib exists [21:51] webben has joined the channel [21:51] ben_alman: and it's a super basic pattern [21:51] Marak: it always starts out that way! :-) [21:51] ben_alman: yeah i know [21:51] SubStack: it can get crazy complicated implementation wise [21:51] chjj: ben_alman: thats not ideal because youre creating a new array every iteration [21:51] SubStack: like this: https://github.com/substack/node-seq [21:52] ben_alman: chjj, it also doesn't matter with my 3-item array [21:52] Marak: woah SubStack is that your github account? [21:52] SubStack: yesh [21:52] chjj: even so, its easier to do another way [21:52] Marak: SubStack: damn you got a lot of cool projects [21:52] Marak: SubStack: we should totally hang out sometime [21:52] Marak: :_D [21:52] SubStack: haha [21:53] SubStack: seq is handy for when you want to chain lots of async shit together [21:53] webben has joined the channel [21:53] ben_alman: i actually redid it to be like (function next() { next.arr || (next.i=0; next.arr=myArray); var item=next.arr[i++]; /* do stuff with item */ next(); })(); [21:53] ben_alman: but i thought that would be too verbose [21:54] SubStack: parallel loops and statement, sequential loops, resource limits [21:54] SubStack: all that jazz [21:54] ben_alman: for irc [21:54] chjj: if you want it all contained you could do... [21:54] ben_alman: or a closure could be used, whatever [21:54] chjj: (function next(i) { if (!a[i]) return; /* do something with a[i] */ next(++i); })(0); [21:54] ben_alman: yeah i liked using expandos on the function itself to keep the callback from needing arguments [21:55] kohai: @scalaBin: Up next is Tiark Rompf from EPFL talking about node.js done scala style! [21:55] ben_alman: so you could do like asyncThing(next) [21:55] chjj: well you could also hold the `i` outside of the function entirely [21:55] chjj: thats just if you dont want to have to do var i = 0; [21:55] supster has joined the channel [21:55] ben_alman: i'd say there are a bazillion ways to do it [21:55] niftylettuce has joined the channel [21:55] ben_alman: the only one that counts is the shortest one that fits in a tweet anyways [21:55] webben has joined the channel [21:56] AvianFlu has joined the channel [21:56] yozgrahame has joined the channel [21:57] gazumps has joined the channel [21:57] kohai: @maraksquires: Woah 31 people in the #nodejitsu IRC room! It's a #nodejs party up in here! [21:58] ParadoxQuine has joined the channel [21:58] webben has joined the channel [21:58] kohai: @jorgescala: Done.scala: Port of node.js to Scala [21:59] charlesjolley-_ has joined the channel [21:59] notgeorge has joined the channel [21:59] kohai: @boia01: Tiark Rompf presentation: "node.js => done.scala". An anagram + experiment to port ideas of node.js to scala. Not done at all. [22:00] webben has joined the channel [22:02] cyberspa1e has joined the channel [22:02] webben has joined the channel [22:03] tbranyen: tjholowaychuk: heh the problem was in some other code... welp [22:03] tjholowaychuk: really? what was it? [22:05] tbranyen: tjholowaychuk: my input buffer is incorrectly sized [22:05] tbranyen: its something with my git bindings [22:05] tjholowaychuk: ohh [22:05] tbranyen: odd [22:05] webben has joined the channel [22:05] tbranyen: but still i got a chance to update that robotskirt project with the latest markdown source so i guess thats a plus [22:06] Guest66257 has left the channel [22:06] tjholowaychuk: are node buffers zerod? [22:06] pixel13 has left the channel [22:06] mawkor2 has joined the channel [22:06] tbranyen: like the memory allocation? [22:06] tbranyen: nope [22:06] addisonj: hrm... so I am annoyed, I swear this used to work, i have client side js files that get loaded via an jquery.load (just on a different page) but they aren't showing up in chrome debugger or firebug (they do work though) anyone know how to get around tat? [22:06] tbranyen: i get random shit in mine all the time [22:06] tjholowaychuk: ah so you just had garbage? [22:06] tjholowaychuk: gotcha [22:06] tbranyen: yea [22:07] darshanshankar has joined the channel [22:07] dgathright has joined the channel [22:07] webben has joined the channel [22:07] addisonj: after playing with node, going back to client side js sucks... [22:08] yhahn has left the channel [22:09] TomY has joined the channel [22:10] webben has joined the channel [22:10] kohai: @bmaso: @hseeberger Please tweet a link to Tiark's node.js proj in Scala! [22:10] kohai: @bzztbomb: node.js on OSX serving a (large) static file: Pegged CPU and slow transfer to a VM on the same machine. WTF?! [22:12] webben has joined the channel [22:13] dshaw_ has joined the channel [22:14] webben has joined the channel [22:14] mawkor2: going from chrome dev tools to firebug is like removing the engine of your car, sawing a hole in your floorboard, and using your legs to propel the car flintstones style [22:15] Marak: !tweet @bzztbomb Which library are you using for static file serving? Are you using pipe or sendFile ? [22:15] kohai: @NodeKohai: @bzztbomb Which library are you using for static file serving? Are you using pipe or sendFile ? [22:15] descipher_ has joined the channel [22:16] mscdex: !tweet node.js rules! [22:16] mscdex: !!!! [22:16] tjholowaychuk: sendfile wouldnt even really count as node [22:17] webben has joined the channel [22:17] mscdex: kohai: why you be hatin'? [22:17] Marak: mscdex: i got you [22:17] descipher has joined the channel [22:17] Marak: !config get plugins:alias:whitelist [22:17] kohai: plugins:alias:whitelist is [AvianFlu, Marak, hij1nx, indexzero, DTrejo, tmpvar, ryah, dominictarr, samsonjs, ben_alman, chapel, jesusabdullah] [22:18] Marak: !config add plugins:alias:whitelist mscdex [22:18] kohai: mscdex was added to plugins:alias:whitelist. [22:18] chapel: !tweet node.js rules! [22:18] chapel: ? [22:18] Marak: lets keep the spam to the other rooms [22:18] Marak: the dynamic volume control has been online for a couple of days now, kohai seems to be behaving nicely in here [22:19] webben has joined the channel [22:19] Marak: ( hes not echoing back your tweets because he's already exceeded the max amount of things he's allowed to say per 60 seconds ) [22:19] gazumps856 has joined the channel [22:20] broofa has joined the channel [22:21] webben has joined the channel [22:23] darshanshankar: thank god for dynamic volume control [22:23] darshanshankar: it was getting quite annoying before [22:23] tjholowaychuk: darshanshankar you can ignore it [22:23] darshanshankar: how? [22:24] webben has joined the channel [22:24] tjholowaychuk: /ignore [22:24] megatx: anyone ever get the error "image corrupt or truncated"? [22:24] kohai: @github_cpp: node-db-oracle - Oracle database bindings for Node.js http://bit.ly/l7T8mS (link: https://github.com/mariano/node-db-oracle) [22:24] darshanshankar: ah just ignore kohai as a user, gotcha [22:24] megatx: getting that error with all my images [22:24] chapel: oh yes Marak [22:24] alexanderdaw09 has left the channel [22:24] EyePulp: +1 for the chattiness throttling [22:24] EyePulp: =) [22:24] lukstr: Marak: I guess he doesn't save the whitelist? [22:26] webben has joined the channel [22:26] Remoun has joined the channel [22:27] Marak: lukstr: he does, i whipped it from last time [22:27] dshaw_: wow [22:28] webben has joined the channel [22:29] megatx: does fs have trouble reading images? [22:29] tbranyen: tjholowaychuk: https://github.com/benmills/robotskirt/pull/4 if you're interested [22:29] tbranyen: apparently there is a fix in the markdown parser [22:29] tbranyen: which is weird since my bindings are definitely returning weird output, but that fix took care of it [22:29] tbranyen: weirdizzle [22:29] swaj: honestly I'd just use nginx to proxy all my node stuff and let nginx handle any static files. then send everything else to node. [22:30] tjholowaychuk: tbranyen hah wtf, there was a huge function in there marked as inline [22:30] tjholowaychuk: well not huge [22:30] tjholowaychuk: but too huge [22:30] tbranyen: was it part of the upskirt source? [22:30] tjholowaychuk: yeah [22:31] webben has joined the channel [22:31] megatx: swaj: was that in response to me? [22:31] swaj: how do you guys host multiple node apps on a single IP? proxy_pass from nginx? [22:31] swaj: megatx: more in response to that tweet where someone was complaining about node choking on large static files [22:31] CoverSlide: connect.vhost can route based on domain [22:31] megatx: k [22:32] swaj: CoverSlide: so one node app running on port 80 routing to other node apps running on other sockets? [22:32] swaj: the one on 80 being connect? [22:32] Marak: swaj: we use http-proxy [22:32] Marak: swaj: and haibu [22:33] halfhalo: I just yell at the node apps until they behave [22:33] swaj: CoverSlide: the reason I ask is because some web frameworks (*cough* express) polute the global namespace.. so running lots of apps could be a problem. [22:33] CoverSlide: yeah though connect is a big dependency just for domain routing [22:33] webben has joined the channel [22:33] tbranyen: yeah i often worry about my bytes on the server side [22:33] Marak: swaj: haibu spawns up each app as a new process [22:33] swaj: Marak: that sounds interesting. I'll have to look at that. [22:33] dshaw_1 has joined the channel [22:33] Marak: halfhalo: i prefer a gentle whisper [22:34] tjholowaychuk: CoverSlide yeah vhost is maybe 8 lines [22:34] Marak: swaj: its not exactly noob friendly right now...fyi.... [22:34] Marak: swaj: https://github.com/nodejitsu/haibu [22:34] Marak: swaj: you could always just spin up multiple apps though and use node-http-proxy and a basic proxytable [22:34] Marak: https://github.com/nodejitsu/node-http-proxy [22:35] xeodox has joined the channel [22:35] halfhalo: ACTION actually uses cloudfoundry or pure nginx, depending [22:35] Marak: i prob wouldnt use connect vhost for running multiple sites, but thats only because i know i'd definitely bork one of the sites at one point and i dont want it touching any of the other ones at all [22:35] swaj: Marak: yeah the biggest drawback to my nginx solution is that it Nginx doesn't support HTTP 1.1/chunked encoding to proxied servers [22:35] tjholowaychuk: Marak yup that's a good reason [22:35] webben has joined the channel [22:35] xeodox: My app.js is getting too long (i have all my code in it). What's the best way to split up the code into multiple files? (any module can do this? Or just basically use functions)? [22:35] Marak: swaj: we should support all of that, including reverse proxying of websockets [22:36] tjholowaychuk: vhost without proxy doesn't work so well [22:36] tjholowaychuk: BUT [22:36] tjholowaychuk: it has been useful for some cases [22:36] micheil: Marak: is this in that node proxy project? [22:36] AAA_awright: Hey tjholowaychuk... [22:36] AAA_awright: tjholowaychuk: I'm extending the Jade compiler so instead of accepting an object to use as the scope, it runs a database query to get the data, generated based on arguments and special tags... The current structure isn't very friendly to async, but I think I know how to adapt it without causing too much chaos and destruction, do you have any thoughts? [22:36] micheil: Marak: in which case you do support reverse proxy of websockets [22:37] swaj: Marak: node-http-proxy looks like it would be enough. All I really need is a good proxy with HTTP 1.1 support that can redirect to various apps based on host header. [22:37] tjholowaychuk: AAA_awright i dont want templates doing async stuff [22:37] tjholowaychuk: personally [22:38] swaj: tjholowaychuk: can Jade templates be streamed? [22:38] webben has joined the channel [22:38] kohai: @maraksquires: Fun Fact: In the time it takes @sourceforge to approve an OSS project, the average #nodejs developer has released 4 new npm modules. [22:38] tjholowaychuk: we fake it with express-mongoose or w/e, so you might want to do something similar [22:38] tjholowaychuk: but templates != flow control and templates == bad at error reporting [22:38] tjholowaychuk: mid-write [22:38] tjholowaychuk: so [22:38] tjholowaychuk: me [22:38] tjholowaychuk: meh* [22:38] CoverSlide: yeah, you'd have to run a callback in each js block to tell jade (or whatever engine) when to exit async and output the value [22:38] jmoyers: hij1nx was it you who i talked to the other day about EventEmitter2? [22:38] jmoyers: you wrote that? [22:38] AAA_awright: Hmm good point [22:39] tjholowaychuk: with express-mongoose [22:39] tjholowaychuk: we just issue the queries in parallel and render when they are all done [22:39] tjholowaychuk: so it's nicer looking [22:39] liar has joined the channel [22:39] tjholowaychuk: but not a cluster-fuck internally [22:39] c4milo has joined the channel [22:39] swaj: I could see a real benefit to async in views though, I.E. chunked encoding to stream the response... that way the browser can start downloading content early while the rest of the page is still being rendered bt the template engine. [22:39] CoverSlide: better to do any async before loading the template [22:40] swaj: like the new rails 3.1 stuff [22:40] tjholowaychuk: swaj and when something fails mid-write, then what? [22:40] AAA_awright: You have a special "- each" handler which is part of the syntax, I need something similar, I have for-each, optional, switch, etc tags, which do different things depending on the data available and the child tags [22:40] webben has joined the channel [22:40] CoverSlide: asnc templating: http://www.jspp.io/ [22:40] tjholowaychuk: lol [22:41] tjholowaychuk: and it's super slow :p [22:41] tjholowaychuk: kinda defeats the purpose [22:41] sebbie has joined the channel [22:41] AAA_awright: I'm modifying visitTag and visitAttr to do that [22:41] swaj: tjholowaychuk: I'm not saying its impervious, but it's nice in certain situations to stream stuff. [22:41] tjholowaychuk: yeah [22:41] tjholowaychuk: IMO if your pages are that massive you might want to re-evalute the content [22:41] tjholowaychuk: but yeah some cases might be ok [22:42] heavysixer has joined the channel [22:43] webben has joined the channel [22:43] blup has joined the channel [22:44] AAA_awright: tjholowaychuk: Oh, I also would like to embed meta-data in templates, for instance, describing what data types it accepts and what format it outputs, should that be kept in a comment at the top of a page? [22:44] AAA_awright: idk if you have a particular philosophy on the syntax being used [22:45] tjholowaychuk: AAA_awright comments should be fine [22:45] webben has joined the channel [22:45] tjholowaychuk: what sort of meta-data? [22:45] tjholowaychuk: maybe use commented json or yaml [22:45] hij1nx: jmoyers: yes [22:46] AAA_awright: It's n3 [22:46] AAA_awright: I'm trying to embed RDF data [22:47] hij1nx: jmoyers: its been refined quite a bit since then https://github.com/hij1nx/EventEmitter2 [22:47] AAA_awright: Transform:DocumentHTML_BodyPage a view:Jade ; view:file "template/DocumentHTML_BodyPage_typePage.jade" ; view:range type:DocumentHTML_BodyPage, type:DocumentHTML_Body ; view:domain type:Page . [22:47] webben has joined the channel [22:47] AAA_awright: (Merged into a single line since I'm too lazy for Pastebin) [22:48] jmoyers: hij1nx ah, nice 'many' [22:48] jmoyers: i was the guy who said "oh, i wrote something similar" [22:48] jesusabdullah: Huh? [22:48] jmoyers: i pushed it up: https://github.com/jmoyers/mettle/blob/master/src/pubsub.coffee [22:48] jmoyers: its not at all as fully featured [22:49] jmoyers: supports namespacing and such, and shows the type of tree i used for storage [22:49] swaj: eww coffee :P [22:49] jmoyers: yes yes [22:49] jmoyers: queue boos [22:49] jmoyers: i was fucking around [22:49] hij1nx: jmoyers: hmm not sure, he didn't have a link to it when i asked him for one [22:49] jmoyers: that was me ;-) [22:49] jmoyers: and thats the link [22:49] jmoyers: i cleaned it up last night [22:49] jmoyers: pushed it [22:49] enotionz has joined the channel [22:50] webben has joined the channel [22:50] hij1nx: jmoyers: ah cool, link? =) [22:50] jmoyers: ^points up [22:50] jmoyers: pubsub.coffee [22:50] hij1nx: jmoyers: ah got it ;) [22:50] hij1nx: oh [22:50] hij1nx: its in coffee [22:50] hij1nx: =( [22:50] sreeix_ has joined the channel [22:50] jmoyers: haha [22:50] jmoyers: indeed [22:51] hij1nx: well... the one i wrote is in javascript >=) [22:51] jmoyers: ACTION waves his hands [22:51] jmoyers: imagine its javascript ;P [22:51] hij1nx: haha [22:51] jmoyers: fuck man [22:51] jmoyers: im just going to rewrite this project [22:51] jmoyers: since every single person gives me shit [22:51] jmoyers: haha [22:52] jmoyers: it'll take me like a couple hours. a couple hours well spent for less bitching ;-) [22:52] jmoyers: haha [22:52] hij1nx: jmoyers: why not just make some commits to EventEmitter2 and try to make it faster/smaller [22:52] webben has joined the channel [22:52] jmoyers: i certainly could [22:53] jmoyers: this was written when you told me about it [22:53] hij1nx: =D [22:53] jmoyers: i like your 'many' and ttl features [22:53] kohai: @dustinsmith1024: @travispaulson finally got some good node.js examples going. I have an simple idea I think might be a fun project. Show ya later this week. [22:53] jmoyers: im curious if my method for storing and retrieving the listeners based on the namespacing is faster or slower [22:53] TomY has joined the channel [22:53] hij1nx: yeah i think there's lots of room for optimizations [22:54] AvianFlu has joined the channel [22:54] hij1nx: jmoyers: you should check this out, its why i started writing EventEmitter2 in the first place (https://github.com/hij1nx/EventVat) [22:54] jmoyers: i saw that [22:54] jmoyers: its nice [22:54] webben has joined the channel [22:55] hij1nx: implicitly Redis for the browser [22:55] rauchg has joined the channel [22:55] AvianFlu has joined the channel [22:55] jmoyers: mine was just for tiny in-process mq [22:55] kohai: @chibicode: Heroku Gets Node.js and More in New Beta Version by @klintron http://t.co/MkaQLKh via @RWW (link: http://www.readwriteweb.com/cloud/2011/05/heroku-gets-nodejs.php) [22:55] jmoyers: for the larger mvc project that i have kicking around, mettle [22:56] jmoyers: hij1nx btw, did you publish your benchmarks vs reg EventEmitter? [22:57] hij1nx: jmoyers: its in the test folder of the project [22:57] webben has joined the channel [22:57] jmoyers: k [22:59] jaket has joined the channel [22:59] nanreh has joined the channel [22:59] jerrysv has joined the channel [22:59] webben has joined the channel [23:00] tikva has joined the channel [23:00] nanreh has left the channel [23:00] nanreh666 has joined the channel [23:01] jerrysv: ryah: do you have time to validate something? [23:01] catshirt has joined the channel [23:02] webben has joined the channel [23:02] coderendezvous has joined the channel [23:03] stagas_ has joined the channel [23:03] dwasp has joined the channel [23:03] mawkor2: hey does anyone here want to work on this site with me? [23:03] mawkor2: http://www.showzi.info/ [23:03] dshaw_ has joined the channel [23:04] mawkor2: it's a pretty sweet idea [23:04] mawkor2: and im all lonesome [23:04] webben has joined the channel [23:06] dwasp: is there an irc room specifically for express.js? [23:06] Marak has joined the channel [23:06] tjholowaychuk: dwasp nope [23:06] tjholowaychuk: just the mailing list [23:06] webben has joined the channel [23:06] dwasp: thx [23:07] raidfive has joined the channel [23:07] swaj: dwasp: most express questions are answered here, though :P [23:08] samsonjs_ has joined the channel [23:09] sreeix_ has joined the channel [23:09] webben has joined the channel [23:10] AAA_awright: tjholowaychuk: I would like to move the "escape" function that HTML-escapes into lib/utils.js since it's defined in both compiler.js and jade.js, and also expose the attrs function in jade.js, should I send a pull request? [23:11] patcito has joined the channel [23:11] dwasp: just trying to get sass rendering succinctly inside express, which seems like it used to be built-in? but sass.js doesn't support being dropped in as an express renderer directly? [23:11] AAA_awright: There appears to be another "escape" function that quote-escapes, and both of them overload the builtin escape function that URL-encodes [23:11] webben has joined the channel [23:11] dwasp: or am I missing a 'view option'? [23:12] kohai: @maraksquires: It's really funny to see someone claim they support websockets when they don't and it's really socket.io doing a fallback. lol... #nodejs [23:12] copongcopong has joined the channel [23:12] mraleph has joined the channel [23:13] cyberspace has joined the channel [23:13] tjholowaychuk: AAA_awright it's because it's inlined in the compiled function [23:14] webben has joined the channel [23:14] kmwallio has joined the channel [23:14] tjholowaychuk: which is nice because it becomes a stand-alone function you can use on the client-side etc [23:14] tjholowaychuk: BUT [23:14] tjholowaychuk: we can call it _escape if you want [23:14] tjholowaychuk: dwasp: no template engine is built in [23:14] tjholowaychuk: but sass is not a template engine [23:14] tjholowaychuk: you don't need to use res.render() [23:14] kohai: @csanz: simple in-code TODO finder #nodejs http://post.ly/29I1B (link: http://csanz.posterous.com/simple-in-code-todo-finder-nodejs) [23:14] tjholowaychuk: typically people use connect.compiler() [23:14] AAA_awright: I'm passing the function as an argument, in my rewritten implementation of render() [23:15] tjholowaychuk: dwasp but you sohuld check out my other project Stylus http://learnboost.github.com/stylus/ [23:15] tjholowaychuk: it's much more robust [23:15] tjholowaychuk: AAA_awright yeah i used to do that [23:15] niftylettuce has joined the channel [23:15] tjholowaychuk: in jade [23:16] niftylettuce: tjholowaychuk++ [23:16] v8bot: niftylettuce has given a beer to tjholowaychuk. tjholowaychuk now has 32 beers. [23:16] AAA_awright: Ah, why the change then? [23:16] devdazed has joined the channel [23:16] webben has joined the channel [23:16] AAA_awright: Client side support? [23:16] tjholowaychuk: no reason not to really but yeah that was one reason [23:16] tjholowaychuk: toString() and it's all there [23:17] vincenteh: Hey, I have a Statsd question (I'd assume it is simple): What exactly does increment do? I just know when I call it a fuckton of times my graph changes. [23:17] ph^ has joined the channel [23:18] cyberspace has joined the channel [23:18] vincenteh: I can't really figure out what exactly I'm doing when calling increment that makes it graph what it does. [23:18] webben has joined the channel [23:19] darshanshankar has joined the channel [23:20] aaronblohowiak has joined the channel [23:21] webben has joined the channel [23:21] swaj: learnboost looks interesting. though I wonder how they earn money? [23:21] tjholowaychuk: by being awesome [23:21] swaj: lol [23:21] swaj: is it donationware? [23:22] tjholowaychuk: coolware [23:22] tjholowaychuk: we're magic [23:22] kohai: @FlockonUS: Heroku now supports Node.js :o http://blog.heroku.com/archives/2011/5/31/celadon_cedar [23:23] zmbmartin: anyone know how to validate if an array is empty/blank in mongoose I tried val !== [] [23:23] kohai: @NodeJSAtSO: node.js chunked http://bit.ly/jY363h (link: http://stackoverflow.com/questions/6233562/node-js-chunked?utm_medium=twitter&utm_source=twitterfeed) [23:23] AAA_awright: tjholowaychuk: "exports.attrs = function attrs(obj){" works and preserves attrs.name [23:23] brownies: swaj: they earn money from venture capitalists ;) [23:23] Zeta has joined the channel [23:23] webben has joined the channel [23:23] AAA_awright: Same for escape if you want to leave it in jade.js [23:24] swaj: brownies: well I saw they had VC money, but I dunno.. seems like that's gonna dry up eventually. They might have to start charging for all that "coolware" :P [23:24] tjholowaychuk: coolware never dies [23:24] swaj: haha [23:24] tjholowaychuk: or dries [23:24] brownies: no, you see, first they give it away for free, and then... well, i'll let tjholowaychuk explain the rest ;) [23:24] DTrejo: melts? [23:25] swaj: first they give it away... then they add even more kick-ass features but starting charging for those ones :P [23:25] tjholowaychuk: and start being cooler [23:25] brownies: (1) give away software (2) ???? (3) profit [23:25] sonnym has joined the channel [23:25] tjholowaychuk: ???? [23:25] tjholowaychuk: how did you know [23:25] swaj: indeed [23:26] webben has joined the channel [23:26] brownies: heh, it's a clever strategy, actually... will be interesting to see if schools bite. [23:26] DTrejo: yeah, schools are suckers for ???? [23:26] swaj: is the goal to sell private installations to schools? [23:26] tjholowaychuk: i've never had anyone turn down ???? [23:27] brownies: i hear there's also clouds involved [23:27] niftylettuce has joined the channel [23:27] swaj: maybe expand it into a full school administration system :P [23:27] swaj: lord knows my high school could have used it :P [23:28] alloc has joined the channel [23:28] webben has joined the channel [23:28] tikva has joined the channel [23:28] boogyman has joined the channel [23:30] sreeix_ has joined the channel [23:30] dgathright has joined the channel [23:30] swaj: hm... I guess it's time to reboot back into windows so I can work on this C# server library for socket.io :P [23:30] webben has joined the channel [23:33] webben has joined the channel [23:34] igl1 has joined the channel [23:35] webben has joined the channel [23:36] tayy has joined the channel [23:36] hassox has joined the channel [23:37] webben has joined the channel [23:39] samsonjs has joined the channel [23:39] petrjanda has joined the channel [23:39] paul_k has joined the channel [23:40] webben has joined the channel [23:40] kohai: @rhm2k: PaaS Is The Future Of Cloud Services: Battle Lines Are Clearly Drawn http://zite.to/iBM6ra < now with Node.js !! (link: http://www.cloudave.com/13383/paas-is-the-future-of-cloud-services-battle-lines-are-clearly-drawn/) [23:42] webben has joined the channel [23:42] miccolis has joined the channel [23:44] webben has joined the channel [23:45] tilgovi has joined the channel [23:45] tilgovi has joined the channel [23:46] [[zz]] has joined the channel [23:46] _jgr has joined the channel [23:47] webben has joined the channel [23:48] kohai: @izs: node.js does a lot for you http://t.co/GvnIXM4 (link: http://thecodinghumanist.com/sitecontent/thecodinghumanist/imageupload/nodejsdoesalotforyou.png) [23:49] webben has joined the channel [23:50] k1ttty has joined the channel [23:50] micheil has joined the channel [23:51] davidban_ has joined the channel [23:52] webben has joined the channel [23:53] _jgr has joined the channel [23:54] webben has joined the channel [23:54] kohai: @possibleoutcome: wooo, set up node.js and mongodb with a toy geo-targeting web analytics page in under 30 minutes [23:56] kohai: @eee_c: Hunh. The NPN enabled node.js is still only in master. I would have thought it made it into 0.4.8. [23:56] webben has joined the channel [23:57] zmbmartin: seriously I am loving express [23:57] zmbmartin: and stylus too! [23:57] zmbmartin: Thanks tjholowaychuk [23:57] tjholowaychuk: zmbmartin np [23:57] zmbmartin: Coming from rails I did not know how to do certain things [23:57] replore has joined the channel [23:58] blueadept: would anyone know why the last line of this function is not working? http://pastie.org/private/ax1qp1ubn4rjkjmnj2ehuw [23:58] akshatj has joined the channel [23:58] zmbmartin: obviously there are still things that express is doing for me but I am learning a lot. [23:58] dshaw_ has joined the channel [23:58] mcluskydodallas has joined the channel [23:58] __jgr has joined the channel [23:59] zmbmartin: and I feel like I am building skinnier apps with only what I need and am using. [23:59] webben has joined the channel [23:59] tjholowaychuk: zmbmartin totally, it does _way_ less, but that's not always a bad thing