[00:00] nuck: lz: The problem is websockets
[00:00] freewil: i think pg = postgres
[00:00] nuck: There appears to be a glitch in Safari Mobile which breaks websockets
[00:00] nuck: Well,
[00:00] nuck: WebSockets breaks it
[00:00] lz: nuck: I read that on stackoverflow too. You have xp with redis working over cell?
[00:01] rabidsnail: pg is postgres, yeah
[00:01] kuebk^ has joined the channel
[00:01] skm has joined the channel
[00:01] jj0hns0n has joined the channel
[00:01] kuebk^: is there any changelog for 0.4.12?
[00:01] rabidsnail: does cluster somehow get node to create the epoll set after forking?
[00:02] rabidsnail: under normal circumstances epoll sets are shared with subprocesses after a fork
[00:02] Fuu has joined the channel
[00:03] Frippe has joined the channel
[00:06] amigojapan has joined the channel
[00:07] theCole_ has joined the channel
[00:08] b52: how can i really log a object so that i dont get [object Object] but some useful information?
[00:09] joshkehn: b52: What are you using?
[00:09] b52: nodejs + mongoose
[00:09] joshkehn: I mean are you using a log lib or straight console.log?
[00:10] b52: console.log
[00:10] tjholowaychuk: you didn't say you dont need that!
[00:10] joshkehn: tjholowaychuk: ahha
[00:10] tjholowaychuk: josh is broken!
[00:10] joshkehn: I don't know what he's doing. I assume he knows what he needs.
[00:10] joshkehn: b52: You can say console.log('The object is', obj);
[00:11] joshkehn: Or you can call JSON.stringify() or I think sys.inspect
[00:11] lz: You can use JSON.stringify() if it's not a cyclical object
[00:11] b52: why does my mongoose .findOne({email: 'hansll'} ... returns an object with email: 'E-Mail' ?!
[00:12] joshkehn: b52: Ask tjholowaychuk
[00:12] tjholowaychuk: ACTION doesn't work on mongoose
[00:12] joshkehn: ACTION wonders who works on mongoose
[00:12] lz: b52: you might be setting it wrong, check where you're setting the email value
[00:12] b52: ?
[00:13] joshkehn: tjholowaychuk: Sorry, I got confused.
[00:13] JakeyChan has joined the channel
[00:14] b52: http://paste.pocoo.org/show/478835/
[00:14] replore has joined the channel
[00:14] replore_ has joined the channel
[00:15] lz: b52: you're setting email to "E-Mail" up top
[00:15] b52: ?
[00:15] b52: its my data set
[00:15] b52: but i want to lookup an entry with a specific email
[00:16] pgherveou has joined the channel
[00:16] abjorn has joined the channel
[00:17] devongovett has joined the channel
[00:17] MarkMenard has joined the channel
[00:17] mkrecny has left the channel
[00:17] b52: i mean why does it find an entry with email = "E-Mail" although i state that the entry should have email = hansll
[00:19] luismreis has joined the channel
[00:20] lz: b52: good question :)
[00:21] kmiyashiro has joined the channel
[00:22] b52: i know ;)
[00:23] skm has joined the channel
[00:24] normanrichards has joined the channel
[00:24] lz: did you try {'email': 'hanslll'}
[00:25] b52: yes, doesnt work either
[00:25] slifty has joined the channel
[00:29] nibblebot has joined the channel
[00:29] JaKWaC has joined the channel
[00:32] davidbanham has joined the channel
[00:32] ryan0x2_ has joined the channel
[00:35] shedinja has joined the channel
[00:35] zmbmartin has joined the channel
[00:36] Astro has joined the channel
[00:37] lukegb has joined the channel
[00:40] b52: none an idea?
[00:40] elliottcable: Does `console.log()` not support Unicode or something?
[00:40] elliottcable: v8> console.log("http://\uD83D\uDC7E.tk")
[00:40] v8bot_: elliottcable: CONSOLE: ["http://í ½í±¾.tk"], OUTPUT: undefined
[00:40] elliottcable: well, that bot obviously doesn’t
[00:40] elliottcable: I can’t get oftn-bot in here, is there already a node-bot in here?
[00:40] joshkehn: b52: None here.
[00:42] lz: b52: your mongodb is haunted
[00:42] AvianFlu: you might have to call a priest
[00:42] jakehow has joined the channel
[00:43] b52: funny h3h3
[00:43] markwubben has joined the channel
[00:45] lz: v8> var a = "http://\uD83D\uDC7E.tk"; console.log("%s",a)
[00:45] v8bot_: lz: CONSOLE: ["%s", "http://í ½í±¾.tk"], OUTPUT: undefined
[00:45] shirro has joined the channel
[00:45] lz: huh.
[00:46] murvin has joined the channel
[00:46] skiz: v8> console.log(new Buffer("http://\uD83D\uDC7E.tk").toString('base64'));
[00:46] v8bot_: skiz: ReferenceError: Buffer is not defined
[00:46] murvin: have anyone tried node.js on Facebook apps?
[00:46] bronson: Can I npm test my module before installing it?
[00:47] skiz: murvin: works fine, you can also easily use the js sdk and access the users cookies on the backend
[00:47] isaacs: bronson: sure.
[00:47] murvin: cool
[00:47] isaacs: bronson: npm install sax --npat
[00:47] losing has joined the channel
[00:47] lz: ah
[00:47] bronson: isaacs, oh good. Then I have a problem with my package.js.
[00:47] isaacs: bronson: or, locally, `npm test`
[00:47] isaacs: bronson: list a test command
[00:47] isaacs: bronson: help json
[00:47] lz: javascript can't handle utf numbers bigger than 0xfff
[00:47] neoesque has joined the channel
[00:48] murvin: i m going to make my 4th node.js project soon but on facebook.. so gotta know what I need to do. i did php on facebook though.
[00:48] lz: http://stackoverflow.com/questions/6985851/how-to-render-32bit-unicode-characters-in-google-v8-and-nodejs
[00:48] murvin: nightmare
[00:48] lz: er correction
[00:48] bronson: From my package.json: , "scripts" : { "test" : "node test/test-valid.js" }
[00:48] lz: you need to split it up
[00:48] bronson: Result: Cannot find module 'valid'
[00:49] bronson: tho I have: , "directories" : { "lib" : "./lib" } and ./lib/valid.js exists
[00:50] Aikar: isaacs: im having trouble running my code under node 0.5.7 where it works on 0.4.12... its throwing a strict error but i havent defined use strict... has vm.runInThisContext changed in a way that if the code it runs uses 'use strict' it could propogate up to global?
[00:50] isaacs: Aikar: not that i'm aware of.
[00:50] davidban_ has joined the channel
[00:50] isaacs: Aikar: can you create an isolated example and psot to the mailing list?
[00:50] Aikar: any idea why im getting it then? i searched node source and couldnt figure it out
[00:50] isaacs: that sounds weird.
[00:50] isaacs: yeah, we don't add use strict.
[00:50] isaacs: create a minimal test, and share it.
[00:50] gregpascale has joined the channel
[00:51] Aikar: ok ill try to recreate it in a small case
[00:51] isaacs: kewl
[00:51] isaacs: would be fun to reproduce.
[00:51] matjaz has joined the channel
[00:52] fizx has joined the channel
[00:53] Aikar: ok its def something in combination with Traceur, just reproduced it
[00:53] schwab has joined the channel
[00:53] CarterL has joined the channel
[00:53] Aikar: but it works fine on 0.4.x
[00:55] Aikar: isaacs: https://gist.github.com/1228039#comments
[00:55] marcello3d has joined the channel
[00:55] isaacs: Aikar: sounds ike a traceur bug
[00:55] Aikar: isaacs: it doesnt affect 0.4.x
[00:56] Aikar: did v8 change how use strict was handled?
[00:56] k1ttty has joined the channel
[00:56] isaacs: Aikar: not that i'm aware of
[00:56] tylerstalder has joined the channel
[00:56] isaacs: but if you can't repro it without traceur, then something weird is up
[00:56] isaacs: Aikar: can you compile class.js and then reproduce the issue with just javascript files?
[00:56] abjorn has joined the channel
[00:57] Aikar: they require a runtime js for classes
[00:57] hdon- has joined the channel
[00:57] neoesque has joined the channel
[00:57] nerdy_ has joined the channel
[00:58] b52: http://paste.pocoo.org/show/478880/ anyone?
[00:59] Aikar: traceur.define('runtime', function() { 'use strict';
[00:59] ryan1 has joined the channel
[00:59] Aikar: whats diff between ' and "?
[01:00] Wizek has joined the channel
[01:00] zivester_ has joined the channel
[01:00] b52: none
[01:02] bartt1 has joined the channel
[01:02] hacksparrow has joined the channel
[01:02] bronson: In my npm package, should my tests include the module with require('../lib/module')?
[01:03] isaacs: bronson: yeah, that's bes.
[01:03] isaacs: *best
[01:03] bronson: Seems like require('module') should be enough.
[01:03] bronson: Ah.
[01:05] bronson: OK, that's easy enough. But how should my module include another module in the package?
[01:05] bronson: in test/valid-test.js: require('../lib/valid') in lib/valid.js: require('valid-engine')
[01:06] bronson: So, of course, 'npm test' prints Error: Cannot find module 'valid-engine'
[01:06] isaacs: bronson: npm install valid-engine
[01:06] bronson: isaacs, so I DO need to install before running tests. :)
[01:06] isaacs: bronson: or, better yet, add it as a devDependency, and run `npm install`
[01:06] isaacs: bronson: oh, yeah
[01:06] isaacs: you need to install local dependencies, of course.
[01:06] isaacs: otherwise how could you load them?
[01:06] _jhs has joined the channel
[01:07] Aikar: function strictGlobalEval(code) {
[01:07] Aikar: return ('global', eval)('"use strict";' + code);
[01:07] Aikar: }
[01:07] Aikar: i bet that has something to do with it
[01:07] Aikar: but why does it only affect .5.x
[01:07] isaacs: Aikar: well, we do have a new version of v8
[01:07] isaacs: that's a weird construct, though
[01:07] Aikar: thats googles code... lol
[01:07] Aikar: i still dont fully understand that syntax
[01:08] skm has joined the channel
[01:08] socketio\test\89 has joined the channel
[01:08] Aikar: dont we have a resident v8 guy in here
[01:09] bronson: isaacs, "scripts" : { "test" : "NODE_PATH=lib node test/test-valid.js" }
[01:09] bronson: Think that's less hackish?
[01:09] isaacs: bronson: why the NODE_PATH?
[01:09] bronson: Makes the modules in lib available so I can test before installing.
[01:09] isaacs: bronson: you realize that'll make test-valid.js require("foo") --> require(test/lib/foo.js)?
[01:10] isaacs: bronson: why not just do your require()s with ../lib/foo?
[01:10] TooTallNate: bronson: why not "require('../lib/foo')"?
[01:10] isaacs: bronson: the advantage of putting the relative paths in the test files is that you can also run them one at a time.
[01:10] DennisRasmussen has joined the channel
[01:11] artnez has joined the channel
[01:11] mike5w3c has joined the channel
[01:11] bronson: isaacs, TooTallNate: I do have require('../lib/valid') in my tests. But I can't do that for the modules in ./lib.
[01:11] TooTallNate: bronson: just do require('./foo')
[01:12] bronson: I need lib/valid to require lib/valid-engine
[01:12] TooTallNate: require('./valid-engine')
[01:12] bronson: Hm, good point.
[01:12] Aikar: if you want lib/valid-engine, then request lib/valid-engine and not lib/valid
[01:12] bronson: Seems weird but I can't think of a downside. :)
[01:12] TooTallNate: there's no downside ;)
[01:12] Aikar: name your files in a non weird manner then :P
[01:12] bronson: Aikar, lib/valid requires lib/valid-engine. The test doesn't know that.
[01:13] yept has joined the channel
[01:13] bronson: True, I'm not happy with this naming.
[01:13] TooTallNate: bronson: i've never had to mess with NODE_PATH. whenever you're doing that, there's probably a better way
[01:13] Paul__ has joined the channel
[01:14] dominictarr has joined the channel
[01:14] Aikar: i use it one way >_> to hack in global modules for my test runner
[01:14] bronson: I have a module that tells how to do validations, and a module that defines all the common validations people would want to use.
[01:14] bronson: lib/valid-engine and lib/valid. If anyone has suggestions on how to improve that, I'm all ears. :)
[01:15] Aikar: my test runner does require('vows/bin/vows') after injecting all the test names into the argv and setting up other defaults, but due to npms installation path that no longer worked in 0.4.x so i had to hack it in with path
[01:15] dominictarr: bronson: link?
[01:15] Aikar: rather just npm install vows -g instead of per project...
[01:15] bronson: dominictarr, not ready for consumption yet... README is rather out of date. But: https://github.com/bronson/valid
[01:15] TooTallNate: bronson: there's nothing wrong with that, separation of logic into separate modules is the idea
[01:16] c4milo has joined the channel
[01:16] isaacs: Aikar: ok
[01:16] bronson: TooTallNate, right on. Things seem to work, thanks to you & isaacs.
[01:16] Aikar: isaacs: ok what? lol
[01:17] bronson: isaacs++, TooTallNate++
[01:17] davidbanham has joined the channel
[01:17] isaacs: bronson: i think your problem with this NODE_PATH thing is being afraid of dots instead of being afraid of magic.
[01:17] isaacs: relative paths. turns out they're super awesome.
[01:18] bronson: haha. my problem is that seeing dots in production files sets of my weird alarm.
[01:18] isaacs: new people can look at your files and know exactly what's going on. then those new people do your job for you.
[01:18] isaacs: i'm not joking.
[01:18] bronson: Just a prejudice I'll have to get over.
[01:18] dominictarr: blonson: a markdown trick I realized lately is that a double space at the end of the line forces a new line, which can make it much more readable
[01:18] isaacs: they'll fix bugs for you.
[01:18] Aikar: relative is good mmkay
[01:18] bronson: dominictarr, markdown is so weird. thanks, I'll get to the readme later tonight.
[01:18] Aikar: i hate relying on hard coded path configs
[01:19] bronson: First I'll get arrays and JSON validating.
[01:19] Aikar: make yo shit work relative and put it wherever
[01:19] isaacs: dominictarr, bronson (blonson?): also, if you indent your code blocks, then they'll be all codey
[01:19] bronson: Aikar, right! that's my prejudice.
[01:19] dominictarr: also ``` js \n [code] \n ```
[01:19] Aikar: BASEPATH=__dirname; in an init function in proj root
[01:19] Aikar: bam a global that references project dir
[01:20] dominictarr: then you get js syntax hilighting
[01:20] slifty has joined the channel
[01:20] dominictarr: also, replace `js` with `bash` or whatever...
[01:21] isaacs: see?!?
[01:21] isaacs: look at that!!
[01:21] isaacs: BAM!! pull req'd!
[01:21] neme has joined the channel
[01:21] jldbasa has joined the channel
[01:22] Aikar: ... why is my music buffering with a 30mbit connection
[01:22] tbranyen: because its more comcastic that way
[01:22] Aikar: no lamecast for me
[01:23] amtal has joined the channel
[01:23] Aikar: hmm
[01:23] Aikar: some AWN python module is pegging cpu
[01:23] Aikar: oh...
[01:23] Aikar: Media Control ><
[01:24] Aikar: too bad i cant killall python
[01:24] enhydra has joined the channel
[01:24] enhydra has joined the channel
[01:25] Aikar: why hasnt htop officially replaced top
[01:26] abraxas has joined the channel
[01:26] nibblebot has joined the channel
[01:26] bronson: isaacs, Not ready for public consumption!! But thanks. :)
[01:27] skm has joined the channel
[01:27] bronson: That's pretty awesome to get a pull request before it even works.
[01:27] luxigo: isaacs: is it possible to use binary modules on windows yet ?.. TODO.win32 says "Extensions should be DLL on windows" ... maybe I need to compile a static library instead ?..
[01:27] isaacs: luxigo: not sure if it's possible yet.
[01:28] luxigo: isaacs: if it's possible it's undocumented :-)
[01:28] cnu has joined the channel
[01:29] aho: for now, i'd be happy if i could create directories on windows :>
[01:29] luxigo: isaacs: i'll use pipes or cygwin in the meanwhile..
[01:29] aho: w/o that exception, that is
[01:29] luxigo: damn
[01:30] MarkMenard has joined the channel
[01:31] luxigo: tooks me hours to compile it on this thing that shall remain unnamed and unused..
[01:31] luxigo: :-)
[01:32] WRAz has joined the channel
[01:34] cjheath_ has joined the channel
[01:40] shanebo has joined the channel
[01:41] cjm has joined the channel
[01:42] saikat has joined the channel
[01:45] jldbasa has joined the channel
[01:46] fizx has joined the channel
[01:46] Garo_ has joined the channel
[01:48] gxdssoft has joined the channel
[01:48] lepht has joined the channel
[01:52] softdrink has joined the channel
[01:56] EyePulp has joined the channel
[01:58] JakeyChan has joined the channel
[01:59] torsd has joined the channel
[01:59] d0k has joined the channel
[02:01] smtlaissezfaire has joined the channel
[02:02] pNstK has joined the channel
[02:03] heavysixer has joined the channel
[02:04] schwab has joined the channel
[02:07] isaacs: when dealing with duplex streams, is there ever a case where you want to shut down the writable side, but still keep reading data?
[02:07] rednul has joined the channel
[02:07] isaacs: i grok the use case of and end/close/destroySoon kind of thing, but i'm wondering about whether or not we want to support somehow the opposite of that.
[02:08] isaacs: pquerna, ryah, mikeal ^ ?
[02:09] cgiffard has joined the channel
[02:09] mjr_: isaacs: you mean like if you were writing data into a gzipper and you reached the end, but you wan to keep reading the output?
[02:09] isaacs: nono
[02:09] isaacs: that's easy
[02:09] isaacs: just call end() but don't do any shutdown or anything
[02:09] isaacs: filtered streams are actually a lot simpler than duplexes
[02:10] karboh has joined the channel
[02:10] mjr_: oh, like if you call shutdown, instead of end, then what should happen in the duplex case
[02:10] AAA_awright has joined the channel
[02:10] isaacs: right
[02:10] mjr_: oh yeah, hmm
[02:10] mjr_: Seems like if you call shutdown, you are done.
[02:10] isaacs: or, perhaps, some way to tell the underlying thingie to stop reading right now, not once the write queue is flusehd
[02:11] isaacs: "I'm going to forcibly destroy the connection as soon as the write queue is flushed, so you should probably stop bothering to read from that fd"
[02:11] towski has joined the channel
[02:11] e6nian has joined the channel
[02:11] lepht has joined the channel
[02:11] isaacs: but i guess just .end() is the answer to my first question.
[02:12] isaacs: shuts down my side, but yours stays open
[02:12] mjr_: I think so
[02:12] isaacs: how "shut down" you know it to be is a bit of an implementation detail
[02:12] isaacs: and you can do sock.end(function() { sock.destroy() })
[02:12] isaacs: to flush and then forcibly destroy
[02:12] mjr_: That sounds nice
[02:13] isaacs: but it'd be nice if there was a way to stop *reading* before the write queue is flushed.
[02:13] isaacs: like, "a destroy is coming, so be efficient!"
[02:13] mjr_: yeah, burn through this input, because who cares
[02:13] isaacs: or even, stop burning through it
[02:14] socketio\test\90 has joined the channel
[02:14] isaacs: like, let the tcp buffer fill up, since it's dying soon anyway
[02:14] wookiehang0ver has joined the channel
[02:14] isaacs: stop spinning your while(bytes = read()) loop
[02:15] isaacs: anyway, i'm trying to use documentation to bring some order to our api design here, after a long conversation with ryah and rm about this: http://dl.dropbox.com/u/3685/node-streams.md
[02:15] kmiyashiro has joined the channel
[02:16] mjr_: I'll read that after I reboot
[02:16] jmoyers: yaaay
[02:19] cgiffard: I've got a (kinda dumb) query about the http library that wasn't clear after reading the documentation: How do I forcibly close an http client request? The destroy() and setTimeout methods don't seem to be present on the req.socket object, and there doesn't seem to be a client equivalent to req.connection. Perhaps I'm just approaching this the wrong way...?
[02:19] b52: http://paste.pocoo.org/show/478910/ srsly wtf?!
[02:22] imakewebthings has joined the channel
[02:23] z6Dabrata has joined the channel
[02:23] aho: where('email', 'E-Mail')
[02:23] aho: that dash there
[02:24] simoon has joined the channel
[02:24] freewil: cgiffard, i believe you can use request.end()
[02:25] b52: yeah i know
[02:25] b52: i just wanted to show, that the first one doesnt find a result, which is correct, and the latter does find a result, where obv. the email field isnt like i specified it
[02:26] b52: and i got no clue why
[02:26] cgiffard: freewil, doesn't that just execute the request once you've finished writing data (if any) to it?
[02:26] Emmanuel` has joined the channel
[02:26] cgiffard: I'm already using request.end() to actually fire it off.
[02:26] paulwe_ has joined the channel
[02:27] aho: second one got no where
[02:27] freewil: cgiffard, yes and node should close the connection itself unless you use the Keep-Alive header
[02:27] aho: i don't know the api... just pointing out that you've used it differently there
[02:27] cgiffard: freewill my problem is more that I'm doing a broad scan of a variety of servers - and some of them have appalling latency. I want to just kill the requests if they take too long
[02:28] cgiffard: node doesn't seem to be killing them very quickly
[02:28] bencc has joined the channel
[02:28] cgiffard: (they take a good 10 minutes to time out)
[02:28] navaru1 has left the channel
[02:29] cgiffard: I can't seem to get hold of the socket in order to terminate them myself...
[02:29] freewil: cgiffard, here i used a setTimeout to handle that: https://github.com/freewil/btc-ex-api/blob/master/lib/Exchange.js#L233
[02:29] cgiffard: freewil: thanks, checking it out now
[02:29] arg0s has joined the channel
[02:30] Vennril2 has joined the channel
[02:30] mynyml has joined the channel
[02:31] freewil: cgiffard, you'll see that i setup a setTimeout before the https.request() call and then in the res.on('end') callback i clear the timeout
[02:32] cgiffard: freewill, ah- so the .connection property isn't created until there's a response from the server?
[02:32] jyap: quick question. https://gist.github.com/1228170 --> in function(rs), success() is called. is that calling the variable in function test1(success)? is that a javascript design pattern?
[02:33] jetienne has joined the channel
[02:33] joshkehn: jyap: What do you mean?
[02:33] Wa: yes and yes jyap
[02:33] joshkehn: Oh. Yes
[02:34] freewil: cgiffard, im not sure the exact time that is created.. probably in your code, the first place you can see it is in the data callback
[02:34] jyap: in mean i see success() is called. i don't get how it works.
[02:34] jyap: Wa: where can i read up more about this design pattern? does it have a name?
[02:35] Wa: success is an identifier, it doesn't matter whether it was a variable name or function name. You can set a function reference to a variable and call the variable etc
[02:35] aho: it's just a callback
[02:35] Wa: in such a case, success s- yeah that ^
[02:36] jyap: you can call back to the same function? is that what it's doing?
[02:36] simoon has joined the channel
[02:36] Wa: test1(function(){console.log("complete")}); it'll execute that function
[02:37] aho: it's a different function (success), which is used to "call back" from within test1
[02:37] Wa: well that was an example but I guess they have that inline
[02:37] Wa: test1(function() { util.log("SUCCESS"); process.exit(0); }) see that part
[02:37] Wa: that function they made is passed as the success argument
[02:38] febits has joined the channel
[02:39] cgiffard: freewil, thanks! That seems to be working. :)
[02:39] matjaz has joined the channel
[02:39] freewil: cgiffard, excellent glad i could help
[02:39] marcello3d has joined the channel
[02:39] jyap: test1(function() { util.log("SUCCESS"); process.exit(0); }) --> that's an inline function?
[02:39] jslatts has joined the channel
[02:40] Wa: well it's called an anonymous function
[02:40] tbranyen: or just a function expression
[02:40] tbranyen: test1(function namedFunctionExpression() { })
[02:40] Wa: but yes, it's just creating that function and passing it as the first argument (ie. success)
[02:40] tbranyen: yes
[02:41] boehm has joined the channel
[02:41] jyap: oh, i see, it's passing in that function as the argument
[02:42] jyap: i'm less confused now. thanks all.
[02:45] Wa: arbitrarily; self promotion: https://github.com/logicplace/jslon was annoyed at how incredibly strict JSON.parse is so I made a super loose version
[02:45] skiz has joined the channel
[02:46] bombworm has joined the channel
[02:46] joshkehn: JSLON?
[02:46] vkareh has joined the channel
[02:46] joshkehn: I like it
[02:47] Wa: :]
[02:47] Wa: can look at the test.jslon for an example of the syntax. Sadly the gedit highlighter doesn't do line continued keynames properly yet :S
[02:48] Wa: of course the parser handles everything fine though
[02:48] metellus has joined the channel
[02:51] Dmitrijus has joined the channel
[02:52] olegp has joined the channel
[02:53] _sri has joined the channel
[02:53] eddict has joined the channel
[02:53] daleharvey: is there a standard if (fileExists(req.url)) { serveFile... thing for express?
[02:53] tjholowaychuk: daleharvey there's res.sendfile
[02:54] tjholowaychuk: you would probably want to do path.exists(path) first though if you want to do something else with that, or provide a callback
[02:55] andoriyu_ has joined the channel
[02:55] andoriyu_: stupid questions time!
[02:55] joshkehn: andoriyu_: Cool
[02:55] andoriyu_: how to write my own async function?
[02:55] joshkehn: process.nextTick
[02:55] joshkehn: or setTimeout / setInterval
[02:55] pizthewiz has joined the channel
[02:56] andoriyu_: that's it? What about eventEmitter ?
[02:56] joshkehn: function (callback) { process.nextTick(function () { /* do stuff */ callback(); }) }
[02:56] arg0s has joined the channel
[02:56] joshkehn: You can use EventEmitter to trigger events.
[02:56] andoriyu_: ok
[02:56] joshkehn: It's decoupled, not async.
[02:56] andoriyu_: thank you
[02:56] joshkehn: Np
[02:57] freewil: joshkehn, what do you mean by that
[02:57] freewil: its decoupled, not async?
[02:57] andoriyu_: II just needed to make sure that i'm on a right track
[02:57] daleharvey: tjholowaychuk: would that be added as "middleware" or some global hook? I obviously dont want to add a ifExistsSend to the start of every app.get(...
[02:57] joshkehn: freewil: I mean it's not asynchronous.
[02:58] tjholowaychuk: daleharvey oh, you just want a static file server? just add app.use(express.static('public'))
[02:58] joshkehn: I'm not sure how events are fired, that could be asynchronous.
[02:58] langworthy has joined the channel
[02:58] wereHamster has joined the channel
[02:58] freewil: why would one want to use EventEmitter instead of just using callbacks?
[02:59] joshkehn: freewil: ?
[02:59] daleharvey: tjholowaychuk: as well as with the ability to handle rest calls, yeh
[02:59] joshkehn: I don't follow.
[02:59] Twisol: freewil: EventEmitter lets multiple listeners observe rather than just one. Assuming I understand you properly.
[02:59] tjholowaychuk: daleharvey if it's ENOENT it will just fall through to the router (if you put static() above the router)
[02:59] tjholowaychuk: or place it below
[02:59] tjholowaychuk: and if no route matches it'll have a chance to stat() and response
[02:59] zorzar has joined the channel
[02:59] tjholowaychuk: respond(*
[02:59] daleharvey: tjholowaychuk: perfect, thanks
[03:00] louissmit has joined the channel
[03:00] freewil: Twisol, i think that answers it. It seems there are at least two patterns. You can call a function and pass a callback. Or you can register even handlers on some object that listen for events from EventEmitter
[03:00] sdwrage has joined the channel
[03:00] joshkehn: freewil: That sounds about right.
[03:01] Twisol: Emitted events are usually for things that happen repeatedly
[03:01] joshkehn: I don't think I explained that clearly.
[03:01] Newky has joined the channel
[03:01] Twisol: passing a callback usually (but not always) happens when it'll only be called back once
[03:02] freewil: that makes sense
[03:03] Kai` has joined the channel
[03:03] tbranyen: yeah i mean in the case of watchFile you get the callback being called multiple times
[03:03] tbranyen: which is kinda weird
[03:04] freewil: i think EventEmitter is more suited for optional event handlers
[03:04] Twisol: arguably less weird than having an object just for emitting those events
[03:04] freewil: so you dont have to pass a function like 10 callback functions
[03:04] Twisol: Yeah, that's a good way to look at it. Events are like "Hey, if you want to know about this, here it is", and callbacks are like "Here's what you asked for."
[03:04] freewil: ... for 10 diff events that may happen within the function
[03:05] freewil: Twisol, well put
[03:05] Twisol: :D
[03:05] jetienne: eventemitter allow to remove a listener too
[03:05] febits has joined the channel
[03:05] ryanseddon has joined the channel
[03:06] footyfish has joined the channel
[03:07] freewil: isn't EventEmitter being rewritten or something?
[03:07] freewil: EventEmitter2?
[03:07] tjholowaychuk: no
[03:07] tjholowaychuk: ee2 just extends it with a few things
[03:07] joshkehn: hij1nx worked on that.
[03:07] joshkehn: It isn't a rewrite as I understand.
[03:07] andoriyu_: so nextTick is inside every async function or what? O_o
[03:08] freewil: ah ok
[03:08] joshkehn: andoriyu_: That or underlying libevent code. AFAIK
[03:09] shakes has joined the channel
[03:09] wadey has joined the channel
[03:10] boltR has joined the channel
[03:10] andoriyu_: i need to read something about how node.js works.
[03:10] freewil: andoriyu_, did you watch the intro vid?
[03:10] Me1000 has joined the channel
[03:10] tbranyen: do you believe in magic?
[03:11] andoriyu_: tbranyen, I belive in unicorns
[03:11] andoriyu_: freewil, I don't think so...
[03:11] jobin77 has joined the channel
[03:11] freewil: andoriyu_, do it: http://www.youtube.com/watch?v=jo_B4LTHi3I
[03:12] freewil: an hour well spent
[03:12] mandric has joined the channel
[03:12] andoriyu_: ohh yea, I started that video, and then safari crashed.
[03:13] balaa has joined the channel
[03:14] joshkehn: andoriyu_: What are you trying to understand?
[03:14] andoriyu_: event loop
[03:15] meso has joined the channel
[03:16] Twisol: It's just an infinite loop that constantly gets the next queued event and executes the callback.
[03:16] joshkehn: while (true) { var staged = events.pop(); staged.forEach(function (item) { item(); }) }
[03:16] joshkehn: Something like that I think. Roughly.
[03:16] Twisol: (nb: not really infinite, there's a break condition, but it's not critical to the idea)
[03:16] joshkehn: The wiki page is pretty good too. http://en.wikipedia.org/wiki/Event_loop
[03:17] andoriyu_: That is easy, but how can i put my things in q
[03:17] joshkehn: process.nextTick(callback);
[03:17] Twisol: andoriyu_: process.nextTick(your_callback_here)
[03:17] andoriyu_: nextTick will force event loop to execute my function next
[03:17] joshkehn: On the next tick, eys
[03:17] joshkehn: yes*
[03:17] Twisol: andoriyu_: Maybe that means there aren't any events in the list with higher priority
[03:18] andoriyu_: but if all my function will trying to be next what the point of queu
[03:18] joshkehn: They aren't all trying to be next.
[03:18] Twisol: andoriyu_: The idea is to defer functions until something has happened that is "interesting".
[03:18] joshkehn: They are staged to be executed.
[03:18] Twisol: Which one comes next isn't relevant in that context
[03:19] Twisol: Once something "interesting" has happened, an event is dropped in the queue
[03:19] Twisol: process.nextTick() just skips waiting for something interesting, if you will
[03:19] infynyxx has joined the channel
[03:19] sdwrage has left the channel
[03:19] joshthecoder has joined the channel
[03:20] andoriyu_: so it's okey to put my code (validation for example) in nextTick() ?
[03:20] joshkehn: I don't see why not.
[03:20] tjholowaychuk: andoriyu_ that wont make it faster or anything
[03:20] Twisol: You just have to realize that another event might be handled before your nextTick code is run, so be careful if you depend on global state
[03:21] andoriyu_: I see
[03:21] andoriyu_: tjholowaychuk, but it will make my code cleaner
[03:22] shirro has joined the channel
[03:22] shirro has joined the channel
[03:22] infynyxx has joined the channel
[03:22] andoriyu_: Can I create my own event loop?
[03:23] tjholowaychuk: google libev
[03:23] Twisol: andoriyu_: in node.js?
[03:23] andoriyu_: For example I have to subscribe to message bus and fire some function
[03:23] JaKWaC has joined the channel
[03:23] joshkehn: Why not use EE?
[03:24] guillermo has joined the channel
[03:24] rauchg has joined the channel
[03:25] Twelve-60 has joined the channel
[03:25] andoriyu_: joshkehn, EE is for firing, but what about subscribtion?
[03:25] joshkehn: You mean
[03:25] joshkehn: obj.on('event') ?
[03:27] andoriyu_: For example I have another node/ruby server with Faye. Does putting Faye client into node,js server fits design?
[03:27] joshkehn: I'm not sure.
[03:27] joshkehn: ACTION distracted by this stupid file upload widget
[03:27] WhyNo has joined the channel
[03:27] Twisol: andoriyu_: If the Faye client is based on the Node net library, which I -think- it is, then sure.
[03:27] superjudge has joined the channel
[03:28] Twisol: It'll wait on an external impulse (network activity) and let other things happen in Node, then when something interesting happens it drops an event in the queue so it gets handled at some point.
[03:28] Twisol: That's the theory anyways, I don't know much about Faye.
[03:28] WhyNo: Hey guys, I am getting cannot call method "1" of undefined breaking in net. Any ideas, here is the error: http://pastie.org/2561116
[03:28] andoriyu_: replace Faye with socket.io. fits?
[03:28] Twisol: Definitely fits, I'm using socket.io myself
[03:29] Twisol: The trick is that they're both based on network activity, and network activity is exposed by Node's net library
[03:29] dguttman has joined the channel
[03:29] liveink has joined the channel
[03:29] andoriyu_: ok
[03:30] blueadept: guys whats after node.js?
[03:31] Remoun has joined the channel
[03:31] joshkehn: blueadept: Hmmm?
[03:31] SubStack: breakfastscript
[03:31] blueadept: node.js is so old, what's the new stuff now?
[03:31] joshkehn: HAh
[03:31] sub_pop has joined the channel
[03:31] blueadept: SubStack: that could work
[03:31] JWarm has joined the channel
[03:32] blueadept: add milk. scale. profit.
[03:32] vidi has joined the channel
[03:32] JWarm: Hey guys, I just npm install express -g and tried running node app.js but I got this error: Cannot find module 'express'
[03:33] andoriyu_: I just use npm install inside project dir
[03:33] joshkehn: blueadept: Is it webscale?
[03:33] andoriyu_: It works
[03:33] SubStack: global installs are trouble
[03:33] JWarm: Okay
[03:33] JWarm: Cool
[03:33] JWarm: I'll do that
[03:33] JWarm: Tanks
[03:33] mrtazz has joined the channel
[03:33] JWarm: Thanks
[03:34] broofa has joined the channel
[03:34] JP has joined the channel
[03:35] blueadept: of course. nosql-in-memory-key-value-store support as well. websockets et al. real-time commerce for the social mobile web, with a focus on local. did i mention it has a group-deals API built-in
[03:36] andoriyu_: btw, which flow controll lib is better?
[03:37] blueadept: andoriyi_: async is cool, https://github.com/caolan/async
[03:37] JWarm: How do I run the express command if I install it in the project directory?
[03:37] tjholowaychuk: andoriyu_ the one that doesnt exist :D
[03:37] shanez_ has joined the channel
[03:37] tjholowaychuk: JWarm ./node_modules/.bin/express
[03:37] tjholowaychuk: though you should install that globally
[03:37] andoriyu_: tjholowaychuk, but some of them just better
[03:37] joshkehn: ./node_modules/express/bin/express
[03:37] tjholowaychuk: andoriyu_ they're all kinda useless IMO
[03:37] JWarm: I just installed globally but when I ran app.'s i got an error stating that express couldn't be found
[03:38] tjholowaychuk: JWarm that's because only the executable is accessible when globally installed
[03:38] tjholowaychuk: require() wont look there
[03:38] tjholowaychuk: (afaik, it's changed so many times)
[03:38] JWarm: ic
[03:40] andoriyu_: tjholowaychuk, I'm just too lazy to predefine all my functions so it will looks nice
[03:40] andoriyu_: JWarm, binaries -> global, dependencies -> inside project dir
[03:41] CarterL has joined the channel
[03:42] kurtzhong has joined the channel
[03:44] JWarm: Thanks andoriyu
[03:44] davidascher has joined the channel
[03:45] JWarm: I still don't know how to expose require to app.js though.
[03:46] andoriyu_: require('xxx')
[03:46] joshkehn: JWarm: It's a global, you don't need to expose it.
[03:47] jtsnow has joined the channel
[03:47] andoriyu_: it will look inside node_modules
[03:47] JWarm: But I'm still getting this error: Error: Cannot find module 'express'
[03:47] joshkehn: ls -la node_modules/
[03:47] joshkehn: Is there a folder called 'express' in that list?
[03:47] JWarm: Yeah
[03:48] joshkehn: Is 'app.js' in the folder next to node_modules?
[03:48] tjholowaychuk: what about $ npm ls ?
[03:48] JWarm: No, it's in a separate folder
[03:48] joshkehn: Put it alongside node_modules.
[03:49] JWarm: Progress I guess. I get this error: EADDRINUSE, Address already in use
[03:50] JWarm: I have an instance of node already running, but I haven't been able to kill it.
[03:50] joshkehn: What port did you tell it to listen on?
[03:50] JWarm: 3000
[03:50] JWarm: oh
[03:50] JWarm: let me hceck
[03:50] joshkehn: What os are you on?
[03:50] JWarm: ubuntu
[03:50] JWarm: port 3000
[03:50] JWarm: i have it set to that
[03:50] cronopio has joined the channel
[03:50] JWarm: I have another instance of node running, but I haven't been able to kill it
[03:51] joshkehn: You can do a ps | grep node to see if an existing node process is running.
[03:51] joshkehn: And then do a kill [pid]
[03:51] normanrichards has joined the channel
[03:51] tjholowaychuk: JWarm: killall -9 node
[03:51] joshkehn: tjholowaychuk: Is killall available on Ubuntu?
[03:51] tjholowaychuk: should be
[03:51] JWarm: its' not
[03:52] JWarm: on this one
[03:52] tjholowaychuk: you might need to do kill -s SIGKILL pid
[03:52] tjholowaychuk: that's lame
[03:52] joshkehn: My ubuntu server has it.
[03:52] joshkehn: Interesting.
[03:52] JWarm: i listed the jobs but nothing is showing up
[03:52] joshkehn: ps -A | grep node
[03:52] cronopio: Hi noders!
[03:52] JWarm: Found it
[03:52] JWarm: Hi!
[03:52] JWarm: thanks joshkehn
[03:53] joshkehn: JWarm: You can just run a kill −9 [pid]
[03:53] JWarm: Cool
[03:53] JWarm: killed it
[03:53] joshkehn: Muwuwhaha
[03:53] cronopio: Im trying to get JSON info from google. I just use this https://gist.github.com/1228286 and i get a error parsing from JSON.parse(), Its possible google dont response correct JSON???
[03:53] JWarm: AWESOME
[03:53] JWarm: thank you all for your help!!
[03:53] joshkehn: Np
[03:53] JWarm: :)
[03:54] joshkehn: cronopio: I dunno
[03:54] joshkehn: Looks like it is incorrect.
[03:54] JWarm has joined the channel
[03:54] cronopio: joshkehn: the google response?? are not correct for JSON.parse()???
[03:55] joshkehn: I don't think so.
[03:55] joshkehn: My JSONview plugin crashes on the paeg.
[03:55] joshkehn: page*
[03:55] joshkehn: I'm trying to curl it now.
[03:55] cronopio: joshkehn: :P
[03:55] cronopio: joshkehn: thanks for your help! :)
[03:55] joshkehn: {lhs: "1 U.S. dollar",rhs: "1Â 821.49362 Colombian pesos",error: "",icc: true}
[03:55] mikeal has joined the channel
[03:55] joshkehn: That is not valid JSON
[03:55] cronopio: jslatts: :(
[03:55] joshkehn: That's a valid JS object, but not JSON
[03:56] joshkehn: ACTION ponders
[03:56] cronopio: oh crap
[03:56] mikeal has joined the channel
[03:56] bnoordhuis has joined the channel
[03:57] cronopio: joshkehn: how to convert that string response to an JS object??
[03:57] joshkehn: cronopio: You got me
[03:57] joshkehn: I would say complain to Google.
[03:57] joshkehn: Not sure how much help that will give you though.
[03:57] _sh0x has joined the channel
[03:57] bronson: ACTION hates so much the difference between JS objects and JSON.
[03:57] bronson: Why not let us surround keys with '' or nothing? And allow comments?
[03:57] bronson: Owell.
[03:58] tbranyen: bronson: if you want that so bad, write .js files and eval
[03:58] cronopio: joshkehn: they should irc channel for support xD
[03:58] joshkehn: Lol
[03:58] tbranyen: #freenode?
[03:59] bronson: tbranyen, well, eval comes with one or two downsides
[03:59] cronopio: tbranyen: Google, I have a complaint to them
[03:59] joshkehn: cronopio: You could use JSLON
[03:59] tbranyen: bronson: sure do, but what you're asking isn't going to change
[04:00] joshkehn: https://github.com/logicplace/jslon
[04:00] tbranyen: at least not for another 10 years or so heh
[04:00] joshkehn: Basically loose json parsing.
[04:00] joshkehn: Might do the trick for you.
[04:00] JakeyChan: hi ?
[04:00] tbranyen: that seems kinda weird
[04:00] joshkehn: JakeyChan: HI
[04:00] joshkehn: ACTION mashes caps lock off
[04:01] stash1 has joined the channel
[04:02] bronson: tbranyen, no doubt. the JSON spec is frozen.
[04:02] bronson: Doesn't mean it's perfect.
[04:02] tbranyen: yeah, but you have alternatives
[04:02] tbranyen: use xml =)
[04:02] joshkehn: ACTION pukes
[04:02] bronson: DOH
[04:02] joshkehn: Did someone say XML?
[04:03] bronson: ACTION can live with JSON
[04:03] siculars has joined the channel
[04:03] joshkehn: Neither in jest nor joke shall XML be proffered as a solution.
[04:03] Skyec: don't reject reality just because its not utopia
[04:03] JakeyChan: code skill question :)
[04:03] joshkehn: JakeyChan: Easy or hard?
[04:03] JakeyChan: easy for you, hard for me :D
[04:04] arpunk has joined the channel
[04:04] JakeyChan: when use call route('path', callback); I store the path and callback into array, the path is the key, the value is a array that contains callback :)
[04:04] joshkehn: I'm good with that.
[04:04] orospakr has joined the channel
[04:05] OmidRaha has joined the channel
[04:05] joshkehn: With you so far
[04:05] JakeyChan: so, When request is come, I search the route that match it and then call the callback one by one ?
[04:05] andoriyu_ has joined the channel
[04:06] liveink_ has joined the channel
[04:06] joshkehn: I would stack them in a process.nextTick call
[04:06] JakeyChan: is it right ??
[04:06] jsanford has joined the channel
[04:06] JakeyChan: process.nextTick ? never use it .. :)
[04:06] JakeyChan: I just can do stupid code program :(
[04:07] JakeyChan: can you suggest good way to do it ?
[04:07] joshkehn: callbacks.forEach(function (func) { process.nextTick(function () {func.apply(request)})})
[04:07] joshkehn: It executes the functions asynchronously.
[04:08] JakeyChan: what's the benefits ?
[04:08] JakeyChan: ok
[04:08] jacobolus has joined the channel
[04:08] JakeyChan: good, it is node.js
[04:08] JakeyChan: aysn :D
[04:08] JakeyChan: thanks!
[04:08] joshkehn: Np
[04:09] JakeyChan: I read the connect module, also store the middleware into array, and call it; every callback contains next argument that reference next middleware
[04:09] JakeyChan: how to do like that ?
[04:09] joshkehn: Um.
[04:09] joshkehn: Sure?
[04:09] joshkehn: I don't use connect. :/
[04:09] dynacker has joined the channel
[04:09] tilgovi has joined the channel
[04:09] tilgovi has joined the channel
[04:10] ryanmcgrath has joined the channel
[04:13] JakeyChan: :D
[04:13] jhurliman has joined the channel
[04:13] JakeyChan: ok
[04:13] vlapan has joined the channel
[04:15] Spion_ has joined the channel
[04:16] arg0s has left the channel
[04:16] zeiris has joined the channel
[04:22] JakeyChan: hi, guys :)
[04:22] joshkehn: What's up?
[04:22] JakeyChan: what do you do with node.js ??
[04:22] JakeyChan: I need idea to understand what can I do with node.js
[04:22] joshkehn: Real time stuff. Evented stuff. Socket.io stuff.
[04:22] JakeyChan: now, I build web app with node.js
[04:22] JakeyChan: how about the web server backend ? or web server router ?
[04:22] joshkehn: API's. Multi-user stuff.
[04:23] joshkehn: Depends on what you're doing.
[04:23] joshkehn: You say web app.
[04:23] joshkehn: Can you clarify?
[04:23] JakeyChan: I can not image with node.js
[04:23] Skyec: i'm using node.js to provide a mock service for our front-end
[04:23] Skyec: with couchdb as a backend
[04:24] JakeyChan: Skyec: so can i see it ?
[04:24] JakeyChan: is it online ?
[04:24] Skyec: no. its designed to be hosted locally for each developer
[04:24] Skyec: it provides a lightweight means for them to test the front-end without loading up our backend
[04:24] Skyec: which unfortunately, is very heavy
[04:25] JakeyChan: sounds great
[04:25] cronopio: joshkehn: I test with that jslon and not work, return empty :(
[04:25] joshkehn: cronopio: Bitch at google.
[04:25] cronopio: joshkehn: yeah lol
[04:25] Twisol: node.js is an event-oriented programming platform, so you react to events instead of merely executing linearly. It's good things where a lot of time is spent waiting for things outside the program's control
[04:26] Wa: hm what's the matter cronopio ?
[04:26] joshkehn: Wa: Google is sending back invalid JSON
[04:26] Wa: oh
[04:26] Skyec: its great. We don't even need a webserver like Apache anymore, because nodejs just serves the content directly
[04:26] Skyec: and its very very very fast compared to how it was beforehand
[04:26] Wa: but I meant with the jslon part
[04:26] joshkehn: Wa: See http://www.google.com/ig/calculator?oe=UTF-8&q=1USD=?COP
[04:27] joshkehn: Skyec: Eh. I still like Apache for my sites.
[04:27] tjholowaychuk: joshkehn ew :p
[04:27] Twisol: I prefer nginx for static sites, heh
[04:27] Skyec: joshkehn: this isn't production. its purely for development only
[04:27] joshkehn: It's stable and fast enough for me.
[04:27] joshkehn: Key word: stable
[04:28] Twisol: Nothing wrong with apache :D
[04:28] joshkehn: And yes, I know there are lots of ways to make node very secure and crash-resistant.
[04:28] joshkehn: I'm also hosting a relic PHP slice that I'm trying to get rid of.
[04:28] Skyec: Apache was just an example. Our real life server was JBOSS
[04:28] joshkehn: So for now it stays.
[04:28] Wa: oh weird it does return an empty string
[04:28] joshkehn: Anything with BOSS in the title must be good.
[04:29] joshkehn: Wa: From JSLON? I didn't try it.
[04:29] joshkehn: Maybe it gave up.
[04:29] Wa: yeah
[04:29] cronopio: Wa: yeah, and JSON.parse() get error
[04:29] joshkehn: if (crazy) { return ''; }
[04:29] cronopio: both parsers crash with a Google response :S
[04:29] Wa: debugging, hold
[04:29] Wa: it SHOULD be able to parse that :/
[04:29] cronopio: Wa: thanks!
[04:30] CIA-54: libuv: 03Ben Noordhuis 07master * r6beeb5f 10/ (.mailmap AUTHORS): Update AUTHORS and .mailmap - http://git.io/FK_ktA
[04:31] Wa: lulz oops
[04:31] lz has joined the channel
[04:31] nforgerit has joined the channel
[04:33] Wa: sorry just a dopey error I didn't notice when I ran the test
[04:34] Wa: fix uploaded cronopio
[04:34] iFire has joined the channel
[04:35] cronopio: Wa: i will pull the changes, thanks!
[04:36] cronopio: Wa: oh man, thanks a lot. That fix the thing. Now i can parse that shit reponse :-)
[04:36] cronopio: Wa: THANKS!!!!!
[04:37] Wa: yup no problem :]
[04:40] anoop has joined the channel
[04:44] andoriyu_ has joined the channel
[04:46] towski has joined the channel
[04:47] saikat has joined the channel
[04:49] jaydee has joined the channel
[04:49] jaydee has left the channel
[04:50] jetienne_ has joined the channel
[04:50] yun has joined the channel
[04:50] dynacker has joined the channel
[04:50] ceej has joined the channel
[04:51] noodlehaus has joined the channel
[04:51] jetienne_ has joined the channel
[04:55] JWarm_ has joined the channel
[04:55] JWarm has joined the channel
[04:56] zeade has joined the channel
[04:57] unomi has joined the channel
[04:58] fangel has joined the channel
[05:00] neilk_ has joined the channel
[05:02] topaxi has joined the channel
[05:02] devongovett has joined the channel
[05:03] ricklarue has joined the channel
[05:04] saikat: is there a standard library people use these days for in-memory gzip compression?
[05:04] ricklarue: My C/C++ knowledge is weak, but trying to understand - why do you have to recompile C++-based node modules when you upgrade Node?
[05:04] saikat: i see a bunch, and last time I checked (admittedly about a year ago) things were pretty split/not all of them worked very well
[05:05] r04r has joined the channel
[05:06] SubStack: saikat: isaacs just wrote zlib that landed in core in 0.5.x
[05:06] saikat: oh awesome... 0.5.x is unstable currently right?
[05:06] SubStack: yep
[05:07] joshkehn: Unstable is a variable term. ;)
[05:07] davidascher has joined the channel
[05:07] joshkehn: Mongo 1.9 was unstable, I still had that running on a few prod servers.
[05:07] joshkehn: I only shy away from the unstable node versions because the npm maintainers tend to exclude them, which makes installing packages a bitch.
[05:08] simoon has joined the channel
[05:08] saikat: yeah unstable certainly varies from project to project
[05:08] saikat: i haven't done enough research to know how ok it is to use a 0.5.x in production
[05:08] joshkehn: I wouldn't only because of npm.
[05:09] boltR has joined the channel
[05:10] bnoordhuis: ricklarue: both the API and the ABI change regularly
[05:10] davidascher has joined the channel
[05:10] ricklarue: bnoordhuis: Ah, thank you! That gives me something to investigate. ^_^
[05:11] bnoordhuis: ricklarue: what's the issue you're running into?
[05:11] lz: oh
[05:11] ricklarue: bnoordhuis: I'm just curious... want to know how everything works.
[05:11] bnoordhuis: ah okay :)
[05:11] lz: quick question on npm.. is it possible to set up package.json so that modules automatically require the latest version in the repo?
[05:12] rurufufuss has joined the channel
[05:12] PastorBones has joined the channel
[05:13] ricklarue has left the channel
[05:14] PastorBones: I'm using Cradle V0.5.7 & CouchDB V1.0.1...whenever I try to db.save() I get the method_not_allowed error and alot of things are showing up as 'undefined'
[05:14] PastorBones: reason: 'Only GET,HEAD allowed'
[05:15] PastorBones: What am I doing wrong?
[05:15] thalll has joined the channel
[05:15] r04r has joined the channel
[05:16] lz: PastorBones: local couchdb instance?
[05:17] irclogger_com has joined the channel
[05:17] den512 has joined the channel
[05:17] PastorBones: hmmm, I console.log(db) immediately after I db.create() and name: 'undefined'..that's probably why...hold on
[05:18] RDove has joined the channel
[05:18] cpetzold has joined the channel
[05:19] Spion has joined the channel
[05:20] PastorBones: shouldn't db.name be the name of the database?
[05:21] lz: var db = c.database('starwars');
[05:21] lz: db.create();
[05:21] lz: from the docs
[05:21] lz: er, var c = new(cradle.Connection)
[05:21] konobi: does create take a callback function?
[05:22] PastorBones: yeah, that's what I have, but after db.create I console.log(db) and it says name: 'undefined'
[05:22] joshkehn has left the channel
[05:23] lz: yep
[05:23] lz: create takes a callback
[05:23] lz: doesn't specify on the docs for some reason
[05:23] konobi: well, that's that then
[05:25] PastorBones: yeah and the err on the callback is { error: 'method_not_allowed', reason: 'Only GET,HEAD allowed' }
[05:25] PastorBones: the same error I'm getting when trying to db.save()
[05:26] infynyxx has joined the channel
[05:26] jacter1 has joined the channel
[05:27] PastorBones: How do I fix this?
[05:27] kmiyashiro has joined the channel
[05:28] lz: sooo local couchdb instance?
[05:28] PastorBones: I have Apache CouchDB v1.0.1 running on 127.0.0.1 (Futon works), but I keep getting the method_not_allowed error
[05:28] mcantelon has joined the channel
[05:28] lz: can you create docs in futon?
[05:28] lz: /dbs
[05:29] cliffano has joined the channel
[05:29] PastorBones: yesh
[05:30] PastorBones: I have no restrictions in Futon
[05:31] den512 has left the channel
[05:32] lz: did you put your port number in front of your host (127.0.0.1:5984)
[05:33] lz: er, that is
[05:33] lz: specify the port in options
[05:33] PastorBones: var dbConn = exports.dbConn = new(cradle.Connection)('http://127.0.0.1', 5984);
[05:34] PastorBones: that ^ is what I have
[05:34] PastorBones: same port as in Futon
[05:34] shripad has joined the channel
[05:35] Emmanuel` has joined the channel
[05:35] PastorBones: yeah I've googled all over and couldn't find anything about this except an older version issue
[05:37] lz: try new(cradle.Connection)({host: 'http://127.0.0.1'})
[05:38] PastorBones: no difference
[05:38] PastorBones: I'm using Node v0.4.12 if that matters?
[05:39] Peniar has joined the channel
[05:39] lz: possibly
[05:40] lz: why the old version?
[05:40] cgiffard has joined the channel
[05:40] PastorBones: stable release
[05:40] shripad: PastorBones, what is the issue? sorry joined in late...
[05:41] JulioBarros has joined the channel
[05:41] PastorBones: shripad, using cradle & couchdb, but whenever I try to db.create() or db.save() I'm getting an err in the callback that says 'method_not_allowed'
[05:41] shripad: stack trace?
[05:42] PastorBones: :/ how do I do that?
[05:42] mcantelon: Anyone know the substantial difference between felixge's node-mysql and sidorares's nodejs-mysql-native? They seem of similar age, and are both native JS, but felixge's seems a lot more popular.
[05:42] shripad: just the lines of output from your console... create a gist and give me the link
[05:42] dynacker: reckon facebook chat on the iphone/android is using sockets?
[05:42] k1ttty has joined the channel
[05:44] PastorBones: haha....I think I just figured out my error
[05:44] cronopio has joined the channel
[05:44] shripad: :)
[05:44] lz: dynacker: I doubt it, sockets don't like cell networks
[05:44] dynacker: seems fairly responsive though
[05:44] PastorBones: yeah, it was a pebkac
[05:44] PastorBones: had a type in the var containing the db name
[05:44] PastorBones: typ0*
[05:44] dynacker: would it be using some sort of rest web service or something? i doubt it'd be that quick if they were polling every x seconds
[05:45] lz: PastorBones: heh glad it worked out
[05:46] crescendo|laptop has joined the channel
[05:46] PastorBones: would it be better to create several databases or just use a field of 'type' to separate the records for different applications?
[05:47] skm has joined the channel
[05:47] Frippe has joined the channel
[05:47] lz: although you can use a 'type' field
[05:47] wadey has joined the channel
[05:48] lz: I like multi db's because you can replicate them separately
[05:48] PastorBones: lz, that's what I'm asking, which is better/faster/less resources?
[05:49] lz: speed and resources are negligible here I think unless you're creating a ludicrous amount of db's
[05:49] Margle has joined the channel
[05:49] innociv_ has joined the channel
[05:49] lz: oh
[05:50] PastorBones: lz, na, not doing that, just trying to learn Node and new to nosql db's...so figured I'd ask before I get used to doing something the wrong way
[05:50] ph^ has joined the channel
[05:50] lz: you need to keep in mind what you want to return though
[05:50] PastorBones: lz?
[05:50] innociv_: What should I look at to make a comet app with node.js?
[05:50] Skola has joined the channel
[05:50] lz: I don't think you can call map/reduce across multiple db's so keep that in mind
[05:51] PastorBones: lz, I'm writing an IRC Bot as a learning experience and separate modules need access to the database, so giving each access to their own DB through the plugin controller
[05:51] PastorBones: module as in irc bot plugins
[05:51] lz: nice
[05:51] lz: well, what will you be storing in the db's
[05:52] PastorBones: ummm, admin credentials for bot users, a quote module, seen module, etc
[05:52] jesusabdullah: PastorBones: hook.io irc and hook.io-couch, and you're done XD
[05:52] PastorBones: stuff that could be done in files, but figured I'd incorporate couch to see how it works :)
[05:52] PastorBones: jesusabdullah, too simple, I wrote my own irc.js using net
[05:53] PastorBones: I'm trying to LEARN
[05:53] jesusabdullah: Man, that sounds boring
[05:53] lz: heh
[05:53] jesusabdullah: Then learn by doing cool shit on top of an already existing framework
[05:53] jesusabdullah: >:D
[05:53] PastorBones: well yeah, but for someone with hardly any javascript experience, it's great
[05:53] PastorBones: for instance, I learned alot about javascript object notation today doing this
[05:53] PastorBones: and how to export module properties/methods
[05:53] jesusabdullah: I think the important thing is that you're doing shit, not on how low level the bindings were or something
[05:54] jesusabdullah: So, i mean, if you're enjoying it then that's great!
[05:54] jesusabdullah: I just have a hard time getting attracted to a problem unless it's really interesting
[05:54] akiva: Wow, there are so many more mail middleware than there used to be! Can anyone recommend one that is quite stable/reliable and allows for text and html format emails
[05:54] PastorBones: well, I was trying express/jade/stylus/couchdb apps, but got lost real quick from my lack of knowledge in javascript objects
[05:54] lz: stop hating man
[05:54] jesusabdullah: I'm not hatin'!
[05:55] kmiyashiro has joined the channel
[05:55] lz: or tone down the whiskey
[05:55] jesusabdullah: akiva: Have you looked at the sendgrid modules on npm? That's a pretty easy way to do it
[05:55] PastorBones: I needed to redo my #channel bot anyway
[05:55] jesusabdullah: whiskey? I can't drink that! I'd get sick
[05:55] akiva: jesusabdullah Well, I am using Googel SMTP, so I don't need that.
[05:55] jesusabdullah: PastorBones: We actually do use hook.io's irc hook for nodejitsu's official bot, and it's a really cool way to write thigns.
[05:56] jesusabdullah: akiva: Ah, I see.
[05:56] akiva: Thanks, though
[05:56] jesusabdullah: Yeah!
[05:56] KicStart1 has joined the channel
[05:56] jesusabdullah: I'm trying to remember what I know about mailers
[05:56] PastorBones: I had fun trying to figure out how to auto-hook into my plugins
[05:56] jesusabdullah: except that we aren't using node-mailer internally anymore
[05:56] jesusabdullah: using sendgrid instead XD
[05:57] akiva: I tried node mailer, but when I used it it required mustache, which was not cool with me, and coudln't handle both html and plaintext together
[05:57] skm has joined the channel
[05:58] boltR has joined the channel
[05:58] jesusabdullah: Why's mustache bad? What happens if you just hack it out?
[05:58] yenz: ooh, sendgrid's pricing has improved quite a bit since i last looked...
[05:58] jesusabdullah: I was gonna suggest mscdex's imap module
[05:59] akiva: jesusabdullah: It's not that it's bad, but I dont' use it. It seems silly to use only due to the middleware
[05:59] jesusabdullah: akiva: sure, so why not just hack it out? Or, take the good with the excess?
[06:00] akiva: jesusabdullah library do you refer to? NodeMailer (marak) does not allow for plaintext + html formats together, nor does it handle BCC
[06:01] simenbrekken has joined the channel
[06:01] Marak: akiva: node mailer doesnt require mustache
[06:01] lz: heh I just use gmail's smtp...
[06:01] Marak: akiva: if you dont like it, dont use it
[06:01] Marak: akiva: that library sucks and wont support it
[06:01] Marak: so take that
[06:01] Marak: and I wont support it*
[06:01] akiva: Marak Hiya! Which library sucks?
[06:01] Marak: node_mailer
[06:02] akiva: Isn't yours node_mailer?
[06:02] Marak: it only exists because i needed to send email in 2009
[06:02] akiva: :?
[06:02] Marak: smtp sucks
[06:02] akiva: lol
[06:02] jesusabdullah: akiva: I'm suggesting that for a small enough library you could hack out the annoying parts
[06:02] jesusabdullah: javascript's pretty readable, things are kept modular
[06:02] akiva: jesusabdullah: Right, gotcha.
[06:03] bEEEeviz has joined the channel
[06:03] akiva: Marak: "..using some simple JSON based Mustache replacement" from your own readme
[06:03] akiva: ?
[06:03] kbni2 has joined the channel
[06:03] wadey has joined the channel
[06:03] Marak: akiva: yes, you can use that if you want
[06:04] lz: which one's the one that's mailer in npm
[06:04] akiva: But the main thing was that I need to be able to send a plaintext alt along with the html
[06:04] Marak: oops
[06:04] Marak has left the channel
[06:05] KicStart1: jesus: When the code looks real bad minify it.
[06:05] akiva: I wonder if this one is any good? https://github.com/eleith/emailjs
[06:05] akiva: Marak can you make a suggestion as to your pref?
[06:10] rednul has joined the channel
[06:13] CIA-54: node: 03Ben Noordhuis 07master * r44bebc0 10/ src/node_crypto.cc : crypto: look up SSL errors with ERR_print_errors() - http://git.io/8pzq_g
[06:16] jetienne has joined the channel
[06:17] mc_greeny has joined the channel
[06:21] febits has joined the channel
[06:24] luke` has joined the channel
[06:24] jacobolus has joined the channel
[06:24] EvRide has joined the channel
[06:26] guidocalvano has joined the channel
[06:26] robi42 has joined the channel
[06:26] neilk_ has joined the channel
[06:27] grekko has joined the channel
[06:27] amigojapan has joined the channel
[06:28] freeformz has joined the channel
[06:31] ivanfi has joined the channel
[06:32] OmidRaha has joined the channel
[06:34] andoriyu_: is there any way to get information about memory consuption of app inside app?
[06:35] motill has joined the channel
[06:36] ishu has joined the channel
[06:36] ishu: hi
[06:36] lz has joined the channel
[06:37] lz has joined the channel
[06:37] lz has joined the channel
[06:39] lz: andoriyu_: yes
[06:39] lz: see http://snippets.dzone.com/posts/show/12069
[06:40] kenperkins has joined the channel
[06:40] adelcambre has joined the channel
[06:41] andoriyu_: Thanks
[06:41] lz: np I assume you know what to do from there
[06:42] krh has joined the channel
[06:42] andoriyu_: sure
[06:42] cpetzold has joined the channel
[06:43] sebastianedwards has joined the channel
[06:43] ph^ has joined the channel
[06:44] __doc__ has joined the channel
[06:44] `3rdEden has joined the channel
[06:45] groom has joined the channel
[06:46] ericmuyser: so if i have a dependency like "contextify" but its complaining about recompiling it with node-waf.. i should just kill the dependency eh?
[06:46] robotmay has joined the channel
[06:46] ericmuyser: this is on Windows
[06:47] stagas has joined the channel
[06:48] paulwe_ has joined the channel
[06:50] CrypticSwarm has joined the channel
[06:51] bnoordhuis: ericmuyser: yes, add-ons don't yet compile on windows
[06:52] emattias has joined the channel
[06:53] madsleejensen has joined the channel
[06:54] beevi7 has joined the channel
[06:55] beeviz has joined the channel
[06:57] febits has joined the channel
[06:58] Druide has joined the channel
[06:59] febits has joined the channel
[06:59] mikedeboer has joined the channel
[06:59] KicStart1 has left the channel
[07:00] ericmuyser: bnoordhuis: thanks
[07:00] bogomips has joined the channel
[07:01] CIA-54: node: 03koichik 07v0.4 * rb93a7cc 10/ doc/api/fs.markdown : docs: add links - http://git.io/UC31WQ
[07:01] fangel has joined the channel
[07:02] hermanjunge has joined the channel
[07:05] r04r has joined the channel
[07:05] r04r has joined the channel
[07:05] azeroth_ has joined the channel
[07:07] paulwe_ has joined the channel
[07:07] unomi has joined the channel
[07:08] garrensmith has joined the channel
[07:11] sylvinus has joined the channel
[07:11] mike5w3c has joined the channel
[07:11] level09 has joined the channel
[07:11] akaKJ has joined the channel
[07:12] mehlah has joined the channel
[07:12] r04r has joined the channel
[07:12] DrMcKay has joined the channel
[07:13] guidocalvano has joined the channel
[07:13] burningdog has joined the channel
[07:13] isaacs has joined the channel
[07:15] freeformz has joined the channel
[07:15] ph^ has joined the channel
[07:15] jbpros has joined the channel
[07:15] pgherveou has joined the channel
[07:15] hermanjunge has joined the channel
[07:17] daleharvey: hey, working with node + couch and trying to get a really simple pass through proxy going - http://pastebin.me/188842111b3069a3aa51932b1e0f2b94
[07:18] daleharvey: that works, but none none of the request attributes get passed through, I have tried the request({proxy: url .... but that doesnt work either
[07:19] nforgerit has joined the channel
[07:20] Skola has joined the channel
[07:22] spllr has joined the channel
[07:23] ablomen has joined the channel
[07:23] admc has joined the channel
[07:23] mraleph has joined the channel
[07:25] nodeN00b has joined the channel
[07:25] stonebranch has joined the channel
[07:26] mc_greeny1 has joined the channel
[07:26] nodeN00b has left the channel
[07:31] FireFly|n900 has joined the channel
[07:31] Margle has joined the channel
[07:31] pgherveou has joined the channel
[07:32] akujin has joined the channel
[07:32] dnjaramba has joined the channel
[07:35] uchuff has joined the channel
[07:35] [AD]Turbo has joined the channel
[07:35] [AD]Turbo: hi there
[07:36] necrodearia has joined the channel
[07:38] kbni has joined the channel
[07:38] mehlah has joined the channel
[07:39] mehlah_ has joined the channel
[07:39] mehlah has joined the channel
[07:40] chjj: ACTION is finally a vim hacker.
[07:40] jbpros has joined the channel
[07:40] mehlah has joined the channel
[07:41] dynacker: VIM HACKER
[07:41] pgherveou has joined the channel
[07:41] chjj: !
[07:43] Druide has joined the channel
[07:43] JaKWaC has joined the channel
[07:45] DrMcKay: chjj: do you have a neckbeard already?
[07:45] randylien has joined the channel
[07:45] metellus has joined the channel
[07:46] pgherveou has joined the channel
[07:47] AphelionZ has joined the channel
[07:48] chjj: DrMcKay: well i must have one if i am a vim hacker, in fact, i think i feel one coming on
[07:48] chjj: :%s/neck/beard/g
[07:49] DrMcKay: chjj: you better hurry, you're not a vim hacker until your neckbeard is longer than your leg
[07:50] cosmincx has joined the channel
[07:52] bronson: that's damned impressive to replace your neck with a beard.
[07:52] klokie has joined the channel
[07:53] forzan has joined the channel
[07:54] skm has joined the channel
[07:56] adambeynon has joined the channel
[07:56] pietern has joined the channel
[07:57] Margle has joined the channel
[07:57] innociv_: Will socket.io work cross domain?
[07:58] bombworm: I think wont
[07:58] innociv_: I think I found my answer.. it'll fallback to JSONP. http://markmail.org/message/o4ox4z25nmtapl7o Websockets themselves should work cross domain on browsers that suppor them
[07:58] bergelmir has joined the channel
[07:59] `3rdEden: yes it does
[08:00] `3rdEden: also xhr polling works cross domain for browser that suppor it
[08:00] thalll has joined the channel
[08:01] cjheath has joined the channel
[08:03] mpavel has joined the channel
[08:03] _kud has joined the channel
[08:05] whitman has joined the channel
[08:05] burningdog has left the channel
[08:07] irahgel has joined the channel
[08:08] randylien_ has joined the channel
[08:10] robotmay has joined the channel
[08:10] aron_ has joined the channel
[08:10] fangel_ has joined the channel
[08:13] bergie has joined the channel
[08:13] ryanmcgrath_ has joined the channel
[08:14] knifed has joined the channel
[08:14] mpavel has left the channel
[08:15] eldios has joined the channel
[08:15] raphdg has joined the channel
[08:16] FireyFly|n900 has joined the channel
[08:16] showcase has joined the channel
[08:16] aron_ has joined the channel
[08:17] mikedeboer has joined the channel
[08:17] djcoin has joined the channel
[08:18] zastaph has joined the channel
[08:19] bergelmir has joined the channel
[08:24] guidocalvano has joined the channel
[08:24] dominictarr has joined the channel
[08:26] booo has joined the channel
[08:26] netlemur_ has joined the channel
[08:27] robhawkes has joined the channel
[08:30] cjheath has joined the channel
[08:30] Twelve-60 has joined the channel
[08:31] stagas has joined the channel
[08:31] innociv_: Am I going to have a problem if i just chmod 777'd my node folder?
[08:31] stravid has joined the channel
[08:34] stravid: hi, can someone take a quick look at my example module and tell me if I do it the right way?
[08:35] ktos has joined the channel
[08:35] ktos: Hi
[08:37] ktos: tell me please, is reactor pattern purposed for special cases like very oveloaded webservice request handling or it should be considered as general solution for dynamic websites
[08:37] tilgovi: Okay, I edited my answer to this S-O question some more. I'd appreciate any feedback. http://stackoverflow.com/questions/6623683/node-js-process-out-of-memory-in-http-request-loop/7468792#7468792
[08:37] SubStack: ktos: reactor pattern?
[08:37] febits[0] has joined the channel
[08:38] ktos: SubStack: node.js is bases on it, isn't it?
[08:38] ktos: based*
[08:38] SubStack: ktos: javascript isn't a language for which classical design patterns are very appropriate
[08:39] stravid: Given this coffeescript module:Test =
[08:39] stravid: print: ->
[08:39] stravid: console.log("Test.print called")
[08:39] stravid: if module.exports?
[08:39] stravid: module.exports = Test
[08:39] stravid: else
[08:39] stravid: @Test = Test
[08:39] ktos: SubStack: I dont mean js it self, I mean node.js as node.js
[08:39] stravid: And this require: Test = require './test'
[08:39] stravid: Test.print()
[08:39] stravid: Am I doing this right?
[08:40] SubStack: stravid: use a paste site to paste stuf
[08:40] SubStack: f
[08:41] shirro has joined the channel
[08:41] shirro has joined the channel
[08:41] tilgovi: ktos: I would say that node.js is very much like reactor style
[08:42] ktos: so, maybe I will rephrase
[08:42] stravid: SubStack: https://gist.github.com/1228655
[08:42] stravid: Am I doing this right (exports / require)=
[08:42] ktos: is node.js purposed for spacial cases or as general purpose framework
[08:42] ericmuyser: can i force node-waf to static compile a lib?
[08:42] ktos: for dynamic websites
[08:43] jacobolus has joined the channel
[08:43] SubStack: ktos: who cares what node.js was designed for
[08:43] sebastianedwards has joined the channel
[08:43] SubStack: v8 was designed to execute javascript in browsers
[08:44] SubStack: stravid: it looks like you're trying to share code between node and the browser
[08:44] ktos: SubStack: I dont, just asking about practise
[08:44] knifed has joined the channel
[08:44] stravid: Yes
[08:44] ktos: SubStack: I written 0 lines in node
[08:44] ktos: I've*
[08:45] stravid: SubStack: Yeah I do, but I'm not sure if I'm doing the node part right. Like, do I use modules and require as I should
[08:46] SubStack: stravid: check out https://github.com/substack/node-browserify
[08:46] SubStack: then you can just write code the node way and it will just work in the browser
[08:47] cjm has joined the channel
[08:47] SubStack: ktos: people are writing all sorts of applications in node
[08:48] dsirijus has joined the channel
[08:49] stravid: SubStack: Thanks, but are lines 7 & 12 in my Gist "correct" in terms of nodejs practices?
[08:49] vguerra has joined the channel
[08:51] SubStack: stravid: it looks like that would work but I haven't written much coffeescript
[08:52] admc has joined the channel
[08:52] stravid: SubStack: It works :-) Was just wondering if it's the correct way. Thanks for you time!
[08:52] stravid: *your
[08:54] blup has joined the channel
[08:54] SubStack: stravid: with browserify you can get rid of the special cases for the browser entirely
[08:54] stravid: SubStack: Will look into that!
[08:55] herbySk has joined the channel
[08:55] webben has joined the channel
[08:56] davidcoallier has joined the channel
[08:59] rendar has joined the channel
[09:00] geojeff has joined the channel
[09:00] tylerstalder has joined the channel
[09:00] bogomips2_ has joined the channel
[09:01] _kud has joined the channel
[09:02] kulor-uk has joined the channel
[09:05] JKDD has joined the channel
[09:05] JKDD: Hello, I'm new here in node.js!
[09:07] anoop: JKDD: welcome, there are many including me :)
[09:07] nforgerit has joined the channel
[09:08] Frippe has joined the channel
[09:10] maushu has joined the channel
[09:10] socketio\test\57 has joined the channel
[09:11] Drakonite has joined the channel
[09:13] adambeynon has joined the channel
[09:13] skratool has joined the channel
[09:15] JKDD: i haven't use any js, can i handle node?
[09:15] JKDD: :)
[09:15] bzinger has joined the channel
[09:17] skm has joined the channel
[09:17] yuwang_ has joined the channel
[09:19] innociv_: You'll have to learn js.
[09:19] SuMarDi has joined the channel
[09:19] SuMarDi has joined the channel
[09:23] topriddy has joined the channel
[09:24] topriddy: hello mates
[09:24] jomoho has joined the channel
[09:24] topriddy: am looking at Node.js basically because of the scalability claims, but i dont understand why it beats traditional server side apps.
[09:25] adrianmg has joined the channel
[09:25] __doc__ has joined the channel
[09:28] shipit has joined the channel
[09:30] Frippe has joined the channel
[09:30] Jippi has joined the channel
[09:31] ericmuyser: best existing ByteStream implementation in node?
[09:32] madsleejensen has joined the channel
[09:33] EvRide has joined the channel
[09:33] davidcoallier has joined the channel
[09:33] confoocious has joined the channel
[09:35] bogomips2__ has joined the channel
[09:35] junkee[] has joined the channel
[09:35] _sh0x has left the channel
[09:39] JKDD: @innociv, Ok, i'll learn it
[09:40] uchuff has joined the channel
[09:42] DennisRasmussen has joined the channel
[09:46] bzinger has joined the channel
[09:47] innociv_: JS is simple. Functions, arrays, strings, numbers, objects. Just have to make sure you know how to manipulate those arrays and such..
[09:50] sriley: topriddy: usually just the blocking style of writing traditional server side apps
[09:50] tuhoojabotti has joined the channel
[09:50] topriddy: sriley: huh?
[09:51] tuhoojabotti: I'm back!
[09:51] sriley: make this db query and then sit around waiting till you get a response then do something with it then wait some more etc, using callbacks mean theres less time waiting for blocked threads
[09:51] pickels has joined the channel
[09:51] Predominant has joined the channel
[09:51] topriddy: sriley: like the node.js home page says something like a new thread created for each connections. either this is wrong or i dont understand what they sayinh
[09:51] cosmincx has joined the channel
[09:52] sriley: apache will create a thread for each connection
[09:52] ericmuyser: anybody know of a good replacement for jQuery.extend? using it for deep property merging $.extend(true, abc, xyz). https://github.com/jquery/jquery/blob/master/src/core.js#L305
[09:53] ericmuyser: tried "nodejs-clone-extend" and it just breaks my objects
[09:53] Predominant: when you require() some code, does that happen in a different context? I have a file to require() that looks for a 'CONTROL' var, which is defined in the file which does the require, but it complains it can't find it.
[09:54] sriley: (creating a new thread for each connection will result in the server dying when there are a lot of connections on it - see the performance graphs)
[09:54] beeviz has joined the channel
[09:54] Fuu has joined the channel
[09:54] progzer has joined the channel
[09:56] ericmuyser: well of course. it would die either way if you dont define "lots". :P epoll is boss tho for sure
[09:56] Lemon|mbp has joined the channel
[09:57] ericmuyser: Predominant: exports (module.exports)
[09:58] topriddy: sriley: am an intermediate java developer. not overall expert. want to understand what node.js brings that traditional doesnt already offer
[09:58] topriddy: sriley: Java servlets, a thread can handle multiple connections...I know this.
[09:59] bzinger has joined the channel
[09:59] Predominant: ericmuyser: Is there something I can do to allow an existing JS file that I am including, that anticipates CONTROL already being defined, to work?
[10:01] ericmuyser: Predominant: define it before you include it?
[10:01] ericmuyser: xD
[10:01] Predominant: I tried doing: var CONTROL = {}; then require() , but it throws a ReferencError saying its not defined
[10:01] Twisol: because CONTROL is in a different scope than the required file, yeah
[10:02] Predominant: ACTION nods.
[10:02] ericmuyser: ohh, thats unfortunate. only 'global' would work i think
[10:02] Predominant: So I guess my question is, can I get it working without modifying the JS file I am requiring
[10:02] Twisol: globals aren't usually a good idea; what I've seen is to put those things in their own required file
[10:02] Twisol: and then require that whereever you need it
[10:02] Predominant: so require some setup thingy.
[10:02] Predominant: Oh, thats an interesting idea.
[10:02] Twisol: Node caches the result of running the page, I believe, so it's always the same module returned
[10:03] Twisol: Not page, file. :S
[10:03] Predominant: :)
[10:03] Twisol: Alternatively, you could export a function from your file
[10:03] Twisol: and have the caller pass your CONTROL thing in
[10:03] Twisol: and then you'd do stuff or whatever
[10:03] yuwang_ has joined the channel
[10:03] Twisol: module.exports = function(CONTROL) { /* herp derp */ return the_real_exports; }
[10:05] sriley: if it can then thats better than the model that traditional apache uses of creating a thread per connection. however when you do a db query how do you handle that? do you wait for the response or do you say heres the function call this when you get the data
[10:05] Predominant: I'd have to modify the file I am requiring for that I think , and I want to avoid that.
[10:05] Twisol: sriley: the latter, basically
[10:05] topriddy: sriley: you wait for the the responce. X_X
[10:05] Twisol: ?
[10:06] ericmuyser: asynchronous handlers are lot more common these days
[10:06] okuryu has joined the channel
[10:06] Twisol: Sorry, I just tuned into your conversation, ignore me if I'm not getting it right.
[10:06] sriley: its that waiting that will severely limit the scalability
[10:06] herbySk has joined the channel
[10:06] topriddy: sriley: but then you may decide to create a thread to service the request, and then return a respomse. 2. Implement a queue system where you put stuff (memcached) and return a response immediately
[10:07] topriddy: sriley: i wonder what kind of response you are talking about.
[10:07] Twisol: Node's core libraries, like net and fs, poll and wait from a background thread, then push an event to Node when something happens.
[10:07] sriley: especially when it comes to for example web sockets where you have perm connections to the server usually just sitting waiting for something to happen before sending the data
[10:07] Predominant: Global works.
[10:07] Predominant: Sucks, but works.
[10:07] Shrink has joined the channel
[10:07] Shrink has joined the channel
[10:07] ericmuyser: well if u dont have control over the library or dont want to maintain the changes
[10:08] ericmuyser: if you do, you should definitely not use globals
[10:08] topriddy: sriley: you cant definitely tell a customer (client) that his bank transactions has been completed without waiting, can you
[10:08] topriddy: ?
[10:08] Twisol: What file/library is this that expects a CONTROL object to be globally defined?
[10:09] matjaz has joined the channel
[10:09] sriley: no so at some point youll have some kind of loop to say has whatever needs to be done been done yet
[10:10] sriley: virtually everything that makes node good for performance can be done in whatever language... its just that typically it wont be done that way, js hasnt had threads etc so developers have come to develop naturally in this performant kind of way
[10:11] liar has joined the channel
[10:12] fermion has joined the channel
[10:12] topriddy: sriley: then it boils down to basically the same thing then.
[10:13] topriddy: sriley: if i was to delve deeper into node.js. guess i'll have to be real fluent in js too? am considering moving a sim registration real life app to a more scalable platform.
[10:15] mcpherrin has joined the channel
[10:15] sriley: yes you need to know js fairly well, but learning a language is pretty simple once you know any other language
[10:16] fizx has joined the channel
[10:16] sam350 has joined the channel
[10:16] ericmuyser: JavaScript is a derivative of Java, so you should be fine (totally-trolling-right-now)
[10:17] sriley: the thing that makes js complicated-ish in browsers is the cross browser incompatibilites which if teh code is being executed on the server doesnt matter, so you can write modern js without worrying about ie7 nt supporting it
[10:17] Emmanuel`: ericmuyser: I puked
[10:18] Twisol: :|
[10:20] mcpherrin: Is there a canonical websockets implementation for Node.JS? I'm unfamiliar with the community and so am just poking at a few on github, none of which seem particularily developed.
[10:20] aaronmcadam has joined the channel
[10:21] topriddy: sriley: okay thanks.
[10:21] Pierre_N: mcpherrin: err, isn't it socket.io ?
[10:22] davidcoallier has joined the channel
[10:22] mcpherrin: Pierre_N: That looks useful. Thanks.
[10:22] Pierre_N: you're welcome.
[10:25] craig-t has joined the channel
[10:26] innociv_: I've been reading through things, watching videos, but I don't see where I should actually be saving my .js files. I also don't see how to bind the server to a certain ip, as I have multiple ones on my box, I only see how to bind to port.
[10:28] jer0me_ has joined the channel
[10:28] topriddy: sriley: so i just read something. using blocking libraries with Node.js defeats its purpose right?
[10:28] sriley: yup
[10:28] level09 has joined the channel
[10:29] SubStack: innociv_: usually the second argument is for the hostname
[10:30] Twisol: innociv_: You can use whatever directory structure you want, usually. All you need is to run "node foo.js", where foo.js is your main application file. From there you can require anything else, including relative paths like require("./lib/helpers.js") or whatnot
[10:31] Twisol: Personally I create a directory for my project and put my files in a lib/ in whatever hierarchy I feel like
[10:31] innociv_: But where is foo.js? Just the directory you're currently at?
[10:31] Twisol: Yes
[10:32] innociv_:
[10:32] innociv_: is on http://socket.io/#how-to-use But where is socket.io.js? I see no download for it. Is it gotten from the npm and put somewhere in my node or local folder?
[10:32] Twisol: As far as I know, socket.io dynamically serves that one.... good question though, I'm a little confused by it too
[10:32] matjaz has joined the channel
[10:33] innociv_: Huh. Weird. So I don't actually need that anywhere on the webserver? I'm using lighttpd to actually server html pages and such, just going to be using node.js for real time data.
[10:34] ph^ has joined the channel
[10:34] `3rdEden: Twisol yes it's dynamic
[10:34] `3rdEden: as socket.io claims the whole /socket.io/ path of your server
[10:34] ph^_ has joined the channel
[10:34] bombworm: socket.io-client\dist
[10:35] bombworm: socket.io-client/dist/socket.io.js
[10:35] Twisol: Good to know.
[10:35] `3rdEden: ^ could be possible but that means you have to manually check, if you server is still compatible with socket.io-client
[10:35] `3rdEden: as the shipped version in socket.io is always compatible.
[10:36] arg0s_ has joined the channel
[10:36] kraft has joined the channel
[10:39] ph^ has joined the channel
[10:40] Cromulent has joined the channel
[10:42] bogomips2_ has joined the channel
[10:42] liar has joined the channel
[10:43] cronopio has joined the channel
[10:43] ph^_ has joined the channel
[10:44] ph^_ has joined the channel
[10:48] eldad87 has joined the channel
[10:49] bogomips2__ has joined the channel
[10:49] Nuck has joined the channel
[10:50] madsleejensen has joined the channel
[10:51] CoinOpeBoy has joined the channel
[10:51] bamaung has joined the channel
[10:51] clockwize has joined the channel
[10:52] clockwize: hi, if i'm starting a web server in node, should i open a mongo connection and start the server in the callback or should i open a connection to the database for every request (i.e. inside the webserver callback?)
[10:53] davidcoallier has joined the channel
[10:54] ph^ has joined the channel
[10:55] Margle has joined the channel
[10:56] arg0s_ has joined the channel
[10:57] pplcf has joined the channel
[10:57] briandh has joined the channel
[11:00] max_dev has joined the channel
[11:03] FireFly|n900 has joined the channel
[11:05] clockwize has joined the channel
[11:06] JKDD has joined the channel
[11:06] jetienne: stagas: are you around ?
[11:07] stagas: jetienne: yeap
[11:07] jetienne: stagas: i look for a radio stream which support CORS. with http://radioplz.com maybe you know one ?
[11:08] benperth has joined the channel
[11:09] benperth: hi, i was wondering if someone could help me with __defineSetter__ and __defineGetters__ ?
[11:09] chjj: benperth: whats the problem?
[11:10] arg0s has left the channel
[11:10] stagas: jetienne: no, don't even know what that is :P
[11:10] benperth: Here is a snippet of my code: http://www.heypasteit.com/clip/00CN
[11:10] benperth: it throws a 'process.nextTick' error
[11:11] jetienne: stagas: hehe. This is a new thing to say "hey the content of this url doesnt need same-origin protection" :)
[11:11] mcpherrin has joined the channel
[11:11] jetienne: stagas: http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing
[11:11] level09 has joined the channel
[11:11] benperth: chjj: am i doing something fundamentally wrong?
[11:11] mrryanjohnston: berasa: looks like you have to return a funtion
[11:11] mrryanjohnston: https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects
[11:12] chjj: benperth: its hard to tell without seeing all the code
[11:12] metellus has joined the channel
[11:12] mrryanjohnston: dr
[11:12] mrryanjohnston: er
[11:12] mrryanjohnston: *
[11:12] mrryanjohnston: nevermind.
[11:12] chjj: benperth: what does the error say?
[11:12] ablomen has joined the channel
[11:12] benperth: node.js "process.nextTick" error
[11:12] chjj: benperth: it looks like youre calling a constructor as if it were an instantiated object
[11:12] benperth: if i console.log(this) - it shows the object with the waitingRoomCount - so i thought my code should work
[11:13] benperth: ah, it is an instantiated object
[11:13] chjj: benperth: State.init() - i think you meant to do something like `var s = new State(); s.init();`
[11:13] benperth: yeah i've got that
[11:13] benperth: just didn't put it in the code
[11:13] benperth: i have other setters/getters in there that are on basic variables (e.g. not objects) - and it all works
[11:14] clockwize: does anyone have any thoughts on my question quickly? i'm sure you all probably know the answer :) should a http request open a connection to the database each or should my app have one connection that everything uses
[11:14] benperth: it's just when i try to apply them to a specific object parameter
[11:14] benperth: sorry, hard for me to post all code as it's spread across many files with a lot of other BS around it
[11:15] chjj: benperth: youre creating a setter/getter for a property that already exists it looks like
[11:15] ryanmcgrath has joined the channel
[11:15] chjj: benperth: you do `stateData = { waitingRoomCount: 0 }`
[11:15] benperth: chjj: ah, yeah it does already exist. is that bad to do?
[11:15] chjj: benperth: why dont you just not use a setter or getter at all? and just let the person set waitingRoomCount directly?
[11:16] chjj: benperth: that might be better if theres no other magic happening in the getter/setter
[11:16] benperth: chjj: ah, it's got to do a lot of other processing, i've just removed it for the example
[11:16] guidocalvano has joined the channel
[11:17] chjj: benperth: i see, well in that case, you might want to make it either a closured variable in the .init function
[11:17] chjj: benperth: or you can set the "real" property like this._waitingRoomCount = v;
[11:17] fangel has joined the channel
[11:17] chjj: and have the setter and getter correspond to this.waitingRoomCount
[11:17] benperth: chjj: alright, thanks for that - i'll have a play about. Cheers
[11:17] stagas: clockwize: one connection
[11:17] chjj: benperth: sure
[11:17] patcoll has joined the channel
[11:18] clockwize: stagas: but what if I have hundreds of requests per second?
[11:18] chjj: clockwize: you said over http?
[11:18] nforgerit has joined the channel
[11:19] clockwize: chjj: yeah (i was being hypothetical)
[11:19] chjj: clockwize: if youre going to be grabbing data from that server constantly, theres no sense in closing and opening a new socket each time
[11:19] chjj: clockwize: you would want to keep it open
[11:19] JKDD: keep-alive?
[11:20] chjj: im really not sure, clockwize said http? are you using couch, clockwize?
[11:20] TomY has joined the channel
[11:20] clockwize: i'm not sure how node http server handles keep-alive requests, but lets assume they are 100 seperate users in 1 second. i'm using mongo
[11:21] chjj: okay, well then yes, you would not want to have to reconnect every time
[11:21] chjj: that would be painfully slow
[11:21] stagas: clockwize: then you need a fast db. but one connection to the db should be enough
[11:21] bshumate has joined the channel
[11:21] bshumate has joined the channel
[11:21] clockwize: ok, thanks :)
[11:22] chjj: maybe i misread the question
[11:22] slifty has joined the channel
[11:22] _kud has joined the channel
[11:22] benperth: chjj: I managed to get it, in the setters/getters i just had to set/get the true value by doing this._waitingRoomCount - Thanks for help again.
[11:23] blup: what hosting companies would you guys recommend? mostly for nodejs projects, and a couple old php sites.
[11:23] chjj: benperth: no problem, its hard to say since i cant see the rest of the code, but you also might want to consider using a closured variable instead
[11:24] benperth: no worries, ta
[11:24] calvinmcgee has joined the channel
[11:25] chjj: blup: theres a lot of them, depends on your needs, if you need to host php projects, the hosts specifically tailored to node would be out of the question, you would want your own vps
[11:26] chjj: blup: i think amazon might still have that promotional for ec2 micro instances if you want something small to mess around on, amazon has a bunch of other stuff too
[11:27] temp01 has joined the channel
[11:27] chjj: blup: then theres other things like slicehost, etc
[11:27] beevi7: does anyone know i this https://github.com/visionmedia/sass.js/tree/ sass implementation also supports scss (doesnt seem so)? or if there is another implementation which works with scss?
[11:27] guidocalvano has joined the channel
[11:27] blup: chjj: i'm looking mostly for a vps... between 15-30 euros
[11:28] chjj: blup: hmm, i think slicehost and rackspace are maybe $20-30 per month depending on your plan
[11:28] blup: my service provider has 'physical damages' on my server, after 6 months, so i'd like to find something more reliable.
[11:28] blup: chjj: thanks, i'll look into it
[11:28] calvinmcgee: Hi, there. I'm new to Node.js, and I am trying to use less by installing it via npm. The install gives me no errors, and less is put in ./node_modules/less. But when I try to run less-test.js I get : "Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.". Any ideas what I'm doing wrong?
[11:29] chjj: blup: and then amazon has a whole universe of different choices too
[11:29] arg0s has joined the channel
[11:29] dnjaramba has joined the channel
[11:29] eee_c has joined the channel
[11:31] k1ttty has joined the channel
[11:31] blup: chjj: a bit steep for my budget though :) , and i believe to profit from micro instances you have to already own an AWS right?
[11:32] chjj: blup: depends on what you mean from profit hehe
[11:32] brianseeders has joined the channel
[11:32] calvinmcgee: Or maybe I'm running the wrong less-test.js. The less package also appears in ./.npm/less
[11:33] chjj: the ec2 micro instances are cheap and if they still have that promotional, essentially free for a year, minus the fine print
[11:33] raphdg has joined the channel
[11:33] JKarsrud1 has joined the channel
[11:36] bencc has joined the channel
[11:36] sebastianedwards has joined the channel
[11:36] cjheath has joined the channel
[11:36] azeroth__ has joined the channel
[11:37] mcpherrin has joined the channel
[11:38] aron_ has joined the channel
[11:41] dylang has joined the channel
[11:43] v_y has joined the channel
[11:44] v_y: is there a browser side version of the crypto module? i need to share code, in particular hashign functions
[11:44] knirhs has joined the channel
[11:45] blup: chjj: i meant they had a promo for an ec2 instance for a year, but i believe that requires you have an aws
[11:46] klokie has joined the channel
[11:46] fly-away has joined the channel
[11:46] skm has joined the channel
[11:53] storrgie has joined the channel
[11:53] HardPhuck has joined the channel
[11:53] bencc has joined the channel
[11:54] unomi has joined the channel
[11:55] thinkt4nk has joined the channel
[11:56] calvinmcgee has left the channel
[11:56] matjaz has joined the channel
[11:58] dominictarr: calvinmcgee: that's not your fault. it's that less depends on a feature of node that has been removed.
[11:58] dominictarr: what node version are you on?
[11:59] lz has joined the channel
[11:59] lz has joined the channel
[11:59] dominictarr: I think that issue is still in in 0.4.x (stable) go, back to that, and also. post an issue for less.
[12:03] davidcoallier has joined the channel
[12:03] jbpros has joined the channel
[12:04] cole_gillespie has joined the channel
[12:05] pietern has joined the channel
[12:07] arg0s has joined the channel
[12:08] johnwards has joined the channel
[12:08] TheFuzzball has joined the channel
[12:09] johnwards: Hi folks. I have a script that is failing on dns lookups. Anyway of getting the node process not to die when it hits the error?
[12:09] bencc has joined the channel
[12:09] simenbrekken has joined the channel
[12:09] bencc has left the channel
[12:09] chjj: johnwards: process.on('uncaughtException', ...)
[12:10] johnwards: node.js:134 throw e; // process.nextTick error, or 'error' event on first tick
[12:10] lz: process.on('uncaughtException',function(error){
[12:10] lz: // process error
[12:10] lz: })
[12:10] chjj: johnwards: it is not ideal though
[12:10] lz: ^^
[12:10] johnwards: just need it to stop falling on its arse during dev
[12:10] chjj: its there more as an "accidents happen" thing, rather than an actual error handling mechanism
[12:10] lz: oh
[12:11] lz: I use node-dev during dev
[12:11] lz: it's a supervisor that automatically restarts the node process
[12:11] stonebranch: hi there, I'm having some problems installing npm packages with deps using url to a github tarball. I'm using node v0.4.11 and npm 1.0.30
[12:11] lz: https://github.com/fgnass/node-dev
[12:12] necrodearia has joined the channel
[12:13] stonebranch: works fine locally but not on my no.de instance, anyone else experienced this problem?
[12:13] johnwards: thanks lz and chjj, both options look great
[12:14] topriddy1 has joined the channel
[12:14] stonebranch: Seems to be loading the package from npm registry instead of my specified url.
[12:15] lz: np… btw there was a heated debate on the mailing list on whether or not node should crash out on any unhandled error
[12:15] JKDD has joined the channel
[12:16] matjaz has joined the channel
[12:17] z6Dabrata has joined the channel
[12:17] lz: stonebranch: contact no.de/joyent support, they're usually very fast
[12:17] xerox: node.js rocks
[12:18] Cromulent has joined the channel
[12:19] stonebranch: lz: thanx, have been trying to get a hold of them the last couple of days on irc but no reply... I'll try the support page instead, thanx
[12:19] lz: good luck
[12:20] guidocalvano has joined the channel
[12:20] HardPhuc has joined the channel
[12:20] herbySk has joined the channel
[12:21] NetRoY has joined the channel
[12:23] AphelionZ has joined the channel
[12:23] dob_ has joined the channel
[12:23] zastaph has joined the channel
[12:25] jmar777 has joined the channel
[12:26] heavysixer has joined the channel
[12:27] z6Dabrata has joined the channel
[12:31] klokie has left the channel
[12:31] louissmit has joined the channel
[12:32] Margle has joined the channel
[12:32] DennisRasmussen has joined the channel
[12:33] erichynds has joined the channel
[12:34] fumanchu182 has joined the channel
[12:35] BillyBreen has joined the channel
[12:36] bicranial has joined the channel
[12:36] Margle has joined the channel
[12:41] Net_RoY has joined the channel
[12:42] cjm has joined the channel
[12:43] fangel has joined the channel
[12:44] boaz- has joined the channel
[12:44] meso has joined the channel
[12:44] xerox: > 'a boop de boop'.match('boop')
[12:44] xerox: [ 'boop', index: 2, input: 'a boop de boop' ]
[12:44] xerox: what kind of object is that, an array, with named entries??
[12:46] kurtzhong has joined the channel
[12:46] lz: v8>'a boop de boop'.match('boop');
[12:46] v8bot_: lz: ["boop"]
[12:47] xerox: I ran it in node
[12:47] lz: ahh
[12:48] Skomski has joined the channel
[12:49] er1c_ has joined the channel
[12:50] ceej has joined the channel
[12:50] lz: looks like it's just some sugar
[12:51] xerox: ah
[12:51] xerox: weird :)
[12:51] xerox: it's not a regexp object
[12:51] bzinger has joined the channel
[12:52] paz1200 has left the channel
[12:55] ph^ has joined the channel
[12:56] ericography has joined the channel
[12:57] k1ttty has joined the channel
[12:58] mehtryx has joined the channel
[13:01] N0va has joined the channel
[13:02] hdon- has joined the channel
[13:02] kurtzhong_ has joined the channel
[13:03] clockwize has joined the channel
[13:03] sirdancealot has joined the channel
[13:04] mike5w3c_ has joined the channel
[13:04] thalll has joined the channel
[13:04] yept has joined the channel
[13:05] rfay has joined the channel
[13:05] bicranial_ has joined the channel
[13:05] misterncw has joined the channel
[13:07] rootslab has joined the channel
[13:08] xetorthio has joined the channel
[13:08] hellp has joined the channel
[13:09] normanrichards has joined the channel
[13:10] c4milo has joined the channel
[13:10] cjroebuck has joined the channel
[13:11] CarterL has joined the channel
[13:12] viraj has joined the channel
[13:12] vlapan has joined the channel
[13:12] vlapan has joined the channel
[13:12] ditesh|cassini has joined the channel
[13:13] hydrozen has joined the channel
[13:14] virajssinha has joined the channel
[13:14] TheJH_phone has joined the channel
[13:15] JasonJS has joined the channel
[13:16] lepht has joined the channel
[13:16] schwab has joined the channel
[13:16] kriszyp has joined the channel
[13:17] davidsklar has joined the channel
[13:18] wmage has joined the channel
[13:18] markwubben has joined the channel
[13:19] nibblebot has joined the channel
[13:19] arg0s has joined the channel
[13:19] spcshpopr8r has joined the channel
[13:19] piscisaureus has joined the channel
[13:19] kurtzhong_ has joined the channel
[13:22] kurtzhong___ has joined the channel
[13:23] brolin has joined the channel
[13:24] matjaz has joined the channel
[13:24] MUILTFN has joined the channel
[13:24] socketio\test\88 has joined the channel
[13:25] fangel has joined the channel
[13:25] JakeyChan has joined the channel
[13:25] ksheurs has joined the channel
[13:26] kurtzhong_ has joined the channel
[13:27] benperth has joined the channel
[13:29] kurtzhong has joined the channel
[13:29] kurtzhong__ has joined the channel
[13:31] boehm has joined the channel
[13:33] hacksparrow has joined the channel
[13:33] arg0s has left the channel
[13:33] kurtzhong has joined the channel
[13:35] zmbmartin has joined the channel
[13:37] willwhite has joined the channel
[13:40] djcoin has joined the channel
[13:42] esmevane has joined the channel
[13:44] nibblebot has joined the channel
[13:44] zmbmartin has joined the channel
[13:45] ap3mantus has joined the channel
[13:45] adrianmg has joined the channel
[13:46] joshkehn has joined the channel
[13:46] stash1 has joined the channel
[13:47] ion- has joined the channel
[13:47] jslatts has joined the channel
[13:49] devongovett has joined the channel
[13:50] markatto has joined the channel
[13:50] thomblake has joined the channel
[13:50] kurtzhong has joined the channel
[13:50] thomblake has left the channel
[13:50] innociv has joined the channel
[13:51] d_low_ has joined the channel
[13:52] justicefries_ has joined the channel
[13:52] EyePulp has joined the channel
[13:52] Bigblah has joined the channel
[13:53] mandric has joined the channel
[13:53] jtsnow has joined the channel
[13:53] marijnh has joined the channel
[13:53] marijnh: hi guys
[13:54] joshkehn: marijnh: Hi
[13:54] marijnh: I'm trying to get node.js to work on my mac so I can use less server side
[13:54] marijnh: but i keep running into this error: throw e; // process.nextTick error, or 'error' event on first tick
[13:54] marijnh: hi joshkehn
[13:54] eee_c has joined the channel
[13:54] joshkehn: Can you post the code in a gist?
[13:54] miccolis has joined the channel
[13:55] jl_2 has joined the channel
[13:56] marijnh: joshkehn, https://gist.github.com/7fe634afc3035ab1304c
[13:56] marijnh: the weird thing is that it is working from the cli
[13:56] joshkehn: I mean can you post the actual code you're running.
[13:56] joshkehn: um. It looks like you're trying to run HTML or a template or something.
[13:56] marijnh: that would be the less node module, i'll put it into the same gist. just a sec
[13:57] joshkehn: New gist. So it doesn't get confusing. ;)
[13:57] daleharvey: xerox: var x = ['boop'];
[13:57] daleharvey: x.index = 2;
[13:58] marijnh: the files are named
[13:58] xerox: daleharvey: say what
[13:59] xerox: daleharvey: ha!
[13:59] xerox: that is weird
[13:59] daleharvey: its an array with user defined properties (which means its gonna break in various ways)
[13:59] xerox: except mine is built by the RegExp method 'match'
[14:00] xerox: or maybe it's the String method, hm, anyway, from the standard library
[14:00] marijnh: joshkehn, I think I found it
[14:01] marijnh: I'll report back in a sec, thanks thus far
[14:01] vkareh has joined the channel
[14:01] negrete has joined the channel
[14:02] sonnym has joined the channel
[14:02] jepefe has joined the channel
[14:02] vkareh has left the channel
[14:03] arg0s has joined the channel
[14:04] neilk_ has joined the channel
[14:05] d_low has joined the channel
[14:05] Poetro has joined the channel
[14:05] Poetro has joined the channel
[14:05] madsleejensen has joined the channel
[14:06] aelien27 has joined the channel
[14:06] mpavel has joined the channel
[14:07] metellus has joined the channel
[14:08] Lemon|mbp has joined the channel
[14:09] madsleejensen has joined the channel
[14:09] JakeyChan has joined the channel
[14:12] FireFly has joined the channel
[14:12] _baton_ has joined the channel
[14:12] dmkbot has joined the channel
[14:13] dmkbot has joined the channel
[14:13] FireFly|n900 has joined the channel
[14:13] dmkbot has joined the channel
[14:14] davidascher has joined the channel
[14:14] virajssinha has joined the channel
[14:14] dmkbot has joined the channel
[14:14] kurtzhong_ has joined the channel
[14:15] dmkbot has joined the channel
[14:15] Vertice has joined the channel
[14:15] dmkbot has joined the channel
[14:16] jslatts has joined the channel
[14:16] dmkbot has joined the channel
[14:16] blup has joined the channel
[14:17] dmkbot1 has joined the channel
[14:17] simenbrekken has joined the channel
[14:17] _baton_ has joined the channel
[14:17] unomi has joined the channel
[14:17] JakeyChan_ has joined the channel
[14:18] dmkbot has joined the channel
[14:18] bzinger has joined the channel
[14:18] dmkbot has joined the channel
[14:18] AphelionZ has joined the channel
[14:19] dmkbot has joined the channel
[14:19] kurtzhong_ has joined the channel
[14:20] dmkbot has joined the channel
[14:20] blup has joined the channel
[14:20] dmkbot has joined the channel
[14:21] dmkbot has joined the channel
[14:21] dmkbot has joined the channel
[14:22] blup_ has joined the channel
[14:22] mpavel has left the channel
[14:22] dmkbot has joined the channel
[14:22] _baton_ has joined the channel
[14:23] dmkbot has joined the channel
[14:23] brianc has joined the channel
[14:23] dmkbot has joined the channel
[14:24] Dulak has joined the channel
[14:24] blup has joined the channel
[14:24] dmkbot has joined the channel
[14:24] Dulak: Is there a way to run code prior to entering the repl? I'm getting sick of typing the same stuff into the repl over and over
[14:24] dmkbot has joined the channel
[14:25] fatjonny has joined the channel
[14:25] kmiyashiro has joined the channel
[14:25] pyrotechnick has joined the channel
[14:25] dmkbot has joined the channel
[14:26] dmkbot has joined the channel
[14:26] dmkbot has joined the channel
[14:27] dmkbot has joined the channel
[14:27] dmkbot has joined the channel
[14:28] aheckmann has joined the channel
[14:28] kkaefer has joined the channel
[14:28] kkaefer: hi
[14:28] softdrink has joined the channel
[14:28] kkaefer: is there any way to watch a directory for new/deleted/changed files?
[14:28] pyrotechnick: kkaefer: hello
[14:28] pyrotechnick: inotify
[14:28] kkaefer: well, in node
[14:28] dmkbot has joined the channel
[14:28] lz: dulak: you could try doing a require
[14:28] pyrotechnick: no
[14:28] kkaefer: also, inotify is linux only
[14:28] joshkehn: There is a watch file I think.
[14:28] kkaefer: yeah, I know
[14:28] pyrotechnick: kkaefer: you cant watch directories you have to poll
[14:28] kkaefer: but it watches a file, not a direcory
[14:29] joshkehn: Or you could do https://github.com/c4milo/node-inotify
[14:29] dmkbot has joined the channel
[14:29] pyrotechnick: not without an extension
[14:29] arg0s has joined the channel
[14:29] joshkehn: I'm not sure if that is applicable.
[14:29] kkaefer: partially
[14:29] kkaefer: but it's linux only
[14:29] joshkehn: kkaefer: What OS are you on?
[14:29] kkaefer: os x
[14:30] kkaefer: it'd have to have fsevents support
[14:30] RORgasm has joined the channel
[14:30] Dulak: lz: yes but that won't put the functions I want into the global scope. What I really want is to preload some functions but only for the repl. Like pythons $PYTHONSTARTUP env var.
[14:30] Dulak: lz: I was just wondering if node had anything like that
[14:30] joshkehn: http://en.wikipedia.org/wiki/Kqueue ?
[14:30] kurtzhong has joined the channel
[14:30] nibblebot has joined the channel
[14:31] kkaefer: http://en.wikipedia.org/wiki/FSEvents
[14:31] kmiyashiro: kkaefer: have you tried watchman?
[14:31] kkaefer: no
[14:32] kkaefer: thanks
[14:32] kkaefer: I'll have a look at it
[14:32] davidascher has joined the channel
[14:32] willwhite has joined the channel
[14:32] progrock: joshkehn: BTW, I'm jealous of you... dont know how abdly I wanna tell teh guys here to go fuck themselve.s.. somewhat wishing I had tried for a contract postiion, instead of a full time with salary
[14:33] lz: dulak: don't think node repl has that. you could try a macro app though so you don't need to type it every time
[14:33] kmiyashiro: https://github.com/dfjones/watchman
[14:34] Nathan_ has joined the channel
[14:34] thalll has joined the channel
[14:34] gnuanu has joined the channel
[14:34] spasquali has joined the channel
[14:34] joshkehn: progrock: Full time has benefits. It's all a balancing act.
[14:34] baudehlo has joined the channel
[14:35] spasquali: which version of TLS does recent stable node release support
[14:35] joshkehn: But yeah, sounds shitty.
[14:35] jakehow has joined the channel
[14:37] dylang has joined the channel
[14:37] kurtzhong has joined the channel
[14:38] sfoster has joined the channel
[14:39] Juan77 has joined the channel
[14:39] spasquali: anyone know which version of TLS the latest node build supports?
[14:40] ralphholzmann has joined the channel
[14:41] bnoordhuis: spasquali: tls 1.0
[14:42] kurtzhong_ has joined the channel
[14:42] zastaph has joined the channel
[14:42] spasquali: bnoordhuis: ah. thank you. seems that one has been compromised :(
[14:43] smtlaissezfaire has joined the channel
[14:43] sivy has joined the channel
[14:43] Dulak: Yeah it was. In 2002.
[14:43] Dulak: Only took 9 years for the rest of the world to notice.
[14:43] lz: what's so great about coffeescript?
[14:44] joshkehn: Lol
[14:44] joshkehn: lz: Same thing about JavaScript
[14:44] Industrim has joined the channel
[14:44] joshkehn: They took something people liked / is popular (Java / Coffee) and added Script to the end of it.
[14:44] jj0hns0n has joined the channel
[14:44] Dulak: lz: it's ok but the more I use it the less i like it. all the anon wrapping is giving me fits to do anything beyond the simple stuff.
[14:45] spasquali: Dulak: not exactly. A more useful attack is now available: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/
[14:45] lz: yea kinda figured
[14:46] davidcoallier has joined the channel
[14:46] spasquali: It may be useful for Node to support more secure versions of TLS
[14:47] spasquali: would probably be a selling point
[14:47] joshkehn: spasquali: May?
[14:47] spasquali: might?
[14:47] ivanfi has left the channel
[14:47] spasquali: would?
[14:47] ericmuyser has joined the channel
[14:47] joshkehn: It is
[14:47] tobie has joined the channel
[14:47] baudehlo: the problem is openssl support.
[14:48] sylvinus has joined the channel
[14:48] baudehlo: << The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and http://www.opensource.org/ toolkit implementing the http://www.netscape.com/eng/ssl3/ (SSL v2/v3) and http://www.ietf.org/html.charters/tls-charter.html (TLS v1) protocols >>
[14:49] xumx has joined the channel
[14:49] mbrevoort has joined the channel
[14:49] xumx: HI
[14:49] bnoordhuis: baudehlo: openssl 1.1.x has tls v1.1 support
[14:50] bnoordhuis: but we don't use it because almost no one has has openssl >= 1.1.0 installed
[14:50] baudehlo: yes I know.
[14:50] baudehlo: 1.0.1 is planning to get v1.2 IIRC
[14:50] stash1: bundle it as a dep like v8?
[14:50] baudehlo: but still, that's gonna take forever to get a wide user base
[14:50] k1ttty has joined the channel
[14:51] davidascher has joined the channel
[14:51] bnoordhuis: stash1: we already do (in the master branch anyway)
[14:51] stash1: aha.
[14:51] bnoordhuis: but only since quite recently
[14:51] robertfw has joined the channel
[14:52] JKDD has joined the channel
[14:52] fumanchu182 has joined the channel
[14:52] tobie: I there a best practice way to expose and access given modules in a package? I have a package `foo` that has a module located at foo/lib/bar.js which another package `baz` would need to access. is require('foo/lib/bar') fair game? Or is there somethinf I can do in package `foo` to make that cleaner.
[14:52] lukegalea has joined the channel
[14:52] baudehlo: yaSSL has TLS 1.2 too, but it's GPL.
[14:53] lz: openssl is bundled with node now?
[14:53] marcello3d has joined the channel
[14:53] `3rdEden: 0.6 will lz
[14:53] bnoordhuis: baudehlo: i'm pretty sure NSS supports it too
[14:54] bnoordhuis: but i don't even want to contemplate switching
[14:54] baudehlo: No I bet.
[14:54] marcello3d has joined the channel
[14:54] lz: interesting..
[14:54] aconbere has joined the channel
[14:54] bnoordhuis: lz: bundling openssl was a topic of some debate...
[14:55] bnoordhuis: but as a compromise we now include openssl but will build against the system openssl by default (on unices, windows doesn't have openssl installed anyway)
[14:56] netlemur_ has joined the channel
[14:56] lz: ic
[14:56] baudehlo: it was? I'm guessing the core devs have somewhere private to discuss stuff like this because I don't see anything on the node-dev mailing list...
[14:56] TheJH__phone has joined the channel
[14:56] TheJH_phone has joined the channel
[14:56] TheJH_phone has joined the channel
[14:56] stash1: office space?
[14:56] lz: good movie
[14:57] t0th has joined the channel
[14:58] jamescarr has joined the channel
[14:58] jamescarr: you know this is a silly question, and I'm sure someone will laugh...
[14:58] dob__ has joined the channel
[14:58] jamescarr: is anyone running node on... VMS?
[14:58] jtsnow has joined the channel
[14:58] bnoordhuis: baudehlo: private == irc in this case
[14:58] baudehlo: bnoordhuis: on this channel?
[14:58] bnoordhuis: baudehlo: no, probably in #libuv
[14:58] baudehlo: ah right.
[14:59] baudehlo: Just curious, as it does seem like a lot happens off the mailing list, which I'm not used to compared to other open source projects.
[14:59] freeformz has joined the channel
[14:59] ryanmcgrath has joined the channel
[14:59] jscheel has joined the channel
[15:00] bnoordhuis: baudehlo: it's all public, it's just that mailing lists are too slow a medium
[15:00] baudehlo: *nod*
[15:01] `3rdEden: bnoordhuis wasn't the discussion in a gh issue instead of irc?
[15:01] fearphage has joined the channel
[15:01] Me1000 has joined the channel
[15:01] bnoordhuis: that might've been the case too
[15:01] shanebo has joined the channel
[15:01] `3rdEden: =p
[15:02] baudehlo: might be nice to get a git hook to mail node-dev on checkins/issues etc.
[15:02] `3rdEden: it was discussed, somewhere :p
[15:02] edwardmsmith has joined the channel
[15:02] lz: god
[15:02] lz: that would flood my inbox
[15:03] lz: please don't :)
[15:03] baudehlo: that's why baby jesus invented email filters.
[15:03] bnoordhuis: well... i wake up each day to 20 or 30 new emails...
[15:03] jamescarr: what's a good fast file based noslq db? I'm looking for a simple key/value store that is meant for a temporary local cache
[15:04] neilk_ has joined the channel
[15:04] bnoordhuis: jamescarr: re vms: i don't think it'll even compile
[15:04] baudehlo: jamescarr: there seems to be a lot of talk about globaldb on the list, if you don't mind the license.
[15:04] lz: baudehlo: did you use to be a nigerian prince by any chance ..?
[15:04] jamescarr: bnoordhuis, yeah, I doubt it would ;S
[15:04] baudehlo: lol. No, but I work in the email industry.
[15:04] jamescarr: :S
[15:04] jamescarr: baudehlo, oh!?
[15:04] jakehow has joined the channel
[15:05] lz: nice
[15:05] jamescarr: baudehlo, maybe you can lend me a hand with my email woes
[15:05] vkareh has joined the channel
[15:05] baudehlo: is this like "Oh you work in computers? My Windows won't print" ??
[15:05] bnoordhuis: baudehlo: now that you mention it...
[15:05] lz: jamescarr: redis?
[15:06] jamescarr: baudehlo, lol... not that bad :)
[15:06] jamescarr: http://serverfault.com/questions/313441/deliverying-externally-hosted-email-from-server-with-same-domain-name
[15:06] herbySk has joined the channel
[15:06] jamescarr: Basically dealing with email being delivered to local mailboxes rather than an externally hosted setup only for emails with the same domain
[15:06] lz: baudehlo's wearing his "no I won't fix your computer t-shirt" today
[15:07] stonecobra has joined the channel
[15:07] baudehlo: jamescarr: no idea. Did you try rebooting it?
[15:07] bzinger has joined the channel
[15:07] tjholowaychuk has joined the channel
[15:07] jamescarr: baudehlo, that's "reboot admin" thinking there.
[15:07] jamescarr: it goes hand in hand with magical thinking ;)
[15:08] bnoordhuis: jamescarr: configure your mta properly
[15:08] hebz0rl has joined the channel
[15:08] pyrotechnick: have you tried turning it off and on again?
[15:08] jamescarr: bnoordhuis, ah
[15:08] baudehlo: yeah honestly it's dependant on a lot of things. Like how is mail getting delivered to the MTA? Via /path/to/sendmail? Via SMTP? Via IMAP?
[15:09] baudehlo: and then depends on what MTA you have.
[15:09] jamescarr: email is my kryptonite
[15:09] baudehlo: it'd be like asking your car mechanic to fix your airplane because both have engines in them.
[15:09] baudehlo: though you could just switch to Haraka, and then I could help you :)
[15:10] sub_pop has joined the channel
[15:10] jamescarr: I'm an awesome developer, I don't know shit about working with email servers
[15:10] jamescarr: but yeah, it's a postfix+dovecot setup apparently
[15:11] baudehlo: just setup Haraka and let it deliver for you :)
[15:11] jamescarr: :)
[15:11] jamescarr: I just looked at it... node.js based email server huh?
[15:11] jamescarr: nice
[15:11] bEEEviz has joined the channel
[15:13] dmkbot has joined the channel
[15:17] neilk_ has joined the channel
[15:17] plov has joined the channel
[15:17] rchavik has joined the channel
[15:17] plov: are there similar alternatives to nvm?
[15:20] tbranyen: tjholowaychuk: have you looked at the new syntax stuff approved for es6?
[15:20] tjholowaychuk: tbranyen hmm i dont think so
[15:20] tbranyen: what the hell is going on
[15:20] tbranyen: http://taliabale.tumblr.com/post/10432503399/the-future-of-javascript-is-here-approved-for
[15:20] DrMcKay has joined the channel
[15:21] tbranyen: what the hell is up with destructuring
[15:21] tjholowaychuk: i like let
[15:21] tbranyen: okay but there are like 10 things on that page
[15:21] tbranyen: thats 1
[15:21] voodootikigod has joined the channel
[15:21] tjholowaychuk: some of that stuff is ok, proxies are really lame, weak maps yay, defaults meh
[15:22] Venom_X has joined the channel
[15:22] tjholowaychuk: those modules are kinda lame too
[15:22] tjholowaychuk: i dont know the details on those, seems kinda useless
[15:22] tbranyen: yeah no idea how to consume them either
[15:22] tbranyen: the syntax is wonky
[15:23] mandric has joined the channel
[15:24] Nohryb has joined the channel
[15:24] Nohryb: .
[15:25] hornairs has joined the channel
[15:26] bnoordhuis: tbranyen: so js is becoming more like python and lisp
[15:27] bnoordhuis: some who would say that is not a wholly bad thing
[15:27] bnoordhuis: -who
[15:27] tbranyen: i just think the wrong people weighed in on new features
[15:27] jtrudeau has joined the channel
[15:27] gxdssoft has joined the channel
[15:28] tbranyen: the people who don't like javascript sought to change it, while the people who like her for who she is were stuck in the shadows
[15:28] kenperkins has joined the channel
[15:28] hkjels has joined the channel
[15:30] lazyshot has joined the channel
[15:32] softdrink: until language features are available in every browser i have to support, those features may as well not exist.
[15:32] tjholowaychuk: brendan will still use them. narcissus is great, it doesnt run on anything
[15:33] fangel has joined the channel
[15:33] jj0hns0n has joined the channel
[15:33] negrete has left the channel
[15:34] colinclark has joined the channel
[15:35] colinclark has joined the channel
[15:35] lz: anyone interested in an opencv module?
[15:35] DrMcKay: lz: yes yes!
[15:35] jakehow has joined the channel
[15:35] CIA-54: node: 03Fedor Indutny 07master * rb20c98e 10/ lib/_debugger.js : fix 'null' mirroring (+6 more commits...) - http://git.io/4bTpiA
[15:35] bnoordhuis: do people still use ape? https://github.com/APE-Project/ <- that ape
[15:35] bnoordhuis: i guess node kinda ate its lunch
[15:36] lz: and would like to/has skills to help collab on making one :)
[15:36] lz: drmckay: any experience?
[15:36] DrMcKay: lz: I can try to help :)
[15:36] baudehlo: tbranyen: Certainly out of those, "let" and default values would be nice.
[15:37] DrMcKay: bnoordhuis: I'm seeing it for the very first time, but I think it's sad
[15:37] lz: bnoordhuis: more like nowjs
[15:37] JakeyChan has joined the channel
[15:37] tbranyen: baudehlo: agreed with default values
[15:38] tbranyen: i like that
[15:38] nuba: bombworm: i'd say socket.io or juggernaut ate its lunch
[15:38] kurtzhong_ has joined the channel
[15:38] nuba: oops, bnoordhuis ^
[15:38] Vennril has joined the channel
[15:38] bnoordhuis: right, good point - node is only the foundation, of course
[15:39] neilk_ has joined the channel
[15:39] baudehlo: tbranyen: and iterators are nice for async coding.
[15:39] AphelionZ has joined the channel
[15:39] ion- has left the channel
[15:41] kei_: hi all
[15:42] lz: hey
[15:42] joshkehn: kei_: Hi
[15:42] kei_: is this the correct place to ask questions on express.js? :)
[15:42] tjholowaychuk: kei_ #express
[15:42] kei_: thanks!
[15:43] pyrotechnick has left the channel
[15:44] cronopio has joined the channel
[15:46] kevwil has joined the channel
[15:46] tekky has joined the channel
[15:46] caolanm has joined the channel
[15:47] stephank has joined the channel
[15:49] nrstott has joined the channel
[15:49] isaacs has joined the channel
[15:50] davidcoallier has joined the channel
[15:50] adrianmg has joined the channel
[15:50] markwubben has joined the channel
[15:51] gazumps has joined the channel
[15:51] t_ has joined the channel
[15:51] adambeynon has joined the channel
[15:51] adrianmg has left the channel
[15:52] Shrink has joined the channel
[15:53] Spion has joined the channel
[15:55] kurtzhong has joined the channel
[15:58] JaKWaC has joined the channel
[15:58] Frippe has joined the channel
[15:58] DarkGrey has joined the channel
[15:58] kurtzhong_ has joined the channel
[15:59] patcito has joined the channel
[15:59] kurtzhong has joined the channel
[16:00] AaronMT has joined the channel
[16:02] hkjels_ has joined the channel
[16:02] kurtzhong__ has joined the channel
[16:03] rurufufuss: is there a good guide on how to use jade with express?
[16:04] ph^ has joined the channel
[16:04] cjm has left the channel
[16:05] xerox: rurufufuss: you create your express app, by default it uses jade
[16:05] xerox: what do you need exactly?
[16:05] lz: well
[16:06] lz: by default you can use any supported template
[16:06] lz: the guide on http://expressjs.com/ aint that bad imo
[16:06] rurufufuss: was wondering how to put head stuff on things other than layout.jade, and have it appear on layout.jade
[16:07] lz: see view partials
[16:07] rurufufuss: whoops, that was worded derpedly
[16:07] piscisaureus_ has joined the channel
[16:08] rurufufuss: reworded, I'm trying to put a