[00:01] AvianFlu: JSON.parse() is the only thing you should ever try-catch [00:01] AvianFlu: nothing else in core uses throw [00:01] jameson: haha this is awesome [00:02] jameson: but where is charlie lulo [00:02] TheJH: AvianFlu, how about parseInt? [00:02] AvianFlu: is that another one? [00:02] AvianFlu: I'd love a big list of all those [00:02] TheJH: .. parseInt("foo") [00:02] catb0t: 13NaN [00:03] TheJH: oh, I thought that it would throw... [00:03] jameson: NaN [00:03] jameson: :( I want purple [00:03] jhurliman: the downside of asynchronous programming is sometimes useless stack traces :-\ [00:03] jhurliman: Error: ENOTFOUND, Domain name not found [00:03] jhurliman:    at IOWatcher.callback (dns.js:74:15) [00:03] AvianFlu: ENOTFOUND isn't the kind of thing you want a stack trace for, though [00:03] TheJH: jhurliman, there's ane xperimental branch that has back-tracking stack traces [00:04] TheJH: dunno how experimental it is [00:04] jhurliman: AvianFlu, it's not? [00:04] AvianFlu: I take that back, I guess you might [00:04] AvianFlu: I was thinking that "domain name not found" was more of an external problem [00:04] tjholowaychuk: jhurliman haha yeah it is kinda annoying. i had to bust out strace today just to see where a socket related error was even coming from [00:04] AvianFlu: but I guess if you were doing a bunch of DNS resolves you might want to know which one was which [00:05] AvianFlu: yeah, that makes sense [00:05] jhurliman: i'm pretty sure i got that stack trace e-mailed to me by the part of my app that catches unhandled exceptions, right before it takes down the whole node app and brings it up again. because it failed to resolve a domain name [00:05] Sam_K: If I don't try/ctach around http.listen(), and the port cannot be opened, then the script will bomb out without giving me a chance to do anything afterwards [00:05] TheJH: can a core dev or so say something about this branch? https://github.com/joyent/node/tree/eventsource [00:05] AvianFlu: jhurliman: yeah that would drive me nuts, you're definitely right on that [00:06] jhurliman: TheJH, that's cool someone is working on that [00:08] TheJH: jhurliman, can you estimate how usable it is at the moment? [00:08] jellosea: has anybody here used node-fiberize? i need some help understand how it works [00:08] Sam_K: AvianFlu: so http.listen will throw if port cannot be bound [00:08] jhurliman: TheJH, this is the first time i've heard of that branch. no idea, sorry [00:08] jerrysv: sync fs calls use throw if memory serves [00:11] ngs has joined the channel [00:11] captain_morgan has joined the channel [00:12] gazumps has joined the channel [00:16] Dreamer3 has joined the channel [00:17] Sam_K: I have to go now, thanks to TheJH and TooTallNate for attention on my problem [00:17] Sam_K: I have opened a issue on Github for my problem here: https://github.com/joyent/node/issues/1381 [00:17] Sam_K: thanks all [00:18] ekryski has joined the channel [00:18] bitwise_ has joined the channel [00:20] AvianFlu has joined the channel [00:20] Dreamer3 has joined the channel [00:21] samsonjs has joined the channel [00:22] rchavik has joined the channel [00:22] rchavik has joined the channel [00:23] dannycoates has joined the channel [00:24] AAA_awright: Nuck: Could I adapt your project to host music in the same way? I'm gonna need a platform to do that sometime [00:24] jbwiv__ has joined the channel [00:25] Ramosa: it took forever to install node.js by make .. now that I think about it I should probably have installed by package manager, would be easier to purge it afterwards, right? [00:25] Dreamer3 has joined the channel [00:26] AvianFlu: Ramosa: you'll be better off with a properly compiled Node in the long run [00:26] Dreamer3 has joined the channel [00:26] pongwon has joined the channel [00:26] eggsby has joined the channel [00:26] ParadoxQuine has joined the channel [00:27] eggsby: is there a non-gpl irc lib for node? [00:27] eggsby: something like mit or bsd? [00:27] Ramosa: ok. do I clean up the files git created? I did git in ~/git but it installed to ~/local/node [00:27] Ramosa: and from what folder do i execute curl http://npmjs.org/install.sh [00:28] AvianFlu: eggsby: node-irc I think [00:28] AvianFlu: ramosa: did you install from master? [00:28] eggsby: node-irc/'npm install irc' is GPLv3 [00:29] AvianFlu: eggsby: GOD FUCKING DAMN IT [00:29] Ramosa: yes I did omit the git checkout origin/v0.4 [00:29] eggsby: also AvianFlu been making a coffeebot loosely based off of kohai 8) [00:29] AvianFlu: that sucks [00:29] eggsby: yes it does [00:29] puffpio has joined the channel [00:29] AvianFlu: Ramosa: unless you're trying to test the unstable branch, you don't really want 0.5.x [00:29] AvianFlu: unless I misunderstand you [00:29] Prometheus: :o [00:30] Ramosa: its ok im only doing development, not for production [00:30] Prometheus: eggsby: coffeebot? [00:30] mizerydearia has joined the channel [00:30] pgte has joined the channel [00:30] eggsby: just an irc bot written in coffeescript [00:30] Prometheus: oh [00:30] Prometheus: you should call it starbux [00:30] Prometheus: =P [00:30] Dreamer3 has joined the channel [00:30] eggsby: lol :p [00:30] swaj: so for those of you writing e-commerce apps, do you just store your cash values as integers and then divide/multiply by 100 accordingly? [00:30] swaj: or does node provide some sort of decimal type? [00:31] Ramosa: so do I delete the files git fetched before make install? [00:31] caiges has joined the channel [00:31] Prometheus: swaj: pretty sure javascript handles decimals? : [00:32] systemfault: Prometheus: using floats for money? [00:32] Prometheus: well, no =) [00:32] swaj: Prometheus: it does, with a float type. which is bad for money. floating point arithmetic = no thanks :) [00:32] systemfault: Thought so ;) [00:32] Rubikzube has joined the channel [00:32] Prometheus: yeah [00:32] Prometheus: I suppose [00:32] AvianFlu: Ramosa: if you want, they're harmless unless you want the space [00:32] Prometheus: I guess I don't have to worry about it since python has Decimal =) [00:32] AvianFlu: eggsby: this is really big problems, I HATE the GPL [00:32] Xano has joined the channel [00:32] swaj: crockford recommends just using an int, but I wanted to make sure there wasn't something in node for decimals [00:33] Prometheus: swaj: oh I see [00:33] Prometheus: okay [00:33] Ramosa: AvianFly, and where do I execute curl npm ? where to install it [00:33] isaacs: Ramosa: execute it wherever. [00:33] isaacs: Ramosa: it'll install itself next to node [00:33] isaacs: wherever that is [00:34] sirdancealot has joined the channel [00:34] brianmario has joined the channel [00:34] Ramosa: thanks [00:37] secoif: hey i'm looking at the docs and there's this "Example: A very elaborate way to run 'ps ax | grep ssh'" [00:37] secoif: is there a less elaborate way to run that? [00:37] jhbot has joined the channel [00:37] secoif: specifically, I want to pipe [00:38] secoif: http://nodejs.org/docs/v0.4.10/api/all.html#child_process.spawn [00:39] jacter has joined the channel [00:39] admc has joined the channel [00:40] carmony has joined the channel [00:40] TheJH: secoif, maybe "A very elaborate way" because you could do the grep part in node [00:40] Rubikzube has joined the channel [00:41] AvianFlu: eggsby: GPLv3 is not an issue [00:41] AvianFlu: Kohai is MIT-licensed, which appears to be kosher for that [00:41] AvianFlu: I mean, not an issue for me lol [00:41] secoif: I see. There doesn't seem to be an easy way to use node to run shell commands [00:42] secoif: annoying. [00:42] TheJH: secoif, what co you want to do? you could spawn a bash or so [00:42] devaholic: secoif, yes there is [00:42] Aria has joined the channel [00:42] charleyd has joined the channel [00:42] secoif: is there [00:42] Tidwell has joined the channel [00:43] secoif: I actually just want to prepend a line to a file [00:43] devaholic: here.. [00:43] smolyn has joined the channel [00:44] devaholic: childProc = require('child_process'); [00:44] perezd: is it office hours? [00:44] devaholic: childProc.exec("ps aux | grep node | awk '{print($1 $2 $11)}'", function (error, stdout, stderr) {}); [00:44] secoif: oh [00:44] secoif: fark [00:44] secoif: that's easy [00:44] secoif: actually omg [00:44] secoif: I even knew that [00:44] devaholic: that will grab anything with "node" in it and give ya the user, memory, and pid or something [00:45] ssuda has joined the channel [00:46] ssuda: Hi I want to know cert, key, ca options of https.request are file names or string or buffer [00:47] creationix has joined the channel [00:47] devaholic: strings [00:48] ssuda: thanks [00:49] devaholic: np [00:49] jellosea: does anybody here use fibers? [00:50] bnoordhuis: jellosea: sure - part of a healthy diet, right? [00:50] jellosea: haha [00:50] jellosea: bnoordhuis: do you use node-fibers ? [00:50] bnoordhuis: jellosea: no, but i'm aware of its existence [00:50] jellosea: oh okay.. [00:51] bnoordhuis: jellosea: but what about it? [00:51] Aria: Yeah, I don't either. [00:51] akshatj has joined the channel [00:51] Aria: I use processes as my basic unit of multitasking. [00:51] pandeiro has joined the channel [00:53] jhbot has joined the channel [00:54] DTrejo has joined the channel [00:54] TheJH: new bot functions (now they even work): [00:54] TheJH: remember gist Gist is kind of a pastebin. Every paste is a git repo. https://gist.github.com/ [00:54] TheJH: !remember gist Gist is kind of a pastebin. Every paste is a git repo. https://gist.github.com/ [00:54] jhbot: saved definition of 'gist' [00:54] TheJH: !mem gist [00:54] jhbot: Gist is kind of a pastebin. Every paste is a git repo. https://gist.github.com/ [00:54] jtsnow has joined the channel [00:54] TheJH: !remember greet Hello $! [00:54] jhbot: saved definition of 'greet' [00:54] Dreamer3 has joined the channel [00:54] TheJH: !mem greet World [00:54] jhbot: Hello World! [00:55] Dreamer3 has joined the channel [00:55] neoesque has joined the channel [00:57] Dreamer3 has joined the channel [00:58] dshaw_ has joined the channel [00:58] mynyml has joined the channel [00:58] Murvin: just find a very interesting bug in decrypting data [00:58] TheJH: Murvin, ? [00:58] Dreamer3 has joined the channel [00:59] Murvin: decrypt.final() occasionally doesn't work and hang the http. [00:59] Murvin: it is very weird.. going to fire an issue to explain in details... [00:59] bnoordhuis: !remember bam !mem bam [00:59] jhbot: that value starts with a non-alphanumeric character, I don't want to store bot commands [00:59] bnoordhuis: aw [01:00] bnoordhuis: !remember bam $! bam !mem [01:00] jhbot: that value starts with a non-alphanumeric character, I don't want to store bot commands [01:00] bnoordhuis: damn [01:00] Dreamer3 has joined the channel [01:00] TheJH: bnoordhuis, it doesn't listen to itself or catbot anyway [01:01] bnoordhuis: TheJH: spoilsport :( [01:01] TheJH: oh, sorry :( [01:01] bnoordhuis: no, good job :) [01:02] Dreamer3 has joined the channel [01:02] Swizec has joined the channel [01:03] azeroth__ has joined the channel [01:03] vikstrous has joined the channel [01:04] tantek has joined the channel [01:04] gregpascale has joined the channel [01:04] Dreamer3 has joined the channel [01:05] neoesque has joined the channel [01:06] secoif: devaholic++ [01:06] catb0t: devaholic now has 1 beer [01:06] secoif: Thanks for that. [01:07] Murvin: TheJH: Please take a look of https://github.com/joyent/node/issues/1382 [01:07] ditesh|cassini has joined the channel [01:09] TheJH: Murvin, could you insert console.log statements before and after the decrypt.final call and wrap decrypt.final in try/catch? [01:09] iFire has joined the channel [01:09] Murvin: TheJH: i did. however, the first call, there is no error. [01:10] vikstrous has joined the channel [01:10] Murvin: TheJH: catch nothing. but then, when the 2nd call come in. It won't even reach that. actually, even I put a console.log at the first line after app.get('/mycall'), it won't reach it. [01:10] charleyd has joined the channel [01:11] TheJH: Murvin, does it get after decrypt.final on the first request? [01:11] Murvin: TheJH: somehyes [01:11] Murvin: TheJH: yes.. run perfectly [01:11] Murvin: for every "Odd" number [01:11] Murvin: of run [01:12] Murvin: and it only happens when I call it from client browser, using JSONP. not the case if I call it from server to server. [01:12] unlink has joined the channel [01:12] unlink has joined the channel [01:13] TheJH: Murvin, do you re-run "var decrypt = crypto.createDecipher('aes-256-cbc', secret );" on every request? [01:14] Murvin: yes [01:14] tantek has left the channel [01:14] sonnym has joined the channel [01:14] TheJH: Murvin, could you gist some more of your code? or did you already? [01:15] raidfive has joined the channel [01:15] Murvin: TheJH: my current code is very huge and comlplicated now.. almost a finish product. lol however, I will try to make a simple version to show the error. [01:16] TheJH: Murvin, that would be good. [01:16] Murvin: TheJH: no problem. :) [01:16] admc has joined the channel [01:16] srid has joined the channel [01:16] srid has joined the channel [01:17] mkrecny has joined the channel [01:18] kimico has joined the channel [01:18] eggsby has left the channel [01:18] skm has joined the channel [01:19] tommyvyo has joined the channel [01:23] jerrysv has joined the channel [01:25] kawaz has joined the channel [01:27] k1ttty has joined the channel [01:27] charleyd has joined the channel [01:28] seivan has joined the channel [01:29] jeromegn: anybody have a simple jobs queuing system to recommend? needs to support non-default redis connection params (host, port and auth) if it uses redis. sadly Kue doesn't allow for those settings. [01:29] pandeiro has joined the channel [01:31] TooTallNate: open an issue for Kue, that's an easy fi [01:31] TooTallNate: *fix [01:31] TooTallNate: je: ^ [01:31] TooTallNate: jeromegn: ^ [01:31] TooTallNate: haha, damn tab completion [01:31] jeromegn: TooTallNate: yea, there's a pull request for that actually, but it seems like it got forgotten after a while... going to +1 [01:31] jeromegn: :) [01:31] TooTallNate: lol, I'll get on TJ's case to merge that then :p [01:32] zeade has joined the channel [01:32] TooTallNate: jeromegn: in any case, you can checkout kue locally and apply the patch yourself, until it gets merged upstream [01:32] seb_m has joined the channel [01:33] cjm has joined the channel [01:34] jeromegn: TooTallNate: that's what I started doing :) looks like the commit was a few days ago but TJ was so fast iterating that the code doesn't make much sense anymore I'm afraid. Started fiddling around the code to see if I can rig it myself (it's just that he opens up a new redis connection at a few spots and I'm trying to figure out an elegant way to make available the connection settings to those parts) [01:35] skm has joined the channel [01:36] TooTallNate: jeromegn: indeed the pull request says that it won't merge cleanly at the moment [01:36] TooTallNate: so just keep hacking on it locally for now, I'll bug tj about it tomorrow [01:36] jeromegn: TooTallNate: thanks a lot [01:36] Prometheus: jeromegn: o/ [01:37] TooTallNate: jeromegn: setting the connection settings is a no-brainer, lazy tj :p [01:37] jeromegn: hehe [01:37] jeromegn: yea, using dotcloud.com as a provider, so I do need more control on the connection params, I don't choose them! [01:41] kofno has joined the channel [01:44] jtsnow has joined the channel [01:45] soufy has joined the channel [01:48] seivan_ has joined the channel [01:50] jroesslein has joined the channel [01:50] galaxywatcher has joined the channel [01:51] piscisaureus has joined the channel [01:52] broofa has joined the channel [01:52] vikstrous has joined the channel [01:53] jtsnow has joined the channel [01:54] ditesh has joined the channel [01:54] Remoun_ has joined the channel [01:54] Remoun has joined the channel [01:55] Hurreman1: Got two issues I'm having some problems wrapping my head around. I'm running a child-process to continously run a sql-query every second looking for changes in a table, and when a change is found, the results are sent back to the parent process, which then will broadcast the changes to any clients connected through websockets (using socket.io). My first issue is that table changes seem to be detected very randomly, and second - I don't know h [01:55] brianseeders has joined the channel [01:56] drudge has joined the channel [01:57] d0k has joined the channel [01:57] abraxas has joined the channel [01:58] _jhs has left the channel [01:58] reid has joined the channel [01:58] Aria: Don't know h ? [01:59] Hurreman1: ? [02:02] Swizec has joined the channel [02:03] agnat_ has joined the channel [02:04] caiges has joined the channel [02:07] mscdex: Hurreman1: you were cut off at "I don't know h" [02:07] Hurreman1: ah... doh [02:07] Hurreman1: and second - I don't know how to broadcast the events from outside the "io.sockets.on..." scope. [02:08] vikstrous has joined the channel [02:08] patrickjst has joined the channel [02:08] mscdex: Hurreman1: why not use node-mysql? [02:09] Hurreman1: I am [02:09] galaxywatcher_ has joined the channel [02:09] mscdex: so why the child process? [02:09] Hurreman1: Mostly for separation [02:09] mscdex: well, it's all async [02:10] mscdex: not really necessary to have a child process for that [02:10] Hurreman1: No I know [02:10] Hurreman1: But I prefer separating logic to make things a bit more maintainable [02:11] mscdex: you could also separate your logic into different modules and just require() them in your main script [02:11] Hurreman1: It has crossed my mind, but havn't gotten that far yet :). Trying to get the logic working first of all [02:13] zeade1 has joined the channel [02:13] sub_pop has joined the channel [02:13] willwhite has joined the channel [02:13] galaxywatcher has joined the channel [02:15] mscdex: Hurreman1: looking at the docs, it looks like you can just do io.sockets.emit('foo', { bar: 'baz' }); [02:15] mscdex: to broadcast to all clients [02:15] Hurreman1: Here are my attempts so far https://gist.github.com/1098752 [02:16] Hurreman1: ah. Was looking though socket.io on github without finding that, I'll give it a try [02:17] sammmy has joined the channel [02:17] Hurreman1: Just need to find why the query isnt detecting my changes then [02:17] mscdex: Hurreman1: here's where i saw it: http://socket.io/#how-to-use [02:17] perlmonkey2 has joined the channel [02:18] Hurreman1: doh, there it was. Must've looked through the examples at least five times without seeing it. Should've searched for "emit" on the page, heh [02:19] chrissilich has joined the channel [02:20] chrissilich: hello everybody [02:20] chrissilich: anyone have a sec to help me with a socket.io question? [02:20] mscdex: Hurreman1: also, you can avoid having to use an absolute path for modules if you put the modules in ./node_modules [02:20] mscdex: Hurreman1: so you can then just do require('socket.io'), etc [02:20] mscdex: Hurreman1: or require('mysql') [02:21] mscdex: chrissilich: go ahead and ask [02:21] gtramont1na has joined the channel [02:22] Hurreman1: yeah, just had some permission problems when installing anywhere else. A bit rusty when it comes to linux after working for a MS-loving company for too long [02:22] ParadoxQuine has joined the channel [02:22] maushu has joined the channel [02:23] mikedeboer has joined the channel [02:23] mscdex: heh [02:24] chrissilich: ok, I'm trying to send messages to individual clients [02:24] Hurreman1: Good thing about quitting and getting self-employed, can choose whatever language/platform you want. [02:25] Nuck has left the channel [02:25] chrissilich: ive got the session IDs of those clients saved [02:25] Nuck has joined the channel [02:26] chrissilich: and i swear I've seen 10 different ways to ask socket.io for the client by ID to send the message to them, but it's always an undefined error [02:27] chrissilich: here's my io: [02:27] chrissilich: var io = require('socket.io').listen(1337); [02:27] bwinton has joined the channel [02:27] chrissilich: one page said this would work [02:27] chrissilich: io.clients[thesavedsessionID].send() [02:27] chrissilich: but io.clients is undefined [02:28] chrissilich: i think its a case of a rapidly changing API and lots of old code snippets online [02:29] perlmonkey2: chrissilich: I think that's all node modules. I just got burned by the nodepad example that was using either a deprecated or old connection string. [02:29] perlmonkey2: s/old/wrong/ [02:30] Hurreman1: the downside of rapid development [02:30] chrissilich: im emitting messages and recieving them on both client and server [02:31] chrissilich: not doing anything outside node+socket.io [02:31] chrissilich: (at least not in this problematic bit of code) [02:31] Dreamer3 has joined the channel [02:32] chrissilich: anyone in here a socket expert? [02:32] chrissilich: *socket.io [02:32] TheJH: chrissilich, manager.get(id) maybe? [02:32] vikstrous has joined the channel [02:33] chrissilich: manager? never heard of it, I'll try [02:33] TheJH: chrissilich, take the result of listen() and use its get() method [02:33] TheJH: chrissilich, me neither have I, but it's in the source code [02:33] chrissilich: manager is undef [02:34] TheJH: chrissilich, the result of listen() is the manager [02:34] chrissilich: TheJH: maybe i dont understand [02:34] chrissilich: if it do this [02:34] chrissilich: var io = require('socket.io').listen(1337); [02:34] chrissilich: isn't io the result of listen()? [02:34] TheJH: chrissilich, when you create the socket.io server, you call listen somewhere, right? [02:34] othiym23 has joined the channel [02:34] chrissilich: \yes [02:35] TheJH: chrissilich, maybe your io is the manager? dunno, try it [02:35] TheJH: io.get(clientID) [02:35] chrissilich: i'll try it, gimme a sec [02:35] brianmario has joined the channel [02:35] mscdex: i think manager.get() is for settings [02:36] chrissilich: ... io is undef... something else is going on here... [02:36] chrissilich: that cant be right [02:37] chrissilich: let me get back to you later, I'm going to clean things up and try a few things [02:37] chrissilich: thanks guys, JH, mscdex [02:37] Hurreman1: mscdex: Got the event broadcasting working, cheers for the pointer. Now I gotta see why these db changes aren't being detected [02:37] jakehow has joined the channel [02:38] TheJH: chrissilich, now I think I figured it out, io.store.clients[id] should do it [02:38] chrissilich: io is undefined right now [02:38] TheJH: chrissilich, yes, but when you have fixed that, try io.store.clients[id] [02:39] chrissilich: ok, great, thanks JH [02:39] TheJH: I'll have some sleep now. 04:39 local time :D [02:39] jacter1 has joined the channel [02:40] Hurreman1: TheJH: Same, but can't sleep when finally making progress :P [02:41] TheJH: well, good progress :) [02:41] Hurreman1: and good night :) [02:41] TheJH: good night :) [02:42] wavded has joined the channel [02:42] wavded has left the channel [02:42] wavded has joined the channel [02:43] wavded has left the channel [02:45] chrissilich: damn, that didn't work and JH is gone [02:46] chrissilich: any other socket geeks out there? [02:47] yhager has joined the channel [02:47] Hurreman1: Just getting started with it here as well [02:47] smolyn has joined the channel [02:47] mscdex: chrissilich: define "didn't work", is Object.keys(io.store.clients).length > 0? [02:48] chrissilich: io.store.clients is where the data set by those clients is stored [02:49] chrissilich: the clients in io.store.clients dont have any functions [02:49] k1ttty has joined the channel [02:50] chrissilich: their keys are their sessionIDs though [02:50] k1ttty_ has joined the channel [02:52] creationix has left the channel [02:53] clifton has joined the channel [02:53] clifton: anyone in texas doing node knockout? [02:53] cjm has joined the channel [02:55] seb_m has joined the channel [02:56] Swimming_bird has joined the channel [02:57] patrickjst has joined the channel [02:58] smolyn_ has joined the channel [02:58] clifton has joined the channel [02:59] mnaser has joined the channel [03:01] charleyd has joined the channel [03:01] iFire` has joined the channel [03:02] DTrejo has joined the channel [03:02] mscdex: chrissilich: i dunno then, i'd ask on the socket.io mailing list: http://groups.google.com/group/socket_io [03:03] destari has joined the channel [03:03] chrissilich: orright mscdex, thanks for trying? [03:03] chrissilich: *. [03:03] galaxywatcher has joined the channel [03:05] dc` has joined the channel [03:06] secoif: Trying to test an executable nodejs module using vows, anyone know of a module with a commandline tool that is tested with vows? [03:06] Corren has joined the channel [03:06] Hurreman1: Anyone got time and want to have a look at my getUpdates function? Been going through the flow on the whiteboard and in my head, but can't figure out why it's not detecting all table updates. https://gist.github.com/1098804 [03:10] azeroth____ has joined the channel [03:13] SeanBannister has left the channel [03:13] conner has joined the channel [03:13] Xeon06_ has joined the channel [03:14] pNstK has joined the channel [03:15] creationix has joined the channel [03:15] creationix: I'm having trouble finding the thread, but didn't we recently add some flavor of AMD support to node? [03:15] ryanfitz has joined the channel [03:16] KingDosser has joined the channel [03:16] KingDosser has left the channel [03:16] mscdex: i thought node supported both Intel and AMD ;-) [03:17] mscdex: Hurreman1: nothing looks out of place to me, are you just seeing "no updates found" in the console repeatedly, or nothing at all? [03:17] creationix: ahh, found the commit https://github.com/isaacs/node/commit/41c143ce1f65037f7b4156e53c739c2d6ad863d1 [03:18] creationix: that should work [03:18] Hurreman1: just seing the "no updates found", but I'm spamming the db with new updates [03:18] creationix: mscdex: meh, I want armv7 :) [03:18] creationix: which also works quite nicely [03:18] mscdex: yeah, i have node on my pandaboard :) [03:19] mscdex: Hurreman1: hmm... [03:19] Hurreman1: hm, could mysql be caching my queries? [03:19] Lorentz: mysql caches, yes [03:19] Lorentz: Primitively, but it does [03:19] Hurreman1: I've got a classic xhr-polling script on the side which does the same thing, but through php every second [03:20] creationix: hmm, our AMD implemtation doesn't give a way to define the module? [03:20] creationix: I mean it's name [03:20] Hurreman1: and that's responding nice and fast [03:20] creationix: how does that work in the browser [03:22] jtsnow has joined the channel [03:22] mscdex: Hurreman1: to see if it's a caching thing, try inserting SQL_NO_CACHE after SELECT [03:22] mscdex: i.e. SELECT SQL_NO_CACHE foo, bar, ... [03:24] Hurreman1: hm, no difference [03:24] Hurreman1: It throws out a "updates found!" every now and then, but it seems very random [03:25] mscdex: Hurreman1: and if you up the setTimeout value from 1000 to something higher? [03:26] creationix: kriszyp: you around? [03:27] Hurreman1: even if I up it to say 5 secs, it still miss a lot of changes [03:28] charleyd1 has joined the channel [03:28] Hurreman1: And I'm inserting data every other second [03:28] Hurreman1: and multiple rows at a time [03:29] Hurreman1: Been scratching my head about this for several days now :P [03:31] mraleph has joined the channel [03:33] charleyd has joined the channel [03:33] iFire has joined the channel [03:36] fraserkillip has joined the channel [03:39] kofno has joined the channel [03:39] bradleymeck has joined the channel [03:39] mscdex: Hurreman1: dunno, try posting a github issue on the node-mysql repo [03:41] Hurreman1: That's worth a shot. Could try mysql-native as well to make sure it's not actually my code [03:41] wookiehangover has joined the channel [03:47] corytheboyd has left the channel [03:48] yozgrahame has joined the channel [03:52] creationix: meh, amd in node isn't worth the effoty [03:52] creationix: I'll just make a mini version of browserify [03:52] creationix: *effort [03:52] creationix: ACTION likes code simple [03:52] yhager has joined the channel [03:53] jasonHulme has joined the channel [03:57] vikstrous has joined the channel [03:58] jtsnow has joined the channel [04:04] Isaiah has joined the channel [04:05] tommyvyo has joined the channel [04:05] EyePulp has joined the channel [04:06] CrabDude has joined the channel [04:07] boehm has joined the channel [04:09] jordo has joined the channel [04:09] jordo: anyone have experience with burrito? [04:09] jordo: the node module, not food [04:09] ryah: only the food here. [04:09] ryah: SubStack--^ [04:10] azeroth____ has joined the channel [04:10] jordo: SubStack I was curious if Burrito offers a way to completely replace nodes in the AST [04:11] jordo: instead of just wrapping them. [04:13] chrisdickinson: jordo: i think you can do burrito.wrap('anything'), and so long as there's no '%s' it'll completely replace the node. [04:14] jordo: Hmm. Might work, but I'll need to get what I want in string form. [04:14] jordo: Basically, I want to rearrange a function call [04:14] jordo: from object.method -> method(object) [04:14] unlink has joined the channel [04:15] technoweenie has joined the channel [04:15] jordo: burrito offers the ast in parsed form... Seems doable, I just need to deparse the part without the invocation [04:15] neoesque has joined the channel [04:19] kriszyp has joined the channel [04:20] rchavik has joined the channel [04:20] devongovett has joined the channel [04:21] TechCel has joined the channel [04:22] visudo_ has joined the channel [04:24] vikstrous has joined the channel [04:25] patrickjst has joined the channel [04:29] jeromegn: half the time (or more) when I start my app, I can't do anything on it, it just times out (No data received) at every requests. but other times it's blazing fast and available right away. nothing shows in the logs. [04:29] jeromegn: I suspect it's a timing issue with stuff loading at the boot [04:29] jeromegn: any thoughts? [04:30] jeromegn: hmm [04:30] jeromegn: if I curl http://localhost:8080 then it returns something immediatly [04:30] jeromegn: but not in my browser [04:30] Knifed has joined the channel [04:30] Aria: Not too likely. Is the request not ending, perhaps? [04:30] ThomK: http://dpaste.com/573897/ is this correct code? Because on('connection', ... is not fired. :S [04:32] jeromegn: Aria: so chrome shows "No data received", Safari shows the page, but no styles or images [04:32] Aria: Hm. [04:33] jeromegn: doesn't even look like it tried to load any of those (images or css) [04:33] jeromegn: no 404 or anythng [04:34] ceej has joined the channel [04:35] jeromegn: Aria: POSTing doesn't do anything either, even if I'm using curl (it returns an error if there's an error with the data I sent) [04:36] tmpvar: jeromegn, can you provide some code? [04:36] jeromegn: causes fun situations: I need to restart the app a few times when I deploy :) [04:36] jeromegn: tmpvar: it's a big app, I'm not sure how to narrow it done... let me try something [04:37] rurufufuss has joined the channel [04:39] Aria: Sounds like end() isn't being called. [04:39] jeromegn: tmpvar, Aria: https://gist.github.com/239096604efda791a1cf [04:40] isaiah_ has joined the channel [04:40] jeromegn: config.js really is config/index.js but I can't have that as a path in a gist [04:40] Swimming_bird has joined the channel [04:41] jeromegn: Aria: if so, then I imagine it's an issue connecting to Mongodb? which I'm using in all requests or so. [04:41] camel_ has joined the channel [04:41] supster has joined the channel [04:41] camel_: hi , i am new to node and i am trying to install node.js [04:41] camel_: i have a question [04:41] camel_: git checkout origin/v0.4 # optional. Note that master is unstable. [04:41] camel_: what does this command do [04:42] isaiah_ has joined the channel [04:42] Aria: That checks out a copy of node's source, the latest 0.4.x [04:42] camel_: is that the stable one [04:42] camel_: or the most recent one [04:43] Aria: Stable. [04:43] camel_: oh ok, thanks [04:43] muhqu has joined the channel [04:46] rex_fernando has joined the channel [04:47] AvianFlu has joined the channel [04:48] jacobolus has joined the channel [04:48] smolyn has joined the channel [04:50] skm has joined the channel [04:51] SubStack: jordo: > require('burrito')('var x = 5; foo.bar', function (node) { if (node.name === 'dot' && JSON.stringify(node.value) === JSON.stringify([ ['name','foo'], 'bar' ])) node.wrap('bar(foo)') }) [04:51] SubStack: 'var x = 5;\n\nbar(foo);' [04:51] mcluskydodallas has joined the channel [04:52] zeade has joined the channel [04:52] camel_: does any one know how to install node.js without xcode [04:52] tmpvar: use a binary [04:53] camel_: looks like mac will not have a gcc comilar without installing xcode [04:53] Aria: Nope. [04:53] camel_: @tmpvar : how? [04:53] Aria: You can get gcc, but Xcode is the most easily available package. [04:54] camel_: i have osx 10.6.8 , the xode on the appstore wont install until i have 10.7 [04:54] camel_: any thoughts? [04:54] Aria: Suck! [04:54] camel_: :( [04:55] tmpvar: camel_, if you trust it : https://sites.google.com/site/nodejsmacosx/ [04:55] dnjaramba has joined the channel [04:55] rhdoenges: just build gcc from source! >:) [04:55] towski has joined the channel [04:55] camel_: oh i would trust anything now :) [04:57] Jalava_: can't you just install the xcode that came with your computer? [04:57] jordo has joined the channel [04:57] jordo: it needs to work in the following case... x = {yourObject: {something: {y:false}.method1(), person: true }.method2(), [04:57] seawise has joined the channel [04:57] jordo: Sorry Substack, disconnected for a second [04:58] Aria: Jalava_: It's not stock anymore [04:59] caiges has joined the channel [05:00] Remoun has joined the channel [05:03] skm has joined the channel [05:03] seivan has joined the channel [05:03] meso_ has joined the channel [05:04] mynyml has joined the channel [05:04] camel_: @Jalava , my machine is a office computer , it would take a long time for me to install xcode by opening a IT ticket [05:05] seawise has joined the channel [05:05] seivan_ has joined the channel [05:07] kofno has joined the channel [05:08] jordo: SubStack? [05:08] jordo: Do you have any idea why everything but the first wrap fails? [05:08] versicolor has joined the channel [05:09] jordo: I'm even logging the thing that I'm replacing it with, and I can see it try to wrap the correct values [05:09] jordo: but only the first has effect [05:09] fangel has joined the channel [05:10] jordo: Oh.. It's probably because of an ordering issue. [05:10] jordo: I'm transforming something that's nested as well as something that contains it. [05:11] seivan has joined the channel [05:11] jordo: But it's odd, because printing out the order shows that you are actually doing a preorder traversal, which is what we want. [05:12] te-brian has joined the channel [05:12] seivan__ has joined the channel [05:14] zackattack has joined the channel [05:15] digman543 has joined the channel [05:19] jordo: Ahh, this may be a bug Substack [05:19] Spion has joined the channel [05:19] mhausenblas has joined the channel [05:20] mhausenblas_ has joined the channel [05:21] jordo: If we do a preorder traversal, (which is fine) and rearrange nodes at a high level, then future modifications to the deeper levels take no effect. [05:22] jordo: I think because the traverse.js code first creates a copy of the ast,*then* maps over it. [05:22] jordo: If something at a high level rearranges the structure. [05:22] jordo: then the array that we're mapping over isn't up to date [05:22] mykul has joined the channel [05:24] CIA-65: node: 03Ryan Dahl 07master * rf319e12 10/ (111 files in 15 dirs): Upgrade V8 to 3.4.14 - https://github.com/joyent/node/commit/f319e126218dcaafdb0ccf7e968ff839f8327bba [05:24] CIA-65: node: 03Ryan Dahl 07master * rfea524e 10/ (110 files in 15 dirs): Merge branch 'V8-3.4' - https://github.com/joyent/node/commit/fea524e145d7bd8d3f76d6f0fd266187144cc08c [05:26] kay_k has joined the channel [05:30] SubStack: jordo: it's not a bug, it's by design [05:30] jordo: i see [05:30] SubStack: the traversal doesn't continue onto wrapped nodes [05:30] SubStack: but you can specify a parameter so that it does continue [05:30] jordo: nice! [05:31] jordo: can't find that [05:31] seivan has joined the channel [05:31] SubStack: ah it's not exposed [05:31] SubStack: state.update(expr, true); [05:32] mykul|Home has joined the channel [05:32] HelloWorld has joined the channel [05:32] jordo: what is the expr? [05:32] jordo: and can i just do node.update(state, expr) [05:33] jordo: sorry [05:33] jordo: node.state.update(expr, true) [05:33] HelloWorld: all the json i send from node.js to client gets processed as plain text, do i have to add slashes or something when sending the data over socket? [05:34] robhawkes has joined the channel [05:34] jordo: Substack - it looks like you're already calling that [05:35] SubStack: jordo: I'm exposing stopHere [05:36] descipher has joined the channel [05:36] devaholic: helloworld you asked this the other day [05:36] devaholic: and we told you then to use JSON.parse [05:36] devaholic: >_> [05:36] jordo: sorry Substack I'm not really clear on how to set that to true, from the perspective of my program [05:38] SubStack: jordo: I'm fixing it, stop thinking [05:38] jordo: ha! [05:38] jordo: I'm waaaaaaaaay ahead of you on that one [05:39] SamuraiJack has joined the channel [05:42] stephank has joined the channel [05:44] admc has joined the channel [05:45] te-brian: Trying to figure out mongoose. What does it mean if my Model.find().all(function()... callback never fires? [05:46] markdaws has joined the channel [05:46] luke` has joined the channel [05:47] AAA_awright: What is this AMD? [05:47] admc1 has joined the channel [05:48] admc1 has left the channel [05:50] admc has joined the channel [05:52] necrodearia has joined the channel [05:52] springify has joined the channel [05:54] seivan: hmm... more of a JS question but I'll shoot here, Post.prototype.update = .... will make it into an instance method. false/true ? [05:55] mekwall: true [05:55] chjj: yeah [05:56] mekwall: but I got a helluva hangover, so I'm not really trustworthy :D [05:56] chjj: but its not actually "on" the instance in js, if an object doesnt have a property called "update" and it inherits from that prototype, a lookup will be done on the prototype chain [05:57] chjj: but an object could have an "own" property named "update", in which case, no lookup would be done [05:58] SubStack: jordo: on second thought, you can just make nested calls to burrito [05:58] jordo: hmm. [05:58] jordo: I suppose that could work. But I really liked the mapping semantics api that you started with. [05:58] mytrile has joined the channel [05:59] jordo: It's always a cool separation of concerns. You do the tree walking, I'll tell you what to do at each node. [05:59] jameson has joined the channel [06:03] Xeon06_ has joined the channel [06:03] mekwall: burrito... mmmm [06:04] jordo: also it doesn't seem so easy to call burito recursively [06:04] SubStack: > burrito('foo(bar(baz()))', function (node) { if (node.name === 'call') node.wrap('zzz(%s)') }) [06:04] SubStack: 'zzz(foo(zzz(bar(zzz(baz())))));' [06:04] jordo: the node that I want to descend into has a different meaning depending on the context [06:04] jordo: assignment of object x = { } vs block { } [06:04] SubStack: something like that won't suffice? [06:05] jordo: I'm sure it would if I could figure out how to do it. [06:05] jordo: in {something: 4, other: { } }.Constructor() [06:05] jordo: I have var constructor = 'Constructor' [06:06] jordo: and var object = {something: 4, other: { } } [06:06] peregrine81 has joined the channel [06:06] jordo: this doesn't work: [06:06] jordo: node.wrap(constructor + '(' + burrito(burrito.deparse(object), arguments.callee) + ')'); [06:06] meso_ has joined the channel [06:06] jordo: I think because burrito.deparse(object) now looks like a block [06:06] jordo: the context was lost [06:07] cjm has joined the channel [06:08] donald_cook has joined the channel [06:08] steffkes has joined the channel [06:08] pig_ has joined the channel [06:08] peregrine81: anyone a express expert? [06:10] blkcat: peregrine81: don't ask to ask, just ask :) [06:10] mraleph has joined the channel [06:10] peregrine81: whenever I use hurl.it or curl to send a PUT request with parameters to an app.put the req.body and or req.params is undefined. if I change put to post and post to it with the same parameters its fine [06:10] devaholic: ACTION slaps HelloWorld around a bit with a large trout [06:11] ditesh|cassini has joined the channel [06:11] chapel: peregrine81: #express for express related questions (if you aren't getting help here) [06:11] blkcat: ^ [06:11] chapel: tj has been asking people to go there I guess [06:11] peregrine81: chapel: thats why I came here :) [06:11] devaholic: peregrine81: you have to use method: put [06:11] devaholic: or it might be _method: 'put' [06:11] blkcat: peregrine81: are you using methodOverride? [06:11] peregrine81: devaholic: I am in hurl.it and curl when I have my app.put defined. [06:12] jordo: does that sound right Substack? [06:12] devaholic: i have no idea what hurl.it is [06:12] peregrine81: blkcat: no because I am using ajax to put, in this case curl [06:12] blkcat: peregrine81: hmm. [06:12] peregrine81: devaholic: curl as a website [06:12] luke` has joined the channel [06:13] SubStack: jordo: oftentimes you'll have to put extra syntax around objects to keep uglify from reducing them [06:13] devaholic: ok well you need to use post, not put, and put in method: 'put' [06:13] SubStack: like [%s][0] [06:13] jordo: hmm odd [06:14] peregrine81: devaholic: I cannot post to a method described as app.put... the point was to build a simple restful interface [06:14] devaholic: this is how express handle is [06:14] devaholic: one of your post params must be '_method' with the value of either put or delete [06:16] devaholic: express will see that and route to your app.put [06:16] sivy has joined the channel [06:17] elliottcable: drudge: does Rubbernet support ipfw configuration or anything like that? Can I kill/throttle back connections an app is making? [06:17] peregrine81: devaholic: I don't think you understand. I don't want to use forms.. or the special middlewhere. I should be able to use curl to PUT to an app.put. the documentation describes it as such... [06:17] andree has joined the channel [06:17] elliottcable: drudge: also, it’s 50$ on the MAS, not the introductory pricing listed on y’all’s website [06:17] devaholic: peregrine81: if you want to mock it somehow, thats up to you... [06:18] blkcat: peregrine81: you might want to hit up #express and find tj, sounds like it could be a bug [06:18] peregrine81: blkcat: all crickets over there :S [06:19] devaholic: >.> [06:19] peregrine81: devaholic: I'm not mocking it. put is a standard HTTP verb and I should be able to PUT to it. [06:19] devaholic: i need a beer [06:19] jordo: no luck there. [06:19] blkcat: devaholic: the methodOverride hack is for clients that don't support the full http vocabulary natively [06:19] blkcat: most (all?) web browsers, for instance [06:19] leek2 has joined the channel [06:20] blkcat: with something like curl you shouldn't need to use it, hence the problem :) [06:20] jrgp has joined the channel [06:21] AvianFlu_ has joined the channel [06:22] leek-_- has joined the channel [06:24] Esteb has joined the channel [06:24] jordo: Substack I believe that it inserts semicolons automatically [06:24] jordo: which can f up sub invocations [06:25] NetRoY has joined the channel [06:27] sivy has joined the channel [06:27] EyePulp has joined the channel [06:27] darshanshankar has joined the channel [06:28] no-gooder has joined the channel [06:31] jordo: Substack it looks like top level renderings get semicolons inserted automatically [06:31] peregrine81: must be a curl problem [06:31] jordo: We could just do without that (if you tell me where to hack it in) [06:31] jordo: then it should work [06:31] peregrine81: because this works FINE with the ajax type: put [06:31] jordo: otherwise it's not really a viable option [06:31] devaholic: >_> [06:35] chjj: SubStack: are you going to argue in favor of AMD? [06:35] no-gooder has joined the channel [06:35] chjj: http://groups.google.com/group/nodejs-dev/browse_thread/thread/c084c613c4cb9363# [06:35] chjj: ! [06:36] no-gooder: chjj, what feature? [06:37] chjj: amd, asynchronous module loading [06:37] chjj: or [06:37] chjj: definition* [06:37] chjj: i mean [06:37] chjj: the whole define() thing [06:38] chjj: im comfortable with it being removed, node is not the browser, which is a good thing ;) [06:38] fille has joined the channel [06:38] fille: helloa [06:38] SubStack: chjj: hah no [06:39] SubStack: jordo: you can do '{ %s }' sometimes to get around that [06:39] SubStack: jordo: or else [%s][0] [06:40] chjj: SubStack: nice [06:40] akshatj has joined the channel [06:40] SubStack: chjj: I think browser code should look more like node, not the other way around [06:40] chjj: exactly!! [06:40] inimino has joined the channel [06:40] chjj: the browser is the one with the problems ;) [06:41] `3rdEden has joined the channel [06:42] jordo: can't SubStack, because i'm concatenating the *result* of a burrito call [06:42] jordo: which already has the ; [06:42] jordo: and there's no way to make that burrito call work with just a plain %s [06:43] jordo: It seems like if burrito allowed updating as traversing, it's a 'complete' parsing library, but without that there are some problems it can't solve [06:43] jordo: (just my intuition at this point) [06:44] jordo: do you have a fix for the update as traversing bug? [06:44] jordo: or a suggestion for me to try? [06:44] ivanfi has joined the channel [06:45] ParadoxQuine has joined the channel [06:46] dgathright has joined the channel [06:47] iFire has joined the channel [06:48] tantek has joined the channel [06:48] groom has joined the channel [06:49] jbpros has joined the channel [06:50] jbpros has joined the channel [06:52] herbySk has joined the channel [06:55] AvianFlu has joined the channel [06:56] sonnym has joined the channel [06:57] saurabhverma has joined the channel [06:57] mytrile has joined the channel [06:59] btipling has joined the channel [07:03] amerine has joined the channel [07:04] slifty has joined the channel [07:05] tdegrunt has joined the channel [07:05] emattias has joined the channel [07:06] CrabDude has left the channel [07:06] Jippi has joined the channel [07:07] kmox83 has joined the channel [07:09] Stythys has joined the channel [07:10] djcoin has joined the channel [07:10] mikeal has joined the channel [07:12] vikstrous has joined the channel [07:12] seivan has joined the channel [07:13] adrianmg has joined the channel [07:13] Nexxy has joined the channel [07:13] __tosh has joined the channel [07:14] fille: so who will do the soap implementation ? [07:14] fille: ;D [07:17] jasonHulme has left the channel [07:19] jetienne has joined the channel [07:20] jetienne: mscdex: you are seriously writing the html and the json twice ? :) [07:20] is_null has joined the channel [07:20] jetienne: mscdex: just got your notes [07:20] deepredsky has joined the channel [07:20] seivan_ has joined the channel [07:20] is_null: hi all, what project skeleton do you recommend ? [07:23] mytrile1 has joined the channel [07:24] caiges has joined the channel [07:25] camel_: ok i installed node js finally , now where do i write my code , can some one point me to some instruction wiki? [07:25] dexter_e has joined the channel [07:25] jesusabdullah: camel_: You write it in a text file, then run it like, "node server.js" for example [07:26] jesusabdullah: camel_: You may be able to find some resources from the node.js wiki, at https://github.com/joyent/node/wiki I believe [07:26] camel_: ah i see [07:27] dexter_e: Is it necessary to use 2 different templating schemes if you would like to include a bunch of templates for in-Browser use into the html file? [07:28] jetienne: dexter_e: no, many template engine work on both [07:28] dexter_e: right I'm using EJS on the server, but it won't ignore my templates being sent to browser [07:29] ivan has joined the channel [07:29] dexter_e: I use <%- values %> but if I want to include a bunch of templates in script tags for in-browser use , the render method throws errors on the templates. [07:30] seivan has joined the channel [07:30] jborst has joined the channel [07:31] dexter_e: I was under the impression that templates for in-browser rendering should be included in tags from html.\ [11:49] TheJH: zokko, no script tags. just the code. [11:49] `3rdEden: ThomK and that one leaks? [11:49] zokko: TheJH: ah, k [11:49] whitman_ has joined the channel [11:49] zokko: but still, it's not working.. [11:49] zokko: it's simple google.analytics code [11:50] zokko: http://fpaste.org/ZbzM/ [11:51] zokko: and plikjs.js is: [11:51] zokko: http://fpaste.org/yPBR/ [11:51] sfoster: zokko: what do you expect to happen? node.js is not a browser environent, it doesn't give you a document object [11:51] sfoster: do you want node.js to serve up that page? that code is written for a browser, not a server to interpret [11:52] anubhaw: guys I am very new to node .. http://pastebin.com/2kaX3Afk this code does hit the intended endpoint but no DATA event triggered . any help would be appreciated [11:52] zokko: sfoster: i dont want any document object, i just want to launch this google code [11:52] chjj: oo, requiring json files in core, sexy [11:52] R4md4c has joined the channel [11:52] zokko: sfoster: any suggestions? [11:52] zokko: i've tried even links/links2/elinks [11:52] FireFly|n900: zokko, it seems the google code requires the document object [11:52] FireFly|n900: (e.g. DOM) [11:52] zokko: FireFly|n900: is there any way to make it right? [11:52] sfoster: zokko: if you look at the ga.js tha google returns, IIRC, that too needs a DOM. [11:53] bnoordhuis has joined the channel [11:53] zokko: sfoster: what is it? i'm new to this [11:53] FireFly|n900: Well, you *could* have node impersonate a browser environment [11:53] sfoster: What is a DOM? I think you need to read around a little and come back to this problem [11:53] FireFly|n900: but a better question is, why do you want to run google analytics on node? [11:54] zokko: cause someone told me that i can do it, FireFly|n900 [11:54] sfoster: Right? Do you want to log when your server starts? Or when visitors hit some page you create? [11:54] zokko: i need to launch it somehow [11:54] zokko: sfoster: i just need to have an ability to launch it [11:54] pNstK has joined the channel [11:54] FireFly|n900: zokko, perhaps you should check out some node.js tutorial [11:54] TheJH: zokko, what do you need it for? there's probably a better way [11:55] `3rdEden: i'm reading this and i'm like WTF?? [11:55] TheJH: `3rdEden, :D [11:55] jresig has joined the channel [11:55] `3rdEden: Why on earth would you want to send a google analytics request from node? [11:55] TheJH: