[00:00] Fuu has joined the channel [00:00] quackslike: so if i want to do somethign like collect a bunch of potential errors that may happen from file IO functions is there a "proper way" to do that.. ? [00:00] gtramontina has joined the channel [00:01] Emmanuel` has joined the channel [00:01] quackslike: maybe i'm not being very clear.. [00:03] Brozilla_ has joined the channel [00:07] caolanm has joined the channel [00:07] ohtogo has joined the channel [00:11] sfoster has joined the channel [00:11] ekryski has joined the channel [00:11] isaacs: anyone in here use vmware to run windows? [00:12] insin: CODE, Y U BEHAVE DIFFERENT ON C9.IO? [00:12] djc123 has joined the channel [00:12] djc123: does anyone here have any experice with Cube for nodejs ? [00:14] AvianFlu has joined the channel [00:14] quackslike: ah. penny dropped. [00:15] isaacs: quackslike: i decorate error objects in fstream [00:16] isaacs: quackslike: the npm alpha that uses it prints those out on failure [00:16] r04r has joined the channel [00:17] Bobby_ has joined the channel [00:17] quackslike: isaacs - thanks, i will have a look at that. [00:18] tih-ra: Hey all! I finished the beta version of my module (alleup) Flexible way to resize and upload images to Amazon S3 or file system storages for Node.js (https://github.com/tih-ra/alleup). Is Possible to add different versions of the same image in cropped or resized variants. And now if there is willing to CONTRIBUTORS, you are welcome. I plan to add a upload not only image but other types of files with a prior processing on the se [00:18] tih-ra: rver. [00:18] tih-ra: Live test here: http://alleuptest.herokuapp.com/, Also please test! Thanks a lot! [00:18] isaacs: quackslike: https://github.com/isaacs/fstream/blob/master/lib/abstract.js#L63-82 [00:21] shenlok: hello, i'm looking to simulate logging into a website using node. Will the standard http module be sufficient for simulating a persistant login session? [00:21] shenlok: the site in question is your standard login-via-form affair [00:22] maxogden: shenlok: you should check out the request module, it will be a bit easier to do cookie based auth. also formidable module for dealing with form data [00:23] igl1 has joined the channel [00:23] shenlok: maxogden: is this the one you mean? https://github.com/mikeal/request [00:23] kickingvegas has joined the channel [00:23] sechrist: errbody uses that thing [00:23] maxogden: shenlok: yes by module i mean npm module e.g. http://search.npmjs.org/#/request [00:24] shenlok: huh, didn't know about the online npm search. thanks :) i'll look into those two modules [00:25] quackslike: isaacs: thank you. [00:25] francisl has joined the channel [00:30] dannyamey has joined the channel [00:32] replore_ has joined the channel [00:32] replore has joined the channel [00:36] eignerchris has joined the channel [00:36] danraz has joined the channel [00:37] danraz: I have an issue with Express middleware I 'd like to pick your brains [00:37] tjholowaychuk: danraz #express [00:37] scttnlsn has joined the channel [00:38] danraz: tjholowaychuk: thanks for the heads up [00:38] danraz: (I was just watching one of your videos, actually :-) ) [00:38] mattrobenolt has joined the channel [00:38] tjholowaychuk: moar people to help in there [00:38] cgray_ has joined the channel [00:38] danraz: but couldnt find an answer there [00:38] danraz: ok, joining there [00:38] danraz: thanks [00:39] mattrobenolt: Is it possible to grab all local variables at the point of an error for debugging? [00:39] cgray_ has joined the channel [00:39] mattrobenolt: Like, at the point of the error, to determine why the error was thrown. [00:39] jellosea has left the channel [00:39] mattrobenolt: Similar to stuff that node-inspector does, but somethign to be used on a live production system. [00:40] ryanfitz has joined the channel [00:43] oleyb has joined the channel [00:43] mcluskydodallas has joined the channel [00:43] FabricPaul has joined the channel [00:44] FabricPaul: hi guys - blatant self-promotion here, but we just released our Fibonacci benchmark for Fabric + node.js: http://fabric-engine.com/2011/11/benchmark-node-js-fibonacci-server/ [00:44] FabricPaul: just trying to get the word out, as we're starting closed alpha this week. Thx. [00:44] mattrobenolt: I have code now to traverse and show a pretty stack trace, but the trace is sometimes useless when the error comes from something unexpected. A variable was supposed to be a string, but was somehow an integer. It'd be nice to be able to inspect the variables at that point. Here's an example of my current parsing attempt: https://gist.github.com/b7242d7ff18d29f84b58 [00:46] xerox has joined the channel [00:46] xerox: is there a way to listen to all the events of an enventemitter [00:46] stantona has joined the channel [00:47] visudo has joined the channel [00:47] xerox: like emitter.on(function(event, args) { … }), say [00:48] jtsnow has joined the channel [00:48] zeade has joined the channel [00:49] dubenstein has joined the channel [00:50] dmojoryder has left the channel [00:50] jtsnow has joined the channel [00:50] sled has joined the channel [00:50] sled: hello :) [00:51] erichynds has joined the channel [00:53] Lingerance: xerox: Yes, read the docs [00:53] jakehow has joined the channel [00:53] xerox: Lingerance: is this new on 0.6 I'm still on 0.4 [00:54] Lingerance: Gah, sorry, that event didn't do what I thought it did [00:54] sled: has anyone experience with a haproxy + nodejs setup? [00:55] sled: I'm having some mysterious trouble :) [00:55] sled: every time a TCP/HTTP Retransmission occurs, the RX rate drops to zero on the client [00:55] sled: for 5-10 secs [00:56] xerox: Lingerance: no worries! [00:57] Lingerance: Try this: EventEmitter.prototype.emit = (function(emit) { var self = this; return function() { var a = Array.prototype.slice(arguments, 0); emit.apply(self, ['emit'].concat(a)); emit.apply(self, a); }})(EventEmitter.prototype.emit) [00:58] Lingerance: That should over-write the emit function and hijack it to make it call the "emit" event on every emit. [00:59] sdwrage has joined the channel [00:59] AvianFlu has joined the channel [01:00] Diaoer has joined the channel [01:01] neurodrone has joined the channel [01:01] jsurfer has joined the channel [01:03] sdwrage has joined the channel [01:05] EhevuTov has joined the channel [01:06] shaggydo197 has joined the channel [01:07] enmand has joined the channel [01:07] kazupon has joined the channel [01:08] hackband has joined the channel [01:09] truedat101 has joined the channel [01:15] CIA-109: node: 03Ingmar Runge 07v0.6 * r2603832 10/ (src/node_crypto.cc test/simple/test-crypto-ecb.js): [01:15] CIA-109: node: node_crypto: use EVP_Cipher*_ex methods, not 'obsolete' versions [01:15] CIA-109: node: This also fixes an issue that made blowfish's ECB mode unusable. - http://git.io/s1ckkg [01:15] CIA-109: node: 03Russ Bradberry 07v0.6 * r754e23d 10/ src/node.cc : fixed problem with rss memory reporting incorrect number over 4 gigs - http://git.io/RAeBoQ [01:16] stantona has joined the channel [01:17] AvianFlu_ has joined the channel [01:18] jbraffoul has joined the channel [01:19] brianseeders has joined the channel [01:19] neoesque has joined the channel [01:21] jryans has joined the channel [01:23] jryans has left the channel [01:24] ChaoWang has joined the channel [01:26] abraxas has joined the channel [01:27] TN has joined the channel [01:29] shaggydog97 has joined the channel [01:29] shaggydog97_ has joined the channel [01:29] jbraffoul has joined the channel [01:30] jxie has joined the channel [01:30] dthompso99 has joined the channel [01:31] boltR has joined the channel [01:31] CIA-109: node: 03Ben Noordhuis 07master * rbbd976b 10/ (common.gypi deps/uv/uv.gyp node.gyp): [01:31] CIA-109: node: build: always compile with large file support [01:31] CIA-109: node: Fixes a nasty sizeof(struct stat) mismatch bug that caused random crashes and [01:31] CIA-109: node: silent memory corruption. - http://git.io/YA3ERw [01:31] davidbanham has joined the channel [01:33] matin has joined the channel [01:33] matin: hello [01:33] matin: is anyone experienced with write streams? [01:34] TooTallNate: matin: what's your question? [01:34] matin: TooTallNate I'm trying to make a chat log in node.js [01:34] matin: it creates a randomized title.txt [01:34] matin: file [01:35] matin: TooTallNate: it creates the file [01:35] TooTallNate has joined the channel [01:35] TooTallNate: matin: ok [01:36] matin: TooTallNate: but it doesn't write to the file [01:36] TooTallNate: gist some code [01:36] matin: do you mind taking a look at the code? [01:36] pauls1 has joined the channel [01:36] matin: ok [01:36] matin: https://gist.github.com/1f8de8ffafbdfe9b5cb6 [01:37] joshsmith: I'm using Mikeal's request to POST some parameters [01:37] joshsmith: how should I be passing in the params? [01:37] joshsmith: as JSON? [01:37] icewhite has joined the channel [01:38] dgathright has joined the channel [01:38] tjholowaychuk: joshsmith it's kinda confusing, i think you have to do json: {} instead of body: {} or something [01:38] tjholowaychuk: or maybe that was for parsing the json response body [01:38] tjholowaychuk: json: true or something [01:38] TooTallNate: matin: so being a log, i'd think you wanna change the `stream` to be append-only [01:38] TooTallNate: that, or just open/define the stream once at the top of the file [01:38] TooTallNate: also, you don't have to wait for 'open' to begin writing [01:39] joshsmith: tjholowaychuk: hmm...that is confusing [01:39] matin: ok [01:39] matin: let me try that [01:39] TooTallNate: the WriteStream will buffer write calls until they're flushed [01:39] TooTallNate: matin: that said, does the console.log() call below output correctly? [01:39] k1ttty has joined the channel [01:39] matin: yeah [01:40] killfill: hm.. i saw when node 0.6 was release, ppls played with the cluster thungy, to do some of thouse basic benchs with ab, with and without forking the process '#cpu-times'... [01:40] joshsmith: tjholowaychuk: maybe it's json:json? [01:40] killfill: now cannot find thouse example values.. anyone nows where to find thouse? [01:41] AvianFlu_ has joined the channel [01:41] joshsmith: I'm trying that and it simply isn't POSTing the data [01:41] willwh: joshsmith: haha :) [01:41] willwh: I just knocked out a VERY quick example of that today [01:41] willwh: real basic [01:41] willwh: but [01:41] killfill: somehow, on my osx and freebsd box, cannot make a usefull test.. :S its like node chokes... (or ab...) [01:41] willwh: http://github.com/netrowillh/golive_node_example :) [01:41] themiddleman_itv has joined the channel [01:42] willwh: for our rest api - but should help you out :) [01:42] joshkehn has joined the channel [01:42] joshkehn has left the channel [01:42] tjholowaychuk: json: true and you have to stringify it? [01:42] tjholowaychuk: :s [01:43] joshsmith: willwh: that's sort of what I was doing before [01:43] joshsmith: should I be using uri:uri instead of url:url? [01:43] te-brian2 has joined the channel [01:43] mandric has joined the channel [01:43] mikeal has joined the channel [01:44] willwh: tjholowaychuk: maybe don't need to do that [01:44] willwh: shall test ;] [01:44] ditesh|cassini has joined the channel [01:45] jaequery has joined the channel [01:45] matin: thanks TooTallNate [01:45] matin: i thought that's what i had done originally [01:45] TooTallNate: matin: no prob [01:45] matin: apparently not :P [01:45] TooTallNate: got it working? [01:45] matin: yep [01:45] TooTallNate: coo [01:45] matin: nowjs is pretty badass haha [01:46] TooTallNate: meh, i stick with pure socket.io personally [01:47] matin: meh [01:47] phiggins has joined the channel [01:47] matin: i used it to build another chat [01:47] matin: so far, I'm impressed with now [01:47] joshsmith: willwh: I'm able to POST (sort of), but the parameters are not going through at all [01:47] themiddleman has joined the channel [01:48] willwh: hook.io <3 :) [01:49] robertj: any sandboxing gurus handy to shoot the breeze re perspective brokering and supervising forks? [01:50] nixer1102 has joined the channel [01:51] joshsmith: willwh: any thoughts? I can gist my code and show you what's going on here [01:51] neoesque has joined the channel [01:51] jtsnow has joined the channel [01:52] willwh: sure [01:52] willwh: just about to cook dinner so may have to get back to you :) [01:52] jldbasa has joined the channel [01:53] mattpardee has joined the channel [01:53] joshsmith: willwh: https://gist.github.com/1407607 [01:54] secoif has joined the channel [01:54] joshsmith: it's functional and will post a new wall post [01:55] joshsmith: but without any of the parameters [01:55] sdwrage has joined the channel [01:58] killfill: http://pastebin.com/uqkCMy21 <--- i get 2400 req/s in the first bench of http_simple_bench.sh [01:58] ircdearia has joined the channel [01:58] joshsmith: ahh I see what's happening [01:58] killfill: is there a place where ppl share their results?.. :P [02:02] tjholowaychuk: joshsmith superagent isnt 100% done but you could use that. request.post(url).data(obj).end(callback) [02:02] tjholowaychuk: defaults objects to json [02:03] joshsmith: tjholowaychuk: I think I got it figured out [02:03] joshsmith: it's more complex than I'd like [02:03] tjholowaychuk: what did you have to do? [02:03] joshsmith: well, I have to stringify that actions JSON [02:03] tjholowaychuk: hm [02:04] joshsmith: let me show you [02:05] joshsmith: https://gist.github.com/1407607 [02:05] secoif_ has joined the channel [02:05] joshsmith: lines 99-103 [02:06] joshsmith: it's the only array of objects expected by facebook [02:06] joshsmith: so it's a little messy, but since it's just the one, I'm okay with that [02:07] tjholowaychuk: not very nice for a high level api though [02:07] joshsmith: you mean for my API? [02:07] tjholowaychuk: no no [02:07] tjholowaychuk: that's fine, it's all hidden [02:07] tjholowaychuk: like you say [02:07] joshsmith: oh, the way they're handling it? [02:08] joshsmith: it's kinda annoying [02:08] boltR has joined the channel [02:09] AvianFlu_ has joined the channel [02:10] joshsmith: so glad I got this working though [02:12] AvianFlu has joined the channel [02:12] joshsmith: yeah, this is turning out to be pretty sweet [02:12] joshsmith: if you're using mongoose-auth and Facebook heavily, this is a nice way to just use an access_token to do GETs and POSTs to the graph API [02:13] joshsmith: the other libraries out there require having the FB session, but that's a lot of work if you have an access_token with offline_access and publish_stream perms [02:13] freewil has joined the channel [02:13] BillyBreen has joined the channel [02:14] rails_noob has joined the channel [02:14] stelcheck has joined the channel [02:15] joshsmith: tjholowaychuk: look at all the fancy stuff I can do: http://i.imgur.com/vXWFQ.png [02:16] tjholowaychuk: woot [02:16] dubenstein has joined the channel [02:17] benvie has joined the channel [02:17] jtsnow has joined the channel [02:18] arpunk has joined the channel [02:18] perezd_ has joined the channel [02:18] secoif: so, after using var hash = crypto.createHash, I can only call hash.update for certain methods… eg, md5 works, but md2 does not [02:18] secoif: anyone know why [02:19] secoif: I assume it's something to do with the way the specific crypto algorithms work [02:19] SteveDekorte has joined the channel [02:20] raincole has joined the channel [02:20] SteveDekorte: anyone here tried out emscripten with node? [02:22] boehm has joined the channel [02:22] dthompso99 has left the channel [02:24] sdwrage has joined the channel [02:24] mikeal has joined the channel [02:25] Carter has joined the channel [02:25] devongovett has joined the channel [02:26] stantona has joined the channel [02:26] avih has joined the channel [02:26] cgray_ has joined the channel [02:29] AD7six has joined the channel [02:29] Me1000 has joined the channel [02:30] CarterL has joined the channel [02:30] bnoordhuis: secoif: can you be more specific? [02:31] gavin_huang has joined the channel [02:31] perezd has joined the channel [02:31] chrisvwebdev has joined the channel [02:31] secoif: bnoordhuis this is to do with that silly file hashing lib i was playing with the other day [02:31] benvie: it'd be more accurate to ask if X library/functionality created via emscripted is known to work in node [02:31] secoif: bnoordhuis after each chunk of the file stream, I update the hash [02:32] secoif: bnoordhuis but in my tests so far, that only works for md5, sha1, and sha256 [02:32] secoif: otherwise i get an exception when I try update the hash [02:32] chrisvwebdev has left the channel [02:32] bnoordhuis: secoif: i'm actually kind of surprised that your openssl supports md2 [02:33] asoltys has joined the channel [02:34] secoif: bnoordhuis I just noticed it in the openssl help as a digest method [02:34] secoif: bnoordhuis also, sha256 isnt' in that list, yet it still works, so it's possible the binary on my path isnt' what node is using [02:35] bnoordhuis: secoif: i suspect it's something like that [02:35] secoif: ok [02:36] bnoordhuis: secoif: normally, node prints a warning when you tried to use an unsupported digest method [02:36] ekryski has joined the channel [02:37] secoif: bnoordhuis what's another method that isn't md5/sha1/sha256 [02:37] secoif: and where can I look them up [02:37] bnoordhuis: secoif: md4 [02:37] stantona has joined the channel [02:38] secoif: k. [02:38] secoif: cool md4 worked. [02:38] SteveDekorte has left the channel [02:40] miguel has joined the channel [02:40] ben_alman has joined the channel [02:40] secoif: bnoordhuis http://nodejs.org/docs/v0.6.3/api/all.html#crypto.createHash I think you're right, the update probably didn't work because of unsupported digest method… don't see any way to catch that before doing an update though [02:41] Diaoer has joined the channel [02:42] bnoordhuis: secoif: well, come to think of it - it's kind of odd that crypto prints an error instead of throwing an exception [02:42] bnoordhuis: if you open an issue, i'll look into it [02:42] secoif: bnoordhuis will do. thanks [02:42] a_suenami has joined the channel [02:42] davidascher has joined the channel [02:42] bnoordhuis: a fix probably won't land on 0.6 btw, it being an api change [02:44] v8bot_ has joined the channel [02:44] adrianmg has joined the channel [02:45] adrianmg has left the channel [02:46] JakeyChan has joined the channel [02:47] Diaoer has joined the channel [02:48] diogogmt has joined the channel [02:48] secoif: no problem [02:48] secoif: perhaps just a mention in the docs [02:48] secoif: would be sufficient. [02:49] secoif: bnoordhuis did you get a chance to have a look at that lib? https://github.com/secoif/hash_file recall my hash calculating was rather slow [02:50] glxc has joined the channel [02:50] bnoordhuis: secoif: sorry no, haven't had time yet [02:50] towski has joined the channel [02:50] secoif: bnoordhuis no worries [02:50] secoif: bnoordhuis thanks [02:51] JakeyChan: hi ? basic question for node.js [02:51] JakeyChan: why I can not assign variable to exports ? [02:51] JakeyChan: I can change it with like that: exports.babala = function () {}; [02:52] JakeyChan: but can not exports = {sdsa: function () {}}; [02:52] tonymilne: module.exports = { foo: function() { } }; [02:52] benvie: try module.exports [02:52] JakeyChan: but [02:52] JakeyChan: why ? [02:52] benvie: becausw [02:52] clonn has joined the channel [02:53] tonymilne: its the correct syntax. [02:53] tonymilne: for what you're trying to do. [02:53] clonn: :D [02:55] justinTNT has joined the channel [02:55] styol has joined the channel [02:56] JakeyChan: no body can explain it for me ? [02:56] JakeyChan: :) [02:57] descipher has joined the channel [02:58] stu64 has joined the channel [02:58] benvie: module.js in node source code [02:58] benvie: line 37 `function Module(id, parent) {` [02:58] githogori has joined the channel [02:58] benvie: line 47 `module.exports = Module;` [02:58] clonn: @ JakeyChan explain what? [02:59] josephg has joined the channel [02:59] benvie: and line 39 `this.exports = {};` [02:59] stu64 has joined the channel [02:59] neoesque has joined the channel [02:59] benvie: this being the module, which isn't the same as the local scope binding [03:00] descipher has joined the channel [03:00] harthur has joined the channel [03:01] joemccann has joined the channel [03:01] benvie: oh and also `global.exports = self.exports;` on line 416 is only defined in the root module which won't work in the REPL or a submodule [03:02] JakeyChan: benvie: let me see [03:02] JakeyChan: 3 seconds [03:02] stantona has joined the channel [03:03] secoif: bnoordhuis issue created. https://github.com/joyent/node/issues/2227 [03:05] indexzero has joined the channel [03:05] jocafa has joined the channel [03:05] ryanfitz has joined the channel [03:06] beseku has joined the channel [03:07] JakeyChan: benvie: everything is here :D [03:07] JakeyChan: benvie: I can find out answer ! [03:07] benvie: yeah the node source is very approachable [03:07] benvie: the libs [03:08] JakeyChan: benvie: we also can learn code style from libs [03:08] JakeyChan: benvie: NICE! [03:09] benvie: yeah they follow the v8 code standards and run the code through linter/formatter [03:09] benvie: so it's very clean [03:11] johnnywengluu: tjholowaychuk: could should.js be used in production too to validate that user input is not empty, is string, is email etc? [03:11] glxc: hello [03:11] tjholowaychuk: johnnywengluu i guess you kinda could [03:11] tjholowaychuk: i wouldn't [03:11] tjholowaychuk: im sure there are nicer tools for that [03:11] glxc: is this caused by garbage collection? - http://nd.edu/~rmccune/n10kc100h9.png [03:11] johnnywengluu: tjholowaychuk: why? [03:11] tjholowaychuk: it's just not really meant for validation [03:12] johnnywengluu: tjholowaychuk: i c [03:12] johnnywengluu: i thought about using this one https://github.com/chriso/node-validator [03:12] johnnywengluu: but i like should's syntax more [03:12] johnnywengluu: :/ [03:12] glxc: how could i know if something is caused by garbage collection? [03:12] glxc: what is garbage collection [03:13] johnnywengluu: value.should.be.email // done [03:13] tjholowaychuk: johnnywengluu https://gist.github.com/1407820 [03:13] tjholowaychuk: i have a half-finished util that looks kinda like that [03:13] glxc: how often do people realize how lazy they are? [03:13] johnnywengluu: wow [03:13] benvie: there's a node module that allows you to set callbacks for when an object is about to be garbage collected [03:13] tjholowaychuk: the callback is nice because then you can have async stuff [03:13] benvie: by V8 [03:13] johnnywengluu: tjholowaychuk: when will it be ready? [03:13] tjholowaychuk: i dunno, i wrote it liek a year ago [03:13] tjholowaychuk: just never really needed/finished it [03:13] johnnywengluu: tjholowaychuk: i guess i shouldn't wait for it? [03:14] tjholowaychuk: nope [03:14] MatthewS has joined the channel [03:14] johnnywengluu: tjholowaychuk: btw are you working on client side express? [03:14] tjholowaychuk: not actively [03:14] johnnywengluu: okay .. guess you have a lot of works already [03:14] glxc: benvie + tj thank you [03:15] rachet has joined the channel [03:15] benvie: https://github.com/billywhizz/node-gc [03:15] jocafa has joined the channel [03:15] benvie: er not that one [03:15] r04r has joined the channel [03:16] benvie: https://github.com/TooTallNate/node-weak [03:16] xeodox: Is it better to render the template using the server? Or using javsacript (like backbone.js) [03:17] benvie: initial load is faster if you send as pre-rendered html [03:18] tjholowaychuk: and you can cache the fuck out of it [03:18] minerale has joined the channel [03:18] tjholowaychuk: via varnish <3 [03:18] benvie: yeah that too. Cache chunks or whole pages, bandwidth is cheap [03:18] xeodox: so it's OK to render through server, and then use backbone.js for rendering little stuff? (combining ) [03:18] benvie: yeah that's ideal [03:18] chjj: benvie: wasnt always true, back in my day i had to walk to school in the rain with no bandwidth [03:19] benvie: hah well not so these days. Compared to any other resources [03:19] xeodox: Is EJS the best template engine for backbone.js ? (Because the syntax is similar to underscore_'s template engine..right?) [03:19] benvie: and either way, you sacrifice performance if you do it any other way [03:19] fearphage has joined the channel [03:19] chjj: bandwidth and webscale are everywhere [03:19] xeodox: I was thinking about Jade, but then realized that EJS has the same syntax as underscore's template engine [03:20] tjholowaychuk: xeodox yeah i think it's similar to underscore's [03:20] tjholowaychuk: which is just john resig's thing [03:20] benvie: client side performance accounts for the majority of the total rendering time [03:20] xeodox: tjholowaychuk: if I plan on using backbone.js heavily, then I should probably use EJS instead of Jade, right/ [03:20] tjholowaychuk: whatever you want [03:20] tjholowaychuk: ejs is sufficient for client-side templates i'd say [03:21] tjholowaychuk: they're typically relatively small [03:21] tjholowaychuk: so the noise is ok [03:21] xeodox: you know what would be awesome…if _.template understood <% partial %> [03:21] tjholowaychuk: haha well it's like 3 lines [03:21] tjholowaychuk: what do you expect :p [03:21] xeodox: lol [03:22] johnnywengluu: tjholowaychuk: are you working on something new currently or maintaing the current ones? [03:22] issackelly_ has joined the channel [03:22] tjholowaychuk: for what? [03:22] pixel13 has joined the channel [03:22] pixel13 has left the channel [03:22] johnnywengluu: tjholowaychuk: everything [03:22] tjholowaychuk: oh [03:22] tjholowaychuk: haha [03:22] tjholowaychuk: well im working on our app(s) [03:22] tjholowaychuk: but i have quite a few new things on the go [03:22] johnnywengluu: kinda like waiting for Apple products [03:23] johnnywengluu: I even like new coding frameworks/libs more [03:23] xeodox: tjholowaychuk: do you mainly work on open source stuff ? do you ever work on anything NOT open source? [03:23] tjholowaychuk: xeodox yeah lots [03:23] tjholowaychuk: we have two large apps [03:23] jimubao has joined the channel [03:23] johnnywengluu: tjholowaychuk: what kind of apps? [03:24] chjj: i like how this irc conversation turned into an interview [03:24] tjholowaychuk: hahahahah [03:24] johnnywengluu: http://visionmedia.com/ ? [03:24] noazark has left the channel [03:24] tjholowaychuk: irc is distracting, i gotta work on the book [03:24] tjholowaychuk: nope [03:24] tjholowaychuk: i dont have a site anymore [03:24] tjholowaychuk: took it down a few years ago [03:24] johnnywengluu: irc is better than facebook [03:25] johnnywengluu: here we talk about creative things .. not boasting with what we ate and who we have been with all day long :P [03:25] r04r has joined the channel [03:26] postwait has joined the channel [03:26] jocafa: lol guize i just had a burrito [03:26] jocafa: ¬¬ [03:26] benvie: was good? [03:27] Dulak: Lady Gaga said I'm the best js guy she ever met, right before we hit mcdonald's. [03:27] Dulak: ...then I woke up. [03:28] Dulak: That wasn't even funny was it? More code, less chat. [03:28] chjj: you dream about mcdonald's? [03:28] Dulak: Maybe [03:28] rchavik has joined the channel [03:28] rchavik has joined the channel [03:29] torm3nt has joined the channel [03:30] davidascher has joined the channel [03:31] stantona has joined the channel [03:33] _unary has joined the channel [03:34] confoocious has joined the channel [03:38] jacobolus has joined the channel [03:39] efbenson has joined the channel [03:39] JakeyChan has joined the channel [03:40] jakehow has joined the channel [03:40] olegp has joined the channel [03:41] davidascher has joined the channel [03:43] swaj: anybody here use joyent's no.de service? if so, is there any way to update node? the latest stable version on my machine is 0.4.11, and I'd like to update it to 0.6.3 [03:45] luxigo: lol http://nodejs.org/#download [03:45] aioue has joined the channel [03:46] sdwrage has joined the channel [03:46] swaj: I know I can build it myself, but there are a lot of built-in processes and such [03:46] tonymilne: http://wiki.joyent.com/display/node/Setting+the+Node.js+Version [03:46] benvie: no.de is such an awesome domain [03:46] tonymilne: if you've read everything on that link, ask again and someone from Joyent will probably gladly help you. [03:48] clonn has joined the channel [03:48] sdwrage has joined the channel [03:50] cgray__ has joined the channel [03:50] swaj: tonymilne: I understand the article, but the issue is, even after doing a "pkgin update", the latest node version seems to be 0.4.11 (or 0.5.3 for unstable stuff) [03:50] swaj: unless, of course, I build it myself [03:50] CaesarC has joined the channel [03:51] tonymilne: swaj ah bummer :( hope you get it sorted soon! [03:52] ciju has joined the channel [03:53] suzuken has joined the channel [03:54] aioue has joined the channel [03:55] stantona has joined the channel [03:56] jamescarr_: har har har [03:56] jamescarr_: As my team navigated these waters, they would occasionally ask things like: "So this one guy says the only way to do this is with a bijective map on a semi-algebra, whatever the hell that is, and this other guy says to use a library which doesn't have docs and didn't exist until last week and that he wrote. The first guy and the second guy seem to hate each other. What's the Scala way of sending an HTTP request to a server?" [03:57] swaj: I read that, too :P [03:57] benvie: that could be reformed into a "so these two developers walked into a bar..." joke [03:57] swaj: the comments on that blog post by stephen seem to prove what he said about the scala community [03:59] jerrysv_ has joined the channel [04:02] rioter: link to the article? [04:03] tonymilne: http://blog.joda.org/2011/11/real-life-scala-feedback-from-yammer.html [04:04] MatthewS has joined the channel [04:07] rioter: thanks [04:08] zackattack: Anyone want to be my person Node.js ttuor? For pay [04:10] dgathright has joined the channel [04:11] rwasielewski has joined the channel [04:11] matin has joined the channel [04:11] josephg: Anyone know if there are plans to get typed arrays into node? [04:14] RobWC has joined the channel [04:15] jocafa1 has joined the channel [04:15] tjholowaychuk: josephg pretty sure 0.6.x has them already [04:17] zackattack: what's a typed array? [04:17] zackattack: nvm [04:18] zackattack: https://developer.mozilla.org/en/JavaScript_typed_arrays [04:18] gavin_huang: tjholowaychuk, mocha is great. I'm wondering if it makes sense that for browsers, instead of using html as the test runner, we set up a server in node? maybe something like "mocha server", then you can run tests directly by access the server from the browser. [04:18] tjholowaychuk: thanks! [04:18] tjholowaychuk: I didn't want to couple the browser stuff to node [04:19] tjholowaychuk: if your client tests do happen to run against a node app you can just boot your app up [04:19] aioue has joined the channel [04:19] tjholowaychuk: and use a template / fs.readdir to serve the files etc [04:19] tjholowaychuk: whatever works [04:19] madhums has joined the channel [04:20] brainproxy: gavin_huang: I'm been doing something like that, but with jasmine bdd [04:20] brainproxy: going to switch to mocha when I have time [04:20] stantona has joined the channel [04:20] tjholowaychuk: I went down that road with jspec [04:20] gavin_huang: it's pure client side, doesn't run against node. i get the idea from buster.js. have you ever checked that?? [04:20] brainproxy: using the zappa lib, I spin up a server that delivers the spec suites and sources to run them against to browsers [04:20] tjholowaychuk: and it was a long dark opinionated road [04:21] maxogden: have yall seen http://testling.com/ [04:21] brainproxy: the specs get run in frames, so if an individual spec changes, I can just have the browser reload the frame [04:21] brainproxy: not all the suites [04:21] brainproxy: socket.io is used to signal whether sources and/or specs have changed [04:22] brainproxy: but i will admit, probably like tjholowaychuk experienced, it's a bit of a mixed bag [04:22] gavin_huang: brainproxy, does jasmine have such server util? [04:22] brainproxy: gavin_huang: no, i wrote one [04:22] gavin_huang: brainproxy, is it on github? [04:22] brainproxy: but it jasmine-node does let you run specs on the server [04:23] brainproxy: so mine does a combo thing -- runs "isometric" suites/specs on the server and delivers the same ones to the browser [04:23] brainproxy: and watches the file system, to kick of continous rebuilds and re-testing [04:23] tjholowaychuk: with jspec i had [04:23] tjholowaychuk: jspec --browsers safari,ff,chrome etc [04:24] tjholowaychuk: reporting to the term [04:24] brainproxy: but .... the whole thing is pretty brittle, i have to admit [04:24] tjholowaychuk: but yeah.. fuck that [04:24] brainproxy: https://github.com/michaelsbradleyjr/halfbake [04:24] brainproxy: it really works :) but it's undocumented, sorry [04:25] SubStack: I hate net.createConnection(). [04:25] brainproxy: i want to write a next gen version which uses my dataflow library "under the hood" in order to support a much more flexible setup, and drive the builds/tests with a dsl-like config file [04:26] brainproxy: but I'm actually using "halfbake" to facilitate dev of said dataflow lib, so .... the next gen thing is some ways off :p [04:26] tomlion has joined the channel [04:27] brainproxy: gavin_huang: sorry, if you missed the link in the midst of my rambling, https://github.com/michaelsbradleyjr/halfbake [04:27] silky has joined the channel [04:28] gavin_huang: brainproxy, i'm looking at it. sweet. :) [04:28] tjholowaychuk: y u ramble [04:28] tjholowaychuk: quick show of hands, who hates Manning's cover art? [04:29] tjholowaychuk: ACTION hand [04:29] brainproxy: tjholowaychuk: character flaw, don't make fun of me, i'm sensitive [04:29] danraz: hand [04:29] joshkehn has joined the channel [04:30] jstash has joined the channel [04:31] aioue has joined the channel [04:31] danraz: the node.js in action cover looks like dr. jekyll [04:32] danraz: or hyde [04:32] danraz: which one is the evil one? [04:32] tiagobutzke has joined the channel [04:32] tjholowaychuk: ahahahaha [04:32] tjholowaychuk: yeah it makes me angry [04:33] tjholowaychuk: i told myself i would write one last book [04:33] tjholowaychuk: but i really dislike the covers [04:33] danraz: though, I really like the Manning books, so... [04:33] josephg: So: performance question for you guys: I'm converting some C code (a physics engine) into javascript [04:33] brainproxy: tjholowaychuk: you're set in pub'ing through Manning [04:33] tjholowaychuk: I dont know, I get the whole unified branding thing [04:33] tjholowaychuk: but at the same time it's brutal branding [04:34] brainproxy: why manning vs. pragprog vs. oreilly? [04:34] brainproxy: or some similar publisher [04:34] ovaillancourt has joined the channel [04:35] tjholowaychuk: Mike started it with manning I joined in later [04:35] tjholowaychuk: well not really later but after the proposal [04:35] tjholowaychuk: oreilly has cool animals though [04:35] danraz: just ask them to change the cover to this one [04:35] danraz: http://www.prlog.org/11409306-the-creation-of-adam.jpg [04:35] tjholowaychuk: ahahaha [04:36] tjholowaychuk: https://assets0.github.com/img/89d8e6624fb9153c40bd11ae7592a74e058d873e?repo=&url=http%3A%2F%2Fsphotos.ak.fbcdn.net%2Fhphotos-ak-snc3%2Fhs234.snc3%2F22173_446973930292_559060292_10921426_7238463_n.jpg&path= [04:36] tonymilne: TOBI! [04:36] danraz: haha [04:36] danraz: that's the google hat [04:36] danraz: for noobies [04:36] tjholowaychuk: tobiii [04:36] tonymilne: TJ, i always imagine you living in a house with pets everywhere!!! (base on all your test cases, etc) [04:37] tjholowaychuk: pretty much [04:37] josephg: danraz: that hat is much older than google… (and the google version says 'noogler' on the front' [04:37] josephg: ) [04:37] brainproxy: maybe that should be node's mascot [04:37] danraz: was there a world before google? [04:37] luke` has joined the channel [04:37] danraz: dude, what's up with this art? http://www.manning.com/hepper/ [04:38] tjholowaychuk: http://www.manning.com/huettermann [04:38] tjholowaychuk: LOVE that gradient [04:38] tjholowaychuk: amazing [04:38] danraz: lol [04:39] tjholowaychuk: i dont even know who our person is [04:39] tjholowaychuk: "the manning book with that ... guy.. on it..." [04:39] nerdy has joined the channel [04:40] danraz: this guy is cool [04:40] danraz: http://www.manning.com/gutz2/ [04:40] danraz: a real fighter [04:40] danraz: that's what you want [04:40] luke`_ has joined the channel [04:40] trevorsheridan has joined the channel [04:40] Evanlec: lol...i'm guessing you guys are making fun of this website [04:40] danraz: a Louis the 14th warrior [04:41] danraz: nah, I like Manning books, but the art is very much out there [04:41] Evanlec: it teaches "agile" java development when we all know that java is not very agile [04:41] kazupon has joined the channel [04:41] danraz: I like them because they're very much hands on [04:41] tjholowaychuk: that guy is sweet [04:41] tjholowaychuk: pink jacket thing and all [04:42] danraz: metrosexual, anyone? [04:42] danraz: he seems quite secure about his coding skills, if you ask me [04:42] tonymilne: he's like, go on, comment on my jacket, i dare you (holding spear and slingshot!) [04:42] Evanlec: wow, thats a lot of java books [04:42] rauchg has joined the channel [04:43] tim_smart has joined the channel [04:44] avih has joined the channel [04:44] _dc has joined the channel [04:44] PyroPete1 has joined the channel [04:46] torsd has joined the channel [04:47] k1ttty has joined the channel [04:52] davidascher has joined the channel [04:54] nrdb: I have been having trouble with compiling version 0.6.3 for an arm CPU in a DreamPlug ... I modified 'common.gypi' and compiled with 'E="-march=armv5t"; make CFLAGS="$E" CCFLAGS="$E" CXXFLAGS="$E"' ... but I get the error "Build failed: -> task failed (err #2):" + "{task: libv8.a SConstruct -> libv8.a}" .... no matter what I do I cant seem to get past this. [04:54] jerrysv has joined the channel [04:55] b_i_d has joined the channel [04:55] KBM has joined the channel [04:56] KBM: how do i get HTTP_REFERER, and REMOVE_ADDR [04:57] b_i_d: Hi. My App open countless write-streams, some sub processes, etc. I guess I have to clean up after myself when I terminate it, correct? [04:58] b_i_d: Can I listen for process.on('exit') and do all the work there? Or would the process close before the work is done? [05:03] KBM: HTTP_REFERER? REMOTE_ADDR in node? [05:07] maxogden: KBM: node has an http module [05:07] Yuffster_fun has joined the channel [05:07] michaelh_ has joined the channel [05:08] b_i_d: KBM: They should be in request.headers when you recieve a request [05:10] KBM: whats the reasoning behind not having the standard CGI scope in node? [05:10] KBM: *not bashing, just genuinely curious [05:11] b_i_d: Don't know anything about CGI, so I can't help you there. ;) [05:11] nerdfiles has joined the channel [05:11] nerdfiles has left the channel [05:12] KBM: anyone else? wheres ryan when you need him. :D [05:12] SubStack: cgi scope? [05:12] SubStack: like, environment variables and whatever? [05:12] davidbanham has joined the channel [05:12] KBM: si [05:12] SubStack: turns out, shared state across requests are really nice [05:12] SubStack: especially in a single thread [05:13] zilch_ has joined the channel [05:13] KBM: .. ok, what does that have to do with the CGI scope? [05:13] catb0t: Exception: SyntaxError: Unexpected identifier [05:13] SubStack: node is all about using servers as libraries [05:14] teadict: catb0t: it could be worse! it could be a Chuck Norris Exception! [05:14] catb0t: Exception , because all est way to Norris [05:14] SubStack: KBM: instead of HTTP_REFERRER, you can just look at the headers directly [05:14] SubStack: req.headers.referrer [05:14] b_i_d: Hum. Still working on my garbage collecting. Do one or multiple listeners on process.on('exit') delay the exit until the callbacks ran or do I miss something? [05:15] SubStack: and instead of REMOTE_ADDR you can do req.socket.remoteAddress [05:15] SubStack: KBM: everything is in the same process so it doesn't make sense to pass those values through environment variables [05:16] KBM: that makes more sense [05:18] ryanfitz has joined the channel [05:18] zilch_ has joined the channel [05:19] KBM: any helper function to parse request.url ? [05:19] SubStack: require('url').parse(req.url) [05:21] KBM: while on the subject: function to parse get parameters? [05:22] towski has joined the channel [05:22] KBM: *GET [05:22] sdwrage has joined the channel [05:22] dr0id has joined the channel [05:24] SubStack: require('querystring').parse(qs) [05:26] pauls1_ has joined the channel [05:26] jellosea has joined the channel [05:26] zilch_ has joined the channel [05:26] ekryski has joined the channel [05:27] b_i_d: Ah, I see. The next tick after the process exit event closes the process. So I have to keep that next tick from happening until I finished my garbage collection. Anyone an idea where others have invented that wheel already? [05:28] jellosea has left the channel [05:28] mike5w3c_ has joined the channel [05:28] kishoreyekkanti has joined the channel [05:28] JumpMast3r has joined the channel [05:28] trco has joined the channel [05:29] CaesarC has joined the channel [05:29] stonebranch has joined the channel [05:31] stantona has joined the channel [05:31] _dc has joined the channel [05:31] davidascher has joined the channel [05:33] ekryski_ has joined the channel [05:34] MUILTFN has joined the channel [05:36] MUILTFN has joined the channel [05:36] boltR has joined the channel [05:36] josephg: b_i_d: how are you terminating the process? [05:36] zilch_ has joined the channel [05:37] josephg: if you're terminating it yourself, you could do something simple like: [05:37] josephg: - make a new event on 'process' (its just an event emitter) called 'shutdown' or something [05:37] syoyo_ has joined the channel [05:37] josephg: - have all your modules do their shutdown routines there [05:37] josephg: - [05:38] josephg: - You need to detect when they're all finished, then call process.exit(). [05:38] franciscallo has joined the channel [05:38] mattpardee has left the channel [05:39] b_i_d: Actually I'm not terminating it at all. ;) It's supposed to run forever I'm just looking for a way to clean up in case of unplanned shutdowns or when I kill it via Ctrl-C during testing. [05:39] zilch_ has joined the channel [05:40] doki_pen has joined the channel [05:41] b_i_d: Hmmmm... You gave me an idea. If I listen for process.on('exit') and do a blocking call to a cleanup-function there, would that hold the exit until the blocking call is done? [05:41] josephg: yes, though its intentionally quite difficult to make blocking calls. [05:41] trotter has joined the channel [05:42] b_i_d: Shouldn't "var temp = cleanup_function();" block? [05:42] josephg: sure; that'll block until the function returns. [05:42] josephg: what is your function going to do though? [05:43] b_i_d: Closing countless write-streams, some sub-processes and more. [05:43] mikeal has joined the channel [05:43] josephg: sure - then you can just do all that stuff in the process.on('exit', …) handler [05:44] josephg: I assumed you needed to do stuff which wasn't synchronous [05:44] avih has joined the channel [05:45] tomlion has joined the channel [05:45] b_i_d: I'm working an an artificial intelligence that uses a whole jungle of other tools (language parser, common sense databases, text to speech and so on). I'd like to shut them down properly when the main process is killed. [05:46] b_i_d: Not even sure if it's really needed, but just doesn't feel right not to clean up. ;) [05:47] tih-ra: Hey all! I finished the beta version of my module (alleup) Flexible way to resize and upload images to Amazon S3 or file system storages for Node.js (https://github.com/tih-ra/alleup). Is Possible to add different versions of the same image in cropped or resized variants. And now if there is willing to Contributors, you are welcome. I plan to add a upload not only image but other types of files with a prior processing on the se [05:47] tih-ra: rver. Also welcome to testing [05:47] munichlinux has joined the channel [05:47] b_i_d: Thanks. I'll experiment with that idea later. When it's not 7 in the morning and I had some sleep. ;) [05:48] ciju has joined the channel [05:48] zilch_ has joined the channel [05:48] mikeal has joined the channel [05:48] josephg: b_i_d: yep I know what you mean about cleaning up [05:48] josephg: sounds like fun. [05:49] josephg: tih-ra: nice work. [05:49] b_i_d: It is. And a hell lot of work. :D [05:49] ekryski_ has joined the channel [05:49] b_i_d: But I figured if I learn node I can just as well do it with something interesting. :) [05:50] josephg: hehe I bet :D [05:50] tih-ra: josephg: Thanks [05:51] b_i_d: OK, I told Aimie (my AI) that you helped me with the problem and she said Thanks. :) [05:51] tih-ra: josephg: You are welcome to fork) [05:51] b_i_d: Now of to some well deserved sleep. GN8 all [05:52] josephg: hehe 'night [05:52] josephg: tih-ra: cheers, though I've got projects of my own [05:52] jaequery has joined the channel [05:52] ekryski has joined the channel [05:52] tih-ra: josephg: ) Live test here http://alleuptest.herokuapp.com/ [05:55] svnlto has joined the channel [05:55] felixge has joined the channel [05:55] nerdfiles1 has joined the channel [05:56] nerdfiles1 has left the channel [05:56] lyte_ has joined the channel [05:58] ekryski_ has joined the channel [05:58] Swimming_Bird has joined the channel [06:01] rfw has joined the channel [06:02] cache_za has joined the channel [06:03] localhost has joined the channel [06:04] ecin has joined the channel [06:05] OmidRaha has joined the channel [06:06] rurufufuss has joined the channel [06:07] SamuraiJack has joined the channel [06:12] tonymilne has joined the channel [06:12] zilch_ has joined the channel [06:13] tonymilne has left the channel [06:13] EM03 has joined the channel [06:13] EM03: hey [06:13] meso has joined the channel [06:13] EM03: is node.js ok for server backend code for a website? [06:13] josephg: yep - thats what it was designed for. [06:14] EM03: i mean i'm building a service ...and its got alot of the frontend work being done via js [06:14] EM03: so the backend part will be more like an pi [06:14] EM03: api* [06:14] Evanlec: EM03: yep [06:14] dmitrig01 has joined the channel [06:15] KBM: friendly inquiry: show of hand of coffescript users? [06:15] Evanlec: I think there's even a node module for creating rest API's [06:15] EM03: kinda weird ....front end and backend being done via JS [06:16] Evanlec: EM03: its neat ;) [06:16] jsurfer has joined the channel [06:17] zilch_ has joined the channel [06:17] EM03: i remember back in the day using wxJS as an apache module for a website [06:17] EM03: this is like 03 heh [06:17] EM03: spidermonkey [06:18] luke` has joined the channel [06:18] wilmoore has joined the channel [06:19] josephg: KBM: *hand* [06:19] EM03: funny thing is i never learned javascript ....just sorta used it heh [06:19] KBM: goodie, anyone else? [06:20] josephg: EM03: I kinda want to write something in GWT, so I'm using java on the frontend and JS on the backend [06:20] EM03: never used GWT [06:20] Evanlec: hah, java on the frontend? [06:20] Evanlec: weird [06:20] EM03: it becomes javascript [06:20] a_meteorite: GWT compiles it to JS [06:20] Evanlec: oh ok [06:20] josephg: yep, after about 10 years of cpu time [06:20] EM03: still though [06:20] Evanlec: never did GWT [06:21] Evanlec: lol [06:21] EM03: using java to build your frontend can sometimes be :\ [06:21] EM03: i'm doing something *pretty* cool right now [06:21] a_meteorite: java all-around is :\ [06:21] josephg: yep [06:21] a_meteorite: ACTION hates java [06:21] josephg: the JS it generates is awful, too. [06:22] EM03: does anyone here use coffeescript with node? [06:22] smgt has joined the channel [06:22] brainproxy: any node-heads here into clojure also? [06:22] EM03: i like scheme so maybe me [06:22] josephg: EM03: yep, absolutely. [06:22] a_meteorite: EM03: yes [06:22] EM03: i'm building a site right now from ground up ...i wonder if i should use js or use coffeescript abstraction [06:23] Evanlec: EM03: I feel its better to learn JS in and out before using coffee [06:23] a_meteorite: I'm very happy with coffee [06:23] EM03: i mean ... Evanlec it will only take me 30 mins or so to learn js :P [06:23] EM03: and i can read and write it now ...just want to make sure i understand it all [06:23] Evanlec: EM03: hah well..idk about that [06:23] EM03: i use jquery every day if that somewhat counts :P [06:23] Evanlec: EM03: JS is more complex than it first appears [06:23] brainproxy: EM03: i like coffeescript, but i agree that it's important to really know how javascript works to make best use of coffee [06:23] josephg: yeah, there's a lot more to JS than the C-style syntax [06:23] Evanlec: EM03: nodejs is quite different though [06:24] josephg: ACTION agrees with brainproxy  [06:24] boltR has joined the channel [06:24] maletor has joined the channel [06:24] EM03: i plan on using node.js with express .....for my api [06:24] brainproxy: EM03: take a look at zappa [06:24] Evanlec: EM03: thats what Im playing with [06:24] josephg: Mostly, you need to be familiar with how 'this' binding works in function calls and stuff. [06:24] brainproxy: which is based on express [06:24] josephg: coffeescript can't fix that for you, unfortunately. [06:24] brainproxy: http://zappajs.org/ [06:25] Evanlec: brainproxy: zappa is coffeescript version of express it looks like? [06:25] EM03: what is gizmo? [06:25] brainproxy: yeah, w/o a good understanding of javascript's scoping and also prototypal inheritance, it may be difficult to understand what coffee is actually doing for you [06:26] brainproxy: Evanlec: zappa is almost a "coffeescript-based dsl" wrapped around express [06:26] EM03: i will just use JS [06:26] zilch_ has joined the channel [06:27] KBM: does express have a tempting engine, orm? [06:27] EM03: dont think so ...people use their own [06:27] Evanlec: KBM: no [06:28] Evanlec: KBM: Im using jade and mongoose for templating / orm [06:28] KBM: so, its strictly a router/controller [06:28] EM03: gizmo for node looks like a different thing compared to what they are using it for on the zappa github [06:29] EM03: my api won't generate much html at all ....mostly will be done in browser [06:30] Evanlec: KBM: pretty much yea, it interfaces well with socket.io also [06:33] jocafa: coffeescript : js :: haml : html [06:33] jocafa: [06:34] jacobolus has joined the channel [06:34] Evanlec: jade > haml [06:34] Evanlec: imo [06:35] MatthewS has joined the channel [06:35] EM03: HTML .... [06:35] EM03: imo ^^ [06:36] EM03: html really isn't all that evil :P [06:36] EM03: keep templates lean and clean and it looks pretty good [06:36] jocafa: time for sleeping [06:37] flat has joined the channel [06:38] EM03: ACTION used to be abstraction king ....hate SQL ...hated html and css ....used everything very early  [06:38] EM03: now i spend myself trying to get closer to the hardware for a better lack of words [06:40] EM03: sometimes when you focus on stuff like that ....you loose on whats really important and that is the user experience [06:40] chjj: the only think haml has going for it is that its named after luke skywalker [06:40] chjj: thing* [06:40] trevorsheridan has joined the channel [06:41] EM03: its sorta like the startup mentality ....worry about money later .... [06:41] EM03: super programmer mentality .....cool tools worry about user experience later [06:42] stonebranch has joined the channel [06:42] zilch_ has joined the channel [06:42] EM03: A positive user experience results in a human emotion that results in more profit. This allows the business to keep going .....I feel many in the #rubyonrails channel are living in a dream world [06:43] truedat101 has joined the channel [06:44] FMJaggy: well i think there is a balance to maintain, and with every tech there are a small number of reasonable people surrounded by newbies and extremists [06:44] npa has joined the channel [06:44] SubStack: node is really good for exploring the solution space of interfaces and abstractions [06:45] SubStack: because it doesn't provide many abstractions of its own [06:45] sente: ryanfitz: thank you, installing zlib1g-dev did the truck :) [06:45] EM03: FMJaggy: I still use cool stuff .....but sometimes people take it to far ....not saying haml or jade is that ....but in rails for instance people are creating engines for everything and its cool but although you didn't write it you have to learn the api of that really well and mesh it around to work with your app.....you probably could have wrote it much quicker [06:45] sente: ryanrolds: thank you, installing zlib1g-dev did the truck :) [06:45] SubStack: and javascript is powerful enough to build good abstractions [06:45] fangel has joined the channel [06:45] mikeal has joined the channel [06:45] SubStack: and also bad abstractions [06:45] sente: ryanfitz: sorry, meant to say that to ryanrolds [06:45] SubStack: but the abstractions can compete on npm [06:45] EM03: i'm using SQL in this app [06:46] EM03: already made all the statements ....around 22 for the whole application .....structured them well [06:46] EM03: many programmers will do the sql as they write the app ....which is fine but of course you get headaches ....because your querying data ....so then you blame SQL [06:47] EM03: now you use an ORM .....well the ORM *makes* you plan your data [06:47] EM03: so the real good thing here is planning .....not the abstraction ....the abstraction just forced you to do it [06:47] zomg: Not necessarily [06:47] zomg: ORM can also make you lazy because it's so easy to change things [06:47] zomg: =) [06:47] FMJaggy: well i think it depends on the structure of the company [06:47] EM03: good simple sql is as well ...i mean if you change anything drastic its going to be a big change no matter sql or no sql [06:48] FMJaggy: or maybe, who 'owns' the data, the dbas, the application code, etc... [06:48] EM03: what i'm saying does have some truth :) [06:49] EM03: planning is everything to me ....the programming part is easy [06:49] EM03: planning / design is where all my time goes [06:49] SubStack: I like document databases. [06:49] SubStack: no ORM necessary [06:49] EM03: document db's have their issues as well [06:49] RobWC has joined the channel [06:49] EM03: this app will be small ....2-4k users [06:50] FMJaggy: oh i agree, problem is that most of the time design is rewarded on the backend, so i feel like i am hiding until then [06:50] FMJaggy: maybe i am not communicating well enough [06:50] pizthewiz has joined the channel [06:51] EM03: i do lots of vector design etc [06:51] EM03: this allows you to see ideas and vision ......the code to me is extra just to make it come to life ....some people start ideas in their editor ....wrong place [06:52] EM03: many think if they use something great it will give them a boost somehow [06:52] EM03: an idea and its implementation is what makes something great ....not a framework [06:52] meso has joined the channel [06:52] EM03: thats why a smaller language and smaller framework is perfect [06:52] EM03: i will spend 2 weeks doing design ....say 15 pages ....programming for it takes 1-3 days [06:53] zomg: Waterfall! [06:53] zomg: ;) [06:53] EM03: building it from code first .....5 months [06:53] FMJaggy: what do you mean by vector design? like i've dabbled in fireworks/illustrator for designs, do you mean that? [06:53] SubStack: I write the code first. [06:53] SubStack: then I figure out what problem I'm trying to solve [06:54] jsurfer_ has joined the channel [06:54] EM03: FMJaggy: yep [06:55] EM03: I use illustrator for vector design .....photoshop for raster ....fireworks to put my designs together ... [06:55] isaacs has joined the channel [06:55] EM03: some people just photoshop the whole thing .....again not using the tools properly :P [06:55] FMJaggy: interesting pipeline, have not seen it [06:55] EM03: its the main one :P [06:56] EM03: but to be very honest freenode is not the best place to talk to really professional dev's who do this every day because they are usually to busy to get on irc .....i've had some free time lately [06:56] FMJaggy: is it described or documented anywhere [06:56] EM03: doing a full design in photoshop is nuts ...you want to change something you have to update it in every place you made that style [06:56] EM03: in fireworks you can apply it like css ...(design styles) that is [06:56] EM03: you have a concept of pages so you can share elements [06:57] EM03: fireworks is not a image manipulation program or a vector design .....its exactly what adobe sells it as ... [06:57] EM03: yea [06:57] EM03: you know vectortuts and all those guys ? envato really presses this .....adobe at their web dev conferences does htis and thats where all the big firms usually are [06:57] EM03: I used to work at some large firms so we have CS at our finger tips no matter [06:58] ircdearia has joined the channel [06:59] dannyamey has joined the channel [07:00] CaesarC has joined the channel [07:00] dnjaramba has joined the channel [07:00] EM03: FMJaggy: http://www.reinegger.net/50_reasons_not_to_use_photoshop_for_webdesign.html [07:06] FMJaggy: from that it sounds like virtually all of the layout should be in fireworks? then you import vector graphics like logos from illustrator, and bitmap graphics (photos, intricate backgrounds) from photoshop? [07:06] tommyvyo has joined the channel [07:09] flat has joined the channel [07:10] brianloveswords has joined the channel [07:13] crodas has joined the channel [07:14] galexy has joined the channel [07:15] EM03: FMJaggy: thats how it should be yep [07:15] EM03: FMJaggy: you can have a 100 page site in fireworks all with one file [07:15] torm3nt: anyone here use haml.js? [07:16] EM03: don't you hate getting 50 psd's? most with 50 percent or more common elements? [07:16] dgathright has joined the channel [07:16] EM03: fireworks has its own little version of css done graphically for common elements and styles [07:16] zilch_ has joined the channel [07:16] ddollar has joined the channel [07:16] ralphholzmann has joined the channel [07:16] EM03: FMJaggy: on a large site with 50 psd's changing theme would take a while ....change the colors in all the places etc etc ...in fireworks it changes them site wide [07:17] Pilate has joined the channel [07:18] stagas has joined the channel [07:19] nebiros has joined the channel [07:20] chjj: why do you keep talking about adobe's vomit? [07:20] walkah has joined the channel [07:20] walkah has joined the channel [07:20] kishoreyekkanti_ has joined the channel [07:21] braoru has joined the channel [07:23] Heisenmink_ has joined the channel [07:23] zilch_ has joined the channel [07:24] loob2 has joined the channel [07:28] idanbeck has joined the channel [07:29] zomg: EM03: don't they have something like that in PS now too? Layer comps or something? Never used them so I could be wrong :P [07:29] mikeal has joined the channel [07:30] EM03: zomg: adobe treats fireworks like a flagship product and with cs5 they have worked all so hard on it to make the jobs of web developers really easy ....Nothing like it in photoshop ...there is no one size fits all program [07:30] EM03: \ [07:30] EM03: although many want to make photoshop one of them [07:30] EM03: photoshop is great at what it does, but a talented designer knows how to make all this stuff work as it should with the correct tools [07:31] rfw__ has joined the channel [07:31] zomg: Thankfully we have a graphics guy at work who does all that :D [07:31] zomg: I just use photoshop to prototype/mock-up designs [07:31] EM03: I know people who make designs in gimp though and do all coding in emacs ....i mean its all up to you :P [07:31] zomg: "Oh this looks good" -> write HTML/CSS, throw away PSD :P [07:31] EM03: graphics are creation of things as such is really where you get to have a good time with your mind [07:32] sled: the guy who writes the cross-browser-even-ie6-compatible css/html loses [07:32] EM03: its a great way to relax the mind [07:32] sled: so coding is the counter part then ;) [07:32] zomg: Not if you're bad at making graphics :P [07:33] sled: yeah... rounded corners...gradients....everywhere ;) [07:33] sled: and don't forget the fancy shadows around the rounded corners [07:33] EM03: those are not fancy, they are minimal effects with the goal of increasing perspective [07:34] mraleph has joined the channel [07:34] EM03: many people who don't try to do graphics overuse them easily [07:34] robotmay has joined the channel [07:34] sled: but it's pain in the ass to implement it [07:34] EM03: which? [07:34] EM03: a drop shadow? [07:35] sled: in IE it is ;) [07:35] zilch_ has joined the channel [07:36] EM03: i use images for drop shadows [07:36] Jan_ has joined the channel [07:36] EM03: css3 drop shadows etc just can't match the quality [07:36] sled: we use CSS :) [07:36] sled: sure... but most of the users don't care ;) [07:36] tomyan has joined the channel [07:37] tih-ra has joined the channel [07:37] EM03: the designer has to care [07:38] raydeo has joined the channel [07:40] groom has joined the channel [07:40] Renegade001 has joined the channel [07:41] sled: yep in the end it's the art of finding the balance between design/code/price ;) [07:43] JakeyChan_ has joined the channel [07:43] sveisvei has joined the channel [07:43] mindbender1 has joined the channel [07:43] pimetrai has joined the channel [07:44] EM03: sled: art matters more than what most coders will ever imagine ....being good at both is priceless [07:44] EM03: everyone works for a "firm" but few work for firms that actually make sites by brands that we use every day [07:45] ph^ has joined the channel [07:45] Margle has joined the channel [07:45] stelcheck has joined the channel [07:46] tomyan has joined the channel [07:46] zilch_ has joined the channel [07:47] bosphorus has joined the channel [07:48] mrtazz has joined the channel [07:49] sled: EM03: there's a big difference between designs for sites that sells a product or web applications ;) [07:50] EM03: sure [07:50] pizthewiz has joined the channel [07:51] sled: I wouldn't use CSS3 shadows for a product/brand site but if you got a web application and need some shadow for buttons/ui elements, CSS3 is fine ;) [07:52] ph^_ has joined the channel [07:53] hipsters_ has joined the channel [07:55] garrensmith has joined the channel [07:57] ph^ has joined the channel [07:58] dshaw_ has joined the channel [07:58] garrensmith: morning [08:00] dannyamey has joined the channel [08:01] Margle has joined the channel [08:01] burningdog has joined the channel [08:01] gut4 has joined the channel [08:02] EM03: sled: depends truly how much the person cares about that ....me and my shadows and the exact distance opaticy and the way i blur them....the different kinds of blurs i use on them ....oh yea I couldn't do it :) [08:02] pixel13 has joined the channel [08:02] fangel has joined the channel [08:02] sdwrage has left the channel [08:02] pixel13 has left the channel [08:02] rwasielewski has joined the channel [08:02] mindbender1: what's the stable V8 version for node.js [08:03] ph^_ has joined the channel [08:05] benvie: 3.6.6.8 I think [08:06] benvie: need to get that upgraded [08:07] `3rdEden has joined the channel [08:09] emattias has joined the channel [08:10] thalll has joined the channel [08:11] simenbrekken has joined the channel [08:12] idanbeck_ has joined the channel [08:13] raphdg has joined the channel [08:14] ablomen has joined the channel [08:14] zilch_ has joined the channel [08:15] pcaulagi has joined the channel [08:16] sindresorhus has joined the channel [08:20] djcoin has joined the channel [08:21] zilch_ has joined the channel [08:21] ivanfi has joined the channel [08:22] beevits has joined the channel [08:24] nephics has joined the channel [08:24] pcaulagi: How can I make sure that the render from Express is called after I am done reading *all* entries from couch? [08:25] npa has joined the channel [08:26] djbell has joined the channel [08:27] pcaulagi: http://pastie.org/2942935 [08:27] bergie has joined the channel [08:29] djbell has joined the channel [08:29] chjj: SubStack: that is a beautiful pony [08:31] svnlto has joined the channel [08:31] zilch_ has joined the channel [08:32] zomg: pcaulagi: well you would loop until you get nothing or get the last result, and only render after that? [08:33] zomg: or if it's asynchronous, multiple at a time, you probably could just keep a record of how many rows you receive, and then when a row loads, you'd just check how many rows you've already fetched [08:35] jimt has joined the channel [08:35] brianseeders has joined the channel [08:35] kuebk has joined the channel [08:37] pcaulagi: zomg: what is the idiomatic way to do this in node? I was just looking for a few keywords so that I can search it out [08:38] k1ttty has joined the channel [08:38] [AD]Turbo has joined the channel [08:39] [AD]Turbo: hi there [08:41] drdetroit has joined the channel [08:42] idanbeck has joined the channel [08:42] insin has joined the channel [08:42] drdetroit: occupy LA is live - police are moving in RIGHT NOW - THOUSANDS of them -in white suits - they are going to act in 7 minutes - it's live- here - http://www.ustream.tv/occupyoakland tune in - this IS history here - [08:42] zomg: pcaulagi: I think there are some flow control libs which help with that [08:42] maxogden: node.js is the 1% [08:43] maxogden: get that socialist propaganda out of here [08:43] pcaulagi: zomg: I looked at async. But I would like avoid trying to write synchronous code and would prefer a solution using callbacks [08:43] zomg: drdetroit: my fist is moving towards your spammy ass RIGHT NOW [08:43] benlyng has joined the channel [08:43] benvie: lol [08:43] zackattack has joined the channel [08:43] benvie: er using callbacks is asynchronous [08:44] pcaulagi: s/like avoid/like to avoid/g [08:44] maxogden: (ive been watching that ustream since 8pm) [08:44] benvie: oh yeah woops' [08:44] benvie: misread [08:44] tdegrunt has joined the channel [08:45] andree has joined the channel [08:47] aaronmcadam has joined the channel [08:47] bradwright has joined the channel [08:48] jbpros has joined the channel [08:48] __t has joined the channel [08:51] Druid_ has joined the channel [08:52] salva has joined the channel [08:52] zilch_ has joined the channel [08:56] smgt has joined the channel [08:58] vvo has joined the channel [08:59] adrianF has joined the channel [09:02] base698 has joined the channel [09:03] mpavel has joined the channel [09:04] zilch_ has joined the channel [09:04] hipsters_ has joined the channel [09:05] robotmay has joined the channel [09:06] robhawkes has joined the channel [09:10] jelveh has joined the channel [09:10] garrensmith: which is the best nodejs library for redis? [09:11] mpavel has left the channel [09:13] stagas has joined the channel [09:14] nils_r has joined the channel [09:14] uchuff has joined the channel [09:14] maletor has joined the channel [09:15] robi42 has joined the channel [09:17] mange has joined the channel [09:19] uchuff has joined the channel [09:23] Margle has joined the channel [09:24] ag4ve has joined the channel [09:27] ciju has joined the channel [09:29] adambeynon has joined the channel [09:29] garrensm_ has joined the channel [09:30] TheJH has joined the channel [09:31] mikl has joined the channel [09:32] xeodox: @garrensmith , https://github.com/mranney/node_redis [09:32] xeodox: that's the best [09:32] SoulRaven has joined the channel [09:32] josh-k has joined the channel [09:33] beseku has joined the channel [09:34] eldios has joined the channel [09:34] yumike has joined the channel [09:34] qFox has joined the channel [09:35] alpha has joined the channel [09:36] gmosx has joined the channel [09:37] vguerra has joined the channel [09:38] kulor-uk has joined the channel [09:39] MrBenn has joined the channel [09:40] Shrink has joined the channel [09:40] Shrink has joined the channel [09:41] herbySk has joined the channel [09:47] nicholasf has joined the channel [09:48] jimt has joined the channel [09:49] dannyame_ has joined the channel [09:49] polymar has joined the channel [09:54] lzskiss has joined the channel [09:54] lzskiss: yo [09:55] jimmysparkle has joined the channel [09:55] zilch_ has joined the channel [09:55] tonymilne has joined the channel [09:55] shedinja has joined the channel [09:56] cgfuh has joined the channel [09:56] kishoreyekkanti_ has joined the channel [09:58] stagas has joined the channel [09:58] jimmysparkle has joined the channel [10:00] CodeRarity has joined the channel [10:01] hackband has joined the channel [10:03] kishoreyekkanti_ has joined the channel [10:03] jomoho has joined the channel [10:03] otakutomo has joined the channel [10:05] adrianFa has joined the channel [10:09] DotMH has joined the channel [10:10] markwubben has joined the channel [10:10] piscisaureus_ has joined the channel [10:10] mc_greeny has joined the channel [10:10] mc_greeny has joined the channel [10:12] garrensm_: xeodox: thanks [10:15] Swizec has joined the channel [10:15] bradleyg has joined the channel [10:16] jbpros has joined the channel [10:16] pandark_ has joined the channel [10:20] aliem has joined the channel [10:20] p1d has joined the channel [10:20] OmidRaha has joined the channel [10:21] spolu has joined the channel [10:22] spolu: hi guys, anybody could help me with preventing served GET connection from closing after some time (imagine a streaming API with only a small amount of data streamed) [10:28] stagas has joined the channel [10:30] fbartho has joined the channel [10:31] burningdog has joined the channel [10:32] arcanis has joined the channel [10:36] augustl: spolu: who closes the connection? [10:36] spolu: augustl: my server does [10:37] spolu: augustl: the unerlying connection emits a timeout event [10:37] augustl: you're sure it's not the browser that closes the connection? Some browsers do after one minute or so [10:37] spolu: augustl: but I do set: request.connection.setTimeout(0) [10:37] augustl: there's keep-alive too afaik [10:37] spolu: augustl: yep I catch the timeout event [10:37] augustl: browsers have timeout events? [10:38] spolu: augustl: on the socket? [10:38] augustl: I'm asking you :) [10:38] insin_ has joined the channel [10:39] augustl: I'm just saying that it might be the browser that closes the connection for the GET request [10:39] augustl: since I don't know anything about your setup I'm just throwing things out there ;) [10:39] spolu: augustl: I don't think so tested with curl and a custom node client as well [10:40] spolu: augustl: I'll try to mess with the keepAlive setting of the underlying connection... [10:42] dal9k has joined the channel [10:42] dal9k has left the channel [10:45] jimmyspark has joined the channel [10:45] jeedey has joined the channel [10:45] ablomen has joined the channel [10:46] benlyng has joined the channel [10:48] stagas has joined the channel [10:48] robotmay_ has joined the channel [10:51] markwubben has joined the channel [10:51] Margle has joined the channel [10:52] fermion has joined the channel [10:53] jaequery has joined the channel [10:55] JanLi has joined the channel [10:57] boltR has joined the channel [10:58] TomY has joined the channel [10:59] level09 has joined the channel [11:01] nrdb: just built downloaded the node.js with git... when I built it... the "make test" doesn't pass... is this normal? [11:03] TomY has joined the channel [11:08] ablomen has joined the channel [11:08] distrus has joined the channel [11:09] lyte has joined the channel [11:10] broofa has joined the channel [11:10] mansoor-s has joined the channel [11:14] fly-away has joined the channel [11:15] lz1 has joined the channel [11:16] whitman has joined the channel [11:17] Shrink has joined the channel [11:17] secoif has joined the channel [11:18] distrus has left the channel [11:19] jbpros has joined the channel [11:20] okuryu has joined the channel [11:21] eldios: if I have a string like '101010' how do I take a decimal number out o it? I'm having a memory outage right now -_-" [11:21] augustl: eldios: parseInt can do that [11:21] augustl: the 2nd argument lets you specify the number base [11:21] k1ttty has joined the channel [11:21] eldios: thanks augustl [11:21] SubStack: v8: parseInt('101010', 2) [11:21] v8bot_: SubStack: [11:21] SubStack: lies [11:22] SubStack: .. parseInt('101010', 2) [11:22] catb0t: 42 [11:22] lz1: OH MY GOD [11:22] eldios: =) [11:22] SubStack: likewise you can go the other way with the first argument to toString [11:23] SubStack: .. 42..toString(2) [11:23] catb0t: "101010" [11:23] tomlion has joined the channel [11:23] eldios: yes thanks SubStack .. already using both of those in my code.. I'm just short-circuiting right now °_° [11:24] jbpros_ has joined the channel [11:25] SubStack: hey everybody, help me make email modules awesome in node: http://groups.google.com/group/nodejs/browse_frm/thread/3899912487057819 [11:28] mike5w3c_ has joined the channel [11:29] phiggins has joined the channel [11:31] versicolor has joined the channel [11:31] jldbasa has joined the channel [11:32] eldios: is slice the "best" way to take out a part of the string? [11:32] Skoo has joined the channel [11:33] fangel has joined the channel [11:35] igl1: yes [11:35] eldios: substr is better [11:35] eldios: as I can see [11:35] benvie: what defines better? [11:35] benvie: performance or functionality or what? [11:36] TomY has joined the channel [11:36] chjj: youre all wrong, substring is better [11:36] chjj: substr and slice are implemented using substring behind the scenes [11:36] chjj: at least in v8 [11:36] chjj: and substr is nonstandard anyway [11:36] benvie: wrong, looping through using bracket notation for each character you need [11:36] benvie: kidding [11:37] benvie: but slice is one letter shorter [11:37] chjj: true [11:37] chjj: slice needs a lot of other functionality though cause it takes negative numbers and whatnot [11:37] benvie: and makes it so I can fantasize that i'm a code ninja cutting my way through disrespectful strings [11:37] rendar has joined the channel [11:37] epa_ has joined the channel [11:38] chjj: although you should use slice if you need the negative number stuff [11:38] benvie: this is true, I haven't looked at the perf numbers on it [11:38] robi42 has joined the channel [11:38] chjj: sometimes its better if you need it [11:38] zilch_ has joined the channel [11:38] chjj: but if you dont need that functionality its better to use substring [11:40] benvie: http://jsperf.com/substring-extraction-methods-substring-substr-slice [11:40] michaelhartau has joined the channel [11:41] chjj: https://github.com/v8/v8 <--- better than looking at benchmarks [11:41] chjj: half of it is in JS [11:42] chjj: you can see slice and substr both wrap substring [11:42] benvie: well yeah when you're not looking at the cross browser thing like node only stuff [11:42] chjj: only thing worth looking at ^ [11:42] chjj: ;) [11:42] benvie: also you can get an idea how much you actually are losing [11:42] madhums has joined the channel [11:43] mikl has joined the channel [11:43] JakeyChan has joined the channel [11:44] zilch_ has joined the channel [11:44] hellp has joined the channel [11:45] tiagobutzke has joined the channel [11:46] raoul has joined the channel [11:46] Guest56267 has left the channel [11:47] eldios: then substring it will be =) [11:47] benvie: yeah [11:47] eldios: anyway.. not to turn off your flame but... with better I was thinking about the fact that the second number is excluded when slice-ing :P [11:47] eldios: so it should be 2nd_index + 1 which could be misleading [11:48] chjj: hm? [11:48] benvie: http://stackoverflow.com/questions/2243824/what-is-the-difference-between-string-slice-and-string-substring-in-javascript [11:48] eldios: 'fobar'.slice(1,3) --> ob [11:48] benvie: actually more than I sliced [11:48] benvie: more differences [11:49] benvie: most of it to accomodate the negative number usage [11:49] chjj: substring is the same behavior of slice, slice just takes negative numbers, they both go by index though, substr goes by length for the second parameter [11:49] Benn2 has joined the channel [11:49] benvie: well like for example, with substring it'll swap the arguments if the first number is less than the second [11:49] benvie: a subtle but important difference [11:49] chjj: yeah, slice is more sophisticated [11:49] benvie: er other way [11:49] benvie: second is less than first [11:49] chjj: does all that stuff [11:50] chjj: substring is the most primitive, but it doesnt have to waste time looking at the arguments [11:50] chjj: if thats all you need [11:50] chjj: they serve different purposes really [11:50] benvie: they just work the same in most cases [11:51] benvie: the end result anyway [11:51] benvie: aside from the difference in performance [11:52] chjj: its really only for if youre crazy about performance though, im sure theres no where near a noticeable difference [11:52] benvie: yeah it's like 13million ops per second vs. 15million or some such craziness [11:52] chjj: you could use slice 100% of the time and it probably wouldnt matter [11:53] chjj: yeah [11:53] benvie: becomes a bit ridic once you're into the tens of millions [11:54] alpha has joined the channel [11:56] noderjs has joined the channel [11:57] noderjs has left the channel [11:58] felixge has joined the channel [11:58] zilch_ has joined the channel [11:58] woeye has joined the channel [12:00] woeye has joined the channel [12:02] __t has joined the channel [12:02] munichlinux has joined the channel [12:02] troika has joined the channel [12:04] d0k has joined the channel [12:06] piscisaureus_ has joined the channel [12:08] kaydara has joined the channel [12:09] zilch_ has joined the channel [12:10] braoru has joined the channel [12:10] kulor-uk has joined the channel [12:11] dr0id has joined the channel [12:14] fairwinds has joined the channel [12:18] __doc__ has joined the channel [12:18] fangel has joined the channel [12:20] kulor-uk has joined the channel [12:22] Kunda has joined the channel [12:23] kishoreyekkanti_ has joined the channel [12:23] sindresorhus has joined the channel [12:25] Shrink has joined the channel [12:27] tomlion_ has joined the channel [12:27] davidcoallier has joined the channel [12:27] davidcoallier has joined the channel [12:28] N0va` has joined the channel [12:30] raincole has joined the channel [12:30] Margle has joined the channel [12:30] francisl has joined the channel [12:32] johnnywengluu: Is there a good way to print out the whole object in node.js instead of having to see something like [Object] [12:33] booyaa: util.inspect? [12:33] booyaa: i think it tries to jsonify the object [12:34] johnnywengluu: booyaa: I see as much as with just console.log [12:34] lz1: json.stringify [12:34] lz1: JSON.stringify() [12:34] `3rdEden has joined the channel [12:34] raoul: johnnywengluu: change the depth argument to zero [12:35] raoul: johnnywengluu: http://nodejs.org/docs/latest/api/util.html#util.inspect [12:35] lz1: does util.inspect work for cyclical objects? [12:35] booyaa: johnnywengluu: you using %j in console.log? or just console.log(foo) [12:36] johnnywengluu: raoul: worked great [12:36] johnnywengluu: thanks all [12:36] booyaa: right on! [12:36] kazupon has joined the channel [12:36] johnnywengluu: lz1: i will try JSON.stringify too later [12:36] johnnywengluu: in that way I can save it in a file [12:36] johnnywengluu: console.log util.inspect data.query.results.application.resources, yes, null // <- superb [12:37] lz1: nice [12:37] tih-ra has joined the channel [12:37] Neil has joined the channel [12:38] booyaa: is there any benefit to serializing your object before you write to file vs jsonifying it? [12:38] lz1: jsonifying is serializing [12:38] JanLi has joined the channel [12:38] booyaa: ah [12:38] gtramontina has joined the channel [12:39] stonebranch has joined the channel [12:40] shanebo has joined the channel [12:42] jackhq has joined the channel [12:42] cjm has joined the channel [12:44] cjm has joined the channel [12:45] tolyani4 has joined the channel [12:45] xy has joined the channel [12:45] tolyani4: Hi all! [12:46] ph^ has joined the channel [12:46] bnoordhuis has joined the channel [12:47] tolyani4: I want to start using nodejs. I am using windows. What i need to use nodejs? [12:47] insin: the windows installer [12:48] insin: http://nodejs.org/#download [12:48] nebiros has joined the channel [12:48] thalll has joined the channel [12:49] tolyani4: Thanks, , I downloaded node-v0.6.3.msi and installed it. [12:50] munichpython has joined the channel [12:51] tolyani4: But how I can use it? If I have to add something my project ? [12:54] cjm has joined the channel [12:56] zilch_ has joined the channel [12:56] shanebo has joined the channel [12:58] scttnlsn has joined the channel [12:59] insin: Depends - what do you want to use it for? Write some code and run node yourcode.js for starters :) [13:00] mavin has joined the channel [13:00] neurodrone has joined the channel [13:01] jldbasa has joined the channel [13:01] Raynos: global === root [13:02] Raynos: Which do we prefer? Which one is deprecated? [13:02] jbpros has joined the channel [13:06] burningdog has joined the channel [13:06] augustl: Raynos: hmm, root is not documented [13:06] augustl: where did you find out about it? [13:07] augustl: tolyani4: what do you mean by "your project"? [13:07] augustl: tolyani4: are you referring to a specific IDE? [13:10] postwait has joined the channel [13:11] Margle: if I wanted to host and execute user generated scripts in node, what would you guys suggest I use [13:11] sfoster has joined the channel [13:11] Margle: ? [13:11] jetienne has joined the channel [13:11] ceej has joined the channel [13:11] lz1: javascript [13:11] Raynos: augustl: benvie mentioned root was the "correct" way to do it [13:12] Heisenmink_ has joined the channel [13:12] flat has joined the channel [13:12] lz1: Margle, why not javascript eval()? [13:12] Raynos: Margle: ssh into server, git pull, node src/server.js [13:12] Raynos: Oh wait, my bad. [13:13] Raynos: Iz1: dont recommend eval ¬_¬ [13:13] Margle: lz1: aren't there security considerations? [13:13] Raynos: Margle: you need an aggressive sandbox [13:13] Raynos: putting the repl in a new process is a start [13:13] Margle: Raynos: ok, do you have a suggestion? [13:13] lz1: Raynos, heh, you need to clean your code for sure [13:13] lz1: sanboxing is important [13:13] Raynos: I'd would then whitelist the globals and give them a "require" that is allowed to do limited things [13:14] lz1: if you have the cash [13:14] lz1: you could run heroku dyno's for each script [13:14] lz1: instant sandboxing [13:14] lz1: npm built in [13:14] PyroPeter has joined the channel [13:14] tolyani4: - I want to start form simple code hello-world.js that exist on internet. But I am not uderstand hoe it shold work. Now I have folder c:/node/ with all inner folders and files. Where I need to put my .js and how I run it? [13:14] Raynos: Margle: https://github.com/felixge/node-sandboxed-module [13:15] Raynos: tolyani4: put your js anywhere you want [13:15] Raynos: then open the command line, and run node myfile.js [13:15] raoul: Margle: theres a good discussion of this on the google group: https://groups.google.com/group/nodejs/browse_thread/thread/3fe8148d1ba7d849/0e89b0a45220298d?lnk=gst&q=Execute+User+Provided#0e89b0a45220298d [13:15] Margle: Raynos: nice [13:15] tvw has joined the channel [13:16] Margle: raoul: thanks [13:16] lz1: raoul, cool [13:16] Margle: lz1: we don't have enough money :) [13:16] CIA-109: node: 03Nathan Rajlich 07v0.6 * rb204006 10/ (lib/util.js test/simple/test-util-inspect.js): [13:16] CIA-109: node: util: ensure that the .inspect function isn't the one being executed [13:16] CIA-109: node: Fixes #2225. - http://git.io/eiThZA [13:16] tolyani4: command line = is it C:\Program Files\nodejs\node.exe ? [13:17] augustl: Raynos: since it's not documented I doubt it.. [13:17] Raynos: global isnt "really" documented either [13:17] augustl: Raynos: I don't know if the docs are out of date [13:17] JKarsrud has joined the channel [13:17] augustl: Raynos: it is listed in the documentation [13:17] augustl: even thought the documentation is sparse ;) [13:17] felixge: Raynos / Margle: NOOO [13:18] felixge: my sandbox is meant for unit testing [13:18] felixge: :) [13:18] Margle: felixge: picked that up. [13:18] augustl: Margle, lzl, Raynos: isn't vm pretty good? [13:18] tomlion has joined the channel [13:18] felixge: so rather than trying to keep people from breaking out of it [13:18] felixge: it is meant to inject thing into it [13:18] felixge: now it's kind of cool for that [13:18] felixge: but please don't use it to run untrusted code [13:18] Raynos: augustl: vm blocks. I'll troll your server with `while(true);` [13:18] orangevinz has joined the channel [13:18] zilch_ has joined the channel [13:19] augustl: after a fork, of course ;) [13:19] Raynos: felixge: can't we abuse it and put it in a new process for user code? [13:19] kriszyp3 has joined the channel [13:19] Raynos: it's mainly an example of overwriting require [13:19] felixge: Raynos: you can do whatever : ). But please note my concerns as indicated above, as well as the no-warranty clause of the license I'm using ;) [13:20] Raynos: felixge: You seemed to have confused me with someone who will email you with "WHY IT NO WORK. DEM RUSSIANS HACKED MY SERVER. IT UR FAULT" [13:20] augustl: how secure is vm? Is any work done to keep it secure for odd security issues that might arise? [13:20] ciju has joined the channel [13:20] Raynos: augustl: vm has no security as far as I know. [13:20] augustl: you won't be able to access the file system modules and what not, but still [13:20] augustl: so there's sandboxing, but I'm sure you can find all sorts of fun edge cases by just making stuff happen in v8... [13:20] Raynos: By that, I mean we know of ways to break out of vms that havn't been fixed because that's not the "job" of the vm [13:21] augustl: oh [13:21] tommyvyo has joined the channel [13:21] Raynos: augustl: Margle: if you want my real recommendation, dont allow users to write js. Create a DSL that you _know_ is safe [13:21] stagas has joined the channel [13:21] augustl: there's gotta be safe ways of running js sandboxed and secure [13:21] augustl: like, use v8. Or Rhino [13:22] zilch_ has joined the channel [13:22] augustl: obviously there are ways... Realy meant safe _and_ easy (ish) ways [13:22] christophsturm has joined the channel [13:22] augustl: but perhaps the question was wether you could run arbitrary js in node? [13:23] augustl: Raynos: got more info on breaking out of the vm? [13:23] Margle: **nods** [13:23] christophsturm: if i kill a cluster worker, will it finish all current requests before exiting? [13:23] kishoreyekkanti_ has joined the channel [13:23] Raynos: augstl: read the mailing list node issues, its there somewhere [13:23] Margle: what of this: http://gf3.github.com/sandbox/ [13:24] Raynos: Margle: doesnt look like it does much [13:25] Margle: Raynos: seems the consensus, if I wanted to use JS, is to break out to v8 or rhino [13:25] augustl: Margle: interesting [13:25] augustl: Raynos: doesn't use the vm module though [13:25] MUILTFN has joined the channel [13:25] scott_gonzalez has joined the channel [13:26] Raynos: Margle: my personal consensus is dont try running user generated js. Thats like running user generated PHP on PHP. [13:26] Raynos: Unless your smarter then the hackers that will attack your server :) [13:26] Raynos: Personally I don't think im smarter then the hackers [13:26] Margle: Raynos: true that. [13:26] Margle: me neither. [13:26] Raynos: Now if someone has written a rock solid module to do this, then use it. [13:26] augustl: perhaps gf3 is smarter than the hackers though :) [13:26] Raynos: But I dont know of that module [13:27] augustl: I wonder what process.binding('evals').Script is [13:28] augustl: it's what gf3's module use to run scripts [13:28] erichynds has joined the channel [13:28] Wizek has joined the channel [13:28] Raynos: its the layer underneath vm [13:28] Raynos: I would avoid process.binding because its kind of "woh undocumented node internals" best not touch those [13:28] CIA-109: node: 03Ben Noordhuis 07master * rf44d0b9 10/ (src/node_crypto.cc test/simple/test-crypto.js): [13:28] CIA-109: node: crypto: throw exception on unknown digest method [13:28] CIA-109: node: Fixes #2227. - http://git.io/nGSTvA [13:28] Margle: ACTION would like gf3 to run us through the code :) [13:28] Raynos: Margle: also good look running that 0.3.0pre code on 0.6 :D [13:28] Raynos: I doubt it will just "work" [13:29] eldios: guys, what if I have to variable which would store two values returned from a function.. what's the best way to accomplish this? returning an object or an array with those two values inside and then assigne those values to the two external variables? [13:29] augustl: I think it's more interesting to ask node maintainers wether work is done to make/keep process.binding('evals').Script secure [13:29] zilch_ has joined the channel [13:29] Heisenmink has joined the channel [13:30] swaj: eldios: how about returning an object? [13:30] ciju has joined the channel [13:30] eldios: yes as I said.. but let me make a quick example [13:30] swaj: eldios: return { thing1: value1, thing2: value2 }; [13:30] eldios: ok.. then externally I have to do [13:31] vkareh has joined the channel [13:31] eldios: var1 = obj{thing1} , var2 = obj{thing2} [13:31] Raynos: GLOBAL === global [13:31] eldios: right? [13:31] Raynos: >_< We have GLOBAL, global and root. Can we have some documentation on how they are different [13:31] swaj: no, you'd access them as "obj.thing1" and "obj.thing2" [13:31] Margle: augustl, Raynos http://supercollider.dk/2010/05/node-js-evaluating-code-in-a-private-context-272 [13:32] swaj: you could also provide a callback [13:32] Raynos: eldios: it depends what you want. I would call an array of [val, otherVal] a tuple [13:32] Raynos: if youw ant to return an object with properties or a tuple [13:32] eldios: mm.. here is kinda what I did [13:32] swaj: function myMethodThatReturns2Things(callback) { // do stuff; return cb(thing1, thing2); } [13:32] Raynos: Margle: I dont trust articles over a year old. node has changed too much [13:32] benvie: an interesting leak when using the REPL in non-global context is you can do tab completion on `root.Object.` but it'll return undefined if you try to access it [13:32] Margle: Raynos: good point. [13:32] eldios: a,b = function () { return b,c } [13:33] swaj: then call it like this: myMethodThatReturns2Things(function(thing1, thing2) { // do stuff with things }); [13:33] fumanchu182 has joined the channel [13:33] eldios: that (obv) didn't work out [13:33] lukegalea_ has joined the channel [13:34] kiilo has joined the channel [13:34] swaj: in that case, a would be the function reference [13:34] Raynos: benvie: if you could point me at something that explains the differences between root, global and GLOBAL that would be great. We might want to get it into docs [13:34] lukegalea__ has joined the channel [13:35] jtrudeau has joined the channel [13:35] benvie: sec I think I know where the difference is highlighted in the libs [13:35] lzskiss has joined the channel [13:35] lzskiss: yo [13:36] CIA-109: libuv: 03Bruce Mitchener 07v0.6 * rd513d9b 10/ (22 files in 4 dirs): Fix typos. - http://git.io/ovyzFA [13:36] benvie: O so the main difference is based on whether you're the root/main module. In this case you're exposed to the real stuff [13:37] benvie: in that case you're running in runInNewContext [13:37] benvie: er in submodules [13:37] Cromulent has joined the channel [13:38] benvie: sandbox.global = sandbox; [13:38] benvie: sandbox.root = root; [13:38] Vennril has joined the channel [13:38] jpdery has joined the channel [13:39] enmand has joined the channel [13:39] lz has joined the channel [13:39] Raynos: submodules are not in new context by default, right? [13:39] benvie: I don't think so no [13:39] Raynos: I think there is a env flag for that though [13:39] zilch_ has joined the channel [13:39] benvie: this usually comes up in the REPL or using vm [13:40] benvie: yeah it is [13:40] benvie: and I don't know that the flag is used much [13:40] benvie: but the REPL is a common case and it throws you through a loop since it's acting differently than you expect [13:42] zilch_ has joined the channel [13:42] Raynos: fair enough. I dont realy tend to use the vm / repl that much so I havnt been exposed to it [13:42] Raynos: so root should be favoured because global is sandbox in a vm [13:42] fermion has joined the channel [13:43] swaj: eldios: http://jsfiddle.net/9TWcZ/1/ [13:45] cosmincx has joined the channel [13:45] benvie: well the issue is [13:46] martin_sunset has joined the channel [13:46] benvie: if you're running sandboxed then trying to modify things on root probably won't do what you want it to do and global will work..better [13:46] benvie: but still not really do what you want [13:46] benvie: so basically you're fucked [13:47] benvie: this will go away when isolates is in [13:47] Raynos: so stick to global? :P [13:47] marcello3d has joined the channel [13:47] eldios: swaj, thanks [13:48] swaj: eldios: no problemo :) [13:48] benvie: yeah probably [13:48] Margle: benvie: isolates? [13:48] benvie: should just be accompanied by a disclaimer [13:48] Margle: benvie: I see on the roadmap [13:48] benvie: "global will refer to the sandbox object if you're running in a vm" [13:48] benvie: "and that sandbox might be a completely empty object" [13:49] CIA-109: libuv: 03Bruce Mitchener 07v0.6 * rb684deb 10/ include/uv.h : Note that uv_is_active works on timers. - http://git.io/SJJZZg [13:49] benvie: isolates allows running multiple event loops in a single process [13:50] bnoordhuis: ACTION is working on that [13:50] benvie: isolates are isolated v8 contexts. Each has its own thread [13:50] benvie: and the ways they can interact are limited or non-existent depending [13:50] benvie: but better than what's currently there [13:50] mange has joined the channel [13:51] benvie: they just have to do a ton of work to make libuv handle multiple event loops in the same process [13:51] benvie: and then all the node bindings [13:51] Shrink has joined the channel [13:51] subbyyy has joined the channel [13:51] rudolfrck has joined the channel [13:52] SubStack: anybody want to proof-read? http://substack.net/posts/b96642 [13:52] benvie: since isolates have only been in v8 for like 9 months and node was obviously initially built with a single loop in mind [13:53] benvie: but it'll be awesome because they'll allow the benefits of being in the same process like more direct ways to share data between separate contexts [13:53] xetorthio has joined the channel [13:54] chjj: substack's robot friends are on his website [13:55] benvie: and creating vm sandbox contexts won't be a giant terrible kludge like it is now [13:56] arturadib has joined the channel [13:56] SubStack: chjj: upboat if you like it! http://news.ycombinator.com/newest [13:56] joshsmith has joined the channel [13:56] marcello3d has joined the channel [13:57] aioue has joined the channel [13:57] lyte_ has joined the channel [13:57] secoif: SubStack just fmi, how long does it take you to write a post of that size [13:57] SubStack: 2 hours? [13:57] magnetik has joined the channel [13:58] aioue has joined the channel [13:58] Margle: SubStack nice. [13:58] secoif: SubStack k cool [13:58] Margle: SubStack: upboated. [13:58] SubStack: hooray [13:58] benvie: many boats to you [13:59] benvie: this is a really good explanation of that key piece of fairy dust that node has [14:00] Sadjow has joined the channel [14:00] shanebo has joined the channel [14:00] phzbox has joined the channel [14:00] garrensmith: SubStack: not picking up your post, chrome says could not find substack.net [14:01] AaronMT has joined the channel [14:01] Margle: garrensmith: http://news.ycombinator.com/item?id=3295007 [14:01] garrensmith: Margle: Oops! Google Chrome could not find substack.net [14:02] SubStack: strange! [14:02] Margle: garrensmith: whatever. we all know you use firefox. :P [14:02] garrensmith: lol, firefox is cool. To lazy to explain what I'm seeing just easier to copy paste [14:02] ditesh|cassini has joined the channel [14:03] benvie: gotten a lot better since 8 and somewhat less terrible memory management [14:04] garrensmith: for sure, but my macbook fan still turns on everytime I load up firefox [14:04] ovaillancourt has joined the channel [14:04] vnguyen has joined the channel [14:05] davidsklar has joined the channel [14:06] swaj: I do all my dev on chrome. Firefox has gotten too big, buggy, and slow for me [14:07] swaj: I just load firefox for compat tests [14:08] benvie: debugging in Chromium finally got better than firebug so that was the end of my major Firefox use [14:08] garrensmith: swaj: same here. I also use downloadThemAll on firefox great download manager [14:08] swaj: yeah the dev tools in chrome are really nice [14:08] swaj: actually like them better than firebug [14:08] benvie: yeah they sucked for a long time but they kept iterating and now they're great [14:09] Margle: **nods** [14:10] michaelhartau has joined the channel [14:11] ShinyDarkness has joined the channel [14:11] bradleyg has joined the channel [14:11] jscheel has joined the channel [14:11] jscheel has joined the channel [14:12] fmeyer has joined the channel [14:12] brianseeders has joined the channel [14:12] fuzzled has joined the channel [14:14] Margle has joined the channel [14:15] Poetro has joined the channel [14:15] Poetro has joined the channel [14:15] gmosx has left the channel [14:15] lyte has joined the channel [14:16] ohtogo has joined the channel [14:17] devdazed has joined the channel [14:18] johnhamelink has joined the channel [14:18] devdazed has left the channel [14:18] lduros has joined the channel [14:21] distrus has joined the channel [14:21] Wizek has joined the channel [14:21] robi42 has joined the channel [14:21] bnoordhuis: html gurus, does this make sense? https://github.com/joyent/node/pull/2231/files#r260880 [14:22] stantona has joined the channel [14:22] xlotlu has joined the channel [14:22] Venom_X has joined the channel [14:23] gut4 has joined the channel [14:24] chjj: bnoordhuis: the html? it looks fine, just got rid of the useless @type [14:25] DotMH has left the channel [14:25] augustl: bnoordhuis: what's the doctype? [14:25] chjj: bnoordhuis: i recommend it [14:25] bnoordhuis: augustl: i think the doctype is "" [14:25] bnoordhuis: chjj: thanks, i'll merge it [14:25] lazyshot has joined the channel [14:26] chjj: augustl: it doesnt matter what the doctype is, browsers dont use validating parsers even if one doctype disagreed with it [14:26] bnoordhuis: it's btw [14:26] chjj: good [14:26] bnoordhuis: html5, we're so hip! [14:26] augustl: chjj: html4 and html5 might have differences no? [14:26] chjj: thats what it should be :) [14:26] glxc: Hello, I am on ubuntu and want to increase the max size of my open files [14:27] glxc: i edited /etc/security/limits.conf correctly [14:27] augustl: glxc: #ubuntu? [14:27] albertosh has joined the channel [14:27] glxc: kk [14:27] bnoordhuis: glxc: you need to log in again [14:27] glxc has left the channel [14:27] bnoordhuis: aww [14:28] albertosh: hi guys, can anyone guide me on how to update from 0.4.9 to the latest stable version? i believe its 0.6.3? [14:28] chjj: augustl: html4 does require it, but it doesnt matter [14:28] chjj: augustl: browsers dont use validating parsers [14:28] augustl: parsing is not my worry though [14:28] chjj: augustl: every browser would understand it, and its the way it should be anyway, trying to write html according to 4.01 doesnt make sense [14:28] Wizek has joined the channel [14:28] augustl: more that if the script tag will be evaulated as javascript without the attribute telling the browser that this contains javascript [14:29] chjj: it will be evaluated as js [14:29] chjj: so i dont see the problem [14:29] augustl: I don't think "every browser would understand it" is a good argument, the spec should be followed regardless [14:29] chjj: it is javascript, and it will be executed as javascript [14:29] augustl: chjj: that's what I was trying to figure out :) [14:29] chjj: augustl: html4.01 is obsolete [14:30] augustl: chjj: that's what I thought was probably the case in many browsers. But I wanted to make sure it was the case. [14:30] augustl: (that it was evaluated as javascript) [14:30] augustl: if you enter a type that _isn't_ text/javascript though, it won't be evaluated as javascript [14:30] chjj: its the case in every browser [14:30] augustl: so I'd rather not guess [14:30] chjj: even in html4, the @type attribute was *only* there as fallback [14:30] zilch_ has joined the channel [14:30] chjj: in case the server did not send a valid content type [14:30] chjj: it was useless even then [14:31] augustl: the HTML in question had an inline script, though [14:31] chjj: that was acknowledged with html5, so its not required anymore [14:31] augustl: so the browser certainly can't use the content type of the file in that case [14:31] augustl: chjj: I see [14:31] topaxi has joined the channel [14:31] chjj: javascript is the default for inline scripts [14:31] CarterL has joined the channel [14:32] thomblake has joined the channel [14:32] thomblake has left the channel [14:33] [Justice] has joined the channel [14:33] chjj: augustl: i also want to say, using any doctype aside from the empty doctype right now, is just ludacris [14:33] devongovett has joined the channel [14:33] augustl: ok? [14:33] [Justice]: yo all - boss and I are just getting into node, working on 2nd app with it (love express), but wanted to share our 1st forey into making a node package: http://blog.alagad.com/2011/11/29/coolbeans-an-ioc-container-for-node-js/ [14:33] [Justice]: and would love any feedback on it [14:34] zilch_ has joined the channel [14:35] tdegrunt has joined the channel [14:35] tomlion has joined the channel [14:35] albertosh: should i uninstall node 0.4.9 before installing the new one using the package provided in the site? [14:35] chjj: augustl: i mean to say that you phrased your question wrong when you asked what doctype the page was [14:35] chjj: augustl: it should have been "what doctype is it? change it if its not according to html5" [14:35] augustl: albertosh: I typically rm -rf ~/local/node before installing a newer version [14:36] albertosh: thanks augustl, so that will completely remove node? [14:36] albertosh: what about npm augustl? [14:36] augustl: albertosh: if that's where you instaled node :) [14:36] ablomen: [Justice], "CoolBeans is loosely based on ColdSpring for ColdFusion and Spring IOC for Java" << you might want to tell what it actually is, since some people (me included) never (really) touched cf or java [14:36] augustl: albertosh: ya I also completely remove npm [14:37] albertosh: and how do you remove npm? [14:37] chjj: augustl: anyway, sorry, im really antidoctype =/ [14:37] augustl: chjj: np, I'd love some actual arguments though :) [14:38] augustl: albertosh: the installer puts itself in ~/local/node, there's also ~/.npm [14:38] albertosh: perfect! [14:38] albertosh: thanks [14:38] augustl: albertosh: or I should say, the npm installer puts npm along with node, wherever you installed node to [14:38] chjj: augustl: on what? why doctypes are a terrible archaic feature that should have been dropped 10 years ago? [14:38] storrgie_ has joined the channel [14:38] albertosh: you where right augustl, thanks so much [14:38] Wizek has joined the channel [14:38] augustl: chjj: yes [14:39] chjj: augustl: okay, to start off, versioning is meaningless in a language like html, when no browser is validating, and when no browser actually implements different "versions" of html [14:39] [Justice]: ablomen - kk, will do. Sorry, that blog site's primary audience, till now, has been coldfusion folks =) [14:40] jaigouk has joined the channel [14:40] chjj: augustl: in a language that has to maintain strict backward compatibility, its really pointless to implement different versions at the same time [14:40] jtsnow has joined the channel [14:40] chjj: if that were the case, what was the point of maintaining backward compatibility for? [14:40] chjj: so it isnt the case, no browser does it [14:40] chjj: it doesnt mean anything [14:41] chjj: which is why html5 dropped the doctype, doesnt have its own dtd, etc [14:41] augustl: [Justice]: yep, some justification on why you need a wrapper for require and module.exports (which is what your project does?) would help [14:41] zheneva has joined the channel [14:41] [Justice]: well, its not just wrapping those, its more of a dependancy injection framework for anything [14:41] augustl: chjj: it depends on your point of view, I suppose. I like to follow the specs 100%, and only deviate if that causes behaviour in commonly used browsers [14:41] CIA-109: node: 03Mathias Bynens 07v0.6 * rcf89bee 10/ lib/punycode.js : punycode: Update to v0.2.1 - http://git.io/mwP4HA [14:41] CIA-109: node: 03Mathias Bynens 07v0.6 * r456dafc 10/ doc/template.html : (log message trimmed) [14:41] CIA-109: node: Docs template: HTML cleanup [14:41] CIA-109: node: Remove references to `/favicon.ico` as it’s the default in all browsers. More [14:41] CIA-109: node: info: http://mathiasbynens.be/notes/rel-shortcut-icon [14:41] CIA-109: node: `type=text/css` and `media=all` are the implied defaults for `` (and `