[00:00] javaanse_jongens has joined the channel [00:02] n2liquid: jeffmoss: I'd love protobuf for NodeJS [00:02] n2liquid: NodeJS can be exploited for writing game servers, I'm sure of it [00:02] jeffmoss: http://code.google.com/p/protobuf-for-node/ [00:03] jeffmoss: so is it faster for me to use protobuf to serialize objects for passing through redis, and stuff? [00:03] jeffmoss: I didn't want to write a benchmark [00:03] n2liquid: jeffmoss: I don't think it's faster if you're using MongoDB, for example, since it uses JSON for the queries (afaik) [00:03] n2liquid: and there's also BSON [00:04] n2liquid: jeffmoss: I think protobuf should only be used when necessary [00:04] n2liquid: it won't improve stuff, only make new stuff happen [00:04] b0t has joined the channel [00:05] n2liquid: (like the ability to quickly write a game server) [00:06] seangaffney has joined the channel [00:06] n2liquid: and also interface with other programming languages [00:07] n2liquid: protobuf is really cool for doing RPCs [00:07] seangaffney: n00b question... how do I uninstall node.js? [00:07] mscdex: make uninstall ? [00:07] seangaffney: @mscdex: from what directory [00:07] mscdex: wherever you extracted the source [00:08] n2liquid: seangaffney: where you ran ./configure && make && make install [00:08] seangaffney: hmm, yeah, I don't remember. I may have even deleted the source [00:08] n2liquid: oh, wait [00:08] n2liquid: Node uses scons, no? [00:08] n2liquid: seangaffney: you can redownload the source and run make uninstall, if that's the case [00:08] ilowhy has joined the channel [00:08] n2liquid: not sure if it's really make uninstall, though [00:09] mscdex: it should [00:09] mscdex: be [00:09] mscdex: :) [00:09] seangaffney: ah, okay, I had to run ./configure first, then make uninstall from the new source directory. :) thanks! [00:10] seangaffney: now that it's a brew package, I'll just use that to manage it :) [00:10] n2liquid: mscdex: I always wondered why it wasn't popular to use make uninstall; I read somewhere that for some odd reason it didn't work well [00:10] n2liquid: always wondered how the Slackware folks manage their computer.. [00:11] fljitovak has joined the channel [00:12] rsms has joined the channel [00:12] jeffmoss: n2liquid: well that's what I'm trying to do RPC [00:12] jeffmoss: I read that activemq is faster though [00:12] jeffmoss: does it's own serializing or something I dunno [00:13] mscdex: jeffmoss: have you looked at dnode already? [00:13] jeffmoss: no [00:13] jeffmoss: but that sounds interesting [00:14] mscdex: jeffmoss: https://github.com/substack/dnode [00:14] SubStack: and the readme is far more comprehensible these days I hope :p [00:14] n2liquid: mscdex: definitely exciting :o [00:15] mscdex: heh [00:15] n2liquid: SubStack: you deserve a beer [00:15] SubStack: `beers suckerpunch [00:15] SubStack: oops [00:15] SubStack: v8bot: `beers SubStack [00:15] v8bot: SubStack: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [00:15] SubStack: hmm [00:15] SubStack: `v beers SubStack [00:15] v8bot: SubStack: SubStack has 21 beers. [00:15] SubStack: that's the one [00:16] n2liquid: SubStack++ [00:16] v8bot: n2liquid has given a beer to SubStack. SubStack now has 22 beers. [00:16] n2liquid: ? [00:16] n2liquid: great! :D [00:16] SubStack: hooray [00:16] mhiku has joined the channel [00:16] jeffmoss: dnode is fast? [00:16] jeffmoss: dnode looks real nice just wondering if the json serializing really slows everything down or what, the object traversal looks like extra overhead [00:17] SubStack: jeffmoss: I use it to serialize raw framebuffer data for http://browserling.com and it does ok [00:17] SubStack: bandwidth is much more of a bottleneck than serialization [00:18] jeffmoss: I want to use it for node-to-node communication [00:19] SubStack: jeffmoss: all the browserling backend processes are tied together with dnode too [00:19] [[zz]] has joined the channel [00:19] n2liquid: SubStack, jeffmoss: shouldn't node-to-node communcation just use plain JSON? [00:19] n2liquid: they likely run on the same local network, so it shouldn't be a problem [00:19] dwiash has joined the channel [00:19] SubStack: n2liquid: but then you need to write your own dispatcher [00:19] jeffmoss: not sure, I'm tempted to code everything way and see which one allows the greatest throughput [00:19] SubStack: which sucks if you've got to juggle a lot of callbacks asynchronously [00:20] jeffmoss: every way [00:20] n2liquid: ah, sorry [00:20] n2liquid: I was thinking that things were ready in JSON from the beginning [00:20] n2liquid: but even using JSON they have to be serialized [00:20] jeffmoss: JSON must be prety fast right... just not sure what protobuf was for [00:20] jeffmoss: but I read somewhere that it wasn't for performance [00:20] n2liquid: so, yeah, it's better to use protobuf, and better still dnode [00:21] jeffmoss: dnode uses json [00:21] n2liquid: purely? [00:21] n2liquid: not even BSON? [00:21] SubStack: newline-terminated json [00:21] n2liquid: oh [00:21] n2liquid: SubStack: why not BSON or protobuf? [00:22] n2liquid: SubStack: bad idea or a milestone? (: [00:22] SubStack: because I hadn't heard of those when I wrote dnode [00:22] n2liquid: ah, haha [00:22] n2liquid: :D [00:22] n2liquid: cool [00:22] apotheon has left the channel [00:22] n2liquid: would be nice, though [00:22] n2liquid: if I had the time I'd try hacking that out [00:23] n2liquid: and the experience, heh [00:23] SubStack: with dnode-protocol abstracted out it's not too hard to swap in a different serialization engine [00:23] n2liquid: SubStack: ah, cool; is that done already? [00:24] SubStack: https://github.com/substack/dnode-protocol [00:24] n2liquid: good [00:24] SubStack: the other problem is that you have to worry about making sure the different sides of the connection are all using the same serialization [00:24] n2liquid: yeah, I know [00:24] n2liquid: that's why protobuf is great [00:25] SubStack: and at that point I don't really see the marginal utility justifying the complexity cost [00:25] n2liquid: it's available for lots of languages and it morphs pretty well with them [00:25] SubStack: when json seems to work pretty well [00:25] n2liquid: yeah, JSON works [00:25] n2liquid: but protobuf constructs actual C++ classes, for example [00:25] SubStack: that sounds... bad? [00:25] n2liquid: why? [00:26] n2liquid: it's faster than looking into a hashmap hierarchy, no? [00:26] SubStack: but the bottleneck isn't serialization [00:26] azeroth_ has joined the channel [00:26] SubStack: for almost any network application [00:26] n2liquid: SubStack: not saying it is either [00:26] n2liquid: it's just cool that it uses the language more "naturally" [00:27] n2liquid: a hashmap hierarchy is not a natural occurence in C++, afaik [00:27] SubStack: well that is c++'s problem [00:27] n2liquid: not to mention, protobuf parses integers from strings to actual ints and stuff [00:27] n2liquid: SubStack: C++ hater? (: [00:27] SubStack: yes [00:27] javaanse_jongens has joined the channel [00:27] n2liquid: haha [00:27] n2liquid: great [00:27] n2liquid: I <3 C++ [00:27] n2liquid: yet.. NodeJS is kind of.. [00:27] Nexxy: ^ insane [00:28] n2liquid: stealing my heart <3 [00:28] SubStack: c++ is great until you actually try to build something [00:28] n2liquid: SubStack: well, I'm into game programming [00:28] Nexxy: would anyone happen to have a good pointer on parsing/streaming video w/ node? ;3 [00:28] mdwright_laptop has joined the channel [00:28] SubStack: n2liquid: I like haskell much better for 3d game programming [00:28] bcelenza has joined the channel [00:28] ilowhy has joined the channel [00:28] SubStack: it's just as fast and you get all those nifty higher-order abstractions [00:29] n2liquid: SubStack: never tried Haskell [00:29] n2liquid: does it feature OOP? [00:29] SubStack: in a sense [00:29] SubStack: with record syntax or some of the extensions [00:29] n2liquid: SubStack: yeah, nifty higher-order abstractions is my problem with C++ [00:29] SubStack: they are actually usable in haskell [00:30] neorab has joined the channel [00:30] n2liquid: I'll check it out later [00:30] SubStack: template metaprogramming hell and macros are not really very useful general-purpose abstractions [00:30] dnyy has joined the channel [00:30] n2liquid: though C++ is the "de facto" language for game programming, so if I want to get hired... [00:30] max_dev has joined the channel [00:31] n2liquid: btw [00:31] hornairs has joined the channel [00:31] n2liquid: how should exceptions be used in NodeJS/ExpressJS? [00:31] azeroth_: Ubuntu x64 - "Build failed: -> task failed (err #2): {task: libv8.a SConstruct -> libv8.a}" Any direction plx? [00:31] n2liquid: aren't there any libs to do the job better? [00:31] azeroth_: Node.js 4.5 [00:32] n2liquid: than just throwing any shit I get [00:32] marcello3d: completely non node.js question [00:32] marcello3d: does anyone have any recommendations on a non-sucky umbrella [00:34] javaanse_jongens has joined the channel [00:34] SubStack: also in hopengl you can organize matrix multiplication and transformation operations that operate on the stack by nesting monadic do notation [00:34] ip^work has joined the channel [00:36] n2liquid: SubStack: the first thing I have to do to write a game is abstract D3D/OGL crap [00:36] MikhX_ has joined the channel [00:37] n2liquid: and there's a fancy linear algebra library for C++ [00:37] n2liquid: which is all I need, and is damn fast [00:37] SubStack: n2liquid: hmatrix is pretty great [00:37] shiawuen has joined the channel [00:37] SubStack: much nicer to use than anything I've seen for c++ [00:37] SubStack: having a repl helps too [00:37] n2liquid: SubStack: btw I hate matrices and math stuff, heh [00:38] n2liquid: I don't know it, really [00:38] clee: SubStack: http://www.artificialworlds.net/wiki/IGCC/IGCC [00:38] n2liquid: and I don't feel much interest too [00:38] clee: REPL for C/C++ [00:38] n2liquid: clee: never heard of that, nice stuff [00:38] SubStack: but repls are good for more stateless functional operations [00:39] SubStack: and c is all about toggling state [00:39] ryah: of course the original c-repl is http://neugierig.org/software/c-repl/ [00:40] dnyy1 has joined the channel [00:40] n2liquid: I think I'll try embedding NodeJS in an engine I'll develop [00:41] AAA_awright has joined the channel [00:41] n2liquid: it's funny how I thought about LUA, Squirrel and whatnot (scripting languages quite aimed at game programming) and never felt comfortable [00:41] n2liquid: then I saw NodeJS [00:41] n2liquid: crap, it just fits so effing well! [00:41] javaanse_jongens has joined the channel [00:41] n2liquid: games are heavily evented, so NodeJS is just perfect [00:41] techwraith: The Zynga Germany guys wrote a nodejs based mmo engine I think... [00:41] dnyy2 has joined the channel [00:42] techwraith: I forget what it was called... [00:42] techwraith: but it died when they were bought out by Zynga [00:42] n2liquid: techwraith: it was browser based, right? [00:42] dnyy3 has joined the channel [00:44] dnyy4 has joined the channel [00:44] ryanfitz has joined the channel [00:46] sspencercon has joined the channel [00:46] dnyy5 has joined the channel [00:46] hoax__ has joined the channel [00:47] javaanse_jongens has joined the channel [00:48] jano has joined the channel [00:48] techwraith: Yep [00:48] techwraith: Aiming for FB games I think [00:48] dnyy6 has joined the channel [00:49] techwraith: I've been looking for a good node based MMO engine for a while [00:49] techwraith: Don't want to have to write my own, lol [00:49] copongcopong has joined the channel [00:50] techwraith: A super simple RPGmaker style graphics engine would be sweet too [00:50] techwraith: I'll build it out someday, lol [00:50] AddZero has joined the channel [00:50] dguttman has joined the channel [00:51] woltage has joined the channel [00:52] dnyy7 has joined the channel [00:52] timmywil has joined the channel [00:53] n2liquid: techwraith: you really into that? check out www.ohloh.net/p/sonetto [00:53] n2liquid: it's unactive now, but I have plans to restart it soon [00:53] n2liquid: (from scratch) [00:54] n2liquid: and build NodeJS into it [00:54] n2liquid: btw, I know the code is crap [00:54] n2liquid: it's really old [00:54] techwraith: Browser based? I want it to run in browser [00:54] dnyy8 has joined the channel [00:54] n2liquid: techwraith: aah... no, not browser-based [00:54] n2liquid: =\ [00:54] techwraith: n2liquid: Where are you located? [00:54] n2liquid: techwraith: are you into japanese games, at least? [00:54] techwraith: Nah, not really [00:55] n2liquid: techwraith: Rio Grande do Sul, Brazil [00:55] techwraith: well, 'cept ff [00:55] n2liquid: I see [00:56] techwraith: There's really no reason not to go browser based these days [00:56] techwraith: check out three.js [00:56] dnyy9 has joined the channel [00:56] techwraith: https://github.com/mrdoob/three.js/ [00:56] ohtogo has left the channel [00:56] techwraith: WebGL ftw [00:57] n2liquid: techwraith: yeah, for the kind of game I was thinking that would do [00:57] n2liquid: does WebGL support shading too? [00:57] techwraith: Not sure, haven't messed around with it much [00:58] n2liquid: hm [00:58] n2liquid: techwraith: please, when you're up to writing an MMO engine drop me an e-mail at n2.nitrogen@gmail.com [00:58] ohtogo has joined the channel [00:59] techwraith: Send me an email to remind me :) techwraithpdx@gmail.com [00:59] n2liquid: okay [00:59] n2liquid: the server-side of an MMO engine can be very, very generic [00:59] techwraith: Yeah, that's what I was thinking [00:59] techwraith: also: https://developer.mozilla.org/en/WebGL/Using_shaders_to_apply_color_in_WebGL [00:59] n2liquid: a single engine could be used from 2D to 3D games and whatnot [00:59] ilowhy has joined the channel [01:01] n2liquid: techwraith: http://www.youtube.com/watch?v=PFE7iNfVOFw have a look later [01:01] n2liquid: it's an MMO I helped write [01:01] n2liquid: it's crap on the inside [01:01] bnoguchi has left the channel [01:01] n2liquid: but it looks cool :D [01:01] techwraith: lol [01:01] techwraith: :) [01:01] harlanji has joined the channel [01:02] n2liquid: techwraith: we used Game Maker, lolol [01:02] losing has joined the channel [01:02] dnyy10 has joined the channel [01:03] n2liquid: techwraith: I'm pretty sure it wouldn't handle a thousand connections, but hey, at least it's cute externally :\ [01:03] mdwright_laptop: Is there a way to add a Listener to all events on an EventEmitter? (Really what I want to do is extend an event emitter while adding a few other events to it. ) [01:03] n2liquid: initially the server was just a message relayer and clients controlled everything [01:03] n2liquid: it was such a shame.. but the idea wasn't mine >: [01:03] TheEmpath has joined the channel [01:04] boaz_ has joined the channel [01:04] dguttman has joined the channel [01:05] n2liquid: well, I gotta go [01:05] n2liquid: techwraith: nice talk [01:05] n2liquid: I dropped you a reminder [01:06] n2liquid: see ya [01:07] malvim has joined the channel [01:07] hwinkel has joined the channel [01:11] xtianw has joined the channel [01:12] eee_c has joined the channel [01:12] dnyy11 has joined the channel [01:13] jeffmoss_ has joined the channel [01:14] mike5w3c_ has joined the channel [01:14] jaket has joined the channel [01:16] dnyy12 has joined the channel [01:17] javaanse_jongens has joined the channel [01:17] willwhite has joined the channel [01:18] jjmalina has joined the channel [01:19] montylounge has joined the channel [01:19] derickson has joined the channel [01:20] ilowhy has joined the channel [01:21] davidc_ has joined the channel [01:21] arpegius has joined the channel [01:23] qbert_ has joined the channel [01:23] aguynamedben has joined the channel [01:23] Emmanuel__ has joined the channel [01:25] mike_miller has joined the channel [01:26] zkirill has joined the channel [01:26] charlenopires has joined the channel [01:27] soulofpeace has joined the channel [01:27] dnyy has joined the channel [01:28] rsms has joined the channel [01:28] charlenopires_ has joined the channel [01:28] davidascher has joined the channel [01:28] siculars has joined the channel [01:29] developingchris has joined the channel [01:29] developingchris has left the channel [01:29] javaanse_jongens has joined the channel [01:29] rchavik has joined the channel [01:30] sub_pop has joined the channel [01:31] gazumps has joined the channel [01:33] saikat_ has joined the channel [01:33] zentoooo has joined the channel [01:33] dnyy has joined the channel [01:35] marcello3d: what a wet day [01:35] sako has joined the channel [01:36] seivan has joined the channel [01:36] dnyy1 has joined the channel [01:37] shaunau has joined the channel [01:37] javaanse_jongens has joined the channel [01:38] shaunau: jeffmoss: did you find the problem yesterday? [01:38] jeffmoss: yeah [01:38] shaunau: what was it? [01:38] jacter has joined the channel [01:38] dnyy2 has joined the channel [01:38] jeffmoss: I wrapped my var module = require('...') in a closure and it worked, it didn't lok like it but the module must have been in the global scope [01:39] bingomanatee: Nodelings: JSON question [01:39] shaunau: ah [01:39] shaunau: good to know. [01:39] bingomanatee: Does JSON insist that the outer braces be curly {} [01:39] bingomanatee: or can you have an array of objects as the outer layer [] and still be legit JSON? [01:39] chilts: bingomanatee: no, you can have [] too [01:39] marcello3d: I think you can use [] [01:39] marcello3d: http://www.json.org/ [01:39] tbranyen: any danger in completely replacing the exports with an object containing methods to return? [01:39] bingomanatee: awesome. [01:39] tbranyen: exports = { somefunc: func, somefunc2: func } [01:40] perezd: ryah: still here if u want [01:40] pcardune has joined the channel [01:40] dnyy3 has joined the channel [01:40] mdoan has left the channel [01:40] tbranyen: or is exports a 1:1 with whats returned with require? [01:40] marcello3d: tbranyen: everyone does it [01:40] marcello3d: but you have to do module.exports = [01:40] tbranyen: marcello3d: nah everyone usually just adds to it, no? [01:40] marcello3d: I believe [01:40] dnyy4 has joined the channel [01:40] tbranyen: not destroying it [01:41] marcello3d: you can't destroy 'exports', but you can destroy module.exports [01:41] marcello3d: most of mongolian deadbeef works that way [01:41] marcello3d: e.g.: [01:41] marcello3d: var MongolianCollection = module.exports = function(db, name) { [01:41] tbranyen: marcello3d: if i assign a different object to it, how does that not "destroy" it? [01:41] bingomanatee: I've heard that there are useful features to the exports and module items - is there a list of their features/api somewhere? [01:41] dnyy has joined the channel [01:41] marcello3d: bingomanatee: I don't think they're officially supported, beyond resolve maybe [01:42] bingomanatee: i.e., are there any methods/properties of the module token in node? [01:42] bingomanatee: so they are basically just placeholders then? [01:42] marcello3d: http://nodejs.org/docs/v0.4.5/api/modules.html [01:42] marcello3d: and http://nodejs.org/docs/v0.4.5/api/globals.html [01:42] dnyy1 has joined the channel [01:42] tbranyen: To export an object, add to the special exports object. << the fact it says special is what throws me off [01:43] marcello3d: http://nodejs.org/docs/v0.4.5/api/globals.html#module [01:43] tbranyen: also module.exports is the same as exports according to this [01:43] bingomanatee: so the whole module.exports thing seems to have evaporated from the documentation [01:43] bingomanatee: one would think then that module in and of itself is useles? [01:43] bingomanatee: the module token itself? [01:43] marcello3d: look at node/lib/module.js [01:44] marcello3d: this is how they make it... [01:44] marcello3d: function Module(id, parent) { [01:44] marcello3d: this.id = id; [01:44] marcello3d: this.exports = {}; [01:44] EyePulp has joined the channel [01:44] marcello3d: nothing too special :) [01:44] mdoan has joined the channel [01:44] jeff_horton has joined the channel [01:44] bingomanatee: children/parent might be fun [01:44] tbranyen: marcello3d: ah dope [01:45] tbranyen: so its not special at all heh [01:45] marcello3d: bingomanatee: require.extensions is one other feature [01:45] tbranyen: thx for the help [01:45] bingomanatee: super thx [01:45] marcello3d: bingomanatee: you're probably best off reading the source at this point [01:46] bingomanatee: yeah johnny can read. [01:46] shaunau: i've been doing exports.foo = function() { function _bar(){} return {bar:_bar} } not sure if that's a bad idea. but it feels right to me. [01:46] eee_c has joined the channel [01:46] sechrist has joined the channel [01:47] marcello3d: shaunau: so that requires you to write require("foo")() ? [01:47] shaunau: somethign like that, yeah var bar = require('foo').bar(); [01:47] derickson: marcello3d: That means you do var thing = require('thing') [01:47] shaunau: i think.. :) [01:47] derickson: then thing.foo(); [01:47] marcello3d: no [01:48] marcello3d: that wouldn't work [01:48] marcello3d: cause require('foo') returns a function [01:48] dnyy2 has joined the channel [01:48] marcello3d: so you'd have to do require('foo')().bar() [01:48] Croms has joined the channel [01:48] derickson: but it doesn't :) [01:48] derickson: try it, it totally works [01:48] derickson: lol [01:48] sechrist: Anybody know how to run javascript inside of an iframe from the webkit inspector? [01:48] marcello3d: sorry. I misread. require('foo').foo().bar() [01:49] Croms: What are some good ways of protecting outside public directory access when serving static files? [01:49] javaanse_jongens has joined the channel [01:50] rsms has joined the channel [01:51] Aria has joined the channel [01:51] derickson: marcello3d: https://gist.github.com/916816 [01:51] marcello3d: derickson: yes, I agree that that works [01:51] marcello3d: but shaunau said something else [01:52] ilowhy has joined the channel [01:52] derickson: Ah, see, sorry :) [01:52] marcello3d: https://gist.github.com/fcd18ab01edbfc187035 [01:52] niftylettuce has joined the channel [01:53] rafacv has joined the channel [01:54] jacobolus has joined the channel [01:54] derickson: weird [01:54] derickson: What's the benefit? [01:54] shaunau: this is what i've been doing: http://pastebin.com/UU2qUNbh [01:54] dguttman has joined the channel [01:55] shaunau: not sure if it's a good idea or not.. [01:55] marcello3d: are you from a java background? [01:55] jacter has joined the channel [01:56] Jckf has joined the channel [01:56] postwait has joined the channel [01:56] shaunau: :/ yeah [01:57] shaunau: feels natural and understandable to me, that way. [01:57] Me1000 has joined the channel [01:57] zorzar_ has joined the channel [01:58] marcello3d: I'd personally do something like [01:58] marcello3d: https://gist.github.com/bdc20da6a04c836e558e [01:58] derickson: Yeah, that was my first impulse too. Beat me to it ;) [01:58] k1ttty has joined the channel [01:58] derickson: Half the code ;) [01:59] marcello3d: refresh for an example with a function: https://gist.github.com/bdc20da6a04c836e558e [01:59] varioust has joined the channel [01:59] shaunau: i see [02:00] marcello3d: and if you use 'new' [02:01] marcello3d: you'll actually get class hierarchy support [02:01] marcello3d: so you can do (user instanceof User) [02:01] marcello3d: whereas if you return { ... } [02:01] marcello3d: it's just a generic object [02:02] a|i: is geddy dead? [02:02] javaanse_jongens has joined the channel [02:03] derickson: a|i: Sort of, mde has other things on his mind... [02:03] derickson: I would classify it as "on haitus" [02:03] a|i: does it make sense to use node with rails? [02:04] dnyy3 has joined the channel [02:04] derickson: Sure, depends on what you have rails handle and what you have node handle [02:04] SubStack: a|i: for realtime components of mostly database-heavy crud apps sure [02:05] trotter has joined the channel [02:05] a|i: do people do this?: node <-> redis <-> rails (opposit to node <-> rails <-> redis) [02:06] shaunau: I can see that i'm definately brining my Java baggage with me.. [02:06] ncb000gt has joined the channel [02:07] derickson: You certainly can. [02:07] javaanse_jongens has joined the channel [02:07] shaunau: i need to think this through some more.. [02:07] a|i: derickson: thanks! [02:08] derickson: Whoa, where'd my nick go... [02:08] stillmotion has joined the channel [02:08] marcello3d: shaunau: it's totally fine to start that way :) [02:08] piscisaureus has joined the channel [02:08] saikat has joined the channel [02:08] techwraith: There we go :) [02:09] shaunau: marcello3d: it much clearer to me at this stage.. familiar. [02:10] shaunau: its interesting, i love the flexibilty of JS but at the same time i feel like i need to impose structure on it otherwise i'll end up with a mess. :) [02:10] dylang has joined the channel [02:11] shaunau: i should say, "familiar looking structure" [02:11] marcello3d: shaunau: I would use the attitude that more concise code is more readable/better [02:11] marcello3d: of course, deciding what is concise is an art in of itself [02:11] marcello3d: but it's a good general rule of thumb :) [02:11] k1ttty has joined the channel [02:11] shaunau: i agree [02:11] jeffmoss: is it wrong of me to create auto-loading methods like this: getParent: function() { this.parent = new Parent(); this.getParent = function(){ return this.parent; }; return this.parent; } [02:11] davidc_ has joined the channel [02:12] k1ttty has joined the channel [02:12] marcello3d: jeffmoss: I've done that [02:12] Aria: Caching. I see nothing wrong with that, though V8 may not optimize that terribly well. [02:12] techwraith: shaunau, marcello3d: I always feel like it's a bit of a balancing act between concise code and easy to understand code. Definitely an art. [02:12] marcello3d: it really depends how expensive the operation is [02:12] SubStack: jeffmoss: well the downside is that you might get confused and call obj.parent when you meant to call obj.getParent [02:12] tonymilne has joined the channel [02:12] SubStack: you might consider closure-style encapsulation instead of prototype-style [02:13] jeffmoss: i am trying to skip 1 conditional is all [02:13] marcello3d: jeffmoss: I'd probably do getParent() { return this.parent || (this.parent = new Parent) } [02:13] shaunau: techwraith: very true [02:13] marcello3d: nevermind the fact that you should be creating your own parent [02:13] marcello3d: *shouldn't [02:14] techwraith: Yeah, that sounds pretty unnatural ;) [02:14] tonymilne: Hi all. I'm having a namespacing clash with two modules that both use c++ and expose a class called Connection : EventEmitter. [02:14] tonymilne: Both Connection classes define different NODE_SET_PROTOTYPE_METHOD. Is there for me to be able to use both without modifying their code? [02:15] shaunau: jeffmoss: marcello3d, i find marcello3d's impl easy to grok [02:15] shaunau: too many this' spoil the broth :P [02:15] Nexxy: I resent that! I created my own parent ;[ [02:15] marcello3d: Nexxy: and you like jquery ;D [02:15] shaunau: haha [02:16] marcello3d: anyone know where the express.js view root folder is set? [02:16] Nexxy: sometimes you have to make-do with what you have, kthx [02:16] marcello3d: offhand [02:16] jano has joined the channel [02:16] jeffmoss: Parent was arbitrary example [02:17] shaunau: marcello3d: do you mean, app.set('views', __dirname + '/views'); [02:17] marcello3d: shaunau: sounds good :D [02:17] shaunau: :) [02:17] marcello3d: perfect, worked [02:18] techwraith: marcello3d: Just curious, why change it? [02:18] marcello3d: techwraith: cause it's being relative to the commandline start [02:19] wilmoore_ has joined the channel [02:19] marcello3d: rather than the source using it [02:19] techwraith: Ah, slightly less cool than I was hoping for, lol [02:19] marcello3d: heh [02:19] marcello3d: yea [02:19] marcello3d: borrring :D [02:20] seivan has joined the channel [02:20] marcello3d: http://i.min.us/im91Ae.png :D [02:21] saikat has joined the channel [02:22] AddZero has left the channel [02:22] skm has joined the channel [02:22] marajit has joined the channel [02:23] Roelven_ has joined the channel [02:24] marajit: hi [02:24] marajit: what's wrong with this code: http://piratepad.net/8l89tNf2jt [02:25] marcello3d: you have code inside a parameter [02:25] Druide_ has joined the channel [02:25] marcello3d: night all [02:25] marajit: can you explain a bit more? [02:26] kaichenxyz has joined the channel [02:27] marajit: without the get it works fine [02:27] techwraith: Anyone have any ideas on how to sort a hash by it's values in js? [02:27] ncb000gt: marajit: take a look now [02:28] ncb000gt: techwraith: erm...not sure actually [02:28] tbranyen: techwraith: hashes don't have order [02:28] ncb000gt: well, not fast [02:28] tbranyen: objects rather [02:28] indutny has joined the channel [02:28] tbranyen: arrays of objects you can sort with a custom function to the Array.sort [02:28] ncb000gt: tbranyen: sure, but you could create a sorted array of the hash entries [02:29] tbranyen: thats not the same thing [02:29] techwraith: {a: 1, c:3, b:2} => {a: 1, b: 2. c: 3} [02:29] ncb000gt: tbranyen: of course it's not, but it's a way to solve the problem [02:29] tbranyen: techwraith: that's not how objects work, you cannot guarentee order with the keys [02:29] techwraith: Damn, I was hoping I could :) [02:29] techwraith: lol [02:29] tim_smart has joined the channel [02:30] marajit: ncb000gt: still not [02:31] techwraith: lol, it was just for displaying the JSON.stringify() in a way I wanted. Damn OCD :P [02:32] ncb000gt: marajit: try again [02:32] aho: *OCPD [02:32] shiawuen_ has joined the channel [02:32] techwraith: ? [02:32] aho: Obsessive–compulsive personality disorder (OCPD) is a personality disorder which is characterized by a pervasive pattern of preoccupation with orderliness, perfectionism, and mental and interpersonal control at the expense of flexibility, openness, and efficiency. [02:33] tbranyen: aho: you were pretty OCD about that [02:33] techwraith: lol, get it now [02:33] marajit: ncb000gt: nope [02:33] ncb000gt: once more [02:34] ncb000gt: i'm going based off memory [02:34] ncb000gt: but most of this should be in the docs [02:34] SubStack: what is it called when somebody is overly concerned with the opposite? [02:34] tonymilne: techwraith: can you try something like putting for (key in hash) into an array, sort that, iterate that and pull the value from the original hash? [02:34] galaxywatcher has joined the channel [02:35] marajit: ncb000gt: no set method [02:35] techwraith: tonymilne: I could create an array of objects [{a:1},{b:2},{c:3}] [02:35] techwraith: but it's silly for my use case [02:35] mjr_: Just supply a compare function to sort [02:35] mjr_: Object.keys(obj).sort(fn) [02:36] ncb000gt: look again [02:36] ncb000gt: i modified it while you were trying it [02:36] tbranyen: mjr_: for his output that wouldn't help much :-/ [02:36] tbranyen: i thought about that too, but for just console.log output its not really worth it :-/ [02:36] kaichenxyz has joined the channel [02:36] tbranyen: techwraith: if it really bugs you, you could write your own prettyprinter [02:37] tbranyen: in a few lines of code [02:37] techwraith: lol, doesn't bug me that much [02:37] darshanshankar has joined the channel [02:37] marajit: no get method [02:37] tonymilne: So, anyone got any tips on how to handle my namespacing clash with two 3rd-party modules that both use c++ and expose a class called Connection : EventEmitter? Both Connection classes define different NODE_SET_PROTOTYPE_METHOD. [02:37] isaacs has joined the channel [02:38] tonymilne: Would i just wrap one of them in namespace ... { } or is there a way where i dont have to modify their c++ code? [02:38] ncb000gt: marajit: http://senchalabs.github.com/connect/middleware-router.html [02:43] beawesomeinstead has joined the channel [02:43] beawesomeinstead has joined the channel [02:43] dnyy has joined the channel [02:43] malkomalko has joined the channel [02:43] dnyy1 has joined the channel [02:44] marajit: ncb000gt: I don't under the syntax. connect is an object, and gets connect.static as a parameter. then you've just added connect.get. is this really how to code this thing, the whole server as a series of parameters? [02:45] marajit: oh. now its working [02:45] ncb000gt: marajit: it's routing isn't exactly like rails or django if that is what you're asking. however, the routing in both of those can map to functions with parameters [02:45] ncb000gt: marajit: you might want to look at express [02:45] ncb000gt: which is a slight abstraction on top of connect [02:46] techwraith: Connect/Express is closer to Sinatra than Rails, definitely [02:46] marajit: i was on express. someone told me to use connect to simplify routing [02:46] astropirate has joined the channel [02:46] techwraith: lol, simplify? [02:47] techwraith: doesn't really get much simpler than express - what are you trying to do? [02:47] shaunau: BiggeRouter is pretty easy to use. [02:47] tim_smart: I authored biggie-router if you have questions. [02:47] tim_smart: It should support most connect middleware. [02:48] marajit: techwraith: yeah, it handles fs and mime [02:48] dnyy2 has joined the channel [02:48] sethetter has joined the channel [02:48] techwraith: Ah, got it [02:48] marajit: techwraith: see what I had before: http://piratepad.net/8l89tNf2jt [02:48] Sidnicious has left the channel [02:49] shaunau: tim_smart: i'm ok with it. i was just mentioning it was easy to use :) [02:49] gtramont1na has joined the channel [02:49] dnyy3 has joined the channel [02:50] techwraith: makes sense [02:50] zkirill_ has joined the channel [02:50] gtramont1na: hey y'all. I'm not being able to see VowsJS' dot matrix report in action... When I call "vows test/* --dot-matrix" nothing special happens. Any tips? [02:50] charlenopires has joined the channel [02:51] dnyy has joined the channel [02:52] meso has joined the channel [02:52] marajit: ncb000gt: thanks a stack. [02:52] ncb000gt: :) [02:53] dnyy has joined the channel [02:54] dnyy1 has joined the channel [02:55] dnyy2 has joined the channel [02:56] dnyy3 has joined the channel [02:57] yhahn has joined the channel [02:58] chrislorenz has joined the channel [03:01] dnyy4 has joined the channel [03:01] davidc_ has joined the channel [03:01] davidascher has joined the channel [03:01] derferman has joined the channel [03:02] dwiash has joined the channel [03:03] dnyy has joined the channel [03:04] hwinkel has joined the channel [03:09] dnyy has joined the channel [03:09] blueadept has joined the channel [03:10] mdwright_laptop has joined the channel [03:12] jacobolus has joined the channel [03:12] dnyy has joined the channel [03:13] cloudhead has joined the channel [03:14] dnyy1 has joined the channel [03:14] dnyy2 has joined the channel [03:16] dnyy3 has joined the channel [03:16] blueadept: would anyone know why i might not be able to get a POST to go through on a form with jade? my issue is that when i hit the submit button, absolutely nothing happens, not even an error message. when i hit submit it just stays there [03:17] blueadept: also the logs indicate nothing is happening either [03:17] blueadept: console shows no activity [03:17] tbranyen: fawk jsdom doesn't have qSA come on! [03:20] jakehow has joined the channel [03:24] themiddleman_itv has joined the channel [03:25] mdwright_laptop: What's the canonical way to manage database access? Like, have a single instance of a class that gets passed around to modules that does all the interaction? Open it everytime? [03:28] mikegerwitz: mdwright_laptop: Depends on your choice of paradigm. If you're a strict class-based OO developer, yes, pass around the class. Which I recommend, otherwise you'll have trouble testing and couple the code too tightly. [03:29] technoweenie has joined the channel [03:29] mikegerwitz: mdwright_laptop: Otherwise, you have other options. Can use a singleton and return that using module.exports, then every time you require() that instance is reused [03:29] mdwright_laptop: mikegerwitz: Yeah. I was planning on creating a class that opens the db in the constructor and passing around an instance of the class via exports. [03:30] astropirate has joined the channel [03:30] Emmanuel__ has joined the channel [03:30] mdwright_laptop: (I'm using CoffeeScript + Node, so it makes a little more sense to talk about that way than if I was using pure JS :-) ) [03:30] mdwright_laptop: mikegerwitz: thanks though! [03:30] mbrevoort has joined the channel [03:31] mikegerwitz: mdwright_laptop: yep [03:31] jimt has joined the channel [03:31] mikegerwitz: pass around an instance of the class* ...not pass around the class. (just caught that) [03:32] pcardune has joined the channel [03:32] willwhite has joined the channel [03:33] mdwright_laptop: Yeah. It made sense to me. Just wanted to make sure there wasn't a more standard way of doing it. [03:34] mdwright_laptop: Is there anyway I can be sure the DB opened when the module loads (since the open is asynchronous). Or will writes to an unopened database be buffered? (This is all mongodb-native) [03:35] mikegerwitz: mdwright_laptop: It's a language like any other :) Common best practices still apply. I'm not sure if there's an "accepted" way, but if it differs too much, I can't say I'd recommend using it [03:35] Viriix has joined the channel [03:36] mdwright_laptop: mikegerwitz: haha, yeah. I'm just still getting used to dealing with things asynchronously [03:37] mikegerwitz: mdwright_laptop: I use mongodb-native in a project at work. I just instantiate the class and have it call a callback when complete. Then I pass that instance around; I never touch require() again. But if you give it a callback, require() would still work so long as you don't do anything until after the callback is called. I'm not sure if it buffers. I don't believe it does. [03:39] mdwright_laptop: mikegerwitz: Yeah. So you aren't guaranteed that it's open when you start writing (since the module will load and you can start writing to the returned object _before_ the database is open). It's just really unlikely to happen. [03:39] mdwright_laptop: (Because the open is asynchronous) [03:40] mdwright_laptop: or are you doing an open on every read and write? [03:40] mikegerwitz: mdwright_laptop: Yeah. Actually, for quite some time, I didn't even wait for it to connect to the db, since the connection was so fast. By the time the first request came in (HTTP), it was highly unlikely that the connection was not ready. We don't get enough requests to that server. But obviously that's an unsafe practice [03:41] mikegerwitz: mdwright_laptop: Nope, it's persistent. [03:41] mdwright_laptop: Yeah. I was wondering if there was a solution to that. [03:41] mdwright_laptop: block until the callback gets called, somehow [03:41] skm has joined the channel [03:42] mikegerwitz: var db = require( 'MongoFoo' )( args, for, ctor ); db.connect( doStuff ); [03:42] mikegerwitz: where doStuff will continue server initialization, or start listening for requests [03:43] mikegerwitz: mdwright_laptop: You don't want to try to block, because your server can do other initialization tasks int he meantime :) One of the first operations I do is attempt to connect to the DB, so that everything else can initialize while that's going on [03:43] mbrevoort has joined the channel [03:43] jonpacker has joined the channel [03:43] mdwright_laptop: Yeah. [03:43] F1LT3R has joined the channel [03:44] yuzebin has joined the channel [03:45] jimt_ has joined the channel [03:45] meandi2 has joined the channel [03:47] bartt has joined the channel [03:48] pcardune has joined the channel [03:49] zemanel has joined the channel [03:58] chrislorenz has joined the channel [03:58] flippyhead_ has joined the channel [04:00] omni5cience has joined the channel [04:02] Me1000 has joined the channel [04:02] gazumps has joined the channel [04:02] zkirill has joined the channel [04:05] dguttman has joined the channel [04:06] indutny: ryah: refactored NPN pull request https://github.com/joyent/node/pull/911 [04:08] pquerna: indutny: is that safe in Connection::AdvertiseNextProtoCallback_? [04:09] indutny: pquerna: what? [04:09] indutny: pquerna: what line? [04:09] pquerna: indutny: i was looking at SSL_CTX_set_next_protos_advertised_cb [04:09] Yuffster has joined the channel [04:09] pquerna: indutny: it doesn't store copies of the data, just references [04:09] pquerna: so if the buffer lifetime is every different [04:10] pquerna: was thinking it might make sense to have a char */ size_t on the c++ Connection* that are memcpy'ed to for it [04:10] pquerna: and then free'ed later [04:10] jtsnow has joined the channel [04:10] pquerna: in the same path as the destruction of the SSL* [04:10] indutny: pquerna: I think it's safe, b/c I'm using Persistent handle and manually releasing it [04:10] SDr has joined the channel [04:11] pquerna: where is it released? [04:11] davidvanleeuwen has joined the channel [04:11] indutny: pquerna: https://github.com/joyent/node/pull/911/files#L1R1300 [04:11] pquerna: + *data = reinterpret_cast(Buffer::Data(p->npnProtos_)); [04:11] indutny: pquerna: when new protocols will be written [04:12] indutny: pquerna: [04:12] indutny: +    ss->npnProtos_.Dispose(); [04:12] jacobolus has joined the channel [04:13] tbranyen: was there someone else who had an error with https and a setTimeout fixed the problem? [04:13] tbranyen: because that just happened to me [04:13] indutny: pquerna: is that ok? [04:13] pquerna: okay, yeah.. i see now. [04:13] tbranyen: http://sharefilewith.me/u/823061.png << before and after a setTimeout [04:13] pquerna: i guess that'll work [04:14] indutny: pquerna: cool [04:14] tbranyen: http://sharefilewith.me/u/29370b.png << the code [04:14] marajit has joined the channel [04:14] indutny: pquerna: as you can see it now supports NPN even in client connections [04:14] pquerna: ya, nice. [04:14] Dyscrete has joined the channel [04:14] indutny: pquerna: probably I should patch https too [04:14] pquerna: only other more design-ish question i had was about the hasNPN attribute itself [04:14] indutny: pquerna: and add npn protocol [04:15] Dyscrete: hey everyone [04:15] indutny: pquerna: but it's required [04:15] indutny: pquerna: really [04:15] pquerna: i dont think anywhere else we set a hasVERB thing [04:15] indutny: pquerna: so how should it look like? [04:15] indutny: pquerna: to your mind [04:15] pquerna: not saying something like it isn't neeeded, just seems like a different design compared to existing APIs [04:15] marajit: hi. my connect version of express is not catching routes. http://piratepad.net/8l89tNf2jt [04:16] indutny: pquerna: may be just "npn = true" ? [04:16] pquerna: going to look in the existing stdlib for something like it [04:16] pquerna: can't really think of something atm [04:19] saikat has joined the channel [04:19] indutny: pquerna: have we actually dealed w/ platform specific functionality in modules? [04:20] pyrotechnick has joined the channel [04:20] pyrotechnick: where's marak [04:20] steph021 has joined the channel [04:20] niftylettuce: I keep getting "Caught exception: ReferenceError: Invalid left-hand side in assignment" with the following [04:21] pquerna: indutny: http://nodejs.org/docs/v0.4.5/api/os.html is the nearest thing [04:21] niftylettuce: http://pastie.org/private/8wytk0itaj3xkxhibo5inw [04:21] pquerna: indutny: so at least following that style, it'd be a function that returns ... something [04:21] indutny: pquerna: so what's your proposal? [04:21] copongcopong has joined the channel [04:22] indutny: pquerna: place npn flag into os module? [04:22] pquerna: indutny: was kind of thinking more generically, tls.has_features(); returns an array of features available in openssl [04:22] pquerna: but not really sure [04:22] pquerna: there are a few other openssl things added in later versions [04:22] indutny: pquerna: k, lets wait for ryah word [04:22] marajit: niftylettuce: i have to catch the page first but its not doing that [04:22] indutny: pquerna: for example? [04:22] pquerna: like-per-connection memory use toggling [04:22] pquerna: *compression [04:22] indutny: pquerna: wow [04:22] indutny: pquerna: where it is? [04:23] niftylettuce: marajit: say? [04:23] pquerna: ocsp stapling [04:23] niftylettuce: marajit: what do you mean catch the page first [04:23] indutny: pquerna: AFAIK, tls compression isn't enabled in node [04:23] pquerna: indutny: well, not currently, we disable it globally with a hack [04:23] pquerna: but in >0.9.9someletter, you can turn it off per-connection [04:23] pquerna: ocsp related things is probally other good example though [04:24] marajit: niftylettuce: i started using connect.get functions and now it won't catch http://localhost:3001/ghost.12039423 for instance [04:24] marajit: http://piratepad.net/8l89tNf2jt [04:24] indutny: pquerna: yep, I know [04:24] pquerna: would we be okay with having hasNPN, hasOCSPStapling as just straight up variables on the tls module [04:24] indutny: pquerna: in case, no [04:24] indutny: pquerna: but probably yes [04:24] indutny: pquerna: :) [04:25] indutny: pquerna: at least for now [04:25] pquerna: heh [04:25] pquerna: there is no now, there is only forever :) [04:25] niftylettuce: ugh [04:25] pquerna: i guess the only change I'd vote for is making them functions rather than attached variables [04:25] pquerna: the naming is easier to change later/deprecate [04:25] techwraith has joined the channel [04:25] pquerna: i don't see anything else anywhere that isn't a function [04:26] pquerna: even if it is returning a static value [04:26] shiawuen has joined the channel [04:27] indutny: pquerna: yep, you're right. lets wait ryah [04:27] indutny: pquerna: atm, I want to do small break :) [04:29] pquerna: ryah: hows does thursday sound for landing patches in master for tls :) [04:29] chrislorenz has joined the channel [04:29] fairwinds has joined the channel [04:35] indutny: pquerna: do you have any other tls patches? [04:35] indutny: pquerna: I'm trying to fix SecureStream.prototype.pause problem, but I've no results for now [04:37] pquerna: indutny: https://github.com/joyent/node/pull/873 [04:37] indutny: pquerna: btw, probably it will be good to put your advices in one comment to pull request https://github.com/joyent/node/pull/911 [04:37] pquerna: indutny: though does nothing for the pause/unpause issue [04:37] indutny: pquerna: yep, I'm pretty sure [04:38] indutny: pquerna: ha! :) that looks great! [04:39] indutny: pquerna: but really isn't related to packet skip problem [04:39] indutny: pquerna: actually, atm tls isn't really usable b/c of that [04:39] indutny: pquerna: it can sometimes just stop emitting packets [04:39] pquerna: right [04:39] pquerna: i know russell_h had a semi-reproducable example [04:40] pquerna: but ideally we could get a test case [04:40] indutny: pquerna: I can tell you what will get this working ;) [04:40] indutny: pquerna: deleting CryptoStream.prototype.pause and resume [04:40] indutny: :D [04:40] indutny: pquerna: but that's not good solution [04:40] pquerna: you mean removing all pause and resume [04:40] galaxywatcher has joined the channel [04:40] pquerna: in all streams [04:41] indutny: pquerna: nope, just those functions [04:41] indutny: pquerna: but performance is much worse [04:41] cammm has left the channel [04:41] copongcopong has joined the channel [04:41] pquerna: i mean they aren't doing much [04:42] indutny: pquerna: why do you think so? [04:42] pquerna: it kind sounds like for some reason an initial cycle() isn't getting starte [04:42] indutny: pquerna: yep, after resuming [04:43] pquerna: right, i mean, i bet it would be solved() just by adding a setTimeout( function() {self.pair._cycle(), 0.1}; [04:43] pquerna: so i'm wondering why its not getting a data event [04:43] timmywil has joined the channel [04:43] pquerna: or if its just the initial state is in the wrong order to what its expecting [04:43] pquerna: so thats why a test case would be so great [04:44] chrislorenz has joined the channel [04:44] indutny: pquerna: problem is repeating randomly [04:45] pyrotechnick: pyrotechnick [04:45] pquerna: so, just upload a 10mb file? [04:45] indutny: pquerna: we need to get write buffer full [04:45] pquerna: is that the bst case? [04:45] indutny: pquerna: probably [04:45] pquerna: okay [04:45] jonpacker has joined the channel [04:45] bojicas has joined the channel [04:47] bojicas has joined the channel [04:48] niftylettuce: common reasons for receiving a "Caught exception: ReferenceError: Invalid left-hand side in assignment" error? [04:48] bernied has joined the channel [04:49] indutny: niftylettuce: left side of expression isn't a variable [04:49] indutny: niftylettuce: a &* a = 1; [04:49] indutny: niftylettuce: sorry, typo a && a = 1; [04:49] pcardune has joined the channel [04:52] indutny: ryah: are you actually around? [04:53] ryah: indutny: yes [04:53] niftylettuce: indutny: hmm [04:53] m64253 has joined the channel [04:53] robotarmy has joined the channel [04:54] indutny: ryah: great, have you seen pull request? (NPN refactor) Just to be sure it has reached you [04:54] ryah: indutny: i have - i'm trying to catch up with more urgent bugs first [04:54] indutny: ryah: k, thanks [04:54] indutny: ryah: no worries, just asking, you know [04:55] niftylettuce: indutny: here app post request that i think i'm getting error on http://pastie.org/private/4hvwmsym2gwcwvlbi5hc1q do you see anything that stands out? [04:59] Emmanuel__ has joined the channel [05:00] bernied has joined the channel [05:01] bnoguchi has joined the channel [05:01] copongcopong has joined the channel [05:03] bernied has joined the channel [05:03] jaket has joined the channel [05:04] bernied has joined the channel [05:04] indutny: niftylettuce: line 37 : } else if(validEmail == 2 && validName = 1) { [05:04] path[l] has joined the channel [05:05] jacter has joined the channel [05:05] bernied has joined the channel [05:05] niftylettuce: indutny: :) :) :) [05:05] mansoor-s: Ceylons are in. throw away yoru java code [05:05] bernied has joined the channel [05:06] bernied has joined the channel [05:06] modular has joined the channel [05:08] figital has joined the channel [05:09] RusAlex has joined the channel [05:13] dguttman has joined the channel [05:14] dwiash has joined the channel [05:14] Bonuspunkt has joined the channel [05:14] ziro` has joined the channel [05:15] dguttman has joined the channel [05:16] skm has joined the channel [05:16] dguttman has joined the channel [05:19] btipling: https://github.com/joyent/node/wiki/modules#testing [05:19] btipling: which of those is good for a test runner? [05:19] btipling: there are so many :( [05:19] indutny: btipling: try vows [05:20] btipling: thanks [05:20] bnoguchi: btipling: Try expresso [05:20] bnoguchi: btipling: with should.js [05:20] btipling: that's different from express the web framework? [05:20] bnoguchi: btipling: Yes, but same author [05:21] bnoguchi: btipling: :D [05:21] ljackson has joined the channel [05:21] pquerna: there is one to rule them all [05:21] btipling: :D [05:21] pquerna: https://github.com/cloudkick/whiskey [05:21] ParadoxQuine has joined the channel [05:21] bnoguchi: lols [05:21] copongcopong has joined the channel [05:22] btipling: pquerna: it has npm support? [05:22] pquerna: it is in npm [05:22] btipling: hrm buncha dependencies though [05:22] pquerna: npm handles it [05:22] pquerna: shesh [05:22] pquerna: :-/ [05:22] btipling: yeah but I already have a bunch [05:22] btipling: now I need to add some just for testing [05:23] btipling: :P [05:23] arpegius has joined the channel [05:23] btipling: command line parsing hrmmm [05:23] MikhX has joined the channel [05:24] indutny: pquerna: why whiskey? :) [05:25] pquerna: indutny: for cast and other projects we originally used expresso; However we were unahppy with the lack of isolation between tests, and it was hard to get our initilzation system to work correctly with it in a larger code base [05:26] indutny: pquerna: that makes sense, in that cases we usually use helper modules [05:26] indutny: that are common for all tests [05:26] bernied has joined the channel [05:26] mytrile has joined the channel [05:27] DennisRas has joined the channel [05:27] pquerna: also, I just became addicted to years of looking at trial's output [05:27] pquerna: so its the same ;x [05:29] jaket has joined the channel [05:30] jacter has joined the channel [05:32] briznad has joined the channel [05:32] SamuraiJack has joined the channel [05:34] btipling: ima try whisky [05:34] btipling: it better be worth the three extra modules pquerna! [05:34] btipling: ;\ [05:35] ljackson has joined the channel [05:35] idefine has joined the channel [05:36] seivan has joined the channel [05:36] btipling: pquerna: the async module, is that https://github.com/pkrumins/node-async ? [05:41] copongcopong has joined the channel [05:42] gattuso has joined the channel [05:43] click_click has joined the channel [05:43] pquerna: btipling: yes [05:44] Rodtusker has joined the channel [05:44] btipling: thanks [05:46] tilgovi has joined the channel [05:52] rchavik has joined the channel [05:54] JayOheN has joined the channel [05:54] copongcopong1 has joined the channel [05:54] coreb has joined the channel [05:57] m64253 has joined the channel [05:57] cloudhead has joined the channel [05:58] indutny: ryah: will there be any further 0.4.x version, before 0.5 ? In that case, can I hope that my NPN changes will be in 0.4.x if you'll decide to pull them? [05:59] kaichenxyz_ has joined the channel [06:00] mdwright_laptop has left the channel [06:09] timcosgrove has joined the channel [06:09] timcosgrove has left the channel [06:10] xiackok has left the channel [06:15] seivan: Ehm what is the library called for spawning and load balancing between node instances? [06:15] pquerna: cluster [06:17] flippyhead has joined the channel [06:19] warreng has joined the channel [06:19] saikat has joined the channel [06:20] seivan: Isn't that old? [06:20] flippyhead has joined the channel [06:21] mbrevoort: seivan: cluster is new, spark was the older library [06:21] seivan: What about web worker? [06:22] felixge has joined the channel [06:22] felixge has joined the channel [06:22] pquerna: seivan: http://learnboost.github.com/cluster/ [06:22] seivan: How to cope with syncronized shared object data? ? [06:22] felixge: ryah: thanks for merging the event emitter patch [06:22] seivan: The developer does not want to use a messaging protocol [06:22] felixge: ryah: did you also see the one for fs ReadStream? [06:22] seivan: He wants to share a global data that all threads can manage [06:27] idefine has left the channel [06:29] Lorentz has joined the channel [06:29] ivanfi has joined the channel [06:30] raidfive has joined the channel [06:34] galaxywatcher has joined the channel [06:34] ph^ has joined the channel [06:36] ako has joined the channel [06:42] langworthy has joined the channel [06:42] groom has joined the channel [06:51] V1 has joined the channel [06:52] yuzebin has joined the channel [06:53] fangel has joined the channel [06:53] tschundeee has joined the channel [06:54] mape: seivan: you don't [06:55] mape: they are separate processes so either use a db or messaging [06:57] mytrile has joined the channel [06:57] ajnasz has joined the channel [06:57] indutny has joined the channel [06:57] seivan: mape: cool [06:57] seivan: but java could :) ? [06:57] mape: No idea [06:59] __tosh has joined the channel [07:00] Emmanuel__ has joined the channel [07:01] lorhko has joined the channel [07:02] yuzebin_ has joined the channel [07:03] mike5w3c has joined the channel [07:05] zentoooo has joined the channel [07:06] balaa has joined the channel [07:06] tylerstalder has joined the channel [07:07] sako has joined the channel [07:07] sechrist: What are common ways people deploy a node app across n nodes? [07:07] sechrist: git push hook -> Chef or or something? [07:08] TomY_ has joined the channel [07:09] varioust has joined the channel [07:10] zentoooo has joined the channel [07:10] mikl has joined the channel [07:10] mikl has joined the channel [07:11] mAritz has joined the channel [07:12] eschnou has joined the channel [07:13] jacter1 has joined the channel [07:13] zentoooo has joined the channel [07:15] emattias has joined the channel [07:16] derferman has joined the channel [07:16] micheil: sechrist: I wrote a few custom scripts to do it [07:17] micheil: sechrist: I did have plans for a deployment tool for node, although, that's now on the back burner [07:20] Gelegrodan: whats best; php connecting via websockets to send a notification to all websocket clients, or php connecting to node.js that sends the notification? [07:21] jonathantaylor has joined the channel [07:21] jaket_ has joined the channel [07:23] deebo: why do both options contain php [07:23] jonathantaylor has joined the channel [07:25] philhawksworth has joined the channel [07:26] lorhko_ has joined the channel [07:27] meso has joined the channel [07:28] bergie has joined the channel [07:30] jaket_ has joined the channel [07:33] stride: all hail php. [07:33] stride: not [07:33] Iftikhan has joined the channel [07:33] stride: :) [07:33] meandi has joined the channel [07:33] stride: Gelegrodan: what's providing the websocket service in the first place? [07:33] Gelegrodan: stride: node.js with socket.io [07:34] V1: Gelegrodan: isn't that same question we answered yesterday o_o [07:34] Gelegrodan: V1: either I didnt see any reply, or you didnt answer + [07:34] Gelegrodan: ? [07:34] Gelegrodan: and yes, I asked it yesterday [07:34] stonebranch has joined the channel [07:35] sechrist: The way i've done php <-> long polling ajax event thing was curl [07:35] sechrist: I had my ajax service bind on two ports [07:35] sechrist: and the internal port my php code talked http to [07:35] sechrist: and this would lend it self very easily to node [07:36] jaket_ has joined the channel [07:36] [AD]Turbo has joined the channel [07:37] [AD]Turbo: hi there [07:37] Gelegrodan: What i wanna do is ... we have a interal system (web-based) with cases and incoming mails and stuff, so there is a phpscript fetching new mails and insert them into mysql, and what I want to do it to.. push new mails out to the clients automaticly [07:39] AAA_awright: Anyone have any ideas on the "right" way to do templating? Some way that allows you to share a template for a particular page across a number of themes, and have various templates that can be used within a theme, or even non-HTML outputs like PDF or RSS? A very generalized theory for templating [07:40] robhawkes has joined the channel [07:42] FireFly|n900 has joined the channel [07:44] jetienne has joined the channel [07:44] yhahn has left the channel [07:45] aabt has joined the channel [07:50] ElDios has joined the channel [07:51] autotron has joined the channel [07:52] Stan____ has joined the channel [07:52] msucan has joined the channel [07:54] kaichenxyz has joined the channel [07:56] Druide_ has joined the channel [07:57] nyholt has joined the channel [07:57] V1: Pfff finally my server is back up [07:57] roidrage has joined the channel [07:59] mytrile has joined the channel [08:00] kaichenxyz has joined the channel [08:00] sendark has joined the channel [08:00] sendark has left the channel [08:01] sendark has joined the channel [08:02] hackband has joined the channel [08:02] k1ttty has joined the channel [08:02] sako: hey guys is it dumb to write a blog with node.js? ;) [08:02] sako: node.js + express [08:03] SubStack: I don't understand why you might ask that. [08:03] sako: seems like it wouldn't really excel for a web app of this nature.. what exactly does node.js excel in? [08:03] zkirill_ has joined the channel [08:03] hackband: It can only be faster than wordpress - but really it's been done :) [08:04] ElDios: sako as hackband said there already is a CMS written for nodejs [08:04] mhausenblas has joined the channel [08:04] sendark_ has joined the channel [08:04] mhausenblas_ has joined the channel [08:04] sako: i see [08:04] sako: is there a flagship cms? [08:05] sako: or i should say which is most popular? [08:05] ElDios: not sure about that [08:05] ElDios: just google them, they're only a few [08:06] ElDios: and I suppose that there is still not a flagship product [08:07] jacter has joined the channel [08:07] b0t has joined the channel [08:07] path[l] has joined the channel [08:08] Gelegrodan: V1: cant find any answer ? [08:09] bojicas has joined the channel [08:12] CIA-72: node: 03Nick Campbell 07master * r425b57b 10/ (doc/api/url.markdown lib/url.js test/simple/test-url.js): [08:12] CIA-72: node: Lowercase protocol and hostname since casing isn't significant. [08:12] CIA-72: node: Signed-off-by: Nick Campbell - http://bit.ly/fJT2gn [08:14] hellp has joined the channel [08:15] herelately has joined the channel [08:16] davidc_ has joined the channel [08:17] kal-EL_ has joined the channel [08:17] felixge has joined the channel [08:18] kaichenxyz has joined the channel [08:18] beawesomeinstead has joined the channel [08:18] beawesomeinstead has joined the channel [08:18] AAA_awright: ElDios, sako: I'm working on http://magnode.org/ but that's a bit more than your traditional CMS, what features are you looking for when you say CMS? [08:18] Garo_ has joined the channel [08:19] felixge: ryah: ping [08:19] pdelgallego has joined the channel [08:21] tanepiper: felixge: what's the EU node conf thing again? [08:21] adam-_-_ has joined the channel [08:21] ElDios: AAA_awright looks nice :) [08:21] felixge: tanepiper: http://nodecamp.de/ [08:21] AAA_awright: ElDios: Thank you [08:21] AAA_awright: That's self hosting btw [08:21] felixge: new tickets will be released next week [08:22] tanepiper: ahh good. I submitted a talk as well, but never heard anything back [08:22] tanepiper: even tweeted them a couple of times as well to follow up, no response :( [08:22] ryah: felixge: hey [08:22] felixge: ryah: hi [08:22] felixge: ryah: thanks for merging the event emitter patch [08:22] indutny has joined the channel [08:23] felixge: ryah: I was wondering if you also looked at the ReadStream one [08:23] felixge: ryah: https://github.com/joyent/node/pull/881 [08:23] felixge: Basically it allows to read a file from a given position to the end [08:23] felixge: without knowing / specifying what 'end' means [08:24] AAA_awright: ElDios: http://groups.google.com/group/magnode if you would like updates when something functional is released [08:24] felixge: the second patch is just a cleanup / makes sure that an exception get's really asserted [08:24] felixge: * second commit [08:24] ryah: felixge: no, i missed that. [08:25] ryah: i'll check it out tomorrow morning [08:25] bergie_ has joined the channel [08:25] fly-away has joined the channel [08:25] felixge: ryah: cool [08:25] felixge: ryah: looking forward to seeing you again at jsconf [08:25] felixge: only ~3 weeks left [08:26] felixge: ACTION should get his talk done [08:27] yuzebin has joined the channel [08:27] ryah: mm, me too [08:27] CIA-72: node: 03Ryan Dahl 07v0.4 * raf96447 10/ doc/api/buffers.markdown : [08:27] CIA-72: node: Modify text about buffer.write and partial chars [08:27] CIA-72: node: Fixes GH-913. - http://bit.ly/eR58u5 [08:28] mraleph has joined the channel [08:30] jacter has joined the channel [08:32] mhiku has joined the channel [08:32] mike5w3c has joined the channel [08:34] ElDios: AAA_awright tnx :) [08:35] CiRlE has joined the channel [08:37] asabil has joined the channel [08:38] ElDios: anyone has already been at nodecamp.eu (maybe last year?)? [08:38] ElDios: question is.. is it possible to sleep there? :) [08:38] roidrage: ElDios: it's the first one afaik [08:38] ElDios: oh [08:38] ElDios: nice [08:39] roidrage: inspired by the railscamps around here, not sure about sleeping, i'm a snob myself, so i'll be sleeping in a hotel for sure ;) [08:40] ElDios: :P [08:40] V1: ElDios: There are atleast 250 hotels in cologne [08:40] V1: or near by [08:40] ElDios: problem is not the availability of hotels.. but my economic availability XD [08:41] ElDios: if I do pay the airplane ticket to Cologne there would be not much left to pay the hotel :) [08:41] roidrage: just ask the organizers if there's a place for you to sleep somewhere, i'm sure some of the natives there know better than i/we do (i'm not from cologne myself). they're good chaps, so they're very likely happy to help [08:41] teemow has joined the channel [08:41] ElDios: mm.. sounds good [08:42] ElDios: let's try to have a ticket before boring them :) [08:42] stagas: SubStack: ping [08:42] V1: 37 euro's a day isn't that much tbh :p [08:42] roidrage: ElDios: alternative is to share an apartment with someone, there's a mailing list you can ask for others who're interested in that [08:42] [AD]Turbo has joined the channel [08:42] ElDios: that's all a matter of point of views.. yesterday I had to convince my wife to give me 5 bucks for the frozenbyte humble bundle :) [08:43] V1: lol [08:43] raphdg has joined the channel [08:43] SubStack: stagas: pong [08:43] ElDios: roidrage I could also rely on couchsourfing all in all and that wouldn't probably be a big problem, now that I think about it [08:44] roidrage: then just bring a sleeping bag and sleep somewhere at the venue ;) [08:44] roidrage: sure, that'd probably work, just saying, the mailing list may be a place to hook up [08:44] ElDios: roidrage I'm not that desperate! XD [08:44] SubStack: oh stagas I am using your connect-image-resizer now [08:45] SubStack: for the browserling dashboard [08:45] stagas: SubStack: cool! :D [08:45] ElDios: still .. if any of you is a casual gamer.. dude, I really have to say that you MUST buy the actual humblebundle.com [08:45] ElDios: Trine is just awesome [08:45] ElDios: and anyway this is the 3rd humble bundle in a row I get and their games are always marvellous and 10x worth the money you give [08:47] saikat has joined the channel [08:47] stagas: SubStack: in dnode it used to crash all clients when the server died [08:48] stagas: SubStack: but I think you fixed that. I want it back :P [08:48] V1_ has joined the channel [08:49] V1: o_o [08:49] SubStack: stagas: crash? [08:50] SubStack: 'end' wasn't getting emitted by conn for a while but I fixed that recently [08:50] SubStack: you can hook onto that [08:51] V1: Finally, my server is up and running again [08:51] stagas: SubStack: not that, in the recent commits I see you did some error handling that broke the fact when the server dies, the client doesn't throw an error, the callback never fires [08:51] stagas: SubStack: i [08:51] V1: It's not easy running on beta services [08:51] SubStack: oh should it? [08:52] dcelix has joined the channel [08:52] stagas: SubStack: so it's stuck there without doing anything, and I can't find a way to detect if the server is actually connected [08:52] SubStack: hmm throwing could work [08:53] SubStack: stagas: well you can do conn.on('end', fn) [08:53] xla has joined the channel [08:53] SubStack: and var alive = true; conn.on('end', function () { alive = false }) [08:53] SubStack: if you want some state [08:53] stagas: SubStack: it doesn't work when the server dies with out of mem etc it doesn't have a chance to emit the event, even with process.on('exit') [08:54] bingomanatee has joined the channel [08:54] seivan has joined the channel [08:54] tokumine has joined the channel [08:55] ParadoxQuine: anyone mind recommending a simple node module i can use to make http requests jquery style to another server? [08:55] stagas: SubStack: so the clients just hang, no error when attempting the function call, no callback.. [08:56] tokumine: ParadoxQuine: node-get works in a fairly similar way [08:56] V1: roidrage: Your talking about riak @ nodecamp? [08:56] bong has joined the channel [08:56] ParadoxQuine: tokumine: great, thanks :) [08:56] bong: Hi [08:57] SubStack: stagas: so what made it crash before I fixed it? [08:57] bong: Are there books about node.js? [08:58] indutny: V1: around? [08:58] balaa: bong: are there books about bongs? [08:58] bong: balaa: are there books about balaas? [08:58] V1: indutny: on and off [08:58] indutny: V1: woot! https://github.com/joyent/node/pull/911 [08:59] indutny: bong-- [08:59] v8bot: indutny has taken a beer from bong. bong now has -1 beers. [08:59] bzinger has joined the channel [08:59] tokumine: bong: http://ofps.oreilly.com/titles/9781449398583/ [08:59] coreb has joined the channel [08:59] bong: thanks tokumine [09:00] stagas: SubStack: it threw an error can't remember what it said, some weird connection problem, but it crashed the client so I had a chance to restart it [09:00] ElDios: http module? [09:00] V1: indutny: and it doesn't throw any errors when your OpenSSL isn't patched? [09:02] V1: indutny: The patch looks fine to me, cant wait to see it landed [09:03] herbySk has joined the channel [09:05] Throlkim has joined the channel [09:05] indutny: V1: it doesn't :) [09:05] indutny: V1: just no NPN [09:05] indutny: V1: and that isn't a patch, but new version of OpenSSL [09:05] stagas: SubStack: I've activated the previous version from npm I think it worked that way then I'll try to crash it [09:08] stagas: SubStack: I think it used to throw socket not writable [09:09] SubStack: oh right [09:10] SubStack: I turned that off because I don't like it when things crash [09:10] pietern has joined the channel [09:10] Stan____ has joined the channel [09:11] SubStack: stagas: perhaps a custom event for those? [09:16] stagas: SubStack: 'error' ? [09:17] SubStack: I don't like error because it's magical [09:17] SubStack: and it crashes your shit if you don't catch it [09:17] SubStack: or do you mean on the client side? [09:17] SubStack: because that could work [09:18] stagas: conn.on('error', fn(err) {}) [09:18] __tosh has joined the channel [09:19] seivan_ has joined the channel [09:19] stagas: yes client side, that's where the problem is, the clients don't know the server is dead [09:19] SubStack: ah right on then [09:19] micheil: V1: what's NPN actually for? [09:19] SubStack: stagas: want to implement it and send a pull request? [09:19] SubStack: otherwise you'll have to wait a bit while I finish up some other stuff [09:20] muz1 has joined the channel [09:20] stagas: SubStack: I'll give it a shot :) [09:20] SubStack: in blitz mode finishing up some concentrated awesome for browserling [09:20] V1: micheil: It stands for next protocol negotiation [09:21] V1: micheil: see http://tools.ietf.org/html/draft-agl-tls-nextprotoneg-00.html [09:21] ParadoxQuine: i used ahr to make an http get request to another server and it sent back form-urlencoded data, what's the easiest way for me to decode it? [09:23] kaichenxyz has joined the channel [09:27] Rob- has joined the channel [09:28] stagas: SubStack: I think it's already there https://github.com/substack/dnode/blob/master/index.js#L178 [09:28] dsirijus has joined the channel [09:28] suckerpunch has joined the channel [09:29] stagas: SubStack: the readme says 'drop' though [09:30] SubStack: oh hmm [09:30] ceebee_ has joined the channel [09:30] ceebee_: hello ... can someone help me with a noob problem ? [09:31] kaichenxyz has joined the channel [09:32] ceebee_: after building and installing the server i can install modules via npm but when trying to use those modules , I always get an error like this : "Error: Cannot find module '../../lib/express' [09:32] ceebee_: " on any module i am using [09:32] indutny has joined the channel [09:34] Stan_ has joined the channel [09:34] seivan has joined the channel [09:35] ElDios: how do you require the module? [09:35] ElDios: paste the require snippet [09:35] indutny has joined the channel [09:36] ceebee_: var express = require('../../lib/express'); [09:36] ceebee_: and then var app = express.createServer( ... [09:39] yuzebin has joined the channel [09:39] ceebee_: oky .. without the path seemed to work [09:40] ceebee_: but why ? the path was OK and I have seen a lot of samples wich include " [09:40] ceebee_: var express = require('../../lib/express')" and not " [09:40] ceebee_: var express = require('express')" [09:40] cognominal has joined the channel [09:41] Gelegrodan: ceebee_: use npm and install express [09:41] muz1 has joined the channel [09:42] muz1: hmm I know it's not the right place but out of interest, what are people using for irc on mac in here? [09:42] naneau: linkinus [09:42] ElDios: if that module is installed correctly, it will be put in the module node path [09:42] naneau: but with a znc bouncer [09:42] ElDios: so it is pointless to follow the fs location [09:42] ElDios: just use the require('module_name') [09:43] ceebee_: I installed it this way ... and it works ... as long as I require('express') ... but I have seen a lot of examples which require via "require('../../lib/express')" And i just want to understand why they are doing this [09:43] Gelegrodan: muz1: http://colloquy.info/ is pretty nice [09:43] Gelegrodan: but i perfer irssi [09:46] ceebee_: http://pdb.finkproject.org/pdb/package.php/irssi [09:48] muz1 has left the channel [09:48] muz1 has joined the channel [09:49] Jalava_: hmm, is there some significant changes between npm 0.3x and 1.x? [09:49] Jalava_: and is there a blog/wiki page about it [09:52] Rob- has joined the channel [09:53] jonaslund has joined the channel [09:53] bergie has joined the channel [09:53] Gelegrodan: Jalava_: you mean like http://blog.nodejs.org/2011/04/06/npm-1-0-link/ ? [09:57] Phunky has joined the channel [09:58] Jalava_: Gelegrodan: something like that thanks [09:59] Gelegrodan: np, try google next time :) www.google.com/search?q=npm+blog+1 [10:03] jonpacker has joined the channel [10:10] tmedema has joined the channel [10:11] seivan has joined the channel [10:15] JimBastard has joined the channel [10:15] JimBastard: hail [10:18] muz1 has joined the channel [10:18] SubStack: yar [10:18] SubStack: ACTION pulls some requests [10:20] sendark: Does socket.io have its own channel? [10:20] V1: sendark: no [10:21] V1: client.send({channel:'my-channel', msg:'message'}) <-- sendark now it does :D [10:21] sendark: i meant irc channel? [10:21] V1: o [10:21] V1: :$ [10:21] V1: nope [10:21] sendark: ^_^ [10:21] V1: but feel free to spam questions here [10:23] sendark: Ok so i'm trying to use websockets for a processing project, on the data end i'm using node.js to munge and send data. on the other end i've got a Processing app that is going to be displaying the data and doing pretty stuff. [10:23] ElDios: yo jim [10:23] ElDios: V1 LOL [10:23] V1: ElDios: wut :p [10:23] ElDios: the channel answer [10:24] V1: ElDios: Amazing huh :p 0.7 will support "native" (buzzword alert) channels ;) [10:24] sendark: So the idea is to use websockets to send the updates to the visualization. Now i'm trying to use a java implementation of websockets with socket.io to send and receive messages. However, i can never get the java client to connect to socket.io [10:24] sendark: and there's no output on node.js [10:25] sendark: aside from "13 Apr 11:14:38 - socket.io ready - accepting connections" [10:25] V1: so you want your java client to connect with the node-js socket.io server? [10:25] sendark: V1: correctamundo. [10:25] V1: sendark: Are you sending your data in the special Socket.IO encoding? [10:25] sendark: AH [10:25] sendark: there you go. [10:26] sendark: no no, i was just sending a plain message [10:26] V1: sendark: also make sure you are using the correct end point [10:26] sendark: so i need a socket.io implementation? [10:26] V1: if your socket.io resource is 'socket.io' [10:26] V1: you much connect to: http:// your server .com /socket.io/websocket [10:26] sendark: ah [10:26] sendark: i'll try that [10:26] V1: and sendark yes, you also need to have support for the socket.io message framing / encoding [10:27] sendark: V1 that worked awesomely [10:27] V1: sendark: see https://github.com/LearnBoost/Socket.IO-node/blob/master/lib/socket.io/utils.js#L12-52 for encoding / decoding [10:27] muz1: if I have models defines in models.js using mongoose how can I use them in other files like new User() etc [10:27] V1: and : https://github.com/LearnBoost/Socket.IO-node/blob/master/tests/utils.js#L5-26 [10:28] sendark: cheers bruv, most helpful! [10:28] muz1: do I have to do var User = mongoose.model('User'); in every file I want to use them? [10:28] muz1: or am I missing something here? [10:30] V1: sendark: one small note, Socket.IO 0.7 will ship with a new encoding / decoding protocol that me and rauchg are working on: https://github.com/LearnBoost/Socket.IO-spec [10:30] sendark: cool so I'd have to implement a decoder/endoder on my Java end as well? [10:33] suckerpunch has joined the channel [10:33] V1: sendark: Yup, or you wont understand the messages from the Socket.IO server [10:33] V1: or the socket.IO server wont understand you [10:34] sendark: cool cool [10:34] V1: and one other thing you should take care off is are heart beats, socket.io-server sends heartbeat messages over the connection, if these are not responded to than the server will end the connection. [10:34] sendark: cool [10:35] sendark: ok one last thing, is there a spec on the encoding/decoding and the hearbeat, or could you point me to their JS equivs? [10:36] V1: sendark: See client implementation: https://github.com/LearnBoost/Socket.IO/blob/master/lib/transport.js#L102-117 [10:36] sendark: cool [10:36] sendark: cheers boss [10:38] sendark: so heartbeat is just meant to send the heartbeat that has been received prepending "~h~" [10:38] sendark: easy enough [10:39] V1: sendark: Yup, it's just an echo [10:39] sendark: awesome! [10:41] jonaslund: arghh [10:41] V1: sendark: If you have more questions feel free to ping me [10:41] sendark: thanks, will probably do! [10:42] seivan has joined the channel [10:42] jonaslund: why do we keep having regressions all over? :P [10:45] muz1: hey guys I keep getting "Error: req.flash() requires sessions" when using req.flash(), but I included sesisons (express.session({sercet: "key"}); like the tutorial I've been following, any idea what I have missed? [10:45] seivan has joined the channel [10:46] sendark: V1, i.e. a message contains starts with ~m~17~m~ <- is that the 'frame'? [10:47] V1: sendark: ~m~ is the frame, 17 would be the message length than ~m~ and the actual message [10:47] muz1: mm beer, that'll help [10:47] sendark: cool cheers V1 [10:48] V1: sendark: checkout the test suite: https://github.com/LearnBoost/Socket.IO-node/blob/master/tests/utils.js#L5-26 [10:48] tyler-iphone: lisp is a beautiful thing [10:48] tyler-iphone: and its syntax makes me love coffeescript heh [10:49] adam-_- has joined the channel [10:50] secoif_ has joined the channel [10:50] seivan has joined the channel [10:51] muz1: coffeescript is interesting, how many here actaully ising it? [10:54] ElDios: not many.. it seems :) [10:55] coreb has joined the channel [10:56] seivan has joined the channel [10:57] muz1: really? [10:57] muz1: yay figure out my problem, stupid I was! [10:57] jetienne has joined the channel [10:57] muz1: I knew beer would help [10:58] a|i has joined the channel [10:58] a|i has joined the channel [10:59] jonpacker has joined the channel [10:59] jetienne has left the channel [11:00] seivan has joined the channel [11:01] V1: Hmzz.. I'm currently testing how many users are bind a firewall.. By testing access to port 4000... So far 107 out of the 2500 unique ips are blocking port 4000.. [11:01] mediacoder has joined the channel [11:03] mytrile has joined the channel [11:04] V1: ^ that's especially interesting if you are running Websockets on a different port than port 80.. [11:05] M3l7D0wN has joined the channel [11:07] dcelix has joined the channel [11:09] lukus has joined the channel [11:10] davidc_ has joined the channel [11:12] realazthat has joined the channel [11:12] realazthat: heh wow [11:13] realazthat: this really is *the hot new language* :D [11:14] thiessenp has joined the channel [11:15] xla has joined the channel [11:15] sendark: V1, got framing/deframing and hearbeats working. One more question: if i'm sending json to the server, do I also have to prepend ~j~ in the same way the server does? [11:17] V1: sendark: yup, than the server will "decode" it automatically [11:18] sendark: awesomesauce. [11:18] ElDios: V1 do you mean that users over 107th are closed out with a pending connection? [11:18] kid0 has joined the channel [11:18] eee_c has joined the channel [11:19] V1: ElDios: With my test i serve script with that sets window.CANIHASPORT4000PLZ = 'OMFGNOPROXY'; [11:20] V1: ElDios: Directly under that the script i check for the window.CANIHAS... , if it does't exists I will flag the user as "blocked" [11:20] realazthat: anyone have any experience with weld? [11:21] realazthat: I'd like to know what license it is released under [11:21] V1: So at this point 112 out of the 2547 unique visitors have been flagged as "blocked" [11:21] V1: resulting in a 4.42% blockage of port 4000 :) [11:22] azeroth_ has joined the channel [11:22] seivan has joined the channel [11:27] eb4890 has joined the channel [11:27] FireFly|n900 has joined the channel [11:27] javaanse_jongens has joined the channel [11:27] skm has joined the channel [11:27] FireFly has joined the channel [11:28] eee_c has joined the channel [11:30] harth has joined the channel [11:35] jetienne_ has joined the channel [11:35] ElDios has joined the channel [11:36] jetienne_ has left the channel [11:36] realazthat: humm [11:36] realazthat: whats the proper way to make an associative array in js? [11:37] realazthat: that is, is there a data structure, or should I just use normal JS associative array? [11:37] SamuraiJack_ has joined the channel [11:37] V1: realazthat: just use objects [11:37] realazthat: ty [11:37] V1: var a = {}; a.foo = 'bar' [11:38] seivan has joined the channel [11:39] dnolen has joined the channel [11:39] ngs has joined the channel [11:39] MuzzleFork has joined the channel [11:40] koo6 has joined the channel [11:42] vikstrous has joined the channel [11:42] andi5 has joined the channel [11:47] Twelve-60: shouldn't we have an fs.puts(fd, data, [callback]) method? [11:48] Twelve-60: instead of doing fs.puts(fd, data, null, null, null, callback) [11:48] Twelve-60: lol [11:48] Twelve-60: rather fs.write(fd, data, null, null, null, callback) [11:48] stagas: SubStack: dnode-stack breaks if there are circular references in the req object [11:50] muz1: hmm my data is not persisting in mongodb [11:50] ElDios: lol [11:51] irPhunky has joined the channel [11:51] ph^ has joined the channel [11:52] muz1: hmm [11:52] broofa has joined the channel [11:52] muz1: I have no idea about mongodb [11:53] ElDios: not that difficult [11:53] ElDios: there are interesting and fun tutorials around [11:53] ElDios: even an interactive one on their site afaik [11:55] dberlinger has joined the channel [11:55] ph^_ has joined the channel [11:55] mt3 has joined the channel [11:56] nephics has joined the channel [11:56] shaunau has joined the channel [11:56] mt3 has left the channel [11:56] xandrews has joined the channel [11:57] vikstrous1 has joined the channel [11:59] skm has joined the channel [11:59] muz1: yeh gone through that [11:59] muz1: my code even thinks it is saving, .i.e no errors [12:00] ElDios: gist it [12:00] muz1: and I get the connection in the mongodb window and it says it is building an index [12:00] ElDios: I would be happy to inspect it and help [12:00] JimBastard: i might have to pull out one of my better beats for the next rap [12:00] JimBastard: the npm one [12:00] ElDios: Jim :) [12:00] realazthat: is there any good way to introspect an object? [12:01] JimBastard: ive been polishing up my jitsu all week [12:01] JimBastard: its looking insanely good [12:01] tyler-iphone: 05:00 Wraithan: I think I just became a node.js fanboy [12:01] tyler-iphone: 05:00 Wraithan: tyler-iphone: asshole. [12:01] JimBastard: one line deploys working pretty fucking flawlessly [12:01] JimBastard: ( nodejitsu's cli tool ) [12:01] hackband: how does hostname in the http.listen call work? It doesn't seem to do as expected [12:02] hackband: I've tried app.listen(3000,'express.local', function() ... [12:02] piscisaureus has joined the channel [12:02] hackband: but it doesn't respond to calls to that hostname - and it does work with just listen(3000) [12:02] JimBastard: hackband: hrmm? [12:02] hackband: yea.. my thoughts exactly [12:02] JimBastard: localhost? [12:02] hackband: the hostname resolves fine [12:03] vikstrous has joined the channel [12:03] JimBastard: does the request handler fire? [12:03] hackband: no it's to a local virtual machine, but it works fine with no hostname matching [12:03] cmlenz has joined the channel [12:03] JimBastard: at all? [12:03] ElDios: hackband cause it probably listen on every interface without it [12:03] ElDios: while it doesn't bind to the right one if you specify it [12:03] hackband: you mean it only binds to loopback if you specify a hostname?? [12:04] aabt has joined the channel [12:04] ElDios: let me try [12:04] hackband: JimB: no, nothing seems to get through with a hostname [12:04] JimBastard: hackband: if the request handler isnt firing its prob not node's fault [12:04] JimBastard: maybe never getting there [12:04] JimBastard: not sure [12:04] hackband: well, it's express that handles the request [12:05] hackband: but the request handling works fine with no hostname so the setup there should be fine [12:05] hlindset has joined the channel [12:06] ElDios: mmm.. hackband same situation here [12:06] ElDios: if you specify a wrong hostname it gives an error [12:06] ElDios: no hostname listen on * [12:06] ElDios: every working hostname only on lo [12:06] roidrage has joined the channel [12:06] hackband: hmm.. [12:06] ElDios: node 0.4.5 [12:06] hackband: is that working as intended? [12:06] hackband: same here [12:07] V1: Hmzz.. 500 concurrent socket operations, not bad for hacked up node project :! [12:07] hackband: Node is impressive in that regard [12:08] hackband: I got 330+ req/sec on a local vmware ubuntu and express - including a write to mongodb [12:08] hackband: all while node + mongodb used less than 100mb resident memory [12:08] hackband: definitely not numbers I'm used to seeing on my local machines :P [12:09] davidc_ has joined the channel [12:09] Stephen has joined the channel [12:09] hackband: Some more standardized way of virtual hosting different apps would be really nice tho [12:10] vikstrous has joined the channel [12:10] Stephen: I seem to be running a release of node version 0.5.0-pre [12:10] Stephen: Yet I see 0.4.5 has just been finalized [12:10] ElDios: hackband definitely not working as intended [12:10] adam-_- has joined the channel [12:10] ElDios: possibly a bug [12:10] Stephen: I cannot find documentation on 0.5.0-pre [12:10] hackband: I would think so too [12:10] Stephen: Anyone familiar with this build? [12:10] hackband: No, sorry [12:13] V1: Stephen: you probably compiled the trunk of the Node project [12:13] V1: instead of using a tagged version. [12:13] Stephen: ah [12:13] muz1: yeh I had trunk node earlier and it was labeled 0.50=pre [12:14] Stephen: hmm... and no 0.4.5 on github [12:14] davidascher has joined the channel [12:16] tokumine has joined the channel [12:16] _sri has joined the channel [12:17] aheckmann has joined the channel [12:18] thorsteinsson has joined the channel [12:19] palpha has joined the channel [12:19] vikstrous1 has joined the channel [12:20] V1: Stephen: checkout branch v0.4 [12:21] V1: that is where the v0.4.5 is [12:22] palpha has left the channel [12:23] robhawkes has joined the channel [12:23] Stephen: V1: the v0.4.0 tag? [12:24] V1: branch, not the tag Stephen [12:25] Stephen: sry, thanks [12:25] V1: https://github.com/joyent/node/branches/v0.4 [12:25] V1: i mean https://github.com/joyent/node/tree/v0.4 [12:25] V1: :D [12:25] hackband: arh.. it seems "hostname" has to be an IP, which is then reverse-dns'ed [12:25] hackband: curious way to go about that [12:26] Stephen: hmm... well, that's 0.4.4 at least [12:26] ElDios: O_O [12:26] postwait has joined the channel [12:26] ElDios: hackband but.. in the doc it says [host] [12:26] ElDios: not [IP address] [12:26] ElDios: defenitely misleading [12:26] ElDios: WAY TOO misleading [12:26] hackband: yes, that led to my confusion [12:26] Stephen: ACTION just went with the tar from the site [12:26] hackband: from net.js: [12:27] hackband: https://gist.github.com/88b3fc35beb5b857ce69 [12:27] Stephen: ElDios, fancy seeing you, I just got finished discovering your twitter feeed from the NodeUsers update [12:27] ElDios: ARGH [12:27] ElDios: Stephen really? nice! [12:28] Stephen: "arguments[1]" [12:28] jscheel has joined the channel [12:28] Stephen: ACTION shudders [12:28] hackband: well.. it takes a variable number of args so ... [12:28] Stephen: Yeah, figured [12:28] Stephen: Not always avoidable [12:28] hackband: thats not the problem :) [12:29] sirkitree has joined the channel [12:30] Stephen: ACTION stares confused. [12:30] hackband: so virtual hosting is either write-it-yourself or proxying through a standard httpd [12:30] rafacv has joined the channel [12:30] Stephen: Wouldn't it take more work to cause IP to only handle IP addresses and not hostnames? [12:30] Stephen: er, ip [12:30] Stephen: ACTION shuts up [12:30] hackband: no, its a matter of which interface to bind to [12:31] javaanse_jongens has joined the channel [12:31] hackband: which is all fine and good, it's a necessity [12:31] vikstrous has joined the channel [12:31] hackband: but the docs promise a way of listening to a hostname [12:31] Stephen: I'll admit my C is poor, sorry for the stupid comments [12:31] Stephen: Ah, documentation fail. [12:31] hackband: but that doesn't make sense on the net-level since hostnames is only specified on the http level [12:32] Squeese has joined the channel [12:32] Stephen: Now that I do get [12:32] hackband: it's a request header afaik [12:32] Stephen: in the end hostname is nothing mroe than a header\ [12:34] Stephen: So are you looking to add address resolution to said function, or correcting the docs seeing that "binding to a hostname" is a misnomer? [12:36] hackband: It can't be done on that function, since it's in net.js [12:36] ElDios: well it's as easy as doing a require dns [12:36] hackband: Would have to be implemented in http [12:36] ElDios: reverseResolve [12:36] ElDios: and use the resulting ip to make it listen [12:36] ElDios: *I suppose* [12:36] hackband: that's what it already does [12:37] ElDios: I'll look at the code again [12:37] cpettit42 has joined the channel [12:37] hackband: You can check the gist i pasted earlier [12:37] ElDios: no it doesn't [12:37] ElDios: / the first argument is the port, the second an IP [12:38] vikstrous1 has joined the channel [12:38] bergie has joined the channel [12:39] skm has joined the channel [12:39] hackband: ok, I misunderstood you then [12:39] piscisaureus has left the channel [12:39] hackband: but it wouldn't make virtualhosting possible [12:39] davidascher has joined the channel [12:39] hackband: since that would have to be done at the http protocol level [12:40] ElDios: yes I was wrong :P [12:41] hackband: what it seems to do is just translate an IP in string format to some other ip representation via dns lookup [12:41] k1ttty has joined the channel [12:41] hackband: I guess because it's the most robust way wrt to ipv6 [12:41] ElDios: which is what it is supposed to do.. I guess [12:41] Stephen: Basically, to virtual host node you'd need reverse proxy router [12:41] vikstrous has joined the channel [12:42] hackband: yea... I'd hate to but a bloated apache in front of node though :) [12:42] JimBastard: https://github.com/nodejitsu/jitsu looking pretty nice now [12:43] Stephen: Well, are we talking about implementing this in an already limited virtual env, or do you have admin access? [12:43] hackband: no limits here [12:43] kriszyp has joined the channel [12:43] Stephen: Because a very tiny node app could handle this sort of thing and pass off to other node processes [12:43] hackband: yea I know [12:44] Stephen: you just need a registration mechanism for what goes where. [12:44] hackband: but it would be even tinyer if it worked as the docs postulate :) [12:44] mikegerwitz: Maybe I'm misunderstanding something. You want to handle multiple hosts from a single node instance? If so, all HTTP requests are sent with a Host header, containing the requested domain. If it's not set, servers fall back to the default page for that IP [12:44] Stephen: I think he's just wanting it to be built in like the docs state [12:44] hackband: yup - but in the http docs it says it can listen to a hostname [12:45] mikegerwitz: Ohh, alright :) [12:45] ElDios: but it looks like it's not working [12:45] mikegerwitz: I can see the confusion then. When one binds to a 'host', it first resolves the host then binds to that IP addres [12:45] hackband: It's working, just not as described :) [12:45] dylang has joined the channel [12:45] mikegerwitz: s [12:45] hackband: yes - which is at the IP level [12:45] cognominal has joined the channel [12:45] mikegerwitz: hackband: yeah. Unfortunately [12:47] shaunau: er. [12:48] ElDios: ooooooh [12:48] ElDios: now I understand [12:48] shaunau: biggie-router seems to work fine if i .listen(8080, 'foo') [12:49] cpettit42 has joined the channel [12:49] cpettit42 has left the channel [12:49] shaunau: http://foo:/8080 works [12:49] ElDios: yes... hackband was talking (and I didn't read it) about *virtual* hosting [12:49] ElDios: suppose you want more than one host to listen on the same interface [12:49] ElDios: see? [12:49] ElDios: same IP [12:50] ElDios: same interface? [12:50] ElDios: different hostname -> different content [12:50] ElDios: === virtual hosting :) [12:50] hellp has joined the channel [12:50] ElDios: (also same IP:port obviously) [12:51] mikegerwitz: Problem with building that into node is that if you bind to a host, you'd be listening one per host. You can't bind to the same interface on the same port more than once, so that wouldn't work for multiple hosts. Node would simply have to pass the hostname to you on a request, which it already does via the headers [12:51] ElDios: I was just suggeting that .. hackband couldn't you just parse the req.params.hostname (whatever) [12:51] jaket has joined the channel [12:51] shaunau: oh [12:51] shaunau: i see [12:52] shaunau: tuned in late.. [12:52] shaunau: :/ [12:52] mikegerwitz: shaunau: heh, same [12:52] ElDios: me too :> [12:52] piscisaureus has joined the channel [12:52] fumanchu182 has joined the channel [12:53] ElDios: simply make it listen wherever you prefer and then route the req by parsing it params.hostname [12:55] rvaj has joined the channel [12:56] cmlenz has left the channel [12:57] hackband: There are several ways to accomplish that [12:57] hackband: my question was just regarding the discrepancy between docs and code :) [12:57] xandrews has joined the channel [12:58] ElDios: =) [12:59] hackband: what would be cool is if you just registered an event handler on the http level for the combination of port and hostname [12:59] shiawuen has joined the channel [12:59] hackband: such that the first event handler for blah:80 would start listening to port 80, routing everything to the handler for blah [12:59] ElDios: like [13:00] ElDios: server.on('get',hostname:80,function(blabla){}); [13:00] shaunau: request.headers.host.substring(0,request.headers.host.indexOf(':')); [13:00] hackband: something like that [13:00] shaunau: :P [13:01] shaunau: does anyone know how to disable all breakpoints when in the debugger? [13:02] shaunau: doesnt look like there is a way to do that. [13:03] lessthanzero has joined the channel [13:03] ElDios: like to skip'em? [13:03] ElDios: turn off debug is not an option,huh? :P [13:04] shaunau: yeah so if you just wanna contine without needing to type cont over and over [13:05] shaunau: --please-please-stop-it [13:05] charlenopires has joined the channel [13:05] hackband: re:vhosts.. seems nodejitsu is just proxying with https://github.com/nodejitsu/node-http-proxy [13:05] shaunau: --ze-goggles-they-do-nussink [13:05] arpegius has joined the channel [13:06] hackband: I suppose that makes sense, especially if it could load balance across several instances [13:06] graysky has joined the channel [13:07] graysky has left the channel [13:07] charlenopires has joined the channel [13:07] christophsturm has joined the channel [13:08] hackband: I suppose the only way to make nodejs utilize multi-core servers is to spawn a node instance with processor affinity for each of them? [13:08] ElDios: with this option ---> Proxy requests using a 'Hostname Only' ProxyTable [13:08] ElDios: looks good to me to [13:08] hackband: (I suppose a lot) [13:08] hackband: yea me too [13:09] hackband: esp. if it could distribute requests over several instances [13:10] christophsturm: hackband: use fugue or node-cluster to use multiple cores [13:10] ElDios: cluster looks soooooogood [13:10] ElDios: actually never tried it yet though [13:11] jlecker has joined the channel [13:12] hackband: christophsturm: in conjunction with virtual hosting you'd still need a way to route requests to an array of workers in a cluster [13:13] christophsturm: cluster didnt work for us so we use fugue [13:14] V1: cluster is gooood [13:14] hackband: ok, but isn't that just instance management? [13:14] V1: unless you use the repl plugin [13:14] V1: than you are fuckkked [13:14] hackband: why? [13:14] V1: I'll tellnet to your server and type shutdown() [13:14] V1: and BOOOM explode! server dead [13:15] hackband: ah, you would close that off of course :) [13:15] hackband: run it on a port not open in the fw and it's all good [13:15] V1: Yup, I don't recommend using it in production :p [13:15] hackband: ok :p [13:15] christophsturm: hackband: in fugue and cluster all workers listen on the same socket, so you get automatic loadbalancing. [13:15] V1: also if you crash the repl, you will crash your master :) [13:16] hackband: christophsturm: cool, thats exactly what I need then [13:16] V1: but those are just the 2 minor bugs I'm aware of :p [13:16] V1: The besting about cluster is that it allows plugins. [13:17] V1: So i can manage my logs, get e-mail notifications about exceptions in my code, etc etc [13:17] hackband: do you use it in production? [13:17] christophsturm: V1: i really don't understand why such features should be plugins to the webserver. [13:17] shaunau: V1: if a plugin crashes does the rest die? [13:18] christophsturm: hackband: we use fugue in production with a lot of traffic. cluster didn't work for us at all, seems its broken on both ubuntu and arch linux [13:18] hackband: christophsturm: that's what an application server usually does [13:18] Sjbreen has joined the channel [13:19] hackband: anything open to the public? [13:19] azeroth_ has joined the channel [13:19] V1: hackband: yes we use it in production [13:19] christophsturm: hackband: I work for an ad network, so you see our node services without noticing [13:20] hackband: I'm leaning towards starting a new project of mine based on node so I'm just looking for some hands-on experiences with it :) [13:20] V1: shaunau: depends on the plugin, as they can run on the master, worker or both :p [13:20] shaunau: V1: oh ok. [13:20] micheil: hackband: fwiw, votizen.com, transloadit.com and a bunch of others all use node. [13:20] hackband: so far I like what I see, especially regarding the speed.. it's simply out of this world compared to e.g. a php framework [13:20] micheil: the new functionsource blog is rumoured to be powered by node [13:21] V1: christophsturm: because they are not build in by default, no webserver has automatic email notifications when a error occures, or log std output to a database.. [13:21] ohtogo has joined the channel [13:21] yuzebin has joined the channel [13:21] V1: micheil: yeh node & rails. [13:21] path[l] has joined the channel [13:21] hackband: micheil: is that pure node or a mix? and if so, do they use express for the web framework? [13:22] christophsturm: V1: imo exception notification and logging doesn't need to be tied to a webserver. it can just be a normal javascript lib [13:22] micheil: hackband: I don't know any more details on functionsource [13:22] micheil: as for votizen, it's being used for backed services [13:22] micheil: then you have etsy that are using node.js for their stats collection daemon [13:23] V1: and not forget that learnboost is build on express + socket.io + what ever madness they come up with :) [13:23] micheil: yeah, learnboost is up there [13:23] micheil: yammer is also using node, iirc. [13:24] micheil: I'm not sure what they are doing with it. [13:24] micheil: github uses node for the downloads servers and a bunch of other things [13:24] V1: Gillette group, sony, royal scotish bank [13:24] V1: Everybody is doing it :D [13:24] hackband: that's always a comfort [13:25] hackband: Not many seems to be doing pure node though, as learnboost are [13:25] V1: hackband: nope, thats mainly because most sites still have a good working original architecture. [13:26] ralphholzmann has joined the channel [13:26] micheil: hackband: the backed services that votizen run are pure node [13:26] V1: we are slowly moving away from our LinuxApacheMySQLPerl stack and going full event nosqlish :p [13:26] micheil: I can vouch for that, unless tim's changed anything and fronted them [13:26] micheil: MySQL still has it's place. [13:26] hackband: micheil: yea, I was thinking about the web framework though [13:27] micheil: hackband: the frontend of votizen isn't node. [13:27] hackband: V1: I can understand that.. I'll stick with linux tho :) [13:27] V1: sure, we still use mySQL for our data storage, but our webservers uses a decidated flattened dataset stored in mongodb :p [13:27] jano has joined the channel [13:27] davidsklar has joined the channel [13:27] micheil: hackband: I think V1 means moving away from the traditional stack to a more comtemporary stack [13:28] hackband: I think you're right [13:28] V1: Yup. [13:28] losing has joined the channel [13:29] ElDios: using pure nodejs is a bit of a jump in the darknes as for now [13:29] hackband: My point was just that I'd keep the linux part ;) [13:29] ElDios: big enterprises (rightly) goes more slowly with these decisions [13:29] V1: hackband: ofc, it's not like we are gonna run node on Windows ;D [13:29] azeroth_ has joined the channel [13:30] hackband: Ofc :p [13:31] V1: holy digg effect, I just went from 300 concurrent connections to 600 according to dtrace o_O [13:31] christophsturm: dtrace? what server os do you use? solaris? [13:32] Ultali has left the channel [13:33] demastrie has joined the channel [13:33] V1: christophsturm: yup [13:33] christophsturm: nice [13:34] ElDios: V1 joyent or amazon? [13:34] unomi has joined the channel [13:34] V1: ElDios: joyent & our own server [13:35] ElDios: cause really.. there's no other apparent reason to use solaris other than being forced by one of those two name :) [13:35] V1: :D [13:35] arpegius has joined the channel [13:35] ElDios: meh.. [13:35] shaunau: EIDios: :) [13:35] ElDios: linux ftw [13:35] V1: yeh, dtrace intergration is pretty amazing [13:36] hackband: can you recommend a mongodb gui for osx? [13:36] hackband: tried mongohub but that seems kinda buggy [13:37] no-gooder has joined the channel [13:38] akahn has joined the channel [13:39] akahn has left the channel [13:39] ElDios: CLI? [13:39] ElDios: :) [13:39] Poetro has joined the channel [13:40] stagas: V1: which site? [13:41] V1: stagas: I have many :p which / what are you referring to [13:41] willwhite has joined the channel [13:41] fermion has joined the channel [13:41] stagas: V1: the one that god digged [13:41] stagas: got [13:41] stagas: lol [13:41] V1: lol [13:42] hackband: that would explain the surge [13:42] Shinuza has joined the channel [13:42] V1: stagas: It's speedo.no.de my old Node Knockout Entry, It seems that another huge website deployed the code :p [13:43] dcelix has joined the channel [13:43] ryanfitz has joined the channel [13:43] thomblake has joined the channel [13:44] davidwalsh has joined the channel [13:44] V1: But what I'm worring about is the a ocasional flat line.. in the charts.. [13:46] Test_ has joined the channel [13:46] Test_: testing... [13:47] V1: http://dl.dropbox.com/u/1381492/shots/wtf-CA.jpg this is really disturbing.. [13:48] wao: duh [13:49] Test_: this should show up on http://webchat.freenode.net/ [13:49] Test_: sorry, on http://wargamez.mape.me/ [13:49] stagas: V1: maybe it crashes and restarts [13:49] DoNaLd`: http://cdn.iphoneheat.com/wp-content/uploads/2009/03/transfer-files-from-iphone-using-bluetooth-13.jpg [13:49] DoNaLd`: sry [13:49] timmywil has joined the channel [13:49] stagas: V1: or gc [13:49] Stephen has joined the channel [13:50] V1: stagas: Nothing in my logs that indicates it, I was tailing the logs at that moment [13:50] kuebk has joined the channel [13:50] kuebk: jo [13:50] rfay has joined the channel [13:51] V1: stagas: That would be possible, i'll watch the GC probe. [13:51] kuebk: is there a way to clone an js object using c++? [13:51] kuebk: v8* [13:51] deedubs has joined the channel [13:51] dmfd_ has joined the channel [13:51] sendark: v1, how come if when sending "~m~19~m~~j~{serverid:'BC0'}", console.log(message) inside client.on('message', function(message) { ... } prints {} ? [13:52] V1: sendark: it's not valid JSON [13:52] sendark: oh [13:52] elux has joined the channel [13:52] sendark: should have guessed [13:52] V1: {"serverid":"BC0"} <-- that is valid [13:52] ElDios: V1 the konami code part make you a "man to be married" [13:53] sendark: cheers for spotting that [13:53] V1: ElDios: lol [13:55] elux has joined the channel [13:56] ElDios: why is http://wargamez.mape.me not working in this moment? [13:56] ElDios: I want to see it working :.( [13:57] ElDios: Test_ go go go.. make it work =) [13:57] Test_: it's not mine, you can set it up yourself, code's at github [13:58] cbibler_ has joined the channel [13:58] Test_: https://github.com/mape/node-wargames [13:58] sivy has joined the channel [13:58] javaanse_jongens has joined the channel [13:58] seivan has joined the channel [13:58] ElDios: I'm lookin :) [13:59] Test_: Eldos - a similar one -> this one tails your logs for IPs -- https://github.com/stagas/maptail [13:59] davidascher has joined the channel [13:59] galaxywatcher has joined the channel [13:59] sivy has joined the channel [13:59] ElDios: indeed I was only curios as hell to see the wargames map in action :P [14:00] Test_: yeah, i've seen it work before, awesome stuff [14:00] MrWarGames has joined the channel [14:00] ElDios: mape why is wargame site not working? [14:00] mape: ElDios: if you refresh [14:00] mape: it is now [14:00] ElDios: \o/ woooo [14:00] mape: But not for you.. [14:00] ElDios: nope.. not yet [14:01] ceebee_: when streaming a video without "expressjs" with res.end like res.end(oggVideo.slice(start, end), "binary"); everything works fine ... but when streaming a video from within expressjs also with res.end its not working in Firefox anymore throught the html5 video tag ... anyopne experience with this [14:01] Test_: ha! mape's here! [14:01] mape: Can't seem to geo locate your IP [14:01] mape: Test_: :) [14:01] Test_: awesome [14:01] ElDios: does it need to geolocate my ip to let me see the site? [14:01] mscdex: ceebee_: you shouldn't use the 'binary' encoding, use Buffers [14:01] mscdex: instead [14:01] ElDios: it probably need only to put me in the map, I guess [14:01] mape: ElDios: oh no, just it won't show you [14:02] ElDios: ok as I thought [14:02] mape: It does a whois on irc to add people, the website is only passive viewing [14:02] timmywil has joined the channel [14:02] mikegerwitz: heh, I hadn't actually seen this thing in action before. Very cool. [14:02] ElDios: anyway the site is still turned off [14:02] V1: stagas: It happend again, and it wasnt the GC [14:02] ElDios: or it looks so here in ff 4 linux [14:03] ceebee_: mscdex: where do i find info on this ? [14:03] pdelgallego has joined the channel [14:03] bzinger has joined the channel [14:03] hackband: mape: Looks cool, needs animation on the "warheads" tho :) [14:03] mscdex: ceebee_: what is the type of oggVideo? Buffer? [14:03] littke has joined the channel [14:03] mscdex: ceebee_: if it's a Buffer, then just do res.end(oggVideo.slice(start, end)); [14:03] mape: hackband: pull request :) [14:03] hackband: haha [14:03] V1: it's really odd, it seems to be blocking process... [14:04] bzinger has joined the channel [14:04] ceebee_: its a file loaded with fs.readFileSync [14:04] chrischris has joined the channel [14:04] Test_: mape i was going through the code, is there a way to animate the warheads? [14:04] V1: nop :( [14:04] mbrevoort has joined the channel [14:05] ceebee_: mscdex, its a file loaded with fs.readFileSync [14:05] Test_: var p = map.path(path).attr({stroke: 'rgb(100,100,0)',"stroke-width": 1}).fadeIn(); [14:05] Test_: would that work? [14:05] arpegius_ has joined the channel [14:06] hackband: Test_: that would fade it in, but it wouldn't travel across the map like a real missile would [14:06] mape: Test_: search for link [14:06] Test_: hmm.... thinking! [14:06] mape: right now it is just a line drawn using raphael, but it should be easy to animate [14:07] mape: think dmitry even did a little demo animating a ball along the axis [14:07] c4milo has joined the channel [14:07] Test_: i am not familiar with raphael yet, but i found this http://raphaeljs.com/animation.html [14:07] sethetter has joined the channel [14:07] Test_: so i would think it's quite possible [14:08] mape: yeah, and since you already have the path just animate alongside it [14:09] jasong_at_apache has joined the channel [14:09] Know1edge has joined the channel [14:10] Know1edge has joined the channel [14:10] mape: Test_: http://stackoverflow.com/questions/1032541/how-to-animate-a-raphael-object-along-a-path [14:10] mape: Test_: http://raphaeljs.com/reference.html#animateAlong [14:10] Yuffster has joined the channel [14:10] Test_: ha! i was looking at exactly that! [14:11] mscdex: ceebee_: did you specify an encoding after the filename when you call readFileSync? [14:14] lukus has joined the channel [14:14] ceebee_: mscdex: nope ... i am currenty reading this ttutorial : http://blog.andrewvc.com/node-js-and-binary-data [14:14] ceebee_: mscdex: Serving the data in chunks would be better anyway , won't it ? [14:15] sivy has joined the channel [14:17] realazthat_ has joined the channel [14:17] sivy has joined the channel [14:18] aslakhellesoy has joined the channel [14:19] aslakhellesoy: I'd like to install my own npm server (for company-internal packages). Any pointers? [14:19] trotter has joined the channel [14:19] mscdex: ceebee_: i'm not very familiar with the html video stuff, but maybe you could just get by with piping the data to the response instead, something like: fs.createReadStream('file.ogg').pipe(res); [14:20] aslakhellesoy: -Or is the recommended way just to use a regular file system and use URL dependencies? [14:20] postwait has joined the channel [14:20] ceej has joined the channel [14:20] tylerstalder has joined the channel [14:20] ceebee_: mscdex: Your hint with the buffers was perfect ... [14:21] d0k has joined the channel [14:21] d0k__ has joined the channel [14:21] d0k_ has joined the channel [14:21] ceebee_: mscdex: Using a buffer and a fs.createReadStream / solved the issue ... for now :D [14:21] heythisisdave has joined the channel [14:21] kriszyp has joined the channel [14:21] mscdex: :) [14:21] d0k has joined the channel [14:22] indiefan2a has joined the channel [14:23] EyePulp has joined the channel [14:24] sirkitree has joined the channel [14:25] BillyBreen has joined the channel [14:26] V1: Any Joyent No.de Cloud Analytics experts here? [14:26] confoocious has joined the channel [14:26] confoocious has joined the channel [14:26] davidvanleeuwen has joined the channel [14:29] naneau: V1: that's a very specific request ;) [14:30] V1: It's also a very specific problem naneau :p as my server seems to be "dropping" / "blocking" requests randomly without any reason [14:30] mikl has joined the channel [14:30] V1: http://dl.dropbox.com/u/1381492/shots/wtf-CA.jpg <-- gaps like that appear in my dtrace charts [14:31] mscdex: V1: you probably have to set allowCoffeeBreak to false in the configuration [14:31] mscdex: :-D [14:31] V1: :D [14:31] MarkMenard has joined the channel [14:32] pcardune has joined the channel [14:32] V1: And I have no hidden dtrace CoffeeBreak probes so I can monitor them :9 [14:32] jtsnow has joined the channel [14:32] V1: That must be it! [14:33] bradleymeck has joined the channel [14:34] jakehow has joined the channel [14:37] m64253 has joined the channel [14:39] max_dev has joined the channel [14:39] kmiyashiro has joined the channel [14:41] vipaca has joined the channel [14:43] azeroth__ has joined the channel [14:45] Twelve-60 has joined the channel [14:46] jeffmoss has joined the channel [14:48] flippyhead has joined the channel [14:49] muz1 has joined the channel [14:52] MacDiva_ has joined the channel [14:53] nephics has left the channel [14:54] rsms has joined the channel [14:56] kid0 has joined the channel [14:57] pig has joined the channel [14:57] davidsklar has joined the channel [14:59] davida has joined the channel [15:00] colinclark has joined the channel [15:00] littke has joined the channel [15:01] ryanfitz has joined the channel [15:02] davidc_ has joined the channel [15:02] arpegius has joined the channel [15:02] pig has joined the channel [15:03] cferris has joined the channel [15:03] Me1000 has joined the channel [15:04] javaanse_jongens has joined the channel [15:04] Poetro has joined the channel [15:04] cferris: does anyone have a good example of an expresso tests NOT run serially on an express+mongoose app? [15:04] cferris: trying to wrap my mind around how to do that [15:06] arpegius_ has joined the channel [15:06] mynyml has joined the channel [15:07] darshanshankar has joined the channel [15:07] softdrink has joined the channel [15:08] arpegius has joined the channel [15:08] jjmalina has joined the channel [15:11] mbrevoort has joined the channel [15:12] mbrevoort has joined the channel [15:13] coreb has joined the channel [15:13] nephics has joined the channel [15:13] ajnasz has joined the channel [15:14] javaanse_jongens has joined the channel [15:14] rsms has joined the channel [15:14] Emmanuel__ has joined the channel [15:15] ph^ has joined the channel [15:15] sub_pop has joined the channel [15:15] clip has joined the channel [15:17] amacleod has joined the channel [15:17] tylerstalder has joined the channel [15:17] clip: hi there, i'm running a node.js server on my machine and am trying to connect from an other computer in my lan. somehow i can't reach the server with the ip i configured in my server.js [15:18] MacDiva_ has left the channel [15:18] bingomanatee has joined the channel [15:18] clip: what can be the reason for that? [15:18] bradleymeck: they talking outside of node fine? [15:18] telemachus has joined the channel [15:19] ElDios: clip gist the listen snap of the code [15:19] daniellindsley has joined the channel [15:19] clip: ElDios: gist? [15:19] ElDios: gist/pastie/snapit/copy on some web app :) [15:20] ElDios: gist is on github [15:20] tbranyen: gist owns [15:20] tbranyen: too bad github is lazy with their api [15:20] xandrews has joined the channel [15:20] clip: ok, one moment ;) [15:21] naneau: clip, are you talking http server? [15:21] hij1nx has joined the channel [15:22] confoocious has joined the channel [15:22] confoocious has joined the channel [15:22] jeffmoss has joined the channel [15:23] daniellindsley has joined the channel [15:23] mbrevoort has joined the channel [15:23] irPhunky: Anyone using Lightnode? I've been banging my head against the wall trying to setup multiple hosts and wondering if i'm trying to do something it doesnt support :D [15:23] clip: ElDios: http://nopaste.info/8716394bb1.html [15:24] ElDios: clip looks like you need to study again some basic network notion :) [15:24] ElDios: 127.0.0.1 is always "local" as a definition [15:25] ElDios: so obviously you cannot use it to let other computers reach you .. except from the very same computer [15:25] tjholowaychuk has joined the channel [15:25] clip: ok, but i can't just change it into sth random?! [15:25] ElDios: is like the computer is saying "127.0.0.1 (or localhost) is me" .. [15:25] ElDios: random? [15:26] clip: some other numbers [15:26] ElDios: it must be the real lan address of your server [15:26] ElDios: obviously [15:26] irPhunky: I've followed the example from Lightnode docs, which works fine for static files but I want to setup a node app for another URL and have it run on port 80 - http://pastie.org/private/1lnajdjiblopxmvvtwd2q [15:26] mikegerwitz: clip: You can just omit the 2nd argument [15:26] clip: that i figure out with ipconfig e.g. [15:26] mikegerwitz: clip: otherwise, specify the IP address of whatever interface you wish to bind to [15:26] clip: ?! [15:26] ElDios: if you omit the second argument [15:26] ElDios: the server will listen on every and each interface you have [15:26] hij1nx has joined the channel [15:27] naneau: or use 0.0.0.0 [15:27] ElDios: basically answering the request on the lan [15:27] briznad has joined the channel [15:27] clip: ok, i'll try both, i realize it was a stupid question :D thanks [15:28] ElDios: you're welcome ;) [15:30] hebz0rl has joined the channel [15:31] Venom_X has joined the channel [15:31] jaket_ has joined the channel [15:31] ElDios: irPhunky I still canoot understand what is not working in your code :) [15:32] ElDios: you need to have different content for an host other than "node.phunky.co.uk [15:32] irPhunky: The code works fine :) but you see where i'm checking if the host is node.phunky.co.uk [15:32] ElDios: yes [15:32] irPhunky: How do I get it to load say a node app that is in that dir [15:32] ElDios: couldn't you simply turn that app in a module and require it? [15:33] indutny has joined the channel [15:33] ElDios: I suppose I'm missing something about what you would want to achieve :) [15:33] ElDios: do you want to pass the control to another node web server? [15:33] irPhunky: I think I am too :D [15:33] ElDios: XD [15:33] irPhunky: i'm new to node and just started playing [15:33] ElDios: ahah [15:33] ElDios: ok [15:33] ElDios: go ahaed trying [15:33] pyrotechnick1 has joined the channel [15:33] irPhunky: saw Lightnode and though "oh great" i'll get rid of apache [15:34] ElDios: for virtual hosting? [15:34] aho has joined the channel [15:34] ElDios: so you want a cascade of node servers? [15:35] ElDios: /home/domain1/app.js --> domain1.mydom.com ; /home/domain2/app.js ---> domain2.mydom.com [15:35] ElDios: like that? [15:35] irPhunky: yeah [15:35] ElDios: ok [15:35] ElDios: use node-proxy :) [15:35] k1ttty has joined the channel [15:35] irPhunky: :D [15:35] arpegius_ has joined the channel [15:35] irPhunky: I just saw that too and thought maybe that would be better [15:35] ElDios: yes it is, mister [15:35] irPhunky: then I can just host each app on a diff proxy [15:35] ElDios: go for it [15:35] irPhunky: sorry diff port [15:36] irPhunky: and have node-proxy direct user where I need them [15:36] ElDios: or a completely different host indeed [15:36] irPhunky: sweet i'll look at doing that :) [15:36] ElDios: yup [15:36] irPhunky: thanks for the help, you confirmed what I expected :D [15:36] ElDios: eehheh you're welcome [15:36] irPhunky: I should have just stuck with writing a node app, but jump in with other stuff as always [15:37] rafacv has joined the channel [15:37] Sami_ZzZ___ has joined the channel [15:38] chrislorenz has joined the channel [15:38] zakabird has joined the channel [15:38] zaka has joined the channel [15:38] clip: ok i made it, the solution was setting up the server with my lan adress [15:38] mike5w3c has joined the channel [15:39] clip: another dumb question, where is my node.js "web-directory", where i put the files i want to access? [15:39] ElDios: the directory you just launched your script [15:40] ElDios: anyway it's better if you read a bit about express [15:40] msilverman2 has joined the channel [15:40] ElDios: and figure out how to properly route static files [15:40] ElDios: go to nodetuts.com [15:40] clip: thanks [15:40] ElDios: Pedro did a marvellous work on this "basic" topics [15:41] ElDios: while it got a little worse going on with the series, IMO [15:41] dnunes has joined the channel [15:42] ivanfi has left the channel [15:44] zylo has joined the channel [15:45] baudehlo has joined the channel [15:45] eresair has joined the channel [15:46] irPhunky: I will do ElDios, Lightnode just seemed like a good soloution for me as most of my sites are just static on my linode [15:47] ElDios: this last advice was for clip indeed :P [15:48] irPhunky: Still good advice :D [15:49] Yuffster_work has joined the channel [15:50] matschaffer has joined the channel [15:51] timcosgrove has joined the channel [15:51] Bj_o_rn has joined the channel [15:52] cheater has joined the channel [15:52] robotarmy has joined the channel [15:55] Leonidas: I deen some advice on PURE-style templates. When I have multiple HTML templates, how can I factor out the similarities in a "parent" template? [15:56] Leonidas: *need [15:56] roidrage has joined the channel [15:56] davidsklar has joined the channel [15:56] davidsklar has joined the channel [15:56] timcosgrove has left the channel [15:57] liquidproof has joined the channel [15:57] indutny: ryah: around? if so, may be we can spend a few minutes and discuss my npn pull request. Especially, hasNPN property [15:59] __tosh has joined the channel [15:59] norviller has joined the channel [15:59] Me1000 has joined the channel [16:02] Xenefungus has joined the channel [16:02] mbrevoort has joined the channel [16:02] sdecastelberg has joined the channel [16:04] broofa has joined the channel [16:05] balaa has joined the channel [16:06] cognominal has joined the channel [16:07] javaanse_jongens has joined the channel [16:08] yhahn has joined the channel [16:09] ryah: indutny: later today- can't right now [16:10] arpegius has joined the channel [16:10] hosh_work has joined the channel [16:11] isaacs has joined the channel [16:12] javaanse_jongens has joined the channel [16:12] tobias has joined the channel [16:13] M3l7D0wN has joined the channel [16:13] eb4890 has joined the channel [16:13] dnunes has left the channel [16:15] nebu has joined the channel [16:16] nebu: I've got a problem with the commonjs-utils module. [16:16] nebu: When I run this code in node: var x = require('commonjs-utils'); [16:16] nebu: I get "Error: Cannot find module 'commonjs-utils'" plus a stack trace [16:17] nebu: I've installed commonjs-util the same way I've installed all my other modules, using npm [16:17] nebu: And when I do an "ls" in /home/nebu/node_modules, I see "commonjs-utils connect ejs express jade sass socket.io" [16:17] nebu: var x = require('connect'); works just fine, for example. [16:17] Stephen has left the channel [16:18] Swimming_bird has joined the channel [16:19] H4ns has joined the channel [16:19] brianc: Bj_o_rn: you there? [16:20] Bj_o_rn: brianc: yes! [16:20] brianc: Bj_o_rn: you were wondering if node-postgres supported listen/notify? [16:20] brianc: Bj_o_rn: wait...were you the one who opened the github issue? [16:20] Bj_o_rn: yeah [16:20] Bj_o_rn: I was :) [16:20] ElDios: nebu you got an 's' in surplus [16:20] ElDios: var x = require('commonjs-utils'); <--- [16:20] brianc: Bj_o_rn: ah okay well then...question answered. ;) Have you had a chance to play with it at all? [16:20] ElDios: "commonjs-util" maybe? [16:20] ElDios: dunno [16:21] ElDios: double check it [16:21] Bj_o_rn: not yet no, but it looks promising! :) [16:21] javaanse_jongens has joined the channel [16:21] ElDios: and btw, if you just install npm 1.0.0 you have to reinstall the module with the -g flag to make it "global" [16:21] nebu: ElDios> Error: Cannot find module 'commonjs-util' [16:21] jakehow has joined the channel [16:21] ElDios: npm --version ? [16:21] nebu: 1.0.1rc1 [16:22] ElDios: ok [16:22] ElDios: there it is [16:22] ElDios: install the module again [16:22] ElDios: via sudo or as root [16:22] brianc: okay cool [16:22] ElDios: with the -g flag [16:22] ElDios: npm install -g commonjs-utils [16:23] nebu: ElDios, okay, I reinstalled the module with sudo and -g, but I still get the same error (with or without the trailing s). [16:23] josh_ has joined the channel [16:23] ElDios: mm [16:23] ElDios: strange [16:23] nebu: When I installed it as root, I got this feedback: [16:23] nebu: commonjs-utils@0.1.1 /usr/local/lib/node_modules/commonjs-utils [16:23] ElDios: is it on github? [16:24] nebu: I see this line in the package.json: "location": "http://github.com/kriszyp/commonjs-utils/zipball/master" [16:24] mik_ has joined the channel [16:25] nebu: My real goal here is to get JSON Schema validation working, so if there's a better module for that, I'm willing to switch. [16:26] ElDios: I suppose you should require only the JSON part [16:26] ElDios: like [16:26] ElDios: require("commonjs-utils/JSON-ext") [16:26] ElDios: does this work? [16:26] ElDios: or json-schema [16:26] ElDios: depending on what you need [16:26] timmywil has joined the channel [16:27] montylounge has joined the channel [16:27] ElDios: var json-ext = require("commonjs-utils/json-ext"); [16:28] ElDios: looks like it is modularized so you cannot import the whole package [16:28] liar has joined the channel [16:28] nebu: Error: Cannot find module 'commonjs-utils/json-ext' [16:28] hasenj has joined the channel [16:28] ElDios: mm.. [16:28] steph021 has joined the channel [16:28] steph021 has joined the channel [16:29] nebu: Error: Cannot find module 'commonjs-utils/json-schema' [16:29] hornairs has joined the channel [16:29] Me1000 has joined the channel [16:29] tokumine has left the channel [16:31] nebu: Got it. [16:31] nebu: var x = require('commonjs-utils/lib/json-schema'); [16:31] nebu: This works. [16:31] ElDios: =) [16:31] ElDios: good to know [16:31] ElDios: ook [16:32] ElDios: fixed [16:32] ElDios: g2g [16:32] mbrevoort has joined the channel [16:33] perezd has joined the channel [16:33] losing has joined the channel [16:34] ryah: perezd: sorry - haven't had time yet. going to work on GH-892 today. i have an idea of a fix. [16:34] piscisaureus has joined the channel [16:34] javaanse_jongens has joined the channel [16:35] suckerpunch has joined the channel [16:36] max_dev has joined the channel [16:36] lightharut has joined the channel [16:36] indutny: ryah: is GH-892 related to CryptoStream.prototype.pause problems? [16:37] Croms has joined the channel [16:37] xla has joined the channel [16:38] eee_c has joined the channel [16:38] arpegius has joined the channel [16:38] lightharut: When I try to get response from node.js server response.simpleJSON(200, { friends: array }); the response came cutted. Can some one help me we stuck with this problem about a day. [16:38] CiRlE has joined the channel [16:39] sh1mmer has joined the channel [16:39] hij1nx has joined the channel [16:40] path[l] has joined the channel [16:40] springmeyer has joined the channel [16:42] ryah: ACTION adds a little melodramatics [16:43] sako has joined the channel [16:43] deedubs: deep [16:43] chapel: <3 ryah [16:43] stephank has joined the channel [16:44] qbert has joined the channel [16:44] zemanel_ has joined the channel [16:44] SoreGums- has joined the channel [16:45] yozgrahame has joined the channel [16:45] SoreGums-: is there a simple example of express & socket.io working together somewhere? [16:45] Levi has joined the channel [16:45] SoreGums-: i want clients listening and express to publish messages :) [16:45] timmywil has joined the channel [16:46] qbert: theres that one with the shared cursor [16:47] sh1mmer has joined the channel [16:47] qbert: cant find it at the moment :/ [16:48] hebz0rl has joined the channel [16:48] qbert: has anyone used Ext on the server side with nodejs ? [16:49] SoreGums-: qbert: as in ExtJS - why would you use that on the server side? [16:49] jtsnow has joined the channel [16:49] astropirate has joined the channel [16:49] bradleymeck: jsdom it if you *have* to use it, but DOM is stupid slow compared to templates [16:49] CIA-72: node: 03Felix Geisendörfer 07v0.4 * r301f53c 10/ (3 files in 3 dirs): (log message trimmed) [16:49] CIA-72: node: Allow omission of end option for range reads [16:49] CIA-72: node: Problem: Sometimes it is useful to read a file from a certain position [16:49] CIA-72: node: to it's end. The current implementation was already perfectly capable [16:49] CIA-72: node: of this, but decided to throw an error when the user tried to omit [16:49] CIA-72: node: the end option. The only way to do this, was to pass {end: Infinity}. [16:49] CIA-72: node: Solution: Automatically assume {end: Infinity} when omitted, and remove [16:50] asabil has joined the channel [16:50] rfay_ has joined the channel [16:51] qbert: SoreGums-, for Observable and .extend mostly [16:51] lightharut: node.js simpleJSON response comes truncated [16:51] lightharut: what can be the ground? [16:51] lightharut: as client I'm using Crome browser [16:52] SoreGums-: qbert: oh yes that would be pretty useful :) [16:52] MarkMenard has joined the channel [16:52] matjas has joined the channel [16:53] eee_c1 has joined the channel [16:56] bnoguchi has joined the channel [16:57] scoates: webshell is now in NPM for anyone who cares about such things (-: [16:57] CIA-72: node: 03koichik 07v0.4 * r9533e87 10/ (src/node_buffer.cc test/simple/test-buffer.js): [16:57] CIA-72: node: Fix Buffer.write() with UCS-2 should not be write partial char [16:57] CIA-72: node: closes #916. - http://bit.ly/hJQiES [16:58] sivy_ has joined the channel [16:58] tiagoa has joined the channel [16:58] lukegalea has joined the channel [16:58] indutny: ryah: GH-892 probable solution https://github.com/joyent/node/pull/917 [16:59] sivy has joined the channel [17:00] newy has joined the channel [17:00] qbert: ACTION thinks we need a little npm bot in here [17:00] qbert: /npm view webshell [17:00] dahankzter has joined the channel [17:01] saikat_ has joined the channel [17:02] path[l]_ has joined the channel [17:02] jpick has joined the channel [17:03] saikat__ has joined the channel [17:04] mbrevoort has joined the channel [17:04] ryah: indutny: i don't think that's solving it [17:05] ryah: unfortuenly i can't reproduce it [17:05] mytrile has joined the channel [17:06] ardcore has joined the channel [17:07] indutny: ryah: why not? anyway is this a bug? [17:07] indutny: ryah: try to send large buffer over tls socket [17:07] perezd: ryah: yt? [17:07] ryah: yes [17:07] jano has joined the channel [17:07] perezd: it fixed it! [17:07] herbySk has joined the channel [17:07] ryah: indutny's issue? [17:07] ryah: er patch [17:07] perezd: yes [17:07] synkro has joined the channel [17:08] ryah: okay - good :) [17:08] indutny: ryah: I've got SPDY server working, that was halting after large file send [17:08] perezd: what exactly did we do there? [17:08] indutny: ryah: and now it works [17:08] indutny: perezd: CryptoStream.pause was blocked writes [17:08] ryah: perezd: turn off the throttling [17:08] perezd: interesting [17:08] indutny: perezd: and after writes was blocked no 'drain' event is emitted [17:08] indutny: ryah: probably we should emit 'drain'? [17:09] ryanj has joined the channel [17:09] indutny: ryah: in CryptoStream.resume [17:09] ryah: indutny: yeah, i need a test for this - you say that if i upload a big file it will die? [17:09] hwinkel has joined the channel [17:09] indutny: ryah: yeah, should [17:09] indutny: ryah: it's kinda race condition [17:09] ryah: okay, let try to come up with something [17:09] indutny: ryah: I'll try to add 'drain' [17:09] indutny: ryah: and test again. that sounds more consistent [17:10] indutny: ryah: but really, why should Stream.pause and Stream.resume suspend writes? [17:10] indutny: ryah: it's intended to stop reads AFAIK [17:10] bartt has joined the channel [17:11] jjmalina has joined the channel [17:11] indutny: ryah: anyway let me test 'drain' fix [17:12] arpegius_ has joined the channel [17:12] indutny: ryah: looks like drain fix works too [17:12] pcardune has joined the channel [17:12] indutny: ryah: which we will choose? [17:14] sh1mmer has joined the channel [17:14] indutny: perezd: still around? [17:14] perezd: yeah [17:14] ryah: indutny: drain [17:14] perezd: I gotta go to a meeting, if u wanna have me test something else, plz add to bug, and I'll report back [17:14] ziro` has joined the channel [17:14] indutny: perezd: can you test this too? https://github.com/joyent/node/pull/918 [17:15] malkomalko has joined the channel [17:15] indutny: ryah: added to GH-892 comments flow [17:15] malkomalko: woah.. rails 3.1 is shipping with coffeescript? why [17:15] malkomalko: that seems retarded [17:15] indutny: malkomalko: b/c it's awesome? [17:16] malkomalko: what's wrong with javascript? :) [17:16] coreb has joined the channel [17:16] indutny: malkomalko: it have less sugar than Ruby [17:16] tjholowaychuk: malkomalko: isnt that funny [17:16] indutny: malkomalko: and rails is on ruby, you know [17:16] tjholowaychuk: so fucking lame [17:16] indutny: malkomalko: they like sugar [17:17] malkomalko: It just seems like a really really poor choice [17:17] malkomalko: just makes me happy I left rails [17:17] malkomalko: :) [17:17] tbranyen: malkomalko: heh rails wrote such bad jquery that 1.4.3 broke it [17:17] tbranyen: you literally could not use rails with jquery 1.4.3 [17:17] tjholowaychuk: rails writes bad everything [17:17] pyrotechnick1 has joined the channel [17:18] tbranyen: django javascript isn't much better [17:18] tbranyen: they have no respect for client side [17:18] malkomalko: I saw a note on HN.. wanted to see what people thought [17:18] jtsnow has joined the channel [17:18] ryah: indutny: very happy that you found the problem here! [17:18] springmeyer has left the channel [17:19] tbranyen: ryah: had an issue last night with https where a callback would cause an 'emit event on undefined' error, but a setTimeout wrapping the callback fixed the problem [17:19] tbranyen: i seem to remember hearing this issue before [17:19] tbranyen: wonder if you knew anything or of i should submit an issue [17:19] indutny: ryah: I'm very happy too! [17:20] indutny: ryah: b/c my SPDY server is now more consistent [17:20] indutny: ryah: but we should apply those splitting to 1400b chunks recommendation [17:20] indutny: ryah: and add compression support and NPN [17:20] eee_c has joined the channel [17:20] tbranyen: ah yeah i found it in github issues [17:20] indutny: ryah: btw, guys from google told me that our default encryption protocol is very poor and slow [17:21] adambeynon has joined the channel [17:22] llkazu has joined the channel [17:23] ryah: indutny: yeah, we should use RC4-SHA [17:23] rsms has joined the channel [17:23] ryah: there's a line in tls.js that's commented out [17:23] ryah: (for no reason really) [17:24] pcardune has joined the channel [17:24] tiemonster has joined the channel [17:24] indutny: ryah: so why not uncomment it ? :) [17:24] coreb: rc4's fast, but pretty poor [17:24] coreb: what's the default now? [17:24] devinus has joined the channel [17:25] indutny: coreb: CAMELLIA_256 [17:25] devinus has left the channel [17:25] CIA-72: node: 03Brian White 07master * rac1da4b 10/ (3 files in 3 dirs): [17:25] CIA-72: node: Add remoteAddress and remotePort for client TCP connections [17:25] CIA-72: node: https://groups.google.com/d/topic/nodejs-dev/Asr87_YFSkg/discussion - http://bit.ly/fX8LkO [17:25] rsms has joined the channel [17:26] pquerna: default depends on your openssl version [17:26] pquerna: but sure, its gonna be... not great. [17:26] indutny: pquerna: yep [17:27] symbel has joined the channel [17:27] c4milo: if nodejs is using openssl, what's what does it slow and very poor [17:27] c4milo: ? [17:27] dmcquay has joined the channel [17:27] symbel has left the channel [17:27] coreb: indutny: to my knowledge, the camellia cipher is not poor [17:28] devinus has joined the channel [17:29] javaanse_jongens has joined the channel [17:29] Shrink has joined the channel [17:29] indutny: coreb: actually I don't really know [17:29] devinus: tjholowaychuk: i see you're not a fan of rails using coffeescript [17:29] indutny: coreb: but I was told by developers of SPDY [17:29] iammerrick has joined the channel [17:29] tjholowaychuk: devinus: i dont really care, i dont use rails haha just trying to stop the corruption [17:29] tjholowaychuk: of a useless toy [17:30] c4milo: tjholowaychuk: ++ [17:30] gattuso has joined the channel [17:30] tjholowaychuk: wouldn't bother me if brendan was not falling into the hype [17:30] sendark has joined the channel [17:30] qFox has joined the channel [17:30] devinus: tjholowaychuk: brendan who? [17:30] iammerrick: when I am parsing post() with express why can't I get the body? The body becomes a json representation of the post variables? [17:31] tjholowaychuk: iammerrick: only if you use bodyParser [17:31] rsms has joined the channel [17:31] tjholowaychuk: devinus: the guy who wrote js [17:31] dberlinger has joined the channel [17:31] devinus: tjholowaychuk: ah yeah [17:31] c4milo: iammerrick: console.log(res) is also your friend [17:31] tfe__ has joined the channel [17:32] iammerrick: c4milo: I did console.log(res) it seems my body is not there like it is being removed and replaced with the post variables [17:32] tjholowaychuk: iammerrick: you can listen on req.on('data', ...) and do whatever you want [17:32] tjholowaychuk: iammerrick: the request body is not buffered by default [17:32] iammerrick: tjholowaychuk: ahhh ok thats probably my answer thank [17:32] pyrotechnick1 has left the channel [17:32] devinus: tjholowaychuk: i don't really understand the point of coffeescript myself (you know, other than having a bit of fun) [17:32] tjholowaychuk: sure, it's fun to play around with prototypes of a language [17:33] bojicas has joined the channel [17:33] kmwallio has joined the channel [17:34] tfe_ has joined the channel [17:34] carsonm: indutny: That 1400b change probably shouldn't go into tls, it is only going to help people who are using browsers [17:35] iammerrick: tjholowaychuk: it seema req.on('data'), func never gets fired I must be retarded [17:35] tjholowaychuk: iammerrick: remove bodyParser if you have it somewhere [17:35] tjholowaychuk: it's buffering the body [17:36] tjholowaychuk: for application/json and application/x-www-form-urlencoded [17:36] newy has joined the channel [17:36] iammerrick: tjholowaychuk: aw ok now I am getting a buffer object for body thank you [17:37] mbrevoort has joined the channel [17:37] Nohryb has joined the channel [17:39] iammerrick: maybe I am an idiot but for some reason I thought you could send a body (outside of post variables) in an http POST [17:39] pyrotechnick1 has joined the channel [17:39] boaz_ has joined the channel [17:39] pyrotechnick1: tjholowaychuk: calm down [17:39] pyrotechnick1: you're trolling harder than ever [17:39] tjholowaychuk: haha [17:40] timcosgrove has joined the channel [17:40] pyrotechnick1: are you drunk? [17:40] newy: Hey all. Having an issue getting socket.io to connect via websockets. Firefox can't establish a connection to the server at ws://mynodeserver.com:8080/socket.io/websocket. any quick clues? [17:40] tjholowaychuk: nope [17:40] pyrotechnick1: never drink and github man [17:40] tjholowaychuk: just highly opinionated [17:40] pyrotechnick1: never ever [17:40] mjr_ has joined the channel [17:40] pyrotechnick1: anyway [17:40] timcosgrove has left the channel [17:40] pyrotechnick1: i wanted to thank you for your fantastic idea [17:40] pyrotechnick1: coffeescript for c [17:40] pyrotechnick1: it's amazing [17:40] mbrevoort: anyone know of a good diagram that described the event loop well? putting together a presentation and it would be nice. [17:41] tjholowaychuk: pyrotechnick1: hahaha "While @visionmedia might be agressive and a bit bashy in his arguments, he does have points." [17:41] mbrevoort: newy: do you have websockets enabled in Firefox 4? [17:42] tjholowaychuk: pyrotechnick1: I just think its funny. destroy their language with a compiler and they will think your a newb [17:42] indutny: ryah: https://github.com/joyent/node/pull/919 [17:42] patcito has joined the channel [17:42] indutny: ryah: that's about chunks [17:42] indutny: ryah: arrgh, nevermind [17:42] newy: mbrevoort: i think i changed the setting in the config. ugh, let me double check. [17:42] indutny: ryah: that's broken [17:43] mbrevoort: newy: I would also validate in chrome or safari that it's working [17:43] pyrotechnick1: tjholowaychuk: who cares if someone thinks you're a newb [17:43] pyrotechnick1: if you're having a better experience with another language then it's them who is the newb [17:43] pyrotechnick1: wasting their time bitching about you making your dev process better [17:43] indutny: ryah: or not :) sorry [17:43] pyrotechnick1: anyway [17:44] javaanse_jongens has joined the channel [17:44] pyrotechnick1: it's fucking nuts that they're turning it on as the default for rails thats just fucking stupid [17:44] rsms has joined the channel [17:44] wadey has joined the channel [17:44] pyrotechnick1: i love how node will now be a dep of rails [17:45] pyrotechnick1: what are the windows people going to do lol [17:45] tjholowaychuk: isn't there a ruby version too? because he basically just copied the parser/compiler logic from that guy who wrote thin [17:46] tjholowaychuk: he wrote a book thing about writing little toy languages [17:46] pyrotechnick1: no there's no ruby compiler anymore [17:46] pyrotechnick1: it was in ruby until 0.5 [17:46] pyrotechnick1: now it's self-hosted in coffee [17:46] tjholowaychuk: ah [17:46] tjholowaychuk: right [17:46] pyrotechnick1: i.e. js [17:46] pyrotechnick1: it doesn't _need_ node [17:47] pyrotechnick1: but that's the supported platform as well as the browser which isnt exactly an option [17:47] pyrotechnick1: i dunno maybe sprockets does some hax with another js engine but i doubt it [17:47] sstephenson: it uses https://github.com/sstephenson/execjs [17:47] pyrotechnick1: i'm almost sure it'd need node [17:47] sstephenson: if you're on windows or a mac there are no dependencies to install [17:47] pyrotechnick1: ahh ok [17:47] pyrotechnick1: thanks for clearing that up [17:48] pyrotechnick1: i guess it's not so bad then [17:48] pyrotechnick1: its still an insane decision, look how much conflict it's causing [17:48] pyrotechnick1: it's actually made people use the word fork [17:48] pyrotechnick1: the f word [17:49] wink_: let it burn! :> [17:49] sstephenson: fascinating. it's just an extension added to a generated file [17:49] Aikar: god this coworker of mine is insane with cakes... http://www.facebook.com/photo.php?fbid=165282476862450&set=a.165282473529117.37987.159318277458870&type=1&theater [17:49] sechrist has joined the channel [17:50] saikat has joined the channel [17:50] malkomalko has joined the channel [17:50] pyrotechnick1: i remember the moment i realised rails was dying [17:50] pyrotechnick1: i logged onto railscasts [17:51] jjmalina has joined the channel [17:51] torgeir has joined the channel [17:51] tladuke has left the channel [17:51] pyrotechnick1: and the latest 3 casts were about how to develop offline rails applications [17:51] pyrotechnick1: let's think about that for a moment [17:51] javaanse_jongens has joined the channel [17:51] msilverman2 has joined the channel [17:52] Levi has joined the channel [17:52] pyrotechnick1: ryah: can you kick pyrotechnick please? [17:52] Aikar: that wont let you retake the name [17:52] Aikar: you have to ghost it [17:52] pyrotechnick1: its at work [17:52] pyrotechnick1: i accidently left it on lol [17:52] Aikar: so, kicking it wont help you lol [17:53] pyrotechnick1: why not [17:53] nibblebot has joined the channel [17:53] Aikar: itll still be connected [17:53] Aikar: just not in this channel [17:53] pyrotechnick1: thats all i want... [17:53] Aikar: you have to do /ns ghost [17:53] pyrotechnick1: shh [17:53] pyrotechnick1: shh [17:53] Aikar: why does it matter if hes in the channel ? lol [17:53] pyrotechnick1: just shh [17:53] pyrotechnick1: you're confused [17:53] Aikar: lot of us are idle in channel when not here :P [17:53] pyrotechnick1: it doesn't concern you [17:54] Nohryb has left the channel [17:54] pyrotechnick1: anyone know anybody from new bamboo? [17:55] heavysixer has joined the channel [17:55] sspencercon has joined the channel [17:56] mytrile has joined the channel [17:57] ryah: pyrotechnick1: ? [17:57] pyrotechnick1: kick pyrotechnick [17:57] pedrobelo has joined the channel [17:57] pyrotechnick1: left it on at work [17:57] sarah_92 has joined the channel [17:57] indutny: kick pyrotechnick [17:57] pyrotechnick1: yeah [17:57] pyrotechnick1: he's a troll [17:57] pyrotechnick1: he hates coffeescript [17:58] hackband has joined the channel [17:58] roman__ has joined the channel [17:58] mikegerwitz: pyrotechnick1: /nickserv ghost? [17:58] pyrotechnick1: i dont want the freaking name ffs [17:58] varioust has joined the channel [17:58] pyrotechnick1: i just want it off so people dont think im ignoring them haha [17:58] pyrotechnick1: calm down [17:59] pyrotechnick1: it's just a gemfile [17:59] mikegerwitz: Oh someone already said that. My bad. I'll go back to not paying attention [17:59] jeffmoss: I'm rewriting my rails app in node and it's 1000x faster [17:59] pcardune has joined the channel [18:00] pyrotechnick1: that's because it doesn't bundle coffeescript by default [18:00] indutny: jeffmoss: rewrite it to c++ and it'll be 1000000x faster :D [18:00] pyrotechnick1: rewrite it to java and it'll be 1000001x faster [18:00] indutny: jeffmoss: just joking, actually it wouldn't be much faster [18:00] pyrotechnick1: at least 10x [18:00] indutny: jeffmoss: only if you're doing hard computations in javascript [18:01] pyrotechnick1: if you rewrite it in coffeescript it can run on rails [18:01] pyrotechnick1: they bundle it by default now [18:02] jeffmoss: it's going to be 100,000x faster eventually, because I'm rewriting it, but I figure at least 10x of that is just the difference between ruby/rails and node [18:02] jeffmoss: I'm building a collection of stateful web objects with intelligent routing throughout my cluster, anybody ever tried something this crazy before? [18:03] sixtus42 has joined the channel [18:03] jeffmoss: "You're trying to access /foo/bar/baz? send you to this server, where Foo is initialized [18:03] H4ns has joined the channel [18:03] mbrevoort has joined the channel [18:03] langworthy has joined the channel [18:03] sarah_92: helo I am new to node.js, mmm.. I am still trying to understand its benefits... can I through away all my php and apache and relay on only node.js and javascript? [18:03] blueadept has joined the channel [18:04] Stan____ has joined the channel [18:05] arpegius has joined the channel [18:05] jeffmoss: sarah_92: yes [18:05] sixtus42: is there an efficient way to handle utf16-le strings in Buffers? [18:05] jeffmoss: node has a thing called webworkers that you can replace apache with [18:05] MarkMenard has joined the channel [18:05] sarah_92: jeffmoss: wow! :D [18:05] roman__: Hi. I'm quite new to node.js (and Javascript in general) and ran into a problem. I'm using the node-oscar module, which exposes one instance of an object (called "me"). In my program, I create an instance of node-oscar and expose it, too. The problem is that I cant access the "me" [18:06] V1 has joined the channel [18:06] roman__: ..from another file [18:06] sarah_92: jeffmoss: is there webservers written in node.js? what will I replace my php with? [18:07] jeffmoss: sarah_92: node is a webserver yeah, you could use other webserver/load balancers though [18:08] jeffmoss: you could use apache mod_proxy to route requests to node [18:08] FireFly: roman__, if it's properly exposed accessing it with require('oscar').me (or whatever name it has) should work [18:08] pyrotechnick1: tjholowaychuk: AHAHAHAHA [18:08] pyrotechnick1: it turned religious [18:08] pyrotechnick1: time to leave [18:08] tjholowaychuk: hahaha [18:08] tjholowaychuk: yeah [18:08] tjholowaychuk: im out of there [18:08] pyrotechnick1: wow i really dont miss ruby/rails [18:09] tjholowaychuk: me neither [18:09] pyrotechnick1: that's what it felt like everytime you spoke to a dev [18:09] maushu has joined the channel [18:09] tjholowaychuk: i like our community much better [18:09] esundahl has joined the channel [18:09] pyrotechnick1: or tried to show them something new or different [18:09] tiemonster: Is anyone associated with hashlib in here? It doesn't seem to install from npm. [18:09] pyrotechnick1: it was like NOOOO OMFG MY LIFE IS OVER YOU CHANGED THE SENSIBLE DEFAULTS [18:09] isaacs: tiemonster: $ npm owner ls hashlib [18:09] tjholowaychuk: plus I shouldn't be bitching in there, because I think thaht is the perfect place to use coffeescript if you are going to. at the application level [18:09] tjholowaychuk: not in libs etc [18:10] pyrotechnick1: certainly [18:10] tiemonster: isaacs: yeah, I was going to e-mail, but was hoping to catch them in IRC [18:10] isaacs: tiemonster: yeah, invalid json [18:10] sechrist has joined the channel [18:10] pyrotechnick1: we dep on plenty of js and i'd much rather it in js so that more people have the opportunity to make it better [18:10] tiemonster: doesn't seem to be on github, or I would have already submitted a pull request [18:10] pyrotechnick1: but does that mean i wanna write it in my app code…not really [18:10] isaacs: gaving: you gavinuhma? [18:11] dans_ has joined the channel [18:11] pyrotechnick1: i dont see why it even needs to be an issue [18:11] tjholowaychuk: pyrotechnick1: yeah. I think it's kinda .. rude/wrong to write js libs in CS and assume people will want to use it, but yeah I agree, if it's your app do w/e you want [18:11] pyrotechnick1: ive almost given up chiming in when people start hating on it [18:11] tjholowaychuk: but I dont see google/yahoo/fb hiring CS devs [18:11] jeffmoss: I've never understood why people go out of their way to write parsers/template engines that have their own syntax... coffeescript, mustache, ... smarty, for that matter, well I've heard all the reasons but I none of them really add up for me [18:11] tiemonster: tjholowaychuk: coffeescript? [18:11] roman__: FireFly: Mh, I think I did everything right. Those are the two files: http://pastebin.com/rn7xZZyg [18:12] pyrotechnick1: i dont think writing coffee everyday makes you a bad js coder [18:12] pyrotechnick1: i still have to hack on js libs [18:12] elux has joined the channel [18:12] kris_ has joined the channel [18:12] pyrotechnick1: i still have to work with shitty frontend js from other teams [18:12] tjholowaychuk: it's kind the same as the jquery/DOM problem [18:12] tjholowaychuk: everyone knows jquery [18:12] tjholowaychuk: less know real skills in terms of the DOM etc [18:12] pyrotechnick1: i think it's a bit different [18:13] pyrotechnick1: with jquery you never see the dom code [18:13] pyrotechnick1: you dont debug the dom code [18:13] isaacs: tiemonster: looks like it's this: https://github.com/brainfucker/hashlib/blob/master/package.json [18:13] pyrotechnick1: it's not like a 1:1 mapping that's consistently reinforced in your mind [18:13] isaacs: tiemonster: already fixed on github, but not published to npm [18:14] FireFly: roman__, looks like icq.aim isn't what you think it is. Try printing out Object.keys(icq.aim) in test.js [18:14] pyrotechnick1: if anything, writing coffee and seeing/often playing with the compiled js and participating in the issues on the github project have made me a much much better js coder [18:14] FireFly: If you're proficient in python Object.keys is like the python dir() function [18:14] pyrotechnick1: you could sit me down in a room and ask me to write js, im not going to break down and cry [18:14] hwinkel has joined the channel [18:14] mscdex: roman__: the stuff in `me` isn't available until you log in [18:14] V1: Are there people here that have experiance with the Joyent No.de Cloud Analytics shizzle, as this: http://dl.dropbox.com/u/1381492/shots/wtf-CA.jpg doesn't make any sense.. [18:15] pyrotechnick1: i still know what it looks like and how to write it, i mightent _prefer_ to write the js, i might even write some coffee down first since it's so close to psuedocode but i'm still going to get the job done [18:15] hipe has joined the channel [18:15] reid has joined the channel [18:15] maushu: V1, shutdown? [18:15] maushu: Holding its breath for the push? [18:16] V1: maushu: nope, I was also tailing the log at that point because I saw it happen before [18:16] V1: No CPU spikes, No garbage collection [18:17] tbranyen: tjholowaychuk: i think i'm going to convert as much of jquery to coffeescript [18:17] oskude has joined the channel [18:17] tbranyen: and make a fake pull request [18:17] tbranyen: see what happens [18:17] tjholowaychuk: tbranyen: haha :) [18:17] bshumate has joined the channel [18:17] tbranyen: as i can* welp missing thought there [18:18] isaacs: aslakhellesoy: npm help registry [18:18] isaacs: aslakhellesoy: also, pquerna and PhilK are doing this as well, so they might have some pointers/gotchas that they've encountered [18:19] roman__: mscdex: Ah, I see. Thanks for helping, you and FireFly :) [18:19] deedubs: does http.IncomingMessage no longer have access to the request? [18:19] mscdex: roman__: i'm the author of the module, if you have any other questions, don't hesitate to ask :) [18:19] tiemonster: isaacs: sweet. thanks for following up. I'll install from github then. [18:19] isaacs: tiemonster: i just manually fixed it. [18:20] isaacs: tiemonster: people keep bumping into that one. the lib itself is stable. [18:20] isaacs: just was this stupid json comma thing [18:20] roman__: mscdex: Ah, nice :D There only one problem, it doesn't resolve hostnames, I have to use the direct IP for the login server [18:20] wicknicks has joined the channel [18:20] sixtus42 has left the channel [18:20] mscdex: roman__: what platform are you on? [18:20] mraleph has joined the channel [18:20] indutny has joined the channel [18:20] roman__: mscdex: Mac OS X Snow Leopard [18:21] pyrotechnick1: tbranyen: the other day at work i ported the webglrenderer from three.js to coffeescript [18:21] isaacs: tiemonster: seriously, it's just odd that JSON.parse is so finicky, imo [18:21] jashkenas_work has joined the channel [18:21] pyrotechnick1: it was 10000 lines in js and 6000 in coffee [18:21] pyrotechnick1: it also was less than 1/4 of the characters [18:21] pyrotechnick1: not only was it almost half a small it was much much less "dense" as i call it [18:21] tiemonster: isaacs: in Node.js itself? [18:21] isaacs: tiemonster: in v8 itself, actually [18:22] mscdex: roman__: hrmm... i've never had a problem, but then again i'm on linux [18:22] isaacs: tiemonster: in the ES5 spec [18:22] tiemonster: isaacs: right. well. spec purity is a whole different conversation. [18:22] roman__: mscdex: Don't know if I have a general problem with node.js resolving hostnames, it's the first time I tried ;) [18:22] sh1mmer has joined the channel [18:23] tbranyen: pyrotechnick1: how did the compiled JS compare to the original source? [18:23] roman__: Though every other application has no problems [18:23] mscdex: roman__: what error do you get? [18:23] tbranyen: since thats what really matters [18:23] roman__: mscdex: Timeout [18:23] mscdex: huh... [18:23] insin has joined the channel [18:23] pyrotechnick1: as in LOC? [18:23] pyrotechnick1: was slightly longer [18:23] mscdex: not sure on that one [18:23] pyrotechnick1: why does that matter? [18:23] tbranyen: bytes [18:23] pyrotechnick1: in characters [18:23] mscdex: roman__: is that for both the aim and icq servers? [18:23] tbranyen: pyrotechnick1: maybe not for three.js but for small libs bytesize matters [18:23] kmwallio has joined the channel [18:23] tbranyen: especially for use with mobile [18:24] pyrotechnick1: haha [18:24] pyrotechnick1: what internet connections do you dev for [18:24] pyrotechnick1: worrying about bytes [18:24] pyrotechnick1: are you developing facebook? [18:24] roman__: mscdex: Yes, for both. Exact error is: "test.js :: Encountered error: Error: Connection timed out while connecting to login server" [18:24] tbranyen: no i just don't like waiting [18:24] jashkenas_work: tbranyen: it usually ends up with a small bytesize difference ... [18:24] tbranyen: jashkenas_work: was mainly just curious [18:24] mscdex: roman__: interesting [18:24] tbranyen: pyrotechnick1: apparently you've never been stuck on edge [18:24] jashkenas_work: I remember doing it for underscore.js ... and the diff after minification and gzipping between original JS, and coffee -> JS was 308 bytes. [18:25] tbranyen: jashkenas_work: nice [18:25] pyrotechnick1: i dont use mobile networks [18:25] mscdex: roman__: i'll give it a shot on a mac i have here.... give me a minute [18:25] pyrotechnick1: i refuse too, they're too bad in aus [18:25] Epeli: How the update-method is supposed to work in Mongoose? https://groups.google.com/d/msg/mongoose-orm/oo6Zv76NbHo/C30nzzUc4IcJ I also tried running exec() on the returned query object. [18:25] SSgtSpoon|work has joined the channel [18:25] pyrotechnick1: jashkenas_work: when are you going to do a release [18:25] pyrotechnick1: it's been a while... [18:25] arthur_kalm has joined the channel [18:25] estrathmeyer has joined the channel [18:26] estrathmeyer has left the channel [18:26] arthur_kalm has left the channel [18:26] tjholowaychuk: jashkenas_work: ps don't think I'm dissing your work directly or anything with all the trolling. I respect the project itself, but yeah, quite debatable. [18:27] liquidproof has joined the channel [18:27] tjholowaychuk: and it's certainly interesting what one can get away with in terms of grammar when you compile to source [18:27] tbranyen: yeah would be neat if a lot of the async stuff could be more usable in coffeescript [18:27] jashkenas_work: pyro: soon, I hope -- this should certainly be a kick in the ass to get it out the door. [18:27] tbranyen: async lookups in loops for instance [18:28] jashkenas_work: tbranyen: it's been attempted [18:28] gkatsev: tbranyen: there is wu.js which may or may not be what you want. [18:28] jashkenas_work: see: https://github.com/jashkenas/coffee-script/issues/241 https://github.com/jashkenas/coffee-script/issues/287 https://github.com/jashkenas/coffee-script/issues/350 [18:29] KrisJordan: @tjholowaychuk what does compiling to source have to do with what you can get away with in grammar? [18:29] TomsB has joined the channel [18:29] tbranyen: gkatsev: if its written in JS its already not what i want [18:29] skm has joined the channel [18:29] jashkenas_work: agreed -- compiling to source has nothing to do with your grammar, I'd imagine. [18:29] tbranyen: since handling async lookups in a loop structure while maintaining the illusion of synchronous behavior isn't possible [18:29] jashkenas_work: In fact, you're far more constrained by whats expressable in JavaScript. [18:29] esundahl has joined the channel [18:29] b0t has joined the channel [18:29] jashkenas_work: tbranyen: check those tickets ... the proposal did exactly what you're describing. [18:30] tbranyen: did you link to some? [18:30] tbranyen: ah missed em [18:30] tbranyen: :) [18:30] tbranyen: jashkenas_work: yep exactly a defer operator [18:30] tjholowaychuk: I'm just saying something that compiles to source, it's quite trivial to make it do whatever you can imagine [18:30] tbranyen: was a twitter discussion between getify and eich not too long ago [18:31] tjholowaychuk: compilation time is pretty much irrelevant [18:31] tbranyen: about it [18:31] KrisJordan: @tjholowaychuk what are you even talking about? -- that it is compiled vs. interpreted? [18:31] pyrotechnick1: tjholowaychuk: everything is an abstraction layer on top of machine code [18:31] pyrotechnick1: you remember that [18:32] Matt_ has joined the channel [18:32] tjholowaychuk: pyrotechnick1: yeah.. [18:32] colinclark has joined the channel [18:32] pyrotechnick1: maybe you should get your asm on [18:32] pyrotechnick1: or is that too many layers? [18:32] pyrotechnick1: too many compilers in the way? [18:33] pyrotechnick1: rather compare some registers? [18:33] gkatsev: I program directly in machine code. My keyboard contains only two buttons. [18:33] steveklabnik: heh. [18:33] pyrotechnick1: i use a single button [18:33] pyrotechnick1: it's time-based like morsecode [18:33] mbrevoort has joined the channel [18:33] pyrotechnick1: if i fail to press the button it assumes a 0 [18:33] gkatsev: lol [18:34] pyrotechnick1: yes and i use only my penis to press the button [18:34] baudehlo: ACTION just uses a magnet straight onto the disk. [18:34] iammerrick has joined the channel [18:34] stagas: lol [18:34] tbranyen: sloppy [18:34] tiemonster: isaacs: what version of npm should I be using? I keep getting errors running 0.3.9. [18:34] Levi has joined the channel [18:34] jeffmoss has left the channel [18:34] pyrotechnick1: i actually fap the binary into my pc [18:34] gkatsev: tiemonster: 1.0.8rc or w/e it is. [18:35] tjholowaychuk: KrisJordan: just meant your compiler can happily spend as long as it wants (within reason) [18:35] tbranyen: gkatsev: heh ben was using that and had nothing but problems so i recommended 0.3.9 [18:35] tbranyen: which is the real stable! [18:35] tjholowaychuk: KrisJordan: to resolve all the madness [18:35] mbrevoort has joined the channel [18:36] tjholowaychuk: but parsing shit is pretty trivial [18:36] tiemonster: gkatsev: v1.0.1rc7 ? [18:36] gkatsev: yeah, that, lol [18:36] pyrotechnick1: tjholowaychuk: you're getting grilled [18:36] V1: oh man I really got pick a new nickname [18:36] V1: silly highlights [18:36] pyrotechnick1: V2 [18:36] gkatsev: V1 [18:36] pyrotechnick1: V1.0.1 [18:37] Charuru has joined the channel [18:37] gkatsev: V1: just constrain the hilight a bit with some hot regex action [18:37] perezd: indutny: [18:37] perezd: yt? [18:37] V1: V8 was already taken ;D [18:37] rfay_ has joined the channel [18:37] pyrotechnick1: what is v8? [18:37] perezd: tasty tomato drink [18:37] V1: pyrotechnick1: porn [18:37] V1: geek porn [18:37] pyrotechnick1: im getting conflicting answers [18:37] indutny: perezd: yep [18:37] deedubs: tjholowaychuk: In express what is the best way to add a method to a request from a plugin? [18:38] perezd: indutny: did u want me to test something? back from my meeting now [18:38] gkatsev: python.com [18:38] tjholowaychuk: deedubs: you can just extend node's from the http module [18:38] lukus has joined the channel [18:38] tjholowaychuk: deedubs: or do you mean from middleware? [18:38] liquidproof has joined the channel [18:38] gkatsev: oops, I meant python.org and a differnt window. [18:38] indutny: perezd: yephttps://github.com/joyent/node/pull/918 [18:39] indutny: perezd: that should be a more consistent fix of our problem [18:39] ph^ has joined the channel [18:39] deedubs: tjholowaychuk: I'm trying to debug this https://github.com/naholyr/node-i18n/blob/master/index.js#L62 wherein req isn't accessible [18:39] hwinkel has joined the channel [18:40] tjholowaychuk: deedubs: "this" [18:40] deedubs: thought I might throw the baby with the bathwater and recode how its extending [18:40] tjholowaychuk: deedubs: this.session etc [18:40] deedubs: i see awesome [18:41] stagas: tjholowaychuk: I was wondering the same thing. I'm adding methods to the req object but I don't like it very much [18:41] path[l] has joined the channel [18:42] tjholowaychuk: stagas: the only other way to go about it would be to send around an object along with the req/res [18:42] mscdex: woot! i think i found the answer for the "error opening terminal" woes with node-ncurses [18:42] bkozal has joined the channel [18:43] stagas: tjholowaychuk: maybe have a req.util('foo', bar) ... req.util.foo() ? [18:43] indutny: perezd: please report results in pull request page [18:43] perezd: indutny: will do, trying now [18:44] norviller has joined the channel [18:45] hwinkel1 has joined the channel [18:45] arpegius_ has joined the channel [18:46] cmlenz has joined the channel [18:46] stagas: tjholowaychuk: it would be kinda cool to have an empty namespace for app-specific stuff that won't get overwritten in future versions of express [18:46] darshanshankar_ has joined the channel [18:47] perezd: indutny, ryah : works great, that was it! [18:47] pyrotechnick1: tjholowaychuk: sick burn [18:47] tjholowaychuk: stagas: yeah I think in general it is good practice to keep req stuff namespaced [18:48] pyrotechnick1: need some aloe vera? [18:48] tjholowaychuk: haha [18:48] tjholowaychuk: I'm tired, haven't slept in a few days [18:48] tjholowaychuk: kinda bitchy [18:48] pyrotechnick1: i guess you're feeling pretty alienated right now [18:48] darshanshankar has left the channel [18:48] tjholowaychuk: nah [18:48] pyrotechnick1: you'll never be accepted by the rubyists tj, give it up [18:48] tjholowaychuk: you kinda ask for that when you comment on a rails commit [18:48] pyrotechnick1: we're not hipster enough for them [18:49] qFxo has joined the channel [18:49] xandrews_ has joined the channel [18:49] tbranyen: even gf3 agreed with you tho [18:49] tbranyen: and he's feckin mad hipster [18:49] pyrotechnick1: he does use bold [18:49] darshan-mobile has joined the channel [18:49] tjholowaychuk: bold makes the difference [18:49] pyrotechnick1: that's pretty damn hipster [18:50] tjholowaychuk: bold is the new underline [18:50] pyrotechnick1: bold is the new capitals [18:50] tjholowaychuk: wow [18:50] pyrotechnick1: MAN [18:50] pyrotechnick1: FUCK THIS [18:50] pyrotechnick1: READING MY THOUGHTS N SHIT GOODNIGHT [18:50] tjholowaychuk: ahahah [18:51] jesusabdullah: Man, lots of coffeescript tweets this morning [18:51] perezd: jesusabdullah: they have upset the rails hive [18:51] tjholowaychuk: jesusabdullah: good promo [18:51] tbranyen: next thing rails devs need to progress to is weening off latin based languages, they are too mainstream [18:51] tjholowaychuk: regardless [18:52] tbranyen: too many letters and shit [18:52] tbranyen: its confusing [18:52] boaz_ has joined the channel [18:52] dguttman has joined the channel [18:53] darshan-mobile has left the channel [18:53] SoreGums has joined the channel [18:54] darshan-mobile has joined the channel [18:54] devinus: rails using CoffeeScript by default is freakin retarded [18:54] darshan-mobile has left the channel [18:54] devinus: just for a few JS helpers they need a whole language abstraction [18:54] devinus: -.- [18:54] insin: ACTION just read tj's comment on the commit, amaze [18:54] steveklabnik: it's awesome. [18:54] steveklabnik: coffeescript makes js more tolerable. [18:54] steveklabnik: rails has always been a full-stack framework. [18:54] tbranyen: steveklabnik: i don't get that statement [18:54] tbranyen: tolerable? [18:55] steveklabnik: sorry [18:55] steveklabnik: i'm not a js guy by trade [18:55] tbranyen: o [18:55] tbranyen: well yeah i can see that heh [18:55] insin: JS is perfectly cromulent already [18:55] tbranyen: if you don't like JS already, you will probably welcome coffeescript with open arms [18:55] steveklabnik: so, from my perspective, i prefer coffeescript. there's a lot to like about js, or i wouldnt be in that channel. but coffeescript rounds out some edges. [18:55] naneau: shameless spam: releasing my little dependency injection container today... http://naneau.net/gerenuk/ looking for feedback :) [18:55] steveklabnik: this may or may not be due to me not having done as much with the language or others, but regardless, if it's helpful, it's nice to have, you know? [18:56] insin: ...until you have to debug in JS and reverse-compile fixes? [18:56] steveklabnik: insin: have you read coffeescript output? [18:56] insin: yes [18:56] tbranyen: naneau: might be cool to have an example on the front page [18:56] steveklabnik: it's pretty easy to read, generally. like i said, i tend to do simpler things. [18:56] mraleph has joined the channel [18:56] tjholowaychuk: going from js to CS is one thing, but diving straight into CS I think will be generally bad for the community [18:56] tbranyen: insin: thats what scares me [18:56] naneau: tbranyen: I did that at first but it all became a clutter of code [18:56] tbranyen: when shit breaks in the generated output [18:56] landeiro has joined the channel [18:56] tbranyen: and i have to go in and fix it [18:56] steveklabnik: is diving into haml bad, becaue you're not using html? [18:57] steveklabnik: or sass? [18:57] insin: nt [18:57] tjholowaychuk: steveklabnik: yeah [18:57] tjholowaychuk: I would say so [18:57] Gelegrodan: naneau: nice ripoff on socket.io's page :D [18:57] steveklabnik: programming is all about managing abstraction. [18:57] steveklabnik: that's our job. [18:57] naneau: Gelegrodan: hmmm? [18:57] insin: neither of those are programming languages [18:57] steveklabnik: anyway, this is #node.js not #coffeescript [18:57] varioust has joined the channel [18:57] naneau: hmmm [18:57] insin: indeedy [18:57] naneau: you're right [18:57] steveklabnik: just saying that there are many valid reasons to make that decision. [18:57] Gelegrodan: naneau: http://socket.io/ aaa bit wrong color [18:57] steveklabnik: that is all. [18:58] naneau: there's a certain similarity there [18:58] naneau: we both have a fuzzy blue background :D [18:58] naneau: and a bright green thingy [18:58] Gelegrodan: naneau: dosent matter ;) [18:58] tjholowaychuk: oOoO I like when npm does what it would do [18:58] tjholowaychuk: without reading [18:58] isaacs: tjholowaychuk: oh? [18:58] tjholowaychuk: isaacs: npm config ls [18:58] tjholowaychuk: haha [18:58] naneau: well it does matter to me, I spent quite a bit of time on that design :P [18:58] naneau: haha [18:58] isaacs: tjholowaychuk: :D [18:59] tjholowaychuk: isaacs: I was trying to publish "tobi" and noticed it has me as "tj" but not "tjholowaychuk" like my config says, so it wont work [18:59] isaacs: tjholowaychuk: i love guessing the right API. doesn't happen often, but when it does, it's nice [18:59] javaanse_jongens has joined the channel [18:59] tjholowaychuk: haha yeah man [18:59] naneau: I'm going to remove my bright green thingy, it's just too uncannily similar [18:59] hwinkel has joined the channel [19:00] jesusabdullah: perezd, tjholowaychuk: They were coffee vs. js tweets. I don't follow any ruby people, so it was all tanepiper, hij1nx and, well, you tjholowaychuk [19:00] indutny: ryah: what's stopping you from pulling https://github.com/joyent/node/pull/873/files [19:00] perezd: our entire system is based in coffee [19:00] perezd: i love it [19:01] jesusabdullah: I took a look at coffee [19:01] naneau: the current coffeescript debate is delicious :D [19:01] mhiku has joined the channel [19:01] naneau: nothing like a bunch of angry rubyists to liven things up [19:01] jesusabdullah: Where are these rubyists though? [19:01] steveklabnik: ACTION waves [19:01] jesusabdullah: What I've seen are old javascript guys saying, "You'll eat the C-style syntax and like it!" [19:01] steveklabnik: :-p [19:01] naneau: jesusabdullah: https://github.com/rails/rails/compare/9333ca7...23aa7da [19:01] naneau: there [19:01] jesusabdullah: XD [19:01] ryah: indutny: nothing [19:01] isaacs: tjholowaychuk: i just added you to tobi [19:02] rsms_ has joined the channel [19:02] reid has joined the channel [19:02] tjholowaychuk: isaacs: awesome thanks man appreciate it [19:02] isaacs: np [19:02] indutny: ryah: great clear answer :) but why not pull in that case ? :) [19:02] tanepiper: jesusabdullah: down with the ruby hipsters i say [19:02] tanepiper: they will ruin it, as usual [19:02] jesusabdullah: There's a coffeescript gem? [19:02] isaacs: tjholowaychuk: looks like tobi is the only one. http://registry.npmjs.org/-/by-user/tj [19:02] tjholowaychuk: isaacs: I have to admit,the first thing I did try was $ npm whoami [19:02] tjholowaychuk: haha [19:02] tjholowaychuk: but the config thing is better [19:02] indutny: ryah: it will allow to set SSL_OP_CIPHER_SERVER_PREFERENCE [19:02] steveklabnik: jesusabdullah: yes. [19:02] tanepiper: jesusabdullah: cs was origionally developed in ruby [19:02] isaacs: tjholowaychuk: oOoO!! npm whoami [19:02] isaacs: yes. it's going in [19:02] tjholowaychuk: isaacs: weirrrrd not sure how that happened [19:02] isaacs: <3 that [19:02] tanepiper: until about 0.4, then it was written in coffeescript [19:02] tjholowaychuk: ahaha [19:02] kevwil has joined the channel [19:02] ryah: indutny: it's in my queue [19:02] indutny: ryah: and then select RC4+SHA 128 bit encryption, which is really faster than current [19:02] Barret has joined the channel [19:02] pquerna: indutny: more docs :) [19:03] ParadoxQuine has joined the channel [19:03] jesusabdullah: So, what's the deal with it now? XD [19:03] yozgrahame has joined the channel [19:03] naneau: jesusabdullah: it's becoming default in rails [19:03] KrisJordan: http://twitter.com/BrendanEich/status/58243314524233728 [19:03] landeiro: hello everybody, i have a question, maybe you can help me. how can i make that http.request don't terminate the process, for example with a "Error: ENOTFOUND, Domain name not found at IOWatcher.callback (dns.js:53:15)"? I allways to use process.on('uncaughtException' or there another way less geral? thanks. [19:03] __tosh has joined the channel [19:03] jashkenas_work: tjholowaychuk: this has to worry you, then. https://twitter.com/brendaneich/status/58243314524233728 [19:03] pifantastic has joined the channel [19:04] tjholowaychuk: jashkenas_work: it does [19:04] jesusabdullah: Wait, so now in rails, you write your web code in coffeescript, not javascript? [19:04] jesusabdullah: By default? [19:04] pquerna: indutny: tbh, we should probally just use http://httpd.apache.org/docs/2.3/mod/mod_ssl.html#sslciphersuite as the default, rather than unset [19:04] jesusabdullah: Wiggedy whack. [19:04] jashkenas_work: you should chime in on the TC39 committee. [19:04] jesusabdullah: But whatever floats their boat I say! [19:04] insin: ACTION wonders how many people will eat their own arguments against significant whitespace as a direct result [19:04] jesusabdullah: lol [19:04] V1: Arrggh this Joyent Cloud analytics thing is killing me, now it shows Holes inside the CPU as well =/ [19:05] jesusabdullah: I don't have any issue with coffee, but I guess I expected the rails community to be more conservative [19:05] steveklabnik: ... heh. [19:05] steveklabnik: conservative? [19:05] tanepiper: jesusabdullah: lol [19:05] insin: ACTION wonders how many will then import antigravity and float over to Python afterwards [19:05] indutny: pquerna: but client may change something different w/o server priorities [19:05] jesusabdullah: var AG = require('antigravity'); [19:06] indutny: pquerna: so we can leave just one protocol, but in case when client doesn't support it [19:06] naneau: jesusabdullah: you mean ag = require 'antigravity' [19:06] indutny: pquerna: it won't connect [19:06] tanepiper: jesusabdullah: did you check out my cloud9 extension for coffeescript ;) [19:06] naneau: tanepiper: that was great work btw [19:06] tanepiper: naneau: thanks! [19:06] jesusabdullah: Oh, I guess! I mean, if I welcome our new coffeescript overlords [19:06] insin: naneau: I forgot it uses that Ruby call syntax... urgh [19:06] rsms has joined the channel [19:07] naneau: there's nothing in CS that need not be there, parentheses included ;) [19:07] isaacs: $ npm whoami [19:07] isaacs: isaacs [19:07] isaacs: $ npm who am i [19:07] isaacs: isaacs [19:07] isaacs: tjholowaychuk: ^ [19:07] tjholowaychuk: insin: don't you love all the ambiguity [19:07] Just``` has joined the channel [19:07] tjholowaychuk: wahoo! [19:07] insin: what does it do with zero-arg functions? [19:07] isaacs: tjholowaychuk: $ npm whoami --userconfig /dev/null [19:07] isaacs: Not authed. Run 'npm adduser' [19:08] maushu has joined the channel [19:08] dve has joined the channel [19:08] tanepiper: insin: as in foo = -> ? [19:09] jesusabdullah: tanepiper: More like, foo(); [19:09] tfe_ has joined the channel [19:09] tfe_ has joined the channel [19:09] jesusabdullah: can you just type foo and have it figure it out? [19:09] jesusabdullah: I'll be back in about 15 mins to see your answer! [19:09] jashkenas_work: foo() [19:09] tanepiper: well no, because foo would be [19:09] jesusabdullah: ACTION , AWAY! *whoosh* [19:09] tanepiper: foo = void: 0 [19:09] jashkenas_work: foo is a reference to the function, just like in JS. [19:09] jesusabdullah: Yeah, that's what I thought. But, it had been a while! [19:09] naneau: do foo [19:09] naneau: is non-ambiguous [19:10] tjholowaychuk: personally I like to see where my vars are declared [19:11] ryah: indutny: still unable to repeat GH-892.js [19:11] dve has joined the channel [19:11] ryah: s/.js// [19:11] hwinkel has joined the channel [19:12] jakehow has joined the channel [19:13] indutny: ryah: race condition [19:13] isaacs: w00t. @mentions in git commits auto-link on github. https://github.com/isaacs/npm/commit/1a011677cb460ff61b63f7933b3659b59b883c87 [19:13] isaacs: tjholowaychuk: ^ [19:14] indutny: ryah: brb [19:14] tjholowaychuk: isaacs: hah! nice [19:14] hwinkel1 has joined the channel [19:15] hij1nx has joined the channel [19:15] arpegius_ has joined the channel [19:16] Phunky has joined the channel [19:17] V1: Meh just send joyent a support e-mail because this gaps in Cloud Analytics keep getting odder and odder.. : http://www.webpagescreenshot.info/img/805310-4132011100804PM [19:17] naneau: isaacs: that *is* nice O_o [19:19] hwinkel has joined the channel [19:19] javaanse_jongens has joined the channel [19:19] n2liquid has joined the channel [19:19] tbranyen: "also j/w is there an abstraction to allow me to write Ruby more like JS? #ruby" [19:19] tbranyen: hope there is!@ [19:20] tjholowaychuk: haha [19:20] Gelegrodan: naneau: just give your site a nice touch of #BADA55 background [19:20] tjholowaychuk: but then you'd be a newb :p [19:20] Gelegrodan: looks kinda decent naneau :D [19:20] tbranyen: yeah but ruby is so ugly [19:20] tbranyen: needs to look more js don't you see [19:21] tbranyen: because i'm right [19:21] naneau: Gelegrodan: :) [19:21] tbranyen: wha wha wha [19:21] flippyhead has joined the channel [19:21] ryah: indutny: Got a test case! [19:21] ryah: ACTION dances around [19:21] no-gooder has joined the channel [19:22] cphang has joined the channel [19:22] no-gooder: they are discussing node.js should have its own lanuge.. : http://news.ycombinator.com/item?id=2437003 [19:23] techwraith has joined the channel [19:23] river_t has joined the channel [19:25] vikstrous1 has joined the channel [19:25] cloudhead: Is there a way I can specifically bind to INADDR_ANY in node? [19:25] cloudhead: I'm passing 0.0.0.0 but that doesn't seem to work [19:25] m64253 has joined the channel [19:26] tjholowaychuk: cloudhead: I think null should work [19:26] tjholowaychuk: cant remember [19:26] cloudhead: I know I can just not pass a value, but it's simpler for me to pass one than not to in this case [19:26] cloudhead: tjholowaychuk: I'll try that [19:26] ryah: cloudhead: that should owkr [19:26] seigel has joined the channel [19:27] cloudhead: ok cool, ty both [19:27] Nohryb has joined the channel [19:27] devinus: the node.js being it's own language thing was dumb [19:29] tbranyen: yeah would be a huge turnoff for me to use it [19:29] Shinuza has joined the channel [19:29] ryah: cloudhead: '0.0.0.0' should work too [19:30] naneau: devinus: it's just one guy's view on monads [19:30] naneau: it got a little out of hand :P [19:31] jesusabdullah: jashkenas_work: I forgot to congratulate you on the inclusion of coffee into ruby. That has to be really exciting for you! [19:32] tilgovi has joined the channel [19:33] hwinkel has joined the channel [19:34] jesusabdullah: Am I the only one (besides JimBastard) that isn't all that impressed by HN anymore? [19:34] varioust has joined the channel [19:34] jesusabdullah: It's like a bigger version of /r/programming now :( [19:34] jesusabdullah: Maybe it always was. [19:34] tbranyen: jesusabdullah: well for the JSers ajaxian died [19:34] jesusabdullah: ajaxian? [19:35] jesusabdullah: I never heard of ajaxian. I have to admit, I came pretty late to the JS party [19:35] path[l] has joined the channel [19:35] jesusabdullah: "o hay guys gonna help myself to a callback hope thats alrite" [19:35] tbranyen: yeah was a pretty prolific blog [19:35] V1: amagad, who doesn't know ajaxian [19:35] tbranyen: news aggregator [19:35] tbranyen: some original content [19:35] jesusabdullah: So, what happened? [19:35] hwinkel1 has joined the channel [19:36] tbranyen: all the maintainers lost interest and didn't leave it in competent hands or something, i dunno [19:36] jesusabdullah: Huh! [19:36] tbranyen: how did digg die? sometimes these things happen [19:36] V1: jesusabdullah: acquisition [19:36] jesusabdullah: Sure [19:36] jesusabdullah: re: digg [19:36] devinus: why did ajaxian die? [19:36] devinus: i always wondered wtf happened to it [19:37] halfhalo: techtarget bought them [19:37] devinus: who the hell is techtarget [19:37] techwraith: exactly [19:37] mbrevoort has joined the channel [19:37] jesusabdullah: ugh, I disagree with this fogus guy [19:37] tbranyen: ah thought it was because rey left for ms and dustin diaz didn't want to do it anymore [19:37] devinus: why would you just buy a property to sit on it and let it die? [19:37] jesusabdullah: but then again, any time I see coroutines my mind automatically goes into "NO UR RONG" mode [19:37] devinus: what a missed opportunity [19:37] halfhalo: they are a tech company who also own the technology guide sites, like notebookreview and desktopreview [19:38] devinus: notebookreview is really nice [19:38] halfhalo: along with alot of whitepaper sites [19:38] halfhalo: uggg [19:38] jesusabdullah: mostly because, having seen coroutines, I can't imagine how they actually make things easier. That, and I also instantly think of python yield trickery. [19:38] halfhalo: ACTION is a notebookreview member [19:38] jesusabdullah: I don't like python yield trickery. [19:38] halfhalo: ACTION has a right to complain as well... since he is not a normal member [19:38] devinus: weird that they can manage notebookreview well and let ajaxian die [19:38] hwinkel has joined the channel [19:39] halfhalo: weeellllll.... I would not go as far as manage [19:39] devinus: jesusabdullah: saying node.js should become it's own language is...just...i don't even know wtf to say to that [19:39] losing has joined the channel [19:39] n2liquid: what's the difference between using a connect middleware with Express and without it? [19:39] halfhalo: and if you like notebookreview, go look at storagereview. Started by the people who built up notebookreview then sold it for a crapton of money [19:39] ElDios has joined the channel [19:39] mbrevoor_ has joined the channel [19:39] jesusabdullah: devinus: Yeah, that too. I just assume he means, "node.js should use an enhanced dialect of javascript" or some such thing, which makes more sense [19:40] halfhalo: ACTION is known as Patrick on the nbr forums as well... and always tries to push node :p [19:40] jesusabdullah: Good shill! GOOD [19:41] hwinkel1 has joined the channel [19:41] xandrews has joined the channel [19:42] torgeir has joined the channel [19:42] n2liquid: anybody? can I use connect middlewares with Express and use them all the same? [19:42] jashkenas_work: interestingly enough, Dion just started a brand new Ajaxian replacement: http://functionsource.com/ (which, ahem, is written in coffeescript) [19:42] halfhalo: ACTION goes to make his node bridge idea because he wants one [19:42] tjholowaychuk: n2liquid: yeah they are the same [19:43] n2liquid: tjholowaychuk: I tried using connect-auth (middleware), but it should export a req.authenticate() function [19:43] n2liquid: which is undefined for me [19:43] tjholowaychuk: I can't speak for that one [19:43] tjholowaychuk: haven't tried it [19:43] rsms_ has joined the channel [19:43] n2liquid: tjholowaychuk: ok.. but app.use is the same with both connect and Express, too? [19:43] tjholowaychuk: n2liquid: yup [19:44] astropirate has joined the channel [19:44] n2liquid: odd [19:44] n2liquid: but thanks anyway [19:44] jmar777 has joined the channel [19:44] jesusabdullah: Aurrgh, this fogus guy's comments are ALSO DOUCHE-Y [19:44] jesusabdullah: I really need to move on here. >__< [19:45] steveklabnik: fogus is a smart dude. [19:45] steveklabnik: that's all ill say. [19:45] steveklabnik: (he wrote the joy of clojure, if that gives you any insight to his position) [19:45] halfhalo: heh... this is going to be epic. internal node communications bridge plus eventually load balancing stuff [19:45] jesusabdullah: He probably is, and I'm probably reading this comment from the wrong angle [19:45] Draggor: and clojure is pretty cool [19:45] steveklabnik: i do think node being a separate language is probably silly. [19:45] jesusabdullah: Yeah, I'd actually love to learn some clojure [19:45] steveklabnik: ACTION is still very much a node newb [19:45] arpegius has joined the channel [19:45] fogus`: jesusabdullah: Hey! I resemble that remark! [19:46] steveklabnik: hehe. [19:46] jesusabdullah: :o I SEE YOU [19:46] jroes has left the channel [19:46] jesusabdullah: and I've also been caught RED HANDED [19:46] devinus: jashkenas_work: CS server side? [19:46] jesusabdullah: I apologize. :( [19:46] jesusabdullah: Do you promise you're not a douche, fogus? [19:46] rsms_ has joined the channel [19:46] jesusabdullah: I'm only a douche SOMETIMES. Like I was a few minutes ago. [19:46] naneau: devinus: CS shines on the server [19:47] fogus`: jesusabdullah: I promise nothing. People tend to like me (sometimes) ;-) [19:47] jesusabdullah: lol [19:47] jesusabdullah: Same here. [19:47] gorekee has joined the channel [19:47] jesusabdullah: Since you're here: Coroutines? Blegh. :C [19:47] zorzar has joined the channel [19:47] Swimming_bird has joined the channel [19:47] Draggor: So I'm seroiusly contemplating doing something like coffeescript, but keep it looking like JS. [19:48] fogus`: Well nothing has been implemented on that front, so I'm always on the lookout for something better [19:48] jesusabdullah: Sure, sure [19:48] naneau: fogus`: why not use one of the promise libraries out there? :x [19:48] naneau: it isn't entirely what you describe [19:48] jesusabdullah: Like I said earlier (not sure if you were lurking) but the mention of coroutines cause a kneejerk reaction in me of the bad kind [19:48] devinus: i just wish v8 would adopt more mozilla extensions [19:48] naneau: but it's in the same ballpark? [19:49] fogus`: I like promises. I've not looked into the js offerings yet [19:49] naneau: there's https://github.com/kriszyp/node-promise [19:49] mbrevoort has joined the channel [19:50] hwinkel has joined the channel [19:50] jesusabdullah: I probably should. I got very comfortable with callbacks so I never really bothered to force myself to learn too many other concurrency models (in node) [19:50] naneau: I am actually writing my own little promise lib targeting CoffeeScript right now [19:50] insin: ACTION wonders how the v8 shim for Spidermonkey is coming along [19:50] CIA-72: node: 03Ryan Dahl 07v0.4 * r296ff04 10/ (2 files in 2 dirs): Test to demonstrate #892 - http://bit.ly/dHHzZJ [19:50] naneau: ACTION wonders along with insin [19:50] iammerrick has left the channel [19:50] techwraith: Really though, what's the appeal of coffeescript? cc:/ naneau [19:50] jesusabdullah: As much as I'd love to keep trollin', badmouthin' lurkers and eatin' crow, I have to get some papers signed [19:50] jesusabdullah: Peace dogs [19:51] Ori_P has joined the channel [19:51] jesusabdullah: fogus`: Sorry for calling your comments douche-y. Again. [19:51] naneau: techwraith: today is a good day to ask that question :) [19:51] jesusabdullah: It wasn't nice! [19:51] fogus`: No worries [19:51] fogus`: :-) [19:51] brianmario has joined the channel [19:51] techwraith: naneau: I heard about it landing in rails today [19:51] jesusabdullah: fwiw the particular comment only ranked 0.14 Zeds at best [19:51] naneau: "landing" is quite a euphemistic term for what it did [19:52] Draggor: techwraith: It fills out a lot of missing nice syntactic things in JS. [19:52] naneau: I refer you to the case of troll v. troll: https://github.com/rails/rails/compare/9333ca7...23aa7da [19:52] jesusabdullah: What would you prefer, naneau? [19:52] jesusabdullah: Blasted into rails? [19:52] bkozal has joined the channel [19:52] naneau: "put" into rails? [19:53] insin: hah, Zeds [19:53] steveklabnik: 'being included by default' into rails [19:53] indutny: ryah: great! [19:53] insin: nice unit [19:53] jesusabdullah: That doesn't sound like sex at ALL! [19:53] perezd has joined the channel [19:53] indutny: ryah: sorry, was afk [19:53] indutny: ryah: so does it fix problem? [19:53] Shinuza has joined the channel [19:53] ryah: indutny: yes - i want to think about it for a minute though [19:53] indutny: ryah: of course, np [19:54] msucan has joined the channel [19:54] techwraith: naneau: The only problem I have with it is debugging [19:54] indutny: ryah: I'm going to sleep. be back 6-7 hours later. ttyl [19:54] naneau: techwraith: with you there [19:54] naneau: debugging can be a pita [19:54] bartt1 has joined the channel [19:54] jesusabdullah: insin: Thanks :P [19:54] void_ has joined the channel [19:54] naneau: for me the appeal is that it approaches functional programming more than raw js does [19:54] beawesomeinstead has joined the channel [19:54] beawesomeinstead has joined the channel [19:54] naneau: the syntax makes a difference, but also some of the neat little constructs are handy [19:54] path[l] has joined the channel [19:55] naneau: that and the fact that it's very literal [19:55] naneau: which I really appreciate [19:55] fogus`: jesusabdullah: The nice thing about promises is that you can build a coroutine-like interface out of them. Thanks for the link BTW [19:55] techwraith: naneau: I'll look into it, but wouldn't it be better to just write the same abstractions in a js lib? [19:56] naneau: techwraith: you'll still be stuck with the JS syntax [19:56] naneau: I personally find coffee much cleaner [19:56] hij1nx has joined the channel [19:56] naneau: I know I do not stand alone in this [19:56] naneau: but I will fully admit that personal taste matters in this [19:56] steveklabnik: yep. [19:56] davidascher has joined the channel [19:56] steveklabnik: (on both points) [19:56] brolin has joined the channel [19:57] techwraith: I see, is JS your primary language? [19:57] creationix has joined the channel [19:57] colinclark has joined the channel [19:57] naneau: right now, JS is what I actually run, full-stack [19:57] naneau: but coffeescript has become my primary language [19:57] TooTallNate has joined the channel [19:57] technoweenie has joined the channel [19:57] naneau: in fact, I even moved a rather large-ish project from JS to CoffeeScript, bit by bit [19:58] naneau: as part of an ongoing refactor [19:58] zorzar has joined the channel [19:59] bnoguchi has joined the channel [19:59] vikstrous has joined the channel [19:59] esundahl has joined the channel [19:59] Draggor: I think coffeescript has some great ideas, but as a whole, I'd have rather seen a boosted JS than something that departed that much. [20:00] esundahl has left the channel [20:00] technoweenie has left the channel [20:00] gkatsev: it's just a DSL [20:00] naneau: Draggor: as soon as you start boosting, you lose the original language in some way... it's tempting to keep on boosting [20:01] kris_ has joined the channel [20:01] naneau: coffeescript is easy enough to pick up, which is part of its appeal [20:01] naneau: I say, if people think it can be done better/differently, create a rival [20:01] isaacs: what does coffeescript actually add in terms of language features, though? [20:01] esundahl has joined the channel [20:01] steveklabnik: list comprehensions. [20:01] gkatsev: classes :/ [20:01] isaacs: like, does it add anything that is not syntactic sugar? [20:01] Draggor: naneau: I like to think I have a very clear list of all I want :3 the coffescript function shorthand, destructuring, and I'd like to see macros. [20:01] tjholowaychuk: ambiguity [20:01] devinus: that's it...i'm moving to haskell [20:01] isaacs: steveklabnik: list comprehensions are syntactic sugar. [20:01] isaacs: it doesn't actually change the mental model at all. [20:01] naneau: isaacs: foo = bar for bar in bars when bar isnt 'foo' [20:01] steveklabnik: isaacs: everything is syntactic sugar. [20:01] naneau: things like that [20:02] gkatsev: isaacs: classical inheritance with classes. [20:02] isaacs: no, not everything is syntactic sugar. [20:02] steveklabnik: if it makes it easier for me to code, then i'm all for it [20:02] steveklabnik: isaacs: im being slightly silly, sorry. [20:02] gkatsev: everything else is syntacic sugar. AFAIK [20:02] naneau: isaacs: a lot of things *are* syntactic sugar [20:02] isaacs: TCO is not syntax sugar. immutability is not syntax sugar. [20:02] naneau: but that doesn't mean they aren't very nice to have/ [20:02] naneau: and make your code easier to write... and read? [20:02] piscisaureus: ACTION waves [20:02] steveklabnik: that's the argument i was actually trying to make, thanks naneau. [20:02] isaacs: what can you do with coffee-script that you can't do with javascript? [20:02] Draggor: I forget, does coffeescript do destructuring? [20:03] steveklabnik: nothing. [20:03] naneau: isaacs: as coffeescript compiles to js [20:03] steveklabnik: but it may be nicer to do those things. [20:03] isaacs: right [20:03] naneau: one could logically argue that you can only do *less* with cs [20:03] naneau: never more [20:03] piscisaureus: any news from the front? [20:03] naneau: which is what the raven said, too [20:03] EyePulp: tjholowaychuk: I'm writing a cluster plugin - when I pass a worker into it via master.on('foo',function(worker,err){}); is there a way to get to the request being handled (and ultimately the IP of the client request?) [20:03] mraleph: you can do everything in assembly or directly in machine code [20:03] isaacs: it *would* be possible, at least in theory, to compile things from cs->js in such a way that it would be possible, but unreasonably convoluted to do in js [20:03] CiRlE has joined the channel [20:03] jashkenas_work: Draggor: yes. [20:03] nateo has joined the channel [20:03] isaacs: such as implementing TCO using throw/catch [20:04] naneau: isaacs: a lot of the syntactic sugar works in such a way [20:04] isaacs: or applying static analysis to validate the immutability of vars at compile ty [20:04] isaacs: e [20:04] isaacs: *time [20:04] naneau: js as a language sometimes needs some constructs that are a little convoluted [20:04] naneau: or a lot [20:04] naneau: cs attempts to make it easier for you to capture those in "sugar" [20:04] isaacs: you CAN just not ever change variable values, but that's almost impossible to validate. [20:04] tjholowaychuk: EyePulp: take a look at the stats() plugin, you will see that it tells master it will be working within the workers as well [20:05] Spion has joined the channel [20:05] tjholowaychuk: EyePulp: at which point you can listen on master.server's "request" etc [20:05] isaacs: i don't see it actually doing anything that is even tricky to do in native js. then again, i grew up speaking this language. [20:05] isaacs: so maybe i'm jsut the native not seeing how "won't" is confusing to someone who just learned it stands for "will not" [20:05] naneau: isaacs: I wrote JS for a long time before I switched to coffee [20:05] bradleymeck: anyone know if there is a way to emulate goto skipping over a loop using only continue/break/labels [20:05] jashkenas_work: isaacs: "everything is an expression" isn't syntactic sugar. [20:05] naneau: it took a while for me to get over it [20:06] harth has joined the channel [20:06] naneau: you know, make yourself accept that it is possible to have a language that compiles into a language that you can already write comfortably [20:06] naneau: and be better than you [20:06] isaacs: jashkenas_work: i see. so you can do stuff like: foo = for (i in b) b[i]? [20:06] Guest24175: @isaacs yes [20:06] isaacs: is that an array or just the last value? [20:06] KrisJordan: array [20:07] mraleph: what? [20:07] jashkenas_work: foo = (transform item for item in list) [20:07] jesusabdullah: WHOO got my signature! [20:07] insin: you can take isaacs' commas from his cold, dead hands (you already have his semicolons) [20:07] naneau: isaacs: except you write it foo = i for i in b [20:07] naneau: wait [20:07] jesusabdullah: I'm like 2 signatures away from an accepted thesis [20:07] naneau: no you need the array there [20:07] naneau: sorry [20:07] jashkenas_work: isaacs: more important even, for if/else and switch. [20:07] isaacs: naneau: no, my question is whether "for" is an expression. [20:07] jashkenas_work: func = -> return [decently complex if/else tree] [20:07] mraleph: PARSE ERROR ON LINE 1: UNEXPECTED '(' [20:07] isaacs: or "while" [20:08] tjholowaychuk: ACTION hated those features in ruby [20:08] isaacs: jashkenas_work: i do that all the time with ?: [20:08] jashkenas_work: yes, either array, object, or range comprehensions. [20:08] willwhite: did expresso switch compatibility to express 2.x? I'm getting this error on all of my tests as of expresso 0.7.3. https://gist.github.com/918297 [20:08] jashkenas_work: isaacs: right -- it's great that ternary is an expression instead of a statement. [20:08] naneau: isaacs: your example would've been foo = k for i,k of b [20:08] jesusabdullah: whoo ternary! [20:08] jashkenas_work: And that's exactly what if/else used as an expression compiles into. [20:08] tjholowaychuk: /clear [20:08] willwhite: seems to expect `server.__deferred` to be there in express [20:08] isaacs: jashkenas_work: the ternary expression, that's mothers' milk. [20:09] isaacs: it's C stuff [20:09] mbrevoort has joined the channel [20:09] mraleph: naneau: and what is the result of that expression? [20:10] naneau: mraleph: http://cl.ly/1U2F3I2s0R1S3l34203U [20:10] jashkenas_work: array of [k, k, k] ... [20:10] naneau: woops... :x [20:10] mraleph: you are cheating [20:10] mraleph: hehe [20:10] mscdex: has anyone here ever gotten an exception that was missing the actual error description and backtrace? [20:10] mscdex: :S [20:10] mraleph: that is why I've asked. [20:10] naneau: yup, my coffee-foo has left me [20:10] mraleph: this syntax expressions are purely confusing [20:10] naneau: that's what you get for sleeping 2 hours a night [20:11] mscdex: all i get in the output is the file & line number, the relevant line, and the ^ pointer [20:11] mscdex: :/ [20:11] tjholowaychuk: im going to steal a bunch of syntax from other languages, compile it to ruby, and call it mochascript [20:11] naneau: http://cl.ly/00150r010P0U221I1U3w is what you wanted [20:11] naneau: ACTION goes to hide in shame [20:11] tjholowaychuk: no one will write ruby anymore [20:11] Zelest has joined the channel [20:11] isaacs: tjholowaychuk++ [20:11] v8bot: isaacs has given a beer to tjholowaychuk. tjholowaychuk now has 23 beers. [20:11] devinus: tjholowaychuk: just do syntax aware ruby [20:11] mraleph: coffeescript is a nice language but it is not completely uniform… e.g. sometimes you need parens to call functions sometimes you don't etc etc [20:11] jesusabdullah: I thought ruby was supposed to be alright..? [20:11] jashkenas_work: tjholowaychuk: I've been waiting for you to do your own flavor, like Stylus vs Sass, and Jade vs HAML. [20:12] jashkenas_work: maybe you'll get around to it now. [20:12] isaacs: i'd love to see an immutable JS [20:12] naneau: mraleph: I tend to add parens only around things that need priority [20:12] naneau: and use "do" elsewhere [20:12] devinus: isaacs: agreed [20:12] KrisJordan: @isaacs that'd be cool [20:12] jesusabdullah: I thought about forking cpython at one point---not seriously, but nonetheless [20:12] isaacs: or something that managed CPS a bit terser than JS's cb-passing pattern [20:12] jesusabdullah: Not sure what a good name for it would be [20:12] naneau: like EventEmitter = (require 'events').EventEmitter [20:12] jesusabdullah: "snakes?" [20:12] devinus: i'd love to see an immutable, typed language that compiles down to JS..... [20:12] naneau: or (do someFunc).foo [20:12] isaacs: JS is already typed :) [20:13] isaacs: but you mean, do away with coercion? [20:13] naneau: never around parameters to a function [20:13] jesusabdullah: Probably means "statically typed" a la the haskles [20:13] jashkenas_work: isaacs: immutability is easy to add to coffee, for lexical variables -- the coco fork already has it. [20:13] jesusabdullah: OH SHIT I realized [20:13] mraleph: naneau: foo = (k for i,k of b) try it [20:13] jesusabdullah: I bought that book! I should have it any week now! [20:13] bradleymeck: i love my coersion for short circuiting, dont take it away [20:13] isaacs: jashkenas_work: right, but you see, I actually *don't* agree with a lot of the syntax sugar. [20:13] mraleph: naneau: and be surprised [20:13] isaacs: jashkenas_work: s/agree/prefer/ [20:13] devinus: isaacs: strong static typed [20:13] isaacs: jashkenas_work: "everything is an expression" would be nice. [20:13] naneau: mraleph: I was already hiding in shame [20:13] naneau: :( [20:14] jesusabdullah: I see strengths in both static and dynamic typing [20:14] isaacs: jashkenas_work: but i like js syntax better than coffeescript. [20:14] tjholowaychuk: isaacs: same [20:14] devinus: basically i want a language like haskell that compiles down to JS :) [20:14] isaacs: devinus: if you have immutability, then your types are "strong" anyway, becasue you can't change the value. [20:14] mraleph: I like CoffeeScript [20:14] naneau: devinus: I know a guy working on that [20:14] tjholowaychuk: I like to see my declarations, I've never liked switch/if as expressions in ruby [20:14] isaacs: devinus: everything is either "undefined" or set and unchanging [20:14] jesusabdullah: I wouldn't mind seeing that [20:14] naneau: where "language like haskell" is "haskell" [20:14] javaanse_jongens has joined the channel [20:14] bradleymeck: LLVM bytecode -> JS is out there somewhere [20:14] mraleph: devinus: here is an idea -> just use haskell [20:14] jesusabdullah: Reminds me of, umm [20:14] jesusabdullah: umm, fuck what's it called? [20:14] devinus: and apparently Crankshaft optimizes the shit out of values that don't change types so it'd be perfect fit [20:15] jesusabdullah: It's lisp --> js [20:15] tjholowaychuk: I like braces [20:15] tjholowaychuk: I like parens [20:15] jesusabdullah: parenscript! [20:15] isaacs: jesusabdullah: parenscript or sibilant, maybe? [20:15] jesusabdullah: That's what it's called! [20:15] softdrink: (;,,;) [20:15] jesusabdullah: THANKS TJ FOR ACCIDENTALLY REMINDING ME [20:15] softdrink: zoidberg script [20:15] Draggor: parenscript is kinda crap because it descents from commonlisp instead of scheme [20:15] bradleymeck: http://pastebin.com/index/S4YFy499 ... problem of the day (aka i wants my goto back) [20:15] jesusabdullah: Draggor: Not a fan of CL? lol [20:15] jashkenas_work: there's a whole host of langs to choose from. https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS [20:15] Draggor: CL was my first fp language, but I greatly dislike the split namespaces [20:15] void_ has joined the channel [20:16] naneau: lol, you actually compiled a list? :D [20:16] piscisaureus: We should have a 'design your own programming language site [20:16] arpegius_ has joined the channel [20:16] jesusabdullah: Draggor: Most of my background in lisp comes from Land of Lisp, so I know some CL but no scheme [20:16] jashkenas_work: naneau: I didn't touch that page, no. [20:16] jesusabdullah: I think I would like scheme better, but it's hard to tell [20:16] bradleymeck: piscisaureus, lambda the ultimate? [20:16] isaacs: bradleymeck: right, so, if you *WERE* to write a real language that compiles to JS, that's the kind of JS that I'd like to see it turn into. [20:16] isaacs: bradleymeck: with CPS, immutability, etc. [20:16] piscisaureus: [ ] Check to have closures [20:16] piscisaureus: [ ] Check to have static typing [20:16] piscisaureus: [ ] Check to have significant whitespace [20:16] piscisaureus: ... etc [20:16] mscdex: ok, it looks like stack overflow exceptions in v8 are missing backtraces and error description completely [20:16] isaacs: (a language that is significantly different than js, that is) [20:16] mscdex: :S [20:17] isaacs: piscisaureus++ [20:17] v8bot: isaacs has given a beer to piscisaureus. piscisaureus now has 1 beers. [20:17] bradleymeck: im trying isaacs /cry but i need that goto, i can emulate it but its a 5x perf hit [20:17] jesusabdullah: The reason I don't like parenscript is that it tries to be lisp but it has to work sufficiently well with JS [20:17] jesusabdullah: so it feels really awkard [20:17] devinus: interesting: http://impredicative.com/ur/ [20:17] isaacs: piscisaureus: or, we could just all use JS [20:17] jesusabdullah: awkward* [20:17] mraleph: mscdex: yes [20:17] nibblebot has joined the channel [20:17] mraleph: mscdex: cause to format this info you need stack [20:17] Draggor: JS really is a scheme in pseudo c syntax [20:17] isaacs: "You can either whine about the JavaScript you wish you had, or you can man up and write the JavaScript you have." [20:17] isaacs: --crockford [20:17] jesusabdullah: I think one of the major strengths of cofeescript is that it's "just javascript" [20:17] mscdex: mraleph: but no error description even? [20:17] piscisaureus: isaacs: yes that'd be awesome. But then JS must have (... fill in isaacs preference ...) [20:17] mscdex: mraleph: all there is is the caret pointer and the relevant source code line [20:18] jashkenas_work: hah, pulling out the crockford, eh? [20:18] isaacs: piscisaureus: i'm not saying i'd USE something with CPS and immutability. I mean, I don't use Haskell or Erlang. [20:18] Twelve-60 has joined the channel [20:18] isaacs: piscisaureus: just that it'd be neat :) [20:18] nateo: exit [20:18] tjholowaychuk: maybe i'll start using that ruby erlang thing [20:18] jesusabdullah: I mean, it's a weakness as well, since you can say, "what's the point then?" but it also means that you don't get this horribly awkward clash in styles when you try to use jquery from your not-JS language [20:18] tjholowaychuk: instead of erlang [20:18] malkomalko: are you still riffing on the coffeescript thing? heh [20:18] tjholowaychuk: because writing in the language itself is lame [20:18] jashkenas_work: "One of my favorites along those lines is a new little language called [20:18] jashkenas_work: CoffeeScript, which takes the good parts -- not even all of the good parts, [20:18] jashkenas_work: but a nice little language -- and comes up with groovy new syntax for it, which [20:18] jashkenas_work: is minimal. It's almost like dandelions: little fluffs of programs that do [20:18] jashkenas_work: everything that conventional JavaScript programs do. You can't do anything in [20:18] jashkenas_work: that language that you can't do in JavaScript, so it's all cosmetic. I don't [20:18] jashkenas_work: know if all or much of that will find its way into JavaScript, because I'm not [20:18] jashkenas_work: sure there's enough of a payoff there. But just as an experiment, as a design [20:18] jashkenas_work: exercise, I think it's a brilliant piece of work. I'm excited to see stuff [20:18] jashkenas_work: like that happening. " -- Crockford [20:18] nateo has left the channel [20:18] jashkenas_work: sorry for the blast. [20:19] isaacs: jashkenas_work: yeah, he digs it, cuz it compiles to js [20:19] devinus: crockford sounded uncomfortable when i asked him why more mozilla extensions haven't been standardized [20:19] isaacs: jashkenas_work: and it compiles to js that jslint likes [20:19] malkomalko: woah, I thought my connection was jacked with how that paste came in [20:19] jesusabdullah: That doesn't mean much. [20:19] jesusabdullah: *cough*jshint debacle*cough* [20:19] naneau: well he's rather fanatic when it comes to syntax [20:19] isaacs: jashkenas_work: like him, though, i'm not sure there's much of a payoff there, but as an experiment, it's a brilliant piece of work. [20:20] tilgovi has joined the channel [20:20] TheFuzzball has joined the channel [20:20] twoism has joined the channel [20:20] mraleph: Draggor: Scheme has a proper lexical scoping which they failed to have in JavaScript. [20:20] mbrevoort has joined the channel [20:20] naneau: out of interest, jashkenas_work, did you write coffeescript as an experiment? [20:20] KrisJordan: as someone who has code in production written in coffeescript and spent some considerable time working with it -- there's certainly a payoff [20:20] isaacs: jashkenas_work: i suppose i'm just a bit irked by the assumption that A) i only don't prefer coffee-script because i've never seen it, so OMGACCEPTTHISNPMPATCH ITS CofFEEScrIPTS!! SOOO MUCH BETTER, and b) shut up. [20:20] tjholowaychuk: naneau: I believe it was baed on Marc-André Cournoyer's ebook [20:20] tjholowaychuk: never read it [20:21] tjholowaychuk: but he had a ruby ebook about compilers or something [20:21] malkomalko: I read it, was good, but a lot of code samples [20:21] malkomalko: found jison too, and now my world has turned inside out [20:21] mraleph: Draggor: and Scheme has a proper eval instead of evil global eval [20:22] EyePulp: ACTION would rather work in the original language to avoid future maintenance headaches by the suckers who come after him [20:22] EyePulp: but I've been wrong before [20:22] tjholowaychuk: we should just add 5 more js langauges, then we can all have fun contributing to each others code [20:22] naneau: EyePulp: the js coffee compiles to could still be maintained as it is [20:22] mraleph: I can understand when people say that Lua is Scheme with Algol syntax, but when people say that JS is Scheme with C syntax… that is not true [20:22] naneau: it's not illegible [20:23] jesusabdullah: I've noticed that most of the times that people actually complain about CS is when javascript projects are asked to pull code that specifically enables the use of coffeescript [20:23] Draggor: mraleph: I would like to retract my statement [20:23] jesusabdullah: which happens disappointingly often [20:23] naneau: tjholowaychuk: I know you meant this as sarcasm, but experimenting can't hurt [20:23] isaacs: jashkenas_work: and those problems are not the fault of you or your creation, by any means. [20:23] naneau: it's just that CS got a rather nice boost [20:23] naneau: today being a big one [20:23] EyePulp: naneau: right, but then the question is why use CS in the first place... but, I use LESS for css, so I'm probably just a hypocrite. [20:24] tjholowaychuk: EyePulp: css is static though, so that is actually relevant [20:24] naneau: haha, yeah, in fact, less is to css as coffee is to javascript [20:24] jesusabdullah: I remember having a conversation with SubStack about this, when someone submitted code to make coffeescript automatically compile with browserify. [20:24] tjholowaychuk: for maintainability [20:24] jesusabdullah: I was like, "man you're pulling in a dependency a lot of people won't need" [20:24] jesusabdullah: He was like, "Who cares? NPM got dis shit yo" [20:24] naneau: tjholowaychuk: css takes quite a bit of maintaining [20:25] EyePulp: tjholowaychuk: I suppose [20:25] naneau: that's not immediately obvious [20:25] naneau: static or not [20:25] tjholowaychuk: EyePulp / naneau: for example with stylus, the next release you can do a single line for a linear gradient that will support all the vendor prefixes and custom syntaxes, as well as generate a gradient image with node-canvas for IE [20:25] tjholowaychuk: that solves a problem [20:25] tjholowaychuk: CS is purely sugar [20:26] KrisJordan: are you serious? [20:26] naneau: tjholowaychuk: if your argument is "you can write less to get more", cs is exactly that [20:26] naneau: it's not like you can't type out the linear gradients for all vendors yourself? [20:27] Gelegrodan: naneau: isnt that jquery slogan? ;) [20:27] naneau: Gelegrodan: sssssh :P [20:27] pHcF has joined the channel [20:27] Gelegrodan: naneau: oh i see... hey your not going to use #BADA55? :( [20:27] tjholowaychuk: naneau: js is fine as-is, I dont know anyone who actually types "function" etc [20:28] EyePulp: tjholowaychuk: admittedly that sounds good, but it feels a bit magical [20:28] tjholowaychuk: EyePulp: no worries its opt-in [20:28] EyePulp: tjholowaychuk: of course, jQuery is incredibly magical, but yet it has at least a few people who like it... =) [20:29] trollzie: whats the best way to remove an variable from an object? [20:29] tjholowaychuk: what [20:29] tjholowaychuk: lol [20:29] isaacs: trollzie: delete [20:29] naneau: trollzie: delete [20:29] kylefox has joined the channel [20:29] tjholowaychuk: EyePulp: when did jquery come into this [20:29] tjholowaychuk: haha [20:29] trollzie: ty :D [20:29] naneau: https://developer.mozilla.org/en/JavaScript/Reference/operators/special_operators/delete_operator [20:29] trollzie: and whats the best way to test if a variable is in an object? [20:29] naneau: there's a couple gotchas [20:29] malkomalko: my colleague made a good point on why rails and cs might make a good fit [20:30] malkomalko: rubyists like looking at pretty code, ruby is formatted about as nice as any language [20:30] tiagoa has joined the channel [20:30] malkomalko: cs just looks a lot better than js [20:30] EyePulp: tjholowaychuk: just saying that resisting tools the wrap up or hardocde functionality in useful ways aren't all "magic" and thus bad voodoo. [20:30] naneau: malkomalko: yet a lot of the debate is about whether cs *is* better than js... but logically it can never be [20:30] tjholowaychuk: EyePulp: ah well no it's an @import, so you can ignore it [20:30] chrisdickinson: trollzie: function(needle, obj) { for(var key in obj) if(obj.hasOwnProperty(key) && obj[key] === needle) return true; return false; } [20:30] malkomalko: I'm not talking about if it's better or not [20:30] tjholowaychuk: malkomalko: I think js looks muuuuch better [20:31] insin: v8> Object.prototype.toString.call({}) [20:31] v8bot: insin: "[object Object]" [20:31] chrisdickinson: (would be the most widely-compatible, probably) [20:31] malkomalko: I'm simply stating that it "looks" better to a lot of people [20:31] tjholowaychuk: there are a few features I would like [20:31] brianc: isaacs: I looked over the logging for npm. I'd really like to extract it out, and if I start on the project I'll let you know - for now I'm gonna have to abandon the effort because I have _much_ too much on my plate. But...I appreciate the offer. :) [20:31] tjholowaychuk: but many languages have those not just CS [20:31] trollzie: chrisdickinson: but thats linear [20:31] EyePulp: ACTION started with plain old C years ago, so js looks just like home. [20:31] naneau: malkomalko: with you [20:31] tiagoa_ has joined the channel [20:31] isaacs: brianc: np :) [20:31] malkomalko: for instance [20:31] tjholowaychuk: EyePulp: yup :D loves me some braces [20:31] brianc: isaacs: I only bring this up because I told you I'd follow up either way whenever I figured out if I had the time [20:31] malkomalko: @instanceVal in cs [20:31] malkomalko: makes a lot of sense with ruby [20:31] isaacs: brianc: suresure. if you come back to it, lmk. [20:31] isaacs: no pressure, either way. [20:32] Levi has joined the channel [20:32] malkomalko: my only problem is I don't want people not learning JS because they can just use CS [20:32] chrisdickinson: trollzie: yes, but to be completely compatible, it's gonna be linear someplace. [20:32] chrisdickinson: just the nature of iterating over object keys :\ [20:32] malkomalko: like CS is really good when you already understand JS if you like the syntax [20:32] malkomalko: but, that's just my own opinion [20:32] tjholowaychuk: yeah [20:32] tjholowaychuk: i stay clear of cs projects [20:32] EyePulp: CS: FrontPage for the JS world. [20:32] tjholowaychuk: mainly because I wont be contributing back to them [20:32] EyePulp: =P [20:33] tjholowaychuk: unless im editing the compiled output [20:33] tjholowaychuk: which is weird [20:33] Gelegrodan: EyePulp: HAHA! [20:33] naneau: Gelegrodan: I might actually use #bada55 [20:33] trollzie: chrisdickinson: can't it be implemented as a tree or hashmap underneath? ie. if I do obj["member"], it can look "member" up in a tree [20:33] javaanse_jongens has joined the channel [20:33] EyePulp: kidding, of course... [20:33] Gelegrodan: naneau: another victim of BADASS-color [20:33] naneau: :P [20:33] naneau: it's just a *little* too bright [20:33] Gelegrodan: its agreat color, and easy to remember :) [20:33] naneau: http://cl.ly/1V3W0a1u3j0k1U0t210G [20:34] naneau: but it'd be great for highlighting some stuff [20:34] Gelegrodan: yes it a bit strong for the white text [20:34] naneau: ;) [20:34] RusAlex has left the channel [20:34] chrisdickinson: trollzie: you could create a data structure if you'd like (if you're going to be searching this structure for objects a lot), but the "for(var key in obj) ..." stuff is the base way to verify if a target object is within another object. [20:35] insin: ACTION wonders if the node logo is #bada55 [20:35] brianc: I was wondering if the node.js room would have a discussion on the rails coffee_script dependency [20:35] jesusabdullah: dependency injection? [20:35] jesusabdullah: I for one am a fan of the node.js logo [20:35] eee_c has joined the channel [20:35] jesusabdullah: Someone should gapify it for the lulz [20:35] naneau: jesusabdullah: http://naneau.net/gerenuk/ [20:35] insin: #c1ca55 [20:35] naneau: *another shameless plug* [20:36] tbranyen: jesusabdullah: yup me too, just got a shirt wit hit too [20:36] jesusabdullah: Go with the green, yo [20:36] jesusabdullah: I love the green XD [20:36] tbranyen: brianc: you mean that discussion thats been going on all day? [20:36] tbranyen: heh [20:36] brianc: tbranyen: ha, yeah I just got back on. had to do some work [20:36] brianc: well shucks I missed it [20:37] Schmallon has joined the channel [20:37] tbranyen: i don't use rails so luckily it doesn't impact me at all [20:37] Gelegrodan: insin: everything is BADASS. [20:37] cognominal: I am curious to know. What computer community are you from beside/before beeing noders? [20:37] adulteratedjedi has joined the channel [20:37] javaanse_jongens has joined the channel [20:37] tbranyen: cognominal: jqueery [20:37] brianc: tbranyen: same here [20:37] jacksonh has joined the channel [20:37] jesusabdullah: cognominal: Is this a general question, or aimed towards one person? [20:38] cognominal: a general one [20:38] brianc: tbranyen: It's addition to rails is a good example of why I don't use rails [20:38] jesusabdullah: <--numpy/scipy, MATLAB, engineering-centric computing [20:38] naneau: cognominal: "various communities" [20:38] brianc: cognominal: .NET [20:38] brianc: with some rails on the side [20:38] brianc: don't judge me [20:38] tbranyen: brianc: a good example of why i don't stick with a single large framework [20:38] tbranyen: they do stuff i don't like i'm stuck [20:38] tbranyen: although in this case its optional [20:39] brianc: tbranyen: yeah [20:39] cognominal: I thought you were mostly rubyists, so that hunch may be wrong [20:39] rsms_ has joined the channel [20:39] chrisdickinson: ACTION is from the django community [20:39] tbranyen: cognominal: i loath python/ruby syntax unfortunately otherwise i'd love them [20:39] SoreGums has joined the channel [20:39] bradleymeck: some are some arent, we are all encompassing [20:39] EyePulp: jesusabdullah: did you see the pycon keynote by hilary mason? she's a big scipy/numpy fan [20:40] jesusabdullah: EyePulp: I did not! I didn't really follow pycon that well, other than keeping an eye on dabeaz's tweets [20:40] Adman65 has joined the channel [20:40] jesusabdullah: I liked his superboard work, but I disagree with his "python is the be-all, end-all" attitude. But then that's expected. [20:40] jesusabdullah: Anyways: What was it about EyePulp ? [20:40] EyePulp: jesusabdullah: just saw it yesterday: http://www.hilarymason.com/blog/conference-pycon-2011-keynote/ [20:41] rsms_ has joined the channel [20:41] EyePulp: worth a watch [20:41] jesusabdullah: Also: I actually like numpy/scipy quite a bit. [20:41] brianc: I think node.exe for windows is going to be awesomeness to the max++10 once it's out [20:41] jesusabdullah: They are the reason I even use python tbh [20:41] jesusabdullah: even when I thought python was totally kickin' rad [20:41] stisti has joined the channel [20:41] EyePulp: jesusabdullah: she professes her love for anyone who commits to sci/num py [20:42] bradleymeck: programming on windows just feels wrong [20:42] jesusabdullah: Travis hit on something good with numpy, imo. [20:42] jesusabdullah: I follow the mailing lists [20:42] Gelegrodan: I have a site internal system built in php+mysql, but im going to introduce some websockets (node + socket.io) to spice things up, whats the best soultion for pushing out websocket messages? [20:42] jesusabdullah: and edited a piece of documentation once [20:42] jesusabdullah: because it was bad and I'd just used that particular piece of functionality [20:42] brianc: bradleymeck: haha, yeah, but so many folks use windows, the barrier to entry into node.js is so much lower if it's on windows [20:42] vnguyen has joined the channel [20:42] jesusabdullah: I wish the guys that worked on numpy/scipy rocked IRC though. :C [20:42] tbranyen: brianc: its pretty easy to get node running on windows atm tho [20:42] naneau: what decent developer doesn't? :x [20:43] tbranyen: even for windows noobies [20:43] EyePulp: jesusabdullah: I'm thoroughly ignorant of sci&num py but I like to listen to those that do understand them [20:43] bradleymeck: native c++ modules arent 100% though [20:43] jesusabdullah: EyePulp: Not a numerical methods guy? :P [20:43] bradleymeck: from what I can tell that might be due to how dll loading works [20:43] tbranyen: bradleymeck: yeah i need to write an article on how to get windows c++ modules working in windows [20:44] tbranyen: its actually pretty easy and just involves modifying the process runtime path [20:44] bradleymeck: i can get them... working... but not well [20:44] PhilK: isaacs: thanks a bunch for the quick fix on the npm issues [20:44] EyePulp: jesusabdullah: hah - no. unless it's counting the number of oreos left before I finish my milk. [20:44] jesusabdullah: EyePulp: scipy is mostly canned methods, from what I remember, which are nice and all but not mind-blowing. Numpy is the one to really play with, as it's the one that gives you the handy Array datatype [20:44] isaacs: PhilK: np. does it fix your stuff? i'm about ready to push a new rc version [20:44] jesusabdullah: Ah, I see. [20:44] tbranyen: bradleymeck: https://github.com/tbranyen/nodegit/blob/0.0.3/lib/index.js << is how i got cygwin support [20:44] tbranyen: haven't tried mingw yet [20:45] PhilK: seems good, I cleared out my cache and did a couple installs and no problems yet [20:45] msilverman2 has joined the channel [20:45] jesusabdullah: numpy really just gives you the tools to do the same kinda matrix manipulations you would do in MATLAB. Basically, dot() and multi-dimensional array manipulations (stacking, slicing, indexing, etc) [20:45] malkomalko has joined the channel [20:45] SoreGums has joined the channel [20:46] jesusabdullah: Also, if you can "vectorize" your code it will all take place in ctypes land so it's a lot faster than the equivalent pure python expressions [20:46] devinus: tbranyen: you use cygwin? [20:46] arpegius has joined the channel [20:46] pandeiro has joined the channel [20:46] EyePulp: jesusabdullah: nice - is it mostly used for data visualization or is that just one of it's benefits? [20:46] tbranyen: devinus: i have yea [20:46] tbranyen: before i went full linux [20:47] devinus: i'm in awe of how many people limp along with cygwin/mingw for years [20:47] EyePulp: tbranyen: I thought we agreed - you NEVER go full linux. [20:47] tbranyen: haha [20:47] devinus: why the hell are there still developers who earn their paycheck programming not on linux or mac? [20:47] tbranyen: no no you never go full root! [20:47] tbranyen: devinus: .net devs evidently [20:47] bradleymeck: devinus cause we get paid [20:47] brianc: devinus: cause lots of businesses run on windows [20:48] devinus: brianc: yeah, cool, but that's no reason you need to program in windows [20:48] SoreGums has joined the channel [20:48] EyePulp: devinus: It's pretty painful to do anything in the win world once you escape it, no argument. [20:48] stisti: and even more end-users also run on windows [20:48] bradleymeck: its kinda like, why do ppl design stuff to work on IE [20:49] brianc: bradleymeck++ [20:49] v8bot: brianc has given a beer to bradleymeck. bradleymeck now has 2 beers. [20:49] frodenius: IE-- [20:49] v8bot: frodenius has taken a beer from IE. IE now has -4 beers. [20:49] bradleymeck: lol -4 [20:49] devinus: devinus++ [20:49] v8bot: devinus: Don't cheat! You can't give a beer to yourself. [20:49] devinus: :( [20:49] brianc: lol [20:49] SoreGums has joined the channel [20:50] brianc: I'm not cheering for windows as a good development platform, but if you write windows apps for money, the best place to write windows apps is on windows [20:50] tbranyen: some people just want to try node and don't want to install a brand new os [20:50] devinus: brianc: yeah, that's all fine and dandy. i'm talking about the people clamoring for node to work on windows...like...wtf WHY? [20:50] tbranyen: i want my stuff to work for those people [20:50] devinus: no it will not work on windows, go away [20:50] eugene2 has joined the channel [20:51] stisti: I wrote my first javascript in node.js, a little utility that calculates SHA256 of files given on command line. Now I discovered that OS X comes with a Perl script /usr/bin/shasum and it is faster than the node.js script... how could I find out why? [20:51] SoreGums has joined the channel [20:51] tbranyen: stisti: profiling maybe? [20:51] tbranyen: how did you write your script? [20:51] tbranyen: becaues comparing JS to native c is a bit :-/ [20:52] devinus: lol it's funny how Perl is still crazy fast for certain things [20:52] stisti: I thought node.js would use openssl C routines for SHA256 [20:52] Draggor: devinus: funny how? [20:52] brianc: devinus: I think it will be great for node as a whole. It wont make a difference for me personally as to how I develop, but it will allow node to be accessible by many people who otherwise would not [20:52] stisti: tbranyen: are there some profiling tools built in node.js? [20:52] brianc: devinus: also it might make node finding its way into "enterprise" companies a bit easier [20:53] ujeezy has joined the channel [20:53] trollzie: how do I do a simple "include" of another js file? [20:53] brianc: stisti: node-inspector [20:53] brianc: trollzie: require("another-file-name-without-the-js-extension") [20:54] path[l] has joined the channel [20:54] brianc: trollzie: http://jherdman.github.com/2010-04-05/understanding-nodejs-require.html [20:54] trollzie: brianc: ty [20:54] devinus: Draggor: because people make fun of Perl even though it's been quietly running things for a decade and still nothing beats it for ripping through files quickly [20:55] brianc: trollzie: http://nodejs.org/docs/v0.4.5/api/modules.html [20:55] Draggor: devinus: sorry, Joe Pesci voice doesn't transmit well via text [20:55] konobi: perl++ # just lets me get shit done [20:55] stisti: brianc: thanks [20:56] devinus: people make fun of me for using PHP too. *sigh* when will people learn [20:58] zemanel has joined the channel [20:59] jesusabdullah: Funny enough, I actually really want to learn perl [20:59] jesusabdullah: well, on top of like 5 other languages [20:59] jesusabdullah: My list right now is R, perl, {scheme and/or clojure} [20:59] stride: perl on top of 5 other languages is a mess [20:59] stride: :) [20:59] jesusabdullah: aha, I bet [21:00] sspencercon: Using http.request, if I send 2 requests to same host/port, request.socket is undefined for one of them. Is this by design or bug? -- GIST: https://gist.github.com/918398 [21:00] jesusabdullah: Also not sure if I wanna learn perl5 or perl6 [21:00] jesusabdullah: At this point, probably perl5 [21:00] jesusabdullah: hopefully perl5->perl6 isn't much harder than, say, python2 -> python3 [21:00] devinus: jesusabdullah: much harder [21:01] dnolen has joined the channel [21:01] n2liquid: tjholowaychuk: when do you have spare time to read a small paper regarding an authentication framework I'm developing? [21:01] jesusabdullah: devinus: That's what I was afraid of :( [21:01] brianc: n2liquid: i'd like to read it as well [21:01] n2liquid: no problem if you can't at all [21:01] brianc: n2liquid: or is it secret? [21:01] tjholowaychuk: n2liquid: wont have spare time for quite a while sorry man [21:01] devinus: there still isnt a good perl6 impl [21:01] devinus: yet [21:01] n2liquid: brianc: not at all, I can post here [21:01] n2liquid: tjholowaychuk: ok, I thought so; sorry to bother [21:02] tjholowaychuk: n2liquid: no worries :D [21:02] jesusabdullah: devinus: Also my feeling. I can either choose to be really far ahead of the curve, or learn a language that's destined to eventually be replaced. [21:02] jesusabdullah: Part of me wants to wait and see [21:02] devinus: jesusabdullah: perl5 is *not* going away anytime soon [21:02] jesusabdullah: I think what I'll do is learn enough perl5 to be dangerous [21:02] devinus: and perl6 isn't coming anytime soon [21:02] hackband has joined the channel [21:02] devinus: so i'd just go with perl5 [21:02] n2liquid: brianc: take a look at https://docs.google.com/document/d/1vzWLn0fmlbLtbFt0LVdSf6pvovGJYiirAw54mj8zAjc/edit?hl=en&authkey=CKrDoqIJ [21:02] jesusabdullah: I don't think it's such a big language that it'd be a huge investment anyway [21:03] jesusabdullah: Yeah, I agree. [21:03] darshanshankar has joined the channel [21:03] darshanshankar has left the channel [21:03] jesusabdullah: Part of me thinks that perl6 will never really catch on. [21:03] konobi: devinus: dhoss? [21:03] n2liquid: I just only started writing it, I don't even know if it isn't a silly idea [21:03] mwilliams_ has joined the channel [21:03] jesusabdullah: That perl5 will be with us forever [21:03] n2liquid: that's why I'm asking opinions :) [21:03] devinus: perl6 has a lot of really interesting features i'd like to see make it into other languages [21:03] creationix has joined the channel [21:03] brianc: i requested access [21:03] hackband: oh, is this #perlchat ? :P [21:03] devinus: konobi: negative [21:04] n2liquid: brianc: trouble seeing the doc? [21:04] brianc: n2liquid: yeah [21:04] n2liquid: brianc: which browser? [21:04] brianc: n2liquid: it's saying I don't have permission to view it. Chrome [21:04] mwilliams_ has left the channel [21:04] n2liquid: it should be open to anyone [21:04] konobi: devinus: oh... how odd [21:04] n2liquid: brianc: please try again, it should be working [21:04] bradleymeck: im in [21:05] nephics has left the channel [21:05] brianc: n2liquid: You are signed in as brian.m.carlson@gmail.com, but you don't have permission to access this item. You can request access from the owner or sign-in as a different user. [21:05] devinus: konobi: why do i sound like him? :p [21:05] zzak has joined the channel [21:05] zzak has joined the channel [21:05] n2liquid: brianc: I'll give you direct access then; that's odd [21:05] konobi: devinus: no... same IRC handle [21:05] konobi: or at least at some point it was [21:05] devinus: huh....weird [21:06] n2liquid: brianc: cool, try againb [21:06] devinus: this has been my nickname since i was 17 :P [21:06] n2liquid: again* [21:06] brianc: n2liquid: got it [21:07] rfay has joined the channel [21:09] n2liquid: brianc: first impressions? [21:09] mbrevoort has joined the channel [21:09] brianc: seems like it'd be handy if you wanted to log into multiple 3rd party systems [21:09] brianc: would maybe not use the "orize" method name [21:09] brianc: when you "require" a module you assign it to any variable name you want [21:10] n2liquid: yeah, that was sort of a joke [21:10] n2liquid: oh yeah [21:10] n2liquid: indeed, hah [21:10] brianc: are you going to tie into the existing twitter/facebook etc libraries? [21:11] n2liquid: brianc: I think I'd wrap them down into the framework, yeah [21:12] dnyy has joined the channel [21:12] raphdg has joined the channel [21:13] blueadept: dumb question here, bear with me, http://pastie.org/private/7fyw1brnqnnsygjbafypw how do i pass foundUserObj to app.post? [21:13] n2liquid: brianc: the basic idea is that authentication is something common enough to deserve a standard way to work [21:14] brianc: n2liquid: https://github.com/ciaranj/connect-auth [21:14] n2liquid: brianc: I know connect-auth [21:14] n2liquid: tried it before deciding to write AuthMeIn (: [21:14] Bj_o_rn: brianc: I wrote a short post about postgres listen/notify with nodejs at http://bjorngylling.com/2011-04-13/postgres-listen-notify-with-node-js.html it seems to work really great, thanks for the pointers yesterday! [21:14] brianc: n2liquid: what was lacking? [21:14] brianc: Bj_o_rn: hotness [21:15] n2liquid: brianc: first off, I didn't manage to get it to work [21:15] n2liquid: plus I think it automatically redirects the user to the foreign site using connect [21:15] n2liquid: which is something I might not want [21:15] Croms has joined the channel [21:16] karboh has joined the channel [21:16] arpegius has joined the channel [21:16] n2liquid: I might try hacking connect-auth the way I wanted it to be, but I think I'd rather write something, copy a bit of connect-auth and see if they should be merged or not [21:17] void_ has joined the channel [21:17] max_dev has joined the channel [21:17] oskude_ has joined the channel [21:18] Remoun has joined the channel [21:18] brianc: n2liquid: I would suggest hacking connect-auth or discussing your idea w/ the author. You might find you both want the same thing and an excellent union could be formed - like voltron. [21:18] mbrevoort has joined the channel [21:19] n2liquid: brianc: oh, good idea; I'll try reaching him [21:19] n2liquid: thanks [21:19] brianc: Bj_o_rn: which version of postgres are you using? [21:19] Bj_o_rn: 9.0 I believe [21:20] Bj_o_rn: brianc: 9.0.3 to be specific [21:20] Bj_o_rn: maybe I should've specified that! [21:20] brianc: Bj_o_rn: yah, 9.x has significant improvements in the listen/notify. In 8.x you cannot include a message with your notification, only the name of the notification [21:20] CiRlE has joined the channel [21:20] brianc: pg_notify('watchers', 'anything else you can think of') [21:20] brianc: 8.x will drop everything and only send pg_notify('watchers','') [21:20] techwraith: Does anyone have a function that can give me the nth quantile of an array of Numbers? [21:21] mtsl has joined the channel [21:21] mtsl: hi, I can't install the multipart module via npm. what's wrong? [21:21] omni5cience has joined the channel [21:21] isaacs: mtsl: it's gone. use "formidable" [21:21] isaacs: mtsl: or `npm search multipart` for other options [21:21] mtsl: thank you, i [21:22] isaacs: np [21:22] sspencercon: Can http.request handle more than 1 request to same host/port? I get request.socket == undefined when sending 2 requests at once. [21:22] sspencercon: example code: https://gist.github.com/918398 [21:22] beejeebus has joined the channel [21:23] brianc: Bj_o_rn: i dig the article though - could use listen/notify for inter-process communication very easily w/o having to pull in another dependency (such as redis, ampq, etc) though I'm really not sure how PG scales with regards to listen/notify. Again 9.x made some big improvements in the performance of listen/notify [21:23] mtsl: besides debuggable, are there are other companies working on node worth mentioning in germany? [21:23] brianc: mtsl: transloadit! [21:23] mtsl: indeed [21:24] isaacs: brianc: heh. same dudes, right? [21:24] mtsl: that's true [21:24] brianc: isaacs: oh i did not know that. brb gonna go find some mud to eat [21:24] isaacs: hehe [21:24] isaacs: yeah, they're both felixge [21:24] bradleymeck: in germany? /ponder ponder [21:25] isaacs: i think debuggable is also a symfony shop, and transload.it is their node startup [21:26] Bj_o_rn: brianc: Yeah, or sending data to a client as it gets added to the database without having to poll the database a lot. Big step towards making real-time applications on the web I believe [21:27] timmywil has joined the channel [21:27] perezd has joined the channel [21:28] bkozal has joined the channel [21:28] brianc: Bj_o_rn: yah! and being able to keep any in memory data caches flushed when tables update [21:30] jetienne has joined the channel [21:31] necromancer has joined the channel [21:31] javaanse_jongens has joined the channel [21:33] ziro` has joined the channel [21:34] perezd has joined the channel [21:34] sdecastelberg has joined the channel [21:34] mcantelon has joined the channel [21:39] dnunes has joined the channel [21:40] dnunes: Is this the right place to talk about Socket.io? [21:40] a|i has left the channel [21:41] Stan____ has left the channel [21:42] hij1nx has joined the channel [21:42] baudehlo: I see 3 node-memcached modules on github - which do people use/recommend? [21:42] Remoun has joined the channel [21:42] n2liquid: dnunes: nothing prohibits you to, but they have a mailing list [21:43] skm has joined the channel [21:43] n2liquid: this channel is pretty much about anything in NPM, from what I could tell [21:43] dnunes: n2liquid: It's a very straightforward question and I am having some trouble finding this info on the interwebs (tried the mailing). [21:43] river_t has joined the channel [21:43] n2liquid: dnunes: well, I don't know Socket.IO, sorry [21:43] Sjbreen has joined the channel [21:43] dnunes: Ok. [21:43] n2liquid: but just shoot your question here and see what you get from others [21:44] n2liquid: it's a bit quiet here right now [21:44] n2liquid: dunno what happened [21:44] n2liquid: dnunes: you might as well join their mailing list and ask there, though [21:45] dnunes: It's very easy to create a server (http, tcp or whatever). Using a TCP connection I can get the info about which clients are connected (because their sockets are opened). Using a browser library there is no reliable way to keep a connection opened. Do socket.io abstract this problem? [21:45] jashkenas_work has left the channel [21:45] baudehlo: oh wow, elbart's memcached module doesn't even do server hashing. FAIL. [21:45] dnunes: I mean... Will I have a "ondisconnect" event (the name may vary, of course) to detect when the client actually disconnected? [21:46] perezd has joined the channel [21:47] mike5w3c has joined the channel [21:49] jesusabdullah: dnunes: I'd imagine the event would be called "disconnect" instead of "ondisconnect" right? .on("disconnect", handler) [21:49] indexzero has joined the channel [21:50] dnunes: jesusabdullah: My doubt is: when a long polling finishes, or a XHRStream fails, will the socket.io report a disconnect? Or will it have some timeout so the client can try to reconnect? [21:51] dnunes: jesusabdullah: I'm just trying to understand in which "layer" (browser, node.js, socket.io) will this timeout happen. [21:51] jesusabdullah: I see. I don't actually know---I thought you were discussing something you would implement yourself, not asking how someone else implemented something [21:52] dnunes: jesusabdullah: I'm afraid of getting lots of "disconnect"/"connect" when a long polling times out and the client sends a new one or something. [21:53] jesusabdullah: sure, sure. [21:54] AAA_awright_ has joined the channel [21:54] steph021_w has joined the channel [21:54] bingomanatee has joined the channel [21:54] Bonuspunkt: ryah https://github.com/joyent/node/issues/824 still present - git checkout v0.4 gives me the latest version of the v0.4 branch [21:54] aconran_ has joined the channel [21:55] piscisaureus_ has joined the channel [21:55] Guest50153______ has joined the channel [21:55] ExsysTech has joined the channel [21:57] softdrink1 has joined the channel [21:57] arpegius has joined the channel [21:57] bwinton` has joined the channel [21:58] peol_ has joined the channel [21:58] frodenius has joined the channel [21:58] _janne has joined the channel [21:59] timmywil has joined the channel [21:59] tlrobinson has joined the channel [21:59] pquerna: so, i have an evil code coverage thing working. it uses --debug-brk, does a single step for every line. functional, but test cases go from 400ms to 30 seconds to run. [21:59] [[zz]] has joined the channel [21:59] evilhackerdude has joined the channel [22:00] tlrobinson: anyone have a simple http proxy that works with 0.4.5? pkrummins' seems to be broken [22:00] tjholowaychuk: pquerna: woah [22:00] tjholowaychuk: not sure how much jscov would change that [22:00] seigel has left the channel [22:00] tjholowaychuk: it does bloat the source by at least 2-3x [22:00] kkaefer: is there a way to find out the port number of a http server that is already listening? [22:00] pquerna: tjholowaychuk: yeah, I just hate the idea of modifying my code to do that, and needing a c++ program to do it [22:01] pquerna: tjholowaychuk: my fallback is to do what jscoverage does but using Uglify [22:01] timmywil has joined the channel [22:02] ryanfitz has joined the channel [22:02] tjholowaychuk: pquerna: totally, i hate it too [22:03] tjholowaychuk: warning you thought the uglify ast is pretty hurtin [22:03] tjholowaychuk: i guess it would be fine to walk [22:03] tjholowaychuk: but the nodes are just arrays [22:03] pquerna: right, we just would need to walk it, add some code to the end of each line [22:03] pquerna: and spit it back out [22:03] sivy has joined the channel [22:06] miccolis has joined the channel [22:06] ziro` has joined the channel [22:08] ardcore has left the channel [22:08] bingomanatee: Why is node called node? [22:09] JulioBarros has joined the channel [22:09] astropirate: node as in a network node :) [22:10] secoif_ has joined the channel [22:10] bingomanatee: ah. thx. [22:10] jetienne has joined the channel [22:11] jeff_horton has joined the channel [22:12] k0Nn3c739 has joined the channel [22:12] secoif_: Anyone know of any plans to get SPDY support in node? [22:13] pquerna: there are projects doing it [22:14] kmwallio has joined the channel [22:14] pquerna: secoif_: https://github.com/kuno/node-spdy [22:14] pquerna: hmm, maybe the wrong link [22:15] pquerna: secoif_: https://github.com/donnerjack13589/node-spdy [22:16] Croms_ has joined the channel [22:16] secoif_: pquerna: Ooo. Thanks [22:16] mbrevoort has joined the channel [22:17] flippyhead has joined the channel [22:19] kris_ has joined the channel [22:21] prettyrobots has joined the channel [22:21] mbrevoort has joined the channel [22:22] no-gooder has joined the channel [22:23] mtsl has joined the channel [22:23] harth has joined the channel [22:25] indiefan2a1 has joined the channel [22:25] zkirill has joined the channel [22:25] gattuso has joined the channel [22:27] river_t: can you define custom actions in express-resource? [22:28] cloudhea1 has joined the channel [22:28] tjholowaychuk: river_t: yeah, the api is not quite what I want yet, the next release will be better [22:28] tjholowaychuk: just needs some more time [22:28] cloudhea1: SubStack: hey, have you considered supporting arguments like -I/foo/bar in optimist? [22:29] river_t: is the 'Ferret' test an example of that? [22:29] cloudhead1: SubStack: or do you have any pointers on how to handle that? [22:29] tjholowaychuk: river_t: hmmm I think there are a few ferret tests aha one sec ill look [22:30] zemanel has joined the channel [22:31] prettyrobots: piscisaureus_: I'm trying to build liboio on Windows XP in VC++ Express 2010. [22:31] prettyrobots: I'm getting: LINK : fatal error LNK1104: cannot open file 'C:\codearea\git\liboio\Win32\Debug\liboio.lib' [22:31] piscisaureus_: prettyrobots: hmm [22:32] prettyrobots: Scrap it. [22:32] prettyrobots: I got it. [22:32] prettyrobots: Sorry. [22:32] indiefan2a1 has joined the channel [22:32] piscisaureus_: prettyrobots: ah. so it works in express? -> nice to know [22:32] prettyrobots: You have to "build" each one explicitly. It doesn't really "build all". [22:32] brianc: tjholowaychuk: why some things in express and some things in connect? Like...why express-resource instead of connect-resource? [22:32] piscisaureus_: prettyrobots: normally it would, but I think I have some of the ltcg settings wrong [22:33] prettyrobots: I'm sure. [22:33] tjholowaychuk: brianc because it builds off features of express [22:33] brianc: tjholowaychuk: trickiness [22:33] tjholowaychuk: not always, but using connect's router on its own [22:33] tjholowaychuk: was not what I ever intended [22:33] tjholowaychuk: it's there to support frameworks [22:33] prettyrobots: I've never been able to Visual Studio from screwing up its own settings. [22:33] prettyrobots: They just change for some reason. [22:34] piscisaureus_: prettyrobots: luckily these files are xml. I only commit the changed lines that I know are correct :-) [22:34] prettyrobots: That's new. [22:34] prettyrobots: Or new to me. I haven't looked at VC++ in a long, long time. [22:35] piscisaureus_: prettyrobots: I actually never did any C coding with it, only C# [22:35] prettyrobots: piscisaureus_: Ryan said I could help you with tests. [22:35] piscisaureus_: c#. ugh [22:35] piscisaureus_: yes [22:35] piscisaureus_: write tests :-) [22:35] prettyrobots: Okay. Do you have a coverage tool planned? [22:35] shaunau has joined the channel [22:36] llkazu: anyone here using socket.io over ssl? [22:36] prettyrobots: Because, my initiative would be to try and get an open source coverage tool to work on Windows, then write tests. [22:36] piscisaureus_: prettyrobots: well I wrote a little test runner already. Look at the liboio-test project. If you run it it'll run the tests. [22:36] prettyrobots: The tests would still run in Visual Studio, I'd use the coverage tool to find out. [22:37] prettyrobots: piscisaureus_: Yes, I saw it. It is very simple and therefore very pomising. [22:37] piscisaureus_: prettyrobots: tests are listed in test-list.h. On how to implement a test, look at test-fail-always [22:37] piscisaureus_: prettyrobots: first thing we need is our own assert [22:37] prettyrobots: It looks like its very simple so it won't confuse coverage tools. [22:37] prettyrobots: Well, first thing: [22:37] piscisaureus_: prettyrobots: because assert() from assert.h gets optimized out in a release build [22:38] prettyrobots: Do they run for you from Visual Studio. [22:38] prettyrobots: ? [22:38] piscisaureus_: prettyrobots: "they"? [22:38] prettyrobots: Tests. I'm trying "Debug > Instance" and it pops up but hangs. [22:38] prettyrobots: Without a breakpoint. [22:39] prettyrobots: Is there a different way to run them? [22:39] prettyrobots: Do you run them from the command line? [22:39] varioust has joined the channel [22:39] prettyrobots: (That is they are hanging and not because they've stopped in the debugger.) [22:39] piscisaureus_: prettyrobots: I run them from msvc. [22:40] ivan has joined the channel [22:40] piscisaureus_: prettyrobots: you should see something in the console. If not, wait for 20 seconds and check which test times out. [22:40] prettyrobots: Okay. [22:40] jimt_ has joined the channel [22:40] prettyrobots: I do see the progress bar zeroed out. [22:41] prettyrobots: But, I just want to confirm that you are able to run the tests in the debugger. [22:42] prettyrobots: If you are then I'll step through the code and see where it hangs for me. (It may be an Express issue or some stupid Anti-Virus thing is blocking ports, etc.) I just need to know that it is supposed to work fine from the debugger. [22:44] losing has joined the channel [22:44] piscisaureus_: prettyrobots: yes I can run the tests [22:45] mbrevoort has joined the channel [22:45] prettyrobots: piscisaureus_: If I want to ask questions in email, where is liboio discussion taking place. [22:45] prettyrobots: Or is it best to come here. [22:45] piscisaureus_: prettyrobots: on irc :-) [22:46] prettyrobots: Okay. I don't want to pester, because I'm going to have a lot of questions. [22:46] piscisaureus_: prettyrobots: you can email me at bertbelder gmail com if you wish. But I prefer IRC [22:46] jashkenas has joined the channel [22:46] prettyrobots: Well, if I become bothersome, don't hesitate to tell me to dial it back. [22:47] saschagehlich has joined the channel [22:47] piscisaureus_: yes I will, I know how it feels. [22:47] Nexxy has joined the channel [22:47] Nexxy has joined the channel [22:47] twirp has joined the channel [22:48] prettyrobots: piscisaureus_: The test runner launches child test runners? [22:48] piscisaureus_: yes [22:48] prettyrobots: One for each test? [22:48] prettyrobots: Sweet. [22:48] piscisaureus_: prettyrobots: some tests have multiple processes. [22:48] prettyrobots: Okay. [22:48] piscisaureus_: prettyrobots: look at test-list.h. The tests ping_pong also spawns echo_server [22:49] piscisaureus_: so then there are 2 childs running [22:49] prettyrobots: Great. [22:49] piscisaureus_: prettyrobots: if you want to run a specific test process you can set that as the first command line argument. E.g. if argv[1] == "fail_always" it'll run that test [22:49] piscisaureus_: so you can debug ig [22:49] piscisaureus_: *it [22:50] piscisaureus_: prettyrobots: but ping_pong for example will fail if echo_server isn't running [22:50] piscisaureus_: so it can be a little difficult to debug that [22:51] javaanse_jongens has joined the channel [22:51] jimt has joined the channel [22:51] piscisaureus_: prettyrobots_: which config are you running? x32/debug? [22:53] piscisaureus_: prettyrobots: you don't get any output on the console at all? [22:53] prettyrobots: Yes. [22:53] prettyrobots: I'm seeing it now. [22:54] prettyrobots: I'll tell you about it in a bit. [22:54] prettyrobots: Step, step, step. [22:54] flippyhead has joined the channel [22:55] piscisaureus_: prettyrobots is enjoying the forbidden fruits of MS Visual Studio [22:55] bradleymeck: /shock /awe [22:56] bradleymeck: debugger; [22:57] no-gooder: i have a weird mysql character encoding problem. when i insert some non-english characters they seem weird* on mysql query browser. [22:57] no-gooder: but when i print them. it's ok. [22:58] no-gooder: i use mysql-libmysqlclient [22:58] no-gooder: module [22:58] SubStack: cloudhead1: it could be done [22:59] dnolen has joined the channel [22:59] prettyrobots: piscisaureus_: The ping_pong test is timing out, but the tests are running. [22:59] copongcopong has joined the channel [22:59] piscisaureus_: prettyrobots: ah. hmm. [22:59] cjfont has joined the channel [22:59] prettyrobots: Whatever. [23:00] prettyrobots: I just need to get an environment running. This is something I can fix. [23:02] Gelegrodan: damn..isnt there any listner for mysql triggers? like LISTEN for posgres :( [23:03] piscisaureus_: prettyrobots: feel free to hack/improve the test system (but don't make it too complicated). It's design hasn't gotten much stress from serious tests yet. [23:04] prettyrobots: piscisaureus_: I don't like complicated code. [23:04] piscisaureus_: that's a good start ;-) [23:05] sonolin has joined the channel [23:06] sonolin: Guys I need some help figuring out how to do html 5 webcam streaming... I got it kind of working, but there's like a 10 sec delay, I've been pulling my hair out all day [23:06] sonolin: I found this library: http://www.xarg.org/project/jquery-webcam-plugin/ [23:06] sonolin: And what I'm currently doing is just sending the image data in the onSave function to my node.js app via socket.io, then writing the image using an event handler on the other side [23:07] sonolin: but its super slow (and I'm sure I'm doing this wrong) [23:08] secoif_ has joined the channel [23:09] sonolin: nobody huh [23:10] ujeezy_ has joined the channel [23:10] techwraith: It's a pretty obscure lib, not sure if I'd be much help :( [23:12] jimt has joined the channel [23:12] javaanse_jongens has joined the channel [23:12] sonolin: well its not so much the library I need help with [23:12] creationix has left the channel [23:12] sonolin: all it does is set a callback of like 10 ms I believe to the onsave function [23:12] sonolin: which right now I'm using to send all the image data raw to the node.js server, and back to the client [23:13] sonolin: I need a better way to do this [23:13] dnyy has joined the channel [23:13] ziro`_ has joined the channel [23:13] sonolin: maybe even create another socket connection somehow directly to the client, and send the image data through that? Idk [23:14] dnyy1 has joined the channel [23:14] mscdex: is there a way to define a square bracket operator getter/setter in v8's js? [23:14] mscdex: in js land? [23:14] mscdex: :S [23:14] kkaefer: mscdex: err... like foo[] = 'bar'? [23:14] kkaefer: or do you mean a catchall? [23:14] dnyy2 has joined the channel [23:15] jacobolus has joined the channel [23:15] mscdex: yeah, like: var foo = new myCustomObject(); foo[5] = 10; console.log(foo[5]); [23:16] kkaefer: no, not in js land [23:16] mscdex: darn [23:16] kkaefer: well, you could define getters and setters for 0 through MAX_INT [23:16] kkaefer: but that's probably not a good idea [23:17] mscdex: heh [23:17] mscdex: i'll stick with get()/set() then [23:17] piscisaureus_: mscdex: you can use node-proxy [23:17] mscdex: doesn't that require compilation though? [23:17] piscisaureus_: yes [23:17] piscisaureus_: it does [23:17] mscdex: i was looking for a pure js solution [23:18] piscisaureus_: then you're out of luck [23:18] mscdex: i know you can do it in c++ [23:18] Booths has joined the channel [23:18] mscdex: i thought so :\ [23:18] dnyy3 has joined the channel [23:19] piscisaureus_: mscdex: http://code.google.com/p/v8/issues/detail?id=633&q=harmony%20proxy&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars [23:19] piscisaureus_: not anytime soo I guess [23:20] tjholowaychuk: ACTION is happy js does not have that stuff [23:20] ohtogo has joined the channel [23:21] boaz has joined the channel [23:21] piscisaureus_: * making a v8 issue for fibers support, because he likes to annoy tjholowaychuk [23:21] piscisaureus_: :p [23:21] tjholowaychuk: :D [23:23] insin: ACTION hides V8 issue 264 from tjholowaychuk [23:23] insin: oh, that one was merged [23:24] zkirill has joined the channel [23:25] prettyrobots: piscisaureus_: Cannot attach to a running process inVisual Studio 2010. [23:25] prettyrobots: So, that's probably part of the problem. [23:25] tjholowaychuk: insin: I swear I'm the only one that wants js to stay simple without all these magic ruby things [23:25] prettyrobots: VS Express, that is. [23:25] tylerstalder has joined the channel [23:25] piscisaureus_: prettyrobots: hmm. I can, having VS ultimate. But I guess it's *not* part of the problem [23:25] tjholowaychuk: the next time I see someone try to generate sql from operators I'll cry [23:26] piscisaureus_: prettyrobots: you should manually start `liboio-test.exe echo_server` from a console [23:27] piscisaureus_: prettyrobots: then you need to set the command line arguments to `ping_ping` in msvs, then debug that [23:27] prettyrobots: The echo_server works, byt he way. [23:28] piscisaureus_: prettyrobots: oh, hehe. Check the port that the ping_pong test uses. [23:28] piscisaureus_: I think its wrong [23:28] charlenopires has joined the channel [23:28] esundahl has left the channel [23:29] Tim_Smart has joined the channel [23:29] prettyrobots: Same port as echo_server. [23:29] yozgrahame has joined the channel [23:30] jonpacker has joined the channel [23:30] prettyrobots: And it binds to a specific IP. [23:31] prettyrobots: Okay. Things to fix. Great. [23:31] prettyrobots: Bummer that I can't bind to existing processes. [23:31] piscisaureus_: prettyrobots: ah. 145.94.50.9. Thats my IP ... Oops. [23:32] piscisaureus_: ACTION suddenly struck by a DDOS attack [23:32] mtsl: in my app, I'm using connect's cookieParser which prevents me from sending a 302 redirect to the client when I use app.get. I get the error message "Can't set headers after they are sent." [23:32] tjholowaychuk: lolol [23:33] tjholowaychuk: mtsl: one sec [23:33] tjholowaychuk: mtsl: https://github.com/visionmedia/node/commit/459287a8dcbc74a8cf7977bdff314e7d9844c6df#comments [23:33] tjholowaychuk: basically that is not the real issue [23:33] tjholowaychuk: but like I'm trying to convince Tim, it masks the real issue [23:34] eee_c has joined the channel [23:34] ryah: perezd: hey can you try another patch [23:34] tfe_ has joined the channel [23:34] tfe_ has joined the channel [23:34] mtsl: well, how may I remove the headers? [23:34] tjholowaychuk: mtsl: I can't confirm without seeing your stack trace but it's most likely that somewhere you are calling next() two or more times, so attempting to respond several times [23:34] azeroth__ has joined the channel [23:35] mtsl: I'm not using next() at all [23:35] perezd: ryah: sure, send it along [23:35] kawaz_home has joined the channel [23:35] tjholowaychuk: mtsl: how does the cooke parser get in your way? it doesn't set any headers [23:35] ryah: perezd: https://gist.github.com/918661 [23:36] ryah: perezd: back out the of the changes made by indutny [23:36] ryah: before applying this [23:36] edude03 has joined the channel [23:36] tjholowaychuk: mtsl: maybe a gist of your code would help [23:36] kris_ has joined the channel [23:36] mtsl: one min [23:37] piscisaureus_: prettyrobots: it was my fault, sorry, just fixed it. [23:37] perezd: ryah: okay, give me a few min, trying to do a deploy to production right now [23:37] ryah: perezd: k [23:38] no-gooder has left the channel [23:40] llkazu: anyone here using socket.io w/load-balancing? [23:40] llkazu: or with cluster? [23:41] autotron has joined the channel [23:42] tylerstalder has joined the channel [23:44] davidascher has joined the channel [23:45] mtsl: well, when I compiled my gist, I found out that this code works somehow, so I'm going to search for code which sends a header in my app [23:45] mtsl: my trace in my app is: http://pastebin.com/4ChEcPeD [23:45] Bonuspunkt has joined the channel [23:45] tjholowaychuk: mtsl: 99% of the time it's someone trying to respond twice [23:45] tjholowaychuk: usually due to something invoking a callback more than once [23:45] mbrevoort has joined the channel [23:46] dnyy4 has joined the channel [23:46] dnyy5 has joined the channel [23:46] tjholowaychuk: mtsl: looks ok, what about the code in router.js:27:10 [23:48] mtsl: this is res.redirect [23:48] tjholowaychuk: I know, but i cant tell if you are doing something wrong without seeing the code [23:49] piscisaureus_: WaitForMultipleObjectSex [23:49] tjholowaychuk: usually you see it in the trace [23:49] aguynamedben has joined the channel [23:49] ryah: ACTION waits [23:49] ryah: multiple object sex is totally worth waiting for [23:49] esundahl has joined the channel [23:50] beejeebus has joined the channel [23:50] piscisaureus_: lol. [23:50] LukeGalea_ has joined the channel [23:50] esundahl has left the channel [23:50] piscisaureus_: I feel they were trying to bridge the gap with unix programmers [23:50] xandrews has joined the channel [23:52] gaYak has joined the channel [23:54] kmwallio has joined the channel [23:56] wadey: ryah: what are your thoughts on this patch (makes it possible to have a repl with a blank prompt): https://github.com/wadey/node/commit/d2acb04ce48498c3697e1a239edbc341ace641ea [23:56] wadey: ryah: right now if you do repl.start('', stream), you still get '> ' as the prompt [23:56] neeks has joined the channel [23:59] wadey: a blank prompt is nice for supporting a use case like this: echo 'process.memoryUsage()' | nc localhost 1234