[00:00] dnolen has joined the channel [00:00] ixti: as far as I can understand, run... creates new process which runs script, so inside that scope, `Object`'s prototype is not modified, while we can pass some sandbox... [00:00] bingomanatee: I wouldn't expect your modifications of the global space to spill over into the virgin virtual machine. [00:00] brownies: so i'm kind of a noob, but i've managed to install node.js, mongodb, npm, etc [00:00] rudolfrck has joined the channel [00:00] ixti: so in fact this just confuses [00:00] brownies: now i have to pick a framework? so i'm looking at express and geddy? what else should i look at? [00:00] brownies: and how do i go about picking a framework? [00:00] timmywil has joined the channel [00:01] bingomanatee: the thing is vm, short for virtual machine, as far as I can tell, runs another instance of node which has not been infected by your local changes. That is exactly what I WOULD expect. [00:02] Nexxy: brownies, express [00:02] brownies: Nexxy: ok. i was leaning towards that too. but why? [00:02] mcantelon: brownies: Well-supported, lots of cool add ons. [00:02] Bwen: bingomanatee: I dont think vm.runInNewContext is node.. its just v8 javascript I think [00:02] Nexxy: I can't really give you an objective answer, but express seems to be the popular choice... so you're most likely going to be more apt to get help [00:02] Nexxy: and it's sexy as hell [00:02] bingomanatee: I would not look past express at least until you have tried it - for the brute force reason that the herd loves it and you can always get help from TJ [00:02] SubStack: when I think "framework" I think of a bunch of crappy generated code or "scaffolding" like rails does[3~ [00:03] brownies: got it [00:03] SubStack: express is far more a library than a framework [00:03] Nexxy: qft [00:03] brownies: so i can just do "npm install express" right? sorry if these are noob questions... but the express website doesn't have an "install" section =/ [00:03] SubStack: which is a good thing™, I contend [00:03] Nexxy: brownies, correct [00:03] mcantelon: brownies: Yup, that should work. :) [00:03] brownies: ACTION discovers the "Guide" button on the express site [00:03] Nexxy: SubStack, oki martha [00:03] bingomanatee: Someone has a bare-bones starter framework bootstrapper for express with MVC [00:03] bingomanatee: as do I, for that matter [00:03] Nexxy: also brownies don't feel alone if the guide leaves you with a lot of questions [00:04] Nexxy: documentation is not the author's strong point ;P [00:04] brownies: and, since i have you guys, which mongodb driver should i install? i've got mongodb running [00:04] SubStack: the nice thing about express is there's very little to learn [00:04] Nexxy: I like mongoose, but mongodb native seems to be popular as well [00:04] bingomanatee: https://github.com/cliftonc/express-mvc-bootstrap looks a little more evolved than my stack [00:04] mcantelon: brownies: If you're checking out express a great reference app is https://github.com/visionmedia/finance [00:04] ixti: bingomanatee: yes. I see this same way [00:04] ixti: but still, that's not very clean :)) probably there should be _bold_ warning about such thing in documentation. [00:04] brownies: perfect, thanks, mcantelon... i can usually figure things out if i have a good sample [00:05] ixti: bingomanatee: yes. I completely understand your point. [00:05] bingomanatee: Keep in mind that Mongoose will insist on a consistent schema which may be good - depending on what you want to do - but it doesn't give you the polymorphic freedom of raw JSON/BSON. [00:05] brownies: the backstory is that i have a shoddy node.js app delivered by a contractor who didn't use a framework... i'm hoping i can rewrite it this afternoon [00:05] vorlov has left the channel [00:05] bingomanatee: Native, and my bare bones model which wraps native, won't peg you in like that. [00:05] Nexxy: brownies, good luck! [00:05] Prism has joined the channel [00:06] Nexxy: also, mongoose does allow you to fall back to unmodeled mongo [00:06] bingomanatee: brownies - do you have to make a lot of forms? [00:06] Nexxy: but the emphasis is definitely toward using models [00:06] brownies: bingomanatee: no, just a login/register form [00:06] bingomanatee: NM. [00:06] brownies: let me see what he used as far as writing to the db [00:06] brownies: i'm hoping i can at least salvage some of this code [00:06] bingomanatee: then I would look into express-mvc-bootstrap. If for nothing else, the script / ed system should save you some time. [00:06] bingomanatee: Or you could use Drupal :D [00:06] Nexxy: ACTION cringes [00:06] ixti: but hold on one second :)) we can pass require into this virtual machine. so one can try to "require" his modifications from the script and will fail, as require corresponds to the main process and there's no way to pass normal require which will give ability to require extension inside script [00:06] brownies: yea he's just writing straight JSON [00:07] numan__ has joined the channel [00:07] Nexxy: drupal makes me cry [00:07] brownies: reading it, thanks bingomanatee [00:07] ixti: my inet lags. guess i'll be back next time :)) [00:07] mcantelon: Drupal. :..[ [00:07] Nexxy: ya kinda like that [00:08] bingomanatee: Drupal is easy money man. [00:09] bingomanatee: You can put up a site in three days, then come back in a month and spend three months scaling the project. [00:09] bingomanatee: Its better than meth. [00:09] mcantelon: bingomanatee: Yeah, it's like the new Rails. [00:09] SubStack: damn ixti left [00:09] SubStack: was about to say that works just fine [00:09] SubStack: > require('vm').runInNewContext('require("seq")', { require : require }) [00:09] bingomanatee: ACTION is getting paid to learn Ruby.  [00:10] SubStack: it's not a virtual machine AS SUCH [00:10] Bwen: Subtack: yeah it does :) [00:10] zzak: bingomanatee++ [00:10] v8bot: zzak has given a beer to bingomanatee. bingomanatee now has 1 beers. [00:10] bingomanatee: ACTION is counting the days til I manage to prove to TeleMate that I can run rings around their Ruby performance with Node  [00:10] SubStack: rails is so... baroque [00:10] rworth has joined the channel [00:11] bingomanatee: Rails has made some positive contributions to coding: it has helped to standardize REST. [00:11] bingomanatee: And popularize it. [00:11] Nexxy: LOL [00:11] Nexxy: it has helped to standardize REST-like APIs that really don't adhere to REST at all [00:11] bingomanatee: But I don't think these guys use Rails anyway. [00:12] zzak: id rather work in rails than drupal [00:12] jesusabdullah: Yeah? [00:12] SubStack: REST is the atheism of standards anyhow [00:12] zzak: if i had to choose anyways [00:12] SubStack: the whole point is to avoid abominations like SOAP [00:12] bingomanatee: ACTION is planning to implement Drupal in Ruby.  [00:12] bingomanatee: I'm going to call it d-rails :D [00:12] jesusabdullah: Hard call for me. XD [00:13] Nexxy: when you see APIs that require you to post *everything* to the same URI, and make up their own verbs [00:13] Nexxy: that goes beyond agnosticism [00:13] jesusabdullah: haha, that sounds awesomely annoying! [00:13] Nexxy: and sadly quite common place [00:13] Nexxy: BUT IT LOOKS LIKE REST! [00:13] SubStack: I hate it when people try to use REST for inherently stateful transactions [00:14] Nexxy: you can REST anything with enough auth tokens!! [00:14] Nexxy: ;> [00:14] SubStack: but you shouldn't... [00:14] Nexxy: ok but you can ;< [00:14] bingomanatee: Substack: isn't that the definition of Couch? :D [00:14] jesusabdullah: SubStack: You just don't have enough auth tokens, I bet >:o [00:15] brownies: heh. i built my entire API around POST! that makes it REST, right? XD [00:15] Nexxy: ^ %#@$% this [00:15] jesusabdullah: AWW YEA [00:15] jesusabdullah: lol [00:15] Nexxy: Ok guys I think it's time to put this REST conversation... [00:15] Nexxy: ... to bed. [00:15] Nexxy: ACTION sunglasses. [00:16] jesusabdullah: I'm gonna go take a nap :) [00:16] Nexxy: I hope you find your nap to be... [00:16] Nexxy: ... RESTful [00:16] Nexxy: ok i'm done ;, [00:16] harth has joined the channel [00:17] SubStack: DISREGARD STATE. OBTAIN AUTH TOKENS. [00:17] isaacs has joined the channel [00:17] Nexxy: ACTION waits for an "additional auth tokens" demotivational [00:17] jesusabdullah: Nexxy: meme generator? [00:17] Nexxy: except I don't like efi somos [00:18] Nexxy: so no [00:18] jesusabdullah: Huh? [00:18] Nexxy: lol nothing [00:19] Nexxy: the guy that runs memegenerator [00:19] Nexxy: is liek [00:19] jesusabdullah: somos? [00:19] jesusabdullah: Oh, I see! [00:19] zzak: too bad memegenerator is asp [00:19] Nexxy: my neighbor had this huge fight with efi [00:19] Nexxy: cuz he tried to buy memegenerator [00:19] Nexxy: and efi wanted millions for it [00:20] Nexxy: and was being super arrogant [00:20] Nexxy: liek, moreso than bingomanatee [00:20] jesusabdullah: Sometimes I wonder if there's a secretly awesome thing about asp and MS visual stuff in general (C# and F# sound cool) [00:20] jesusabdullah: y'know, that we're all just missing [00:20] Nexxy: jesusabdullah, visual studio!!! [00:21] Nexxy: it makes everything seem super bright and wonderful [00:21] Nexxy: all the code intelligence and visual object browsers [00:21] bingomanatee: Only Charlie Sheen "gets" me [00:21] rbranson has joined the channel [00:21] Nexxy: it's kinda the magic mushroom of IDEs [00:22] Prism has joined the channel [00:22] Nexxy: when you use it you're like "oh my god this is amazing, I *get it* now!" and everyone else is liek "wtf is she on?" [00:22] cloudhead has joined the channel [00:22] jesusabdullah: idk..! [00:22] jesusabdullah: ahahaha [00:22] max_dev has joined the channel [00:22] zzak: ACTION takes job working on C#, still uses vim [00:22] jesusabdullah: Ah [00:23] bingomanatee: Visual Studio / .NET is a very good solution for the corporate hellholes that it targets. [00:23] jesusabdullah: Yeah, i thought c# actually sounded kinda cool [00:23] jesusabdullah: y'know, for what it does [00:23] Emmanuel__ has joined the channel [00:23] Nexxy: I have to admit I used VS2010 for a SOAP extension, and it was pretty fun [00:23] bingomanatee: Say you are pretty sure that your developer is about to blow his brains out with a shotgun. [00:23] Nexxy: it made SOAP almost bearable [00:23] Nexxy: *almost* [00:23] jesusabdullah: <3 [00:23] jesusabdullah: I, umm [00:23] jesusabdullah: looked into doing MATLAB RPCs [00:23] McConnell has joined the channel [00:23] andy_dawson has joined the channel [00:23] jesusabdullah: and I'm pretty sure it was either REST or SOAP [00:23] bingomanatee: Do you want him highrolling it with node or ruby or using a system like .NET that is so common you can drop in another unit in his place when he pulls the trigger? [00:24] jesusabdullah: Like, those were your choices [00:24] Nexxy: I wish i had a choice [00:24] jesusabdullah: I hear rails is good for that kinda thing actually! [00:24] bingomanatee: well yes - bad example - [00:24] Nexxy: yeah but good luck finding a rails developer that isn't so full of himself he expects a private yacht [00:24] jesusabdullah: Because rails devs are all over now and they're all the same basically XD [00:24] jesusabdullah: Haha [00:25] jesusabdullah: I don't know any rails actually [00:25] Nexxy: good! [00:25] zzak: nexxy: lots changed since then [00:25] nickbaugh: ooo its alread in there [00:25] Nexxy: zzak, I'll take your word for it! [00:25] Nexxy: even if I liked the language, the community killed it for me hardcore [00:25] nickbaugh: just getting started with express-mvc-boilerplate, anyone have any good tips/tricks they learned they'd like to share?? [00:25] jesusabdullah: Nexxy: Haha, reminds me of SubStack! He always hated rails [00:25] zzak: i see a lot of resemblance in the early 2004-2005 ruby community as i do in the nodejs community [00:26] Nexxy: zzak, don't say that ;< [00:26] Prism has joined the channel [00:26] SubStack: I quite like ruby [00:26] Tidwell: Is there a project that exposes a gui over http for npm? [00:26] SubStack: but rails is just -_- [00:26] V1 has joined the channel [00:26] isaacs: Tidwell: no, but that'd be awesome [00:26] bingomanatee: Substack - need a day job? [00:26] isaacs: i'd tweet that project's brains out [00:26] Nexxy: SubStack, rails is just... WHOOPS! [00:26] Prism has left the channel [00:27] rudolfrck has joined the channel [00:27] jesusabdullah: Idk much at all about the old rails guys, but these days it seems like there are a lot of weirdos in the ruby/rails community [00:27] Tidwell: isaacs: darn, i was just looking at the docs on programatically using npm and thinking how great it would be [00:27] jesusabdullah: "code rock stars" is such a *strange* concept! [00:27] isaacs: Tidwell: there is http://search.npmjs.org/ [00:27] isaacs: Tidwell: but that's just for searching the registry [00:27] Nexxy: jesusabdullah, I'm just glad the node community is such a *stark* contrast [00:27] Nexxy: ... [00:27] mike has joined the channel [00:27] isaacs: Tidwell: yeah, like a remote management kinda deal. it'd be pretty neat. [00:28] Tidwell: isaacs: yup yup, i was thinking more remote management yea [00:28] Guest50232: hi.. I was wondering why when I'm trying the Socket.IO example "chat", it simply says "Connecting..." and the console simply says "awaiting new connections" [00:28] SubStack: bingomanatee: fuck real jobs [00:28] jesusabdullah: Nexxy: You're right, of course! But we're all obviously post-pst-ironically acting that way. [00:28] SubStack: those get in the way of all the stuff I need to build [00:28] bingomanatee: thought you'd say that. [00:28] Nexxy: Tidwell, like the Gtk that renders in HTML? [00:28] bingomanatee: :D [00:28] zzak: nexxy: i think you'd be suprised at how many ruby/python devs have taken to ruby and communitys have sorta merged [00:28] jesusabdullah: Whereas the rails guys are only doing it post-ironically. [00:29] zzak: s/taken to ruby/taken to nodejs [00:29] Prism has joined the channel [00:29] jesusabdullah: I come from the python side, actually [00:29] Nexxy: zzak, honestly I'm more disillusioned by the rails folks [00:29] jesusabdullah: but I know why python sucks [00:29] Marak: javascript motherfucker [00:29] jesusabdullah: so it's cool [00:29] bingomanatee: I am actually going to be interesting to see if I can somehow find a way to bridge ruby and Node to play well togethers. [00:29] jesusabdullah: Marak: Node.js muthafuckaaa [00:29] Nexxy: jesusabdullah, is it the lack of incessant "end end end end end" ? [00:29] zzak: bingomanatee: therubyracer [00:30] jesusabdullah: Nexxy: lol! Actually, I usually like the whitespace thing. [00:30] Nexxy: ACTION can't stand it [00:30] jesusabdullah: Sometimes indenting patterns are non-obvious though [00:30] Nexxy: it always ends up in an argument over tabs or spaces [00:30] SubStack: bingomanatee: https://github.com/substack/dnode-ruby [00:30] jesusabdullah: ahah, no, there's a PEP for that [00:30] bingomanatee: uhhhh... sorry I am too busy adding methods to Object.prototype to look at therubyracer. [00:31] zzak: lol [00:31] SubStack: I don't mind whitespace so much although I do like terminating block tokens [00:31] Nexxy: my g/f writes a lot of python and she adds commented ends to her blocks [00:31] SubStack: } or 'end' or whatevs it's not very important what it is [00:31] Nexxy: I think it's a sensible solution [00:31] SubStack: well now THAT is a bit silly [00:31] Nexxy: visually it makes sense [00:31] Nexxy: I hate seeing code just fall off [00:32] Nexxy: like it's jumping off a cliff [00:32] SubStack: hmmm perhaps [00:32] bingomanatee: I actually like the way that VB forces you to annotate block ends. [00:32] bingomanatee: I know it is verbose but it its readable. [00:32] Nexxy: plus! the comments pad your LOC [00:32] Nexxy: and make you look more productive!! [00:32] Nexxy: since as we all know, LOC is the most efficient way to measure productivity [00:33] bingomanatee: Anyone have any opinion on SproutCore? [00:33] bllob: hi.. I was wondering why when I'm trying the Socket.IO example "chat", it simply says "Connecting..." and the console simply says "awaiting new connections" [00:33] zzak: i like to draw ascii storyboards to explain what each of my methods are doing before and after each definition [00:33] no-gooder: bllob, fuck socket.io [00:33] jesusabdullah: bingomanatee: I remember it being one of those "missing standard library" catch-all kinda guys [00:33] bllob: no-gooder: what's the alternative? [00:34] jesusabdullah: Other than that, idk [00:34] no-gooder: do not use it. use long polling [00:34] bllob: i'm just starting out with sockets.. [00:34] Nexxy: rofl zzak [00:34] Nexxy: I hope you are serious [00:34] zzak: thats the best kind of documentation [00:34] Nexxy: ascii art makes everything better [00:34] jesusabdullah: Haha :D [00:35] jesusabdullah: Need a good ascii art drawer again [00:35] zzak: preferrably one that keeps to 80columns [00:35] bingomanatee: There is apps for that [00:35] no-gooder: bllob, learn long polling , that's what you need. [00:35] rbranson has joined the channel [00:35] bllob: already doing that [00:35] bllob: thanks mate [00:35] jesusabdullah: Yeah, I've seen them! But I don't actually know of any of them [00:38] jesusabdullah: Are there any ascii drawers online? [00:38] jesusabdullah: Could be a cool project [00:38] Nexxy: yus [00:39] bockmabe has joined the channel [00:39] brownies: ACTION is slowly learning express [00:39] Nexxy: for some reason talking about ASCII art makes me think of IGMP fragments [00:39] Nexxy: those were the days ._. [00:39] jesusabdullah: igmp? [00:39] Nexxy: group management [00:40] mjr_: Still a lot of great ASCII art in RFCs [00:40] Nexxy: jesusabdullah, win98 machines used to be susceptible to malformed IGMP packets [00:40] Nexxy: thinking of ASCII art reminds me of that era [00:41] jesusabdullah: ah [00:41] zzak: remember svg? [00:41] neebz has joined the channel [00:41] Nexxy: no? me neither! [00:42] andy_dawson has joined the channel [00:42] bingomanatee: ACTION never got why SVG never caught on. [00:42] jesusabdullah: Good ol' svg :D [00:42] Nexxy: >XML [00:42] Nexxy: enough said [00:42] zzak: there were a lot of IE vulns todo with svg [00:42] bingomanatee: Yes but that was the way back then, like tying an onion to your belt [00:43] bingomanatee: IE has always been like swiss cheese without the cheese. [00:43] Nexxy: http://news.ycombinator.com/item?id=2498834 [00:43] Nexxy: related [00:44] saikat has joined the channel [00:44] Nexxy: "represent JSON as XML"... [00:44] jesusabdullah: wat [00:44] SubStack: svg is plenty popular for vector graphics [00:44] Nexxy: yeah [00:44] Nexxy: a big GIANT lolwat [00:44] SubStack: it just takes ages to render svgs [00:44] SubStack: much faster to rasterize into a png for webpages [00:44] bingomanatee: DAMMIT! that means the clock is running out on my idea to patent my system of representing XML in JSON! [00:44] Nexxy: TO THE MANATEE CAVE [00:44] bingomanatee: Why do people keep stealing my wonderful ideas! [00:45] Nexxy: oh wait manatees dwell in groves [00:45] bingomanatee: It seems to me that someone needs to complete the evolutionary cycle by representing XML in YAML, then using that to encrypt JSON. [00:45] bingomanatee: They could dwell in caves. [00:45] nickbaugh: alpacas snack on sycamore trees, they only ride in groups of threes [00:45] bingomanatee: underwater ones. [00:45] nickbaugh: lolwut. [00:46] Nexxy: I want an underwater cave. [00:46] bingomanatee: well they need air. [00:46] Nexxy: ... and gills [00:46] nickbaugh: anyone here got free time + need work? [00:46] zzak: manatees use mana? [00:46] pr2012 has joined the channel [00:46] Nexxy: everyone does, zzak [00:46] bingomanatee: a little -- what is the prospect nick? [00:46] Nexxy: it's part of the fabric of life [00:46] nickbaugh: bingomanatee: a website builder app for a niche market [00:47] bingomanatee: okay - how much money ? [00:47] bingomanatee: and how much time? [00:47] pr2012: With express 2, anyone know how to call the method partial() when you don't have the response object? [00:47] Nexxy: the answer is always "as little as possible" [00:47] nickbaugh: bingomanatee: we're using express-mvc-boilerplate [00:47] bingomanatee: ever the helpful one nexxy [00:47] Spion has joined the channel [00:47] Nexxy: I do my best ;] [00:47] bingomanatee: sure ... right you talked about this. [00:47] Nexxy: take pity on me, I am but a slow child after all [00:48] bingomanatee: I do have my own MVC boilerplate implementation by the way. [00:48] marcello3d: anyone here running mongodb with replica sets? [00:48] isaacs: gah, just realized `npm help folders` lies. a lot. [00:48] isaacs: whoops! *^_^* [00:48] bingomanatee: how much time have you sunk into the mvc boilerplate implementation? [00:48] Nexxy: lol isaacs [00:48] Nexxy: are your initials DHH all of the sudden? [00:48] isaacs: does dhh do that? [00:48] paul has joined the channel [00:49] Nexxy: whoever narrates the infamous rails screencast [00:49] Nexxy: I think it's him [00:49] isaacs: ACTION not familiar with the reference [00:49] Nexxy: oh [00:49] Nexxy: he says WHOOPS like 20 bajillion times [00:49] Nexxy: for EVERYTHING [00:49] isaacs: heh [00:49] Nexxy: WHOOPS I just typed a command in my terminal! [00:50] isaacs: i've seen some live-coding examples from DHH. it's pretty impresive, actually. not easy to do that and make it go right [00:50] Nexxy: http://www.youtube.com/watch?v=Gzj723LkRJY [00:50] Nexxy: 28 seconds in [00:51] isaacs: lol [00:51] isaacs: "WHOOPS! it worked!" [00:51] Nexxy: yeahhh [00:51] Nexxy: lol [00:51] Nexxy: it was kinda cute the first few times [00:51] Nexxy: and then I was like ~_~ [00:51] isaacs: "you keep using that word. i do not thing it means what you think it means." [00:51] zzak: haha [00:52] marcello3d: what word? [00:52] Nexxy: I'm afraid you're just going to have to watch the video [00:53] marcello3d: ACTION goes and finds headphones [00:53] Nexxy: attaboy [00:53] mcantelon: marcello3d: Hint: it rhymes with "soups". [00:53] paul: question for the community from a newbie: [00:53] marcello3d: oh man [00:53] marcello3d: is that the rails guy? [00:53] marcello3d: he has the most obnoxious voice [00:54] Nexxy: you said it not me [00:54] paul: i'm looking for a good intro to node for someone who already knows that you can pass functions as data [00:54] marcello3d: I recognize him from his voice [00:54] paul: recommendations? [00:54] brownies: what template rendering engine should i use? [00:54] Nexxy: paul, nodeguide maybe? [00:54] Nexxy: brownies, I <3 ejs [00:54] mcantelon: paul: Have you seen howtonode.org ? [00:54] SubStack: paul: http://nodejs.org/docs/v0.4.6/api/all.html [00:54] mcantelon: paul: Some good stuff. [00:55] brownies: i think my dumb contractor used minimal.render? is that a thing? [00:55] paul: ok thanks [00:55] brownies: minimal.template, rather. [00:55] Nexxy: but jade is popular too if you like haml style templates [00:55] paul: ive seen howtonode but didn't see a bird's-eye-view doc, which is what i'm looking for [00:55] brownies: i don't know what haml is... should i learn that too? =/ [00:55] Nexxy: no! [00:55] zzak: oops i hit the lottery [00:55] Nexxy: save yourself [00:55] paul: i'll dig a little deeper... [00:55] brownies: ok. ejs it is. [00:55] marcello3d: paul: http://nodejs.org/ has a good birdss eye view :) [00:55] bingomanatee: brownies: ejs lets you type real HTML - everything else abstracts it. [00:55] Nexxy: brownies, specifically tj's implementation [00:56] Nexxy: if you're using express [00:56] brownies: npm install ejs? [00:56] Nexxy: it's compliant and very easy to integrate [00:56] bingomanatee: (TJS? :D) [00:56] Nexxy: ilol'd [00:56] Nexxy: brownies, ya, then just give your templates .ejs file extension [00:56] marcello3d: ejs is just php right? [00:56] hij1nx has joined the channel [00:56] brownies: cool, i'm (slowly) getting the hang of this [00:56] brownies: O.O but i hate php! [00:56] marcello3d: ie terrible templating? :D [00:56] Nexxy: no [00:56] Nexxy: it's embedded javascript [00:57] marcello3d: yea [00:57] w3dot0 has joined the channel [00:57] marcello3d: like jsp [00:57] marcello3d: and php [00:57] marcello3d: and asp [00:57] Nexxy: the tags just resemble php's (by default) [00:57] Nexxy: butyou can override the opener/closers [00:57] Nexxy: and do mustache style tags if yuo want [00:57] marcello3d: you can do that on php, too [00:57] zzak: i like how dhh uses mysql to add new columns, instead of migrations [00:57] marcello3d: it still has the same fundamental flaws [00:57] zzak: that videos like the original screencast tho [00:57] Nexxy: explain? [00:58] Nexxy: maybe I'm missing a flaw ;o [00:58] marcello3d: mixing logic and layout [00:58] Nexxy: well yeah but I just choose not to use it [00:58] Nexxy: kind of another one of those "just because you can..." situations [00:58] marcello3d: yea, but it encourages it :) [00:58] marcello3d: I'm using jade cause it compresses well, and I can do AST manipulations pretty easily [00:59] marcello3d: it forces you to think about your layout more semantically, rather than as html spew [00:59] Nexxy: but it looks like haml ;| [00:59] marcello3d: haml/jade whatever [01:00] bradleymeck: html spew thats a new one [01:00] marcello3d: it also ensures legal html [01:00] brownies: did i start a flame war? [01:00] Nexxy: yep! [01:00] brownies: i just need a noob-friendly answer [01:00] Nexxy: brownies, either or [01:00] Nexxy: pick something compliant with express and you're fine [01:00] Nexxy: jade, ejs, or jqtpl? [01:00] brownies: i just read the view-rendering code my contractor wrote... it's so mind-blowingly stupid. [01:00] marcello3d: brownies: ejs is probably the easiest to pick up if you're coming from php/static html [01:01] brownies: i'm coming from django/cheetah fwiw [01:01] marcello3d: I wouldn't necessarily recommend someone starting with something like haml/jade [01:01] brownies: yea, ejs sounds the least painful. got it. [01:01] pr2012: In express, if one wanted a rendered partial as a string, can one do that without the res? [01:01] brownies: i have enough of a mess cleaning up this guy's backend code. i'd like view-rendering to be straightforward for now. =/ [01:01] marcello3d: they're more suited once you realize you need them [01:02] bingomanatee: pr2012 - you can use EJS directly [01:02] bingomanatee: or any other templating language for that matter. [01:04] bingomanatee: Hell is other people's codebases [01:05] bingomanatee: Also if you haven't discovered jQuery templates they are pretty sweet .... [01:07] wormphlegm has joined the channel [01:09] kersny has joined the channel [01:09] brownies: EJS looks like a nice simple solution for now [01:10] andy_dawson has joined the channel [01:12] fakewaffle has joined the channel [01:13] EvanCarroll: how do i set the response header's mime type to application/xhtml+xml for anything served under jade? [01:14] JianMeng1 has joined the channel [01:14] xiagox has joined the channel [01:17] brownies: hm, how do i import another file with EJS? for example, if i want to have a site-wide header and footer? [01:17] bingomanatee: partials [01:18] brownies: i read that section of the express docs but it just confused me [01:18] brownies: ACTION reads again [01:18] [[zzz]] has joined the channel [01:18] marcello3d: brownies: look up "layout" [01:18] bingomanatee: Yes , well, P A R T I A L S! [01:18] marcello3d: it lets you define a template that wraps around your pages [01:18] whozman has joined the channel [01:18] marcello3d: partials are different, no? [01:18] bingomanatee: oh yeah esp. if you are using express - layouts will provide consistent structure around your content. [01:19] bingomanatee: partials are different but layouts are the way to go for sitewide structures. [01:19] whozman has joined the channel [01:19] peterwmwong has joined the channel [01:19] bingomanatee: Layouts encase your content - partials allow you to embed consistent elements - they are different use cases of the same general activity [01:20] bingomanatee: thx marcello [01:20] brownies: ok so i just make a file called layout.ejs in my views folder and it will have access to a body variable which i should render with unescaped HTML? [01:20] brownies: in the docs he just spontaneously starts talking about layout [01:21] marcello3d: brownies: the docs are a bit scattered [01:21] bingomanatee: look at https://github.com/bingomanatee/MVC for one implementation of layouts. [01:22] bingomanatee: note that using layouts with express requires some configuration [01:22] brownies: is this with EJS? [01:22] brownies: ACTION sighs [01:23] whozman: anyone know if the stuff that TJ wrote about some time ago about :model jade filter works? I am getting undefined filter. [01:23] marcello3d: brownies: but your comment up earlier is correct [01:23] xiagox has joined the channel [01:23] rbranson has joined the channel [01:23] brownies: oh ok [01:23] brownies: ACTION bumbles onward [01:24] Nexxy: you can do it, brownies! I have faith in you! [01:25] markstory has joined the channel [01:25] justinTNT: I don't like templates. http://blog.nodejitsu.com/micro-templates-are-dead [01:27] bingomanatee: Hey Tjholowaychuk - you don't have to do anything other than include layout.html in your views folder for the layout to kick in do you? [01:28] Nexxy: bingomanatee, tj isn't here... [01:28] Nexxy: but .html won't work unless you specifically specify the extension [01:28] Nexxy: it expects your template files to have the extension of the engine you're using [01:29] Nexxy: .jade, .ejs, etc [01:30] brownies: Nexxy: YES!!! i rendered a template in response to a URL!!! [01:30] Nexxy: brownies, high five!! [01:30] Nexxy: pretty easy, ya? [01:31] brownies: surprisingly easy, considering i don't actually know javascript and i'm just reading lots of example code to make up for that [01:31] Nexxy: ;3 [01:31] Nexxy: well you're doing great [01:31] bingomanatee: nice yeah all I did was (parton the spam) app.set('views', MVC_ROOT + '/views'); [01:31] bingomanatee: app.register('.html', require('ejs')); [01:31] bingomanatee: app.set('view engine', 'html'); [01:31] bingomanatee: and my layouts kicked in on their own. [01:31] marcello3d: justinTNT: is that actually easier/faster to develop than templates? [01:31] Nexxy: ooh neat [01:32] xiagox has joined the channel [01:32] justinTNT: marcello: works for me. I'm not using that library, but that philosophy, and I haven't hit a wall yet. [01:32] marcello3d: which lib? [01:32] bingomanatee: so layout.html (given the above context) will magically wrap your content in its layoutish goodness. [01:34] newy_ has joined the channel [01:34] justinTNT: no lib : I pulled the guts from weld to make it play nicely, and extended it to address element attributes. honestly it just comes down to a few lines of code. one day I'll re-engineer it as an express view ... [01:35] Nexxy: bingomanatee, don't forget the mysterious & magical <%- body %> in layout.html [01:35] Nexxy: it took me a while to figure that out [01:35] bingomanatee: justinTNT you are clotting the internet with JSDOM. jQuery Templates are much more effective than server side templating. [01:35] marcello3d: bingomanatee: but then you have to use jquery ;D [01:35] brownies: \o/ ... just figured out how to route for static files, so i've already recreated all the static stuff [01:36] Nexxy: brownies, you're a natural [01:36] brownies: i'm starting to like node.js [01:36] brownies: i didn't like it before, when my contractor wrote an app that crashed 1000 times/day [01:36] bingomanatee: welcome. [01:36] mcantelon: brownies++ [01:36] v8bot: mcantelon has given a beer to brownies. brownies now has 1 beers. [01:36] bingomanatee: brownies++ [01:36] v8bot: brownies is getting too many beers. Don't let brownies get drunk! [01:36] justinTNT: bingo: I'm not just doing it serverside ;{)} [01:36] bingomanatee: brownies++ [01:36] v8bot: brownies is getting too many beers. Don't let brownies get drunk! [01:37] brownies: aw, thanks guys. ballmer peak! [01:37] sleeplessinc has joined the channel [01:38] justinTNT: same code welds same objects to same skeletal html in browser and server. just a few lines of code, no <{%! pseudo-syntax, no blurring of layout with logic [01:39] Aria: v8bot's looking out for you, brownies! [01:39] brownies: what's the right way to go about authentication, sessions/cookies, that whole business? [01:39] Aria: Depends. Who are you authenticating, and what sort of session? [01:40] newy_ has joined the channel [01:40] brownies: just authenticating my users for my web app... would like to set a logged-in cookie [01:40] xiagox has joined the channel [01:40] Aria: And what's a "login" in this app? [01:41] Aria: Long persistent? high security? casual? [01:41] brownies: they fill out the login form and POST it to my login url [01:41] Aria: Browser-session? Two-week? [01:41] brownies: the current version (not done in express) uses sessions, but i'd prefer to do a 2-week cookie or something. it's just a casual web app. [01:42] brownies: it's http://instafilm.com [01:42] rbranson_ has joined the channel [01:42] brownies: (that's the version from my contractor, which will probably crash when you click the link... i'm rewriting the whole thing) [01:42] blkcat: brownies: that bad, huh? [01:42] sleeplessinc has joined the channel [01:42] drudge has joined the channel [01:42] Aria: Hm. [01:43] brownies: blkcat: yea i figured i could patch the code he gave me, but... it's hopeless. [01:43] blkcat: it looked pretty questionable, for sure. :) [01:43] brownies: at this point it'd be nice if i could copy-paste some of it into my version, but i'm not optimistic. [01:43] shiawuen has joined the channel [01:44] shiawuen has joined the channel [01:51] newy has joined the channel [01:53] mscdex has joined the channel [01:53] bradleymeck has joined the channel [01:55] jmorris has joined the channel [01:55] jmorris: hi [01:57] Nexxy: hi fakewaffle [02:00] gavin_huang has joined the channel [02:03] whozman has joined the channel [02:04] samsonjs has joined the channel [02:05] sourcode has joined the channel [02:06] saikat has joined the channel [02:07] V1|AFK has joined the channel [02:08] calvernaz has joined the channel [02:08] rauchg has joined the channel [02:09] joshthecoder has joined the channel [02:10] mscdex: node.js rules! [02:10] dspree has joined the channel [02:11] blkcat: damn straight [02:12] whozman has joined the channel [02:14] hij1nx has joined the channel [02:14] chapel: mscdex: hows the game? [02:18] mscdex: oh, youknow? [02:22] bingomanatee: GOD SAVE THE QUEEN! [02:23] bingomanatee: brownies++ [02:23] v8bot: bingomanatee has given a beer to brownies. brownies now has 2 beers. [02:24] mscdex: chapel: i haven't worked on youknow in a few days or so, it's really just the web frontend that could use some more beautifying [02:24] mscdex: haven't run into hardly any bugs [02:24] Nexxy: anyone have a good suggestion on string localization libraries? [02:25] chapel: ah [02:26] mscdex: Nexxy: look on the nodejs ml, someone posted one the other day i think [02:26] [[zz]] has joined the channel [02:26] Nexxy: I did ;< no findey [02:26] devrim has joined the channel [02:28] newy_ has joined the channel [02:29] dekz_ has joined the channel [02:29] Nexxy: mscdex, all I really want is something pluggable for templating my strings [02:29] Nexxy: I don't even really need 'localization' per se [02:29] Nexxy: so I can do stuff like <%= strings.someHelperString %> or something similar [02:30] mscdex: Nexxy: this was what i saw: http://groups.google.com/group/nodejs/browse_thread/thread/7253f933c87eac1f [02:30] mscdex: there's also: https://github.com/naholyr/node-i18n [02:30] Nexxy: oh derp, thank you! [02:31] mscdex: also: https://github.com/learnboost/jade-i18n [02:31] mscdex: ;) [02:33] Nexxy: mscdex++ [02:33] v8bot: Nexxy has given a beer to mscdex. mscdex now has 9 beers. [02:33] Nexxy: OMG 9 WOW [02:33] Nexxy: you lush [02:33] Nexxy: I would be passed out after the 3rd [02:33] mscdex: heh [02:33] brettgoulder has joined the channel [02:33] Nexxy: Nexxy-- [02:33] v8bot: Nexxy: Don't cheat! You can't give a beer to yourself. [02:33] Nexxy: I wasn't trying to! ;< [02:34] dekz_: Nexxy-- [02:34] v8bot: dekz_ has taken a beer from Nexxy. Nexxy now has -1 beers. [02:34] Nexxy: noooooo [02:34] newy_ has joined the channel [02:34] rchavik has joined the channel [02:34] fakewaffle: is there an api here? lol http://jade-lang.com/ [02:35] mscdex: fakewaffle: https://github.com/visionmedia/jade [02:36] darshanshankar has joined the channel [02:36] fakewaffle: mscdex++ [02:36] v8bot: fakewaffle has given a beer to mscdex. mscdex now has 10 beers. [02:36] brownies has joined the channel [02:36] baudehlo has joined the channel [02:37] dandean has joined the channel [02:37] fakewaffle: fakewaffle-- [02:37] v8bot: fakewaffle: Don't cheat! You can't give a beer to yourself. [02:37] davidcoa1lier has joined the channel [02:37] mscdex: heh [02:43] pr2012: anyone know why chrome would default to jsonp polling over websockets with socket-io? [02:44] devrim: and can anyone tell me why can i not use my options in my coffeescript cakefile ? http://d.pr/3Wvy [02:45] devrim: pr2012 that happend to our dev too - he restarted his chrome -) [02:45] mscdex: pr2012: what version of chrome? [02:45] pr2012: 11.0.696.57 [02:45] mscdex: huh... yeah i guess try restarting chrome [02:52] pr2012: restarting it worked [02:54] mscdex: cool [02:59] pr2012: anyone have suggestions for client side templating? [02:59] xiagox has joined the channel [03:02] MikhX has joined the channel [03:02] beriberikix has joined the channel [03:03] mscdex: pr2012: well, there's at least jade [03:03] mscdex: and jquery [03:03] pr2012: yeah, working with jquery tmpl now, its a bit slow and I think is still beta. Ill give jade a shot. [03:03] mscdex: and ejs [03:03] beriberikix: Hey Isaacs [03:04] isaacs: yo [03:04] isaacs: beriberikix: so, what kinda weird stuff is in your .bashrc to make that oddball NODE_PATH env? [03:04] Aikar: pr2012: http://github.com/aikar/nova :P [03:04] beriberikix: let me check [03:04] beriberikix: its the damn Cygwin [03:04] isaacs: you poor thing [03:05] pr2012: Cool aikar, ill check yours out. [03:05] beriberikix: lol, its like my scarlet letter [03:05] halfhalo: cygwin: poor mans linux [03:05] Aikar: pr2012: i never "released" it cause im not happy with the documentation, but its fully usable with no "known" bugs [03:05] hkjels has joined the channel [03:05] Aikar: i suck at documentation :( [03:05] hkjels has left the channel [03:07] beriberikix: that's really weird [03:07] beriberikix: "export NODE_PATH="Usage: npm where is one of: activate, adduser, bn, bundle, c, cache, config, deactivate, deprecate, docs, edit, explore, faq, find, get, help, i, info, i$" [03:07] halfhalo: my documentation is.... non existant [03:07] brownies: hm, so any thoughts on how to best do user auth? [03:07] isaacs: beriberikix: that was easy :) [03:08] Nexxy: Aikar, weren't you super heavy into FFXI at one point? [03:08] sleeplessinc has joined the channel [03:08] Aikar: Nexxy: yep im 'that aikar' lol [03:08] xiagox has joined the channel [03:08] Nexxy: I knew you before you were Aikar [03:08] Nexxy: DrDre [03:08] Nexxy: ;P [03:08] Aikar: lol [03:08] Nexxy: you used to chat on my IRC network ;] [03:08] Aikar: that name is long and gone! [03:08] Nexxy: mhmm [03:08] Nexxy: how are you? [03:08] Aikar: what name did you go by? [03:08] hkjels has joined the channel [03:08] Aikar: good [03:08] beriberikix: @isaacs damn scarlet letter... [03:09] Nexxy: not sayin' ;] [03:09] Aikar: been retired from ffxi for a while now tho [03:09] Nexxy: that name is long gone too! [03:09] Nexxy: I'm glad! [03:09] Nexxy: you disappeared [03:09] Nexxy: and it made me sad [03:09] Nexxy: I'm glad you'er back now tho [03:09] Aikar: did it start with a W? lol [03:09] isaacs: beriberikix: you shouldn't have to set the NODE_PATH to anything. just install locally the things you require() [03:09] Nexxy: I don't think so [03:09] hkjels: I get Cannot read property 'filename' of undefined when trying to use Nodestream. Anyone tried nodestream? [03:09] Nexxy: PM me and I might tell you [03:09] isaacs: beriberikix: install globally for cli apps you want in the $PATH [03:09] Nexxy: but I'd rather not in here [03:10] beriberikix: @isaacs ya, i'll take your tip [03:11] beriberikix: @isaacs thx for thehelp [03:12] marcello3d has joined the channel [03:14] bradleymeck has joined the channel [03:16] calvernaz has joined the channel [03:16] xiagox has joined the channel [03:17] indutny has joined the channel [03:18] isaacs: beriberikix: np [03:20] pHcF has joined the channel [03:22] hkjels: Anyone used nodestream? [03:24] galaxywatcher has joined the channel [03:25] xiagox has joined the channel [03:26] cwang has joined the channel [03:29] ditesh|cassini has joined the channel [03:30] brownies: hm, how do i properly use req.flash? the docs are kind of light on this... [03:30] stagas: http://stagas.com:8666/cars.html [03:31] brownies: should i queue up my various flash messages and then hand off the flash using something like { flash: req.flash } to my EJS template? [03:33] xiagox has joined the channel [03:35] nlco has joined the channel [03:36] seivan has joined the channel [03:37] mscdex has joined the channel [03:37] Me1000 has joined the channel [03:38] Votaguz has joined the channel [03:39] mscdex has joined the channel [03:41] Dreamer3 has joined the channel [03:41] mbrevoort has joined the channel [03:43] fakewaffle: is JSON.parse the opposite of JSON.stringify? [03:43] mscdex: yep [03:43] fakewaffle: ty :) [03:44] fakewaffle: so, if a read a file that has json in it, and use json.parse, it should turn it into an object? [03:44] Aria: Yes. [03:45] fakewaffle: thanks [03:46] fakewaffle: hmm, i get an error [03:48] fakewaffle: "SyntaxError: Unexpected token ILLEGAL" [03:48] mscdex: fakewaffle: are you sure the file has json in it and not a plain javascript? [03:48] mscdex: *object [03:49] fakewaffle: {'name':'my first post','content':'this is my first post!'} [03:49] fakewaffle: that's all that is in the file [03:49] mscdex: i think you may need double quotes instead of single quotes for json [03:49] Opaque has joined the channel [03:49] mscdex: not 100% sure though [03:50] mscdex: er, google verified it, you need double quotes [03:50] mscdex: :) [03:50] fakewaffle: same error though [03:50] mscdex: huh [03:51] mscdex: how are you reading in the file? [03:51] fakewaffle: fs.readFile(this.dataLocation + model.tableize() + '/' + id + '.json', 'utf8', function(error, data) { self.emit('read', data); }); [03:53] mscdex: where is it pointing at when it gives the syntax error? [03:53] amerine has joined the channel [03:53] fakewaffle: what do you mean? [03:54] fakewaffle: error: http://pastie.org/1852377 [03:54] trcarden has joined the channel [03:56] Owner_ has joined the channel [03:57] Owner_: do people really take advantage of the server and client running the same language a lot? [03:57] Aria: Certainly while developing, yes. [03:57] Aria: Mentally. [03:57] davemo has joined the channel [03:58] Owner_: i mean something like sending code from one to the other to execute [03:58] mscdex: fakewaffle: it parses fine for me using readFile that way... [03:58] Nexxy: indeed! [03:58] Owner_: i guess apart from how to can normally do that using a server in a different language [03:58] Owner_: something other than just outputing scripts [03:58] Owner_: lol [03:58] mscdex: fakewaffle: what does 'data' look like that you're emitting for the 'read' event? [03:59] beriberikix has joined the channel [03:59] mscdex: s/that/when/ [03:59] isaacs: stagas: these move more like spaceships than cars [04:00] fakewaffle: mscdex: right before i emit, i console.log(data): {"name":"my second post","content":"this is my second post!"} [04:00] isaacs: stagas: need to make the side-friction much greater than the backward-friction [04:00] mscdex: weird [04:00] stagas: isaacs: yeah I suck at physics :) [04:00] fakewaffle: yeah, i'm having a hard time understanding what is going on [04:00] stagas: isaacs: it's a demo to show how easy it is to create synced physics worlds in maga https://github.com/stagas/maga [04:01] isaacs: stagas: s/cars.html/spaceships.html/ and you've fixed the bug ;) [04:01] mscdex: fakewaffle: well, next thing to check is what happens in your 'read' event handler? [04:01] stagas: they just drift on ice [04:01] stagas: :P [04:02] brownies: how should i go about form validation? [04:02] brownies: i can handle form submission, but i'd like to check if, for example, a field is a valid email address [04:03] fakewaffle: mscdex: i just did it again and it worked fine?! [04:03] mscdex: heh [04:03] fakewaffle: mscdex: i'm glad you said it worked for you lol [04:03] stagas: I mean you just define your physics objects it's as simple as that and everyone is synced, client rewind/prediction and all that handled automagically [04:03] iFire has joined the channel [04:04] stagas: the cars thing was done in like 5 mins using the simple example source as basis [04:04] fakewaffle: mscdex: thanks again :) [04:04] mscdex: np [04:04] fakewaffle: mscdex++ [04:04] v8bot: fakewaffle has given a beer to mscdex. mscdex now has 11 beers. [04:06] saikat has joined the channel [04:07] fakewaffle: i'm so psyched! making so much progress [04:07] mscdex: heh [04:07] mscdex: \o/ [04:08] Draggor: I'm torn, do I code tomorrow, or do I play Magic... [04:08] fakewaffle: the gathering? [04:08] Nexxy: that's a tough choice? [04:09] Draggor: fakewaffle: indeed [04:09] fakewaffle: what color deck do you play? [04:09] Nexxy: oh god [04:09] Draggor: fakewaffle: yes? [04:09] Nexxy: ACTION walks away [04:10] Draggor: ACTION uses the no money required cube drafting approach. [04:11] Owner_: is that like nasar drafting? [04:11] Owner_: nascar* [04:12] Draggor: Heh, no. I actually have a drafting program in node laying in shambles on an old machine, I should dig that up and github it. [04:12] Draggor: It's where you pick a card from a pack, pass the pack to the next person, keep going until all cards are picked, build deck, play. [04:12] Owner_: nice [04:12] Owner_: no one keeps any at the end? [04:12] halfhalo: ACTION hearts his wither deck [04:13] Draggor: Well for the cube format, instead of opening booster packs and keeping what you pull, one person provides a hand selected colleciton of 360 cards, shuffle them into packs, and draft that way [04:13] Draggor: all the cards go back to the cube owner at the end [04:13] Draggor: You get far more variety and consistency in the packs, and it actually allows for different deck strategies [04:13] bene has joined the channel [04:14] Draggor: whereas in boosters, there's rather well defined things you have to do based on the card pool. [04:14] halfhalo: last time I did a draft I ended up with a planeswalker, but no land to use it [04:15] Draggor: I greatly dislike constructed, it's only about who has the most money [04:15] Draggor: and in casual, it's about whoever happens to have the deck that's most resistant and/or pulls off a combo first [04:15] Draggor: With cube drafting, you actually get at the heart of the game [04:16] Draggor: What I want is to finish my node proggy to let people play online [04:16] halfhalo: I generally do casual [04:16] Draggor: though i was just learning node when I made it, so there's a lot of poor design choices to it [04:16] halfhalo: Heh, my friends usually do elves and get decimated by wither [04:17] Draggor: constructed is just a series of "deck x beats y, y beats z, z beats x, hope you get lucky in your matchups" [04:17] Draggor: EDH is better about it [04:18] stagas: ok did some docs finally https://github.com/stagas/maga/blob/master/README.md [04:19] halfhalo: gah, I havent played in months... [04:19] Draggor: Most of the people I know have gotten over their dominion addiction [04:19] Draggor: Which is a great little game, but you don't get the same versatility as magic [04:20] rchavik has joined the channel [04:20] newy_ has joined the channel [04:21] bene1 has joined the channel [04:22] strmpnk has joined the channel [04:23] samsonjs has joined the channel [04:25] jtsnow has joined the channel [04:25] justinTNT: good stuff stagas. what a great big world of fun ... [04:26] timmywil has joined the channel [04:27] calvernaz has joined the channel [04:28] a2800276_ has joined the channel [04:28] seivan has joined the channel [04:29] stagas: justinTNT: thx [04:29] bradleymeck has joined the channel [04:32] er1c_ has joined the channel [04:35] isaacs has joined the channel [04:36] xeodox: For those that have used Mongoose..... how can I "auto-update" a field every time that model is saved()? I know it's middleware...but I don't know how to use it correctly. Someone help? [04:36] stagas: you can see the client prediction if you open two windows, even though it initially lags it quickly advances and snaps in realtime [04:37] stagas: late joins are no problem [04:37] xiagox has joined the channel [04:43] stagas: and you can run the same instance on the server and have an exact state synced [04:48] fakewaffle: lol i keep switching between ff and chrome, i cant decide which one to use [04:48] nlco has left the channel [04:48] RusAlex has left the channel [04:50] okuryu has joined the channel [04:52] mscdex: chrome! :-D [04:52] sub_pop has joined the channel [04:53] fakewaffle: i keep coming back to in because its so damn snappy [04:53] fakewaffle: to it* [04:54] fakewaffle: i cant seem to find an example for a jade layout + view [04:54] mscdex: and it uses v8, just like node! :) [04:54] fakewaffle: haha yeah [04:55] fakewaffle: res.render('page', { layout: 'mylayout.jade' }); does this use page.jade, and passes that to mylayout.jade? [04:56] mscdex: i'd guess so [04:56] mscdex: i haven't had a chance to use express yet [04:57] fakewaffle: i assume it would wrap page.jade in mylayout.jade? [04:57] fakewaffle: not sure what i need to put in mylayout.jade to do that? [04:58] xeodox: How come in my mongo database, the date is displayed as "ISODate("2011-05-01T04:50:06.753Z")"...but when I render it to the template (ejs), it's displayed as Sat Apr 30 2011 21:53:27 GMT-0700 (PDT). [04:58] xeodox: I want it to be displayed as ISODate("2011-05-01T04:50:06.753Z") ...because then my javascript can parse it and make it "5 hours ago..." [04:59] brownies has joined the channel [05:06] jakehow has joined the channel [05:13] whozman has joined the channel [05:14] dekz_: Am I right in believe that v8 will call C++ destructors? [05:15] Emmanuel__ has joined the channel [05:15] ngs has joined the channel [05:15] justinTN2 has joined the channel [05:16] zakabird has joined the channel [05:17] Aikar has joined the channel [05:17] gazumps has joined the channel [05:18] mscdex: dekz_: last time i checked v8 does.... [05:21] harth has joined the channel [05:25] sourcode_ has joined the channel [05:26] Draggor: dekz_: as long as everything is using handles properly, yes [05:27] micheil has joined the channel [05:27] dekz_: Must be doing something wrong, doesn't seem to destruct this properly [05:27] Draggor: link to code/gist? [05:28] superjudge has joined the channel [05:29] kmwallio has joined the channel [05:31] tesseracter has joined the channel [05:40] loungin has joined the channel [05:43] fljitovak has joined the channel [05:46] indutny has joined the channel [05:47] brownies has joined the channel [05:48] onre has joined the channel [05:48] loungin has joined the channel [05:49] loob2 has joined the channel [05:50] bojovs has joined the channel [05:50] bojovs has joined the channel [05:50] fakewaffle: anyone awake? [05:52] stride: yep [05:52] stride: morning [05:52] fakewaffle: evening! [05:53] onre_ has joined the channel [05:53] amerine has joined the channel [05:53] eventi has joined the channel [05:56] justinTN2: ker-ping [05:57] brownies: evenin' [05:58] TheLifelessOne has joined the channel [05:59] fakewaffle: anyone use cakephp? [05:59] isaacs: fakewaffle: i think felixge is/was super into it [05:59] F1LT3R has joined the channel [05:59] fakewaffle: isaacs: sweet, thanks [06:00] abraham has joined the channel [06:00] fakewaffle: i'm trying to build an mvc framework similar to in using node, working out pretty good, but could use some help [06:00] fakewaffle: to it* [06:01] stride: fakewaffle: with the whole code generation stuff? [06:01] fakewaffle: the bake portion? [06:01] stride: yeah [06:02] fakewaffle: id like to get there yeah [06:02] stride: hmkay, is your project on github? [06:02] fakewaffle: yeah [06:02] fakewaffle: https://github.com/fakewaffle/piejs [06:02] fakewaffle: only been working on it for a few days [06:03] fakewaffle: as i'm learning node lol [06:03] jakehow has joined the channel [06:05] fakewaffle: i have a lot to do, but i've got the very very very very basic mvc setup [06:05] stride: funny, looks almost like the structure of my current express-based setup :) [06:05] fakewaffle: this is express based too [06:06] openpercept has joined the channel [06:08] hackband has joined the channel [06:09] boghog: I notice that fs.mkdir[Sync] happily returns without errors if you try to mkdir a directory that already exists [06:09] boghog: is this behavious I can make my app depend on? [06:09] boghog: behaviour* [06:11] boghog: hmm I might be wrong actually [06:11] justinTN2: stride: really? cos my first thought was that I don't like the layout. ;{)} [06:11] justinTN2: eg this.dataLocation = __dirname + '/../../../../stool/'; [06:13] stride: justinTN2: yeah well, especially with models & datasources, I don't like my current layout :)) [06:14] stride: I have a single module that handles connections to couchdb through cradle, it initializes or reuses opened databases in there [06:15] cpleppert has joined the channel [06:16] bene has joined the channel [06:17] boghog: does V8 support conditional 'catch' clauses for error handling? [06:17] donald has joined the channel [06:18] fakewaffle: well, the user shouldn't be in pie/* [06:18] V1 has joined the channel [06:19] fakewaffle: and i want to move all the ../../dirname stuff to some variables [06:19] sudhirjonathan has left the channel [06:22] stagas: http://stagas.com:8555/ updated, collisions! :P [06:23] mjr_: seems a little glitchy on collision [06:24] stagas: yeah the algorithm isn't good [06:24] mjr_: at least you are detecting it now [06:25] stagas: it's automatic, all inherited objects have access to this.channel.objects and they you can do collision check in your function [06:25] stride: clientside? [06:25] stagas: runs anywhere [06:25] stagas: pure js [06:26] stagas: you can run the same sim server side if you want to do checks [06:26] stagas: it's synced [06:29] stride: no I mean, are you doing the collision detection purely on the client side? [06:30] stagas: yes the server now is just a proxy [06:30] stride: ah ok [06:30] stagas: every client runs a simulation of the entire game [06:31] fakewaffle: my ball is so small [06:31] calvernaz has joined the channel [06:32] fakewaffle: that is pretty cool [06:33] drogoh has joined the channel [06:33] eventi: hey - i wanna chill behind the ribbon [06:35] sreeix has joined the channel [06:36] Viriix has joined the channel [06:39] Guest90054 has joined the channel [06:40] Viriix has left the channel [06:43] justinTNT has joined the channel [06:44] matjas has joined the channel [06:47] bene has joined the channel [06:49] Hamms has joined the channel [06:54] stagas: mjr_: fixed the collision algo, doesn't flicker now [06:57] micheil: hmm.. no mraleph.. [07:00] cloudhead has joined the channel [07:01] onre_ has joined the channel [07:03] bojicas has joined the channel [07:05] Remoun has joined the channel [07:07] onre_ has joined the channel [07:20] m64253 has joined the channel [07:26] nzfish has joined the channel [07:28] charlesjolley- has joined the channel [07:31] k1ttty has joined the channel [07:34] onre_ has joined the channel [07:35] calvernaz has joined the channel [07:39] NodeSocket has joined the channel [07:39] NodeSocket: Howdy Guys. [07:39] boghog: hey [07:39] NodeSocket: Anybody know of a good profiler? We are trying to determdine the bottlenecks in apps. [07:40] jaket has joined the channel [07:40] konobi: more details needed [07:40] onre_ has joined the channel [07:41] NodeSocket: Basically where the cpu spends the more of its time during execution of an app [07:41] NodeSocket: **the most [07:41] mjr_: NodeSocket: you can use node --prof and then linux-tick-processor [07:41] konobi: which platform? [07:42] NodeSocket: Linux [07:42] konobi: valgrind [07:42] NodeSocket: Right, does --prof provide any GUI ouput? [07:42] konobi: not really [07:42] jacobolus has joined the channel [07:42] NodeSocket: By GUI I mean something eaisuly readable, vs a log [07:42] konobi: well, there is node-insepctor [07:42] aho has joined the channel [07:46] onre_ has joined the channel [07:48] hackband has joined the channel [07:48] NodeSocket: This may be the golden ticket; https://github.com/mape/node-profile [07:54] rie31 has joined the channel [07:55] jonaslund: errrrr [07:55] bak1an has joined the channel [07:55] jonaslund: anyone here who's debugger stuff with IE9 ? [07:58] m64253 has joined the channel [07:59] saikat has joined the channel [08:01] gavin_huang has joined the channel [08:03] d0k has joined the channel [08:03] dgathright has joined the channel [08:04] harth has joined the channel [08:05] random123 has joined the channel [08:06] brettgoulder has joined the channel [08:07] liar has joined the channel [08:08] JulioBarros has joined the channel [08:10] w3dot0_ has joined the channel [08:11] msucan has joined the channel [08:11] mscdex has joined the channel [08:14] m64253 has joined the channel [08:14] killfill has joined the channel [08:15] galaxywatcher has joined the channel [08:17] TomY has joined the channel [08:18] saschagehlich has joined the channel [08:21] rie31 has left the channel [08:23] teemow has joined the channel [08:25] mraleph has joined the channel [08:26] killfill has joined the channel [08:26] mscdex has joined the channel [08:27] chjj has joined the channel [08:28] Wizek has joined the channel [08:28] nilyt has left the channel [08:30] xeodox: In Express, this is undefined because no param was passed to the url. "req.body.start" ...how can I check whether that param is passed? [08:30] xeodox: I want to check if req.body.has_key (start) [08:31] jbpros has joined the channel [08:34] chjj: xeodox, what do you mean? [08:34] xeodox: so I'm writing this in express... [08:36] xeodox: chjj: console.log(req.body.start); [08:36] xeodox: That's throwing an error because ?start= was not passed through the parameter. [08:36] xeodox: (i just wanted it to say "undefined") [08:36] xeodox: but it's throwing an error instanead [08:37] chjj: that shouldnt through if start is undefined [08:37] TomY has joined the channel [08:37] chjj: it would throw if body were undefined [08:37] chjj: throw* [08:37] ph^ has joined the channel [08:37] indutny has joined the channel [08:38] konobi: if( req.body && 'start' in req.body ) [08:38] saikat has joined the channel [08:38] xeodox: TypeError: Cannot read property 'start' of undefined [08:38] xeodox: why would req.body be undefined!? [08:38] xeodox: ohh i see [08:39] chjj: there may not have been a body [08:39] indutny: why everyone are using 'in' operator? [08:39] indutny: :) [08:39] chjj: yeah, i think "in" is slower than a regular prop lookup [08:39] chjj: becuase it has to check the prototype [08:39] chjj: and you have to create a string literal [08:40] indutny: req.body.start will be much faster [08:41] harth has joined the channel [08:41] mraleph: micheil: hey, saw your question on twitter. [08:41] jacter has joined the channel [08:41] konobi: req.body.hasOwnProperty('start') ? [08:42] chjj: i think just req.body.start will be faster, if possible [08:42] indutny: konobi: probably, but if you know that you're seeking for a start - why not use just symbol literal [08:42] indutny: just like chjj says [08:42] jaket has joined the channel [08:42] konobi: autovivivication [08:43] mraleph: micheil: usually new Foo() is pretty fast — you allocate some space in the new space (directly in special stub), then jump to constructor. if memory allocation in new space fails you have to go through runtime and then back to costructor. this is the main overhead, but it happens rarely. [08:43] mraleph: micheil: why do you ask? [08:43] xeodox: hey guys , how do I check the parameters passed through the url in express... [08:43] xeodox: it's not working [08:43] konobi: oh... not an issue it seems [08:44] Zeta has joined the channel [08:44] xeodox: even if I pass "?num=10", (req.body && req.body.num) is still "false"; [08:44] chjj: xeodox, the query string? or the :param's in the route pattern? [08:44] chjj: i believe the query string is in req.query [08:44] konobi: xeodox: param [08:44] xeodox: qjeryu string [08:44] chjj: but [08:44] xeodox: query string* [08:44] konobi: body is for PUT/POST [08:45] konobi: (well, kinda) [08:45] chjj: can GET's have request bodys? i always assumed they couldnt [08:45] xeodox: still undefined [08:46] chjj: what did you do this time? [08:46] konobi: xeodox: sys.inspect(req) [08:47] chjj: try doing req.param('num') - that will check the querystring, params, and body, see if that works [08:47] jetienne has joined the channel [08:47] konobi: http://expressjs.com/guide.html#req.param() [08:47] xeodox: yea , "param", "params doesnt work [08:47] mjr_: chjj: it's uncommon, but I believe the standard allows GET to include a request body. [08:47] newy_ has joined the channel [08:47] chjj: ah, nice [08:47] stephank has joined the channel [08:48] xeodox: I'm talkinga bout after the question mark [08:48] chjj: i kinda wanna mess around with that for fun now [08:48] chjj: right, req.param() will check the query string [08:48] xeodox: chjj: works thanks [08:48] xeodox: so silly [08:49] chjj: req.params is for the params in the route expression, req.query is for the query string, req.body is for the request body, and req.param() is for all of them [08:49] xeodox: req.body.blah vs req.param('blah') [08:49] xeodox: different syntax... [08:49] xeodox: im gonna use req.param() from now on [08:49] xeodox: thx guys [08:50] chjj: req.param() will be slightly slower than checking req.query directly though [08:50] nickbaugh: \o sleeeeep [08:50] chjj: and there might be collisions with other things [08:50] xeodox: chjj: dont really give a fuck lol [08:50] chjj: lol [08:50] xeodox: who cares how fast it is!! [08:50] xeodox: dude these freaking cpus [08:50] xeodox: are like freaking 8 core shit [08:50] chjj: yeah, the speed difference wont be noticeable at all [08:50] chjj: the main thing is there might be collisions [08:51] Nexxy: xeodox-- [08:51] v8bot: Nexxy has taken a beer from xeodox. xeodox now has -1 beers. [08:51] chjj: if you have a param named "hello" and a query string field named "hello", there may be a problem [08:51] Nexxy: potty mouth! [08:51] chjj: ! [08:51] killfill has joined the channel [08:52] MikhX has joined the channel [08:52] whozman has joined the channel [08:52] whozman has left the channel [08:54] hackband has joined the channel [08:55] hij1nx has joined the channel [08:56] micheil: mraleph: I'm wondering whether it'd be a bad idea to create a new object for each message received on a websocket connection. I feel that it's probably overtly expensive. [09:00] chjj: anyone having problems with google chrome dev lately? [09:00] chjj: been really unstable for me for the past week or two [09:02] galaxywatcher has joined the channel [09:04] killfill_ has joined the channel [09:04] herbySk has joined the channel [09:05] V1|AFK has joined the channel [09:09] mraleph: micheil: unless you get gazillion messages it should not be expensive. but of course reusing objects can be a good idea… or premature optimization. :-) [09:11] raynos has joined the channel [09:12] aho: micheil, you can create over a million objects per second with v8 [09:12] aho: don't worry about it unless it's some big fat and heavy object [09:12] TomY has joined the channel [09:12] aho: (or one which is expensive to setup) [09:13] chjj: yeah, i would add the worst thing ive ever done was underestimate how performant v8 is [09:13] aho: you can always make your code uglier at a later point :> [09:13] deanlandolt has joined the channel [09:14] aho: v8 also got a generational gc. short-lived objects won't hurt much. they are quickly created and quickly discarded [09:14] jarek has joined the channel [09:14] jarek has joined the channel [09:15] SamuraiJack has joined the channel [09:15] chjj: sometimes i dont trust the v8 gc [09:16] jarek has joined the channel [09:16] jarek has joined the channel [09:18] markwubben has joined the channel [09:19] raynos: chjj: I know what you mean. If I find any kind of memory link I inject "foo = null;" everywhere. You know, just to be sure and rid myself of paranoia. [09:20] chjj: haha, yeah [09:20] chjj: i still feel suspicious though, knowing things are happening behind the scenes [09:21] raynos: chjj: just inject c++ addon to your node so that you have access to malloc and free. Problem solved. [09:21] chjj: i shouldnt let my paranoia overpower me [09:21] Apeiron` has joined the channel [09:22] chjj: and also, like i said above, i shouldnt be underestimating v8 [09:22] jetienne: mraleph: is there a way to be notified when gc is running ? or to profile its usage ? im after something to help me optimize this matter [09:22] mikl has joined the channel [09:22] chjj: theres some flags [09:22] chjj: expose_gc and trace_gc [09:23] inimino: `trust [09:23] gbot2: Stop worrying and TRUST THE GARBAGE COLLECTOR. [09:23] jetienne: http://markmail.org/message/gqnaaqwfeq6pfrme [09:23] raynos: gbot2: But how does it know about my closures! [09:24] chjj: lol [09:24] raynos: Isn't creating memory leaks with complex closures a really trivial thing to do? or am I underestimating v8 aswell [09:24] jetienne: relax and code [09:24] SubStack: ram is cheap [09:25] chjj: not in some places ;) [09:25] jetienne: chatting on irc is cheap [09:25] SubStack: fixing problems after they happen is much easier than before [09:25] raynos: I'd rather spend a day writing 10 lines of _perfect_ code then hacking a thousand together! [09:26] Apeiron`: So is here a good place to ask general v8 related questions? Such as what am I doing wrong because I'm an idiot that obviously doesn't understand something? XD [09:26] mraleph: jetienne: if you want to get notifications you can register a callback through V8::AddGCPrologueCallback [09:26] jetienne: raynos: beginner mistake [09:26] chjj: thats actually usually what i do, i spend more time thinking about coding than actually coding sometimes [09:26] SubStack: Take chances, get messy, make mistakes! [09:26] mraleph: Apeiron`: yes you ask your v8 related questions here. [09:26] raynos: chjj: It's horrible isn't it. You need to hack more. [09:26] jetienne: mraleph: is that a good metric ? what do you use when you want to check memory isnt going crazy ? [09:26] chjj: yes [09:27] chjj: i think im afraid of commitment [09:27] Xano has joined the channel [09:27] chjj: ! [09:27] mraleph: jetienne: generally I am just using —trace-gc and —trace-gc-nvp. but that is not very useful on long running server [09:27] jetienne: mraleph: ok thanks [09:27] raynos: chjj: Have you thought of research/academia instead of coding. [09:28] SubStack: I like to hack up a bunch of ugly tentative code and then delete most of it [09:28] chjj: no, i like coding [09:28] chjj: i just get "coder's block" sometimes :) [09:28] SubStack: write tests! [09:28] SubStack: that is a good way to get past being stuck [09:28] jetienne: about tests, is there a good client/server framework to test ? [09:29] jetienne: something simple, which works [09:29] raynos: nodeunit is good enough [09:29] jetienne: raynos: it works in browser ? [09:29] raynos: probably. [09:29] jetienne: ok :) [09:29] raynos: You can write a tiny test wrapper if you want. [09:29] Apeiron`: Great, because I've been staring at the screen for the past 10 minutes trying to figure out how a (Handle)->NewIntance() call is corrupting memory all over the place... http://apeiron.no-ip.org:6112/Apeiron/scripttest.tgz ScriptInterface.cpp:182 is the call in question. Do have a good laugh about the code that I've undoubtedly screwed up rather horribly [09:29] mraleph: jetienne: if I need to go deeper I just instrument V8 with whatever I need. sometimes built-in profiler might be useful to track live objects. (it will become even more useful as UI revamp will be completed). [09:29] raynos: I have done. Just implement the CommonJS test api [09:29] SubStack: jetienne: browserify it! [09:30] jetienne: SubStack: simple i said :) [09:30] mraleph: Apeiron`: The requested URL /Apeiron/scripttest.tgz was not found on this server. [09:30] Apeiron`: ACTION facepalms "Today is just not my day" [09:30] chjj: gist it! [09:31] Apeiron`: Oh, http://apeiron.no-ip.org:6112/Apeiron/scriptest.tgz Brain hit the t twice out of habit [09:32] raynos: jetienne: node unit claims to work in the browser [09:32] mohit has joined the channel [09:32] SubStack: raynos: quite a lot of things work in the browser with browserify [09:33] mohit: hello. quick starter question. [09:33] raynos: SubStack: oh that's a code thing rather then a fancy word for hack it to make it work. [09:33] SubStack: yes [09:34] mohit: How do i check to see if a file is directly invoked from the command line with node, as opposed to being imported. To selectively run with options when running from command line. [09:34] SubStack: it is an automated contraption to turn node modules into browser-compatible bundles of awesome [09:34] raynos: SubStack: that is neat. But it causes issues. I tend to code to ES5 rather then ES3 in node so most of my node code breaks in old browsers [09:34] SubStack: raynos: es5 included [09:34] chjj: mohit: if (!module.parent) should work [09:34] SubStack: es5-shim that is [09:34] mraleph: Apeiron`: ot is not Persistent [09:35] Apeiron`: .. you're joking [09:35] coreb has joined the channel [09:35] Apeiron`: ... request permission to swear a lot and get banned for it [09:35] raynos: SubStack: There's an ES5 shim? It bet it extends Array.prototype though. So my code will break:) [09:36] SubStack: why would your code break? [09:36] raynos: Because I like `for..in` on Arrays and just assume no-one extends native prototypes. [09:37] mohit: chjj: thanks, i was using process.argv array, but knew there had to be a better way. Thanks! [09:37] chjj: oh, mohit, to look at the command line args you can check `process.argv` [09:37] chjj: ah [09:37] Apeiron`: raynos: For arrays, why not make sure the key is an integer and solve that problem entirely? [09:38] SubStack: raynos: erm, don't do that then? [09:38] raynos: I tend to have generic functions that use for..in over collections and either pass in objects or arrays as a "collection". I don't do any kind of checking on that. [09:38] chjj: raynos: im with you, i use for...in a lot when its safe to assume theres no inherited properties [09:38] SubStack: xs.forEach() ftw [09:39] raynos: SubStack: it's perfectly safe! I just can't use any 3rd party libraries that extend natives [09:39] SubStack: raynos: so then it's not perfectly safe at all [09:39] raynos: The main issue is generic functions that loop over either arrays or objects and don't care whether the parameter is an array or object [09:40] Spion_ has joined the channel [09:40] hackband has joined the channel [09:40] chjj: yeah, ive used for...in on arrays in certain contexts [09:40] SubStack: don't do that? [09:40] SubStack: Object.keys(obj).forEach(fn) works great [09:41] chjj: slow! [09:41] chjj: ;p [09:41] SubStack: or you can require('hashish') [09:41] SubStack: chjj: premature optimization hogwash [09:41] raynos: SubStack: the main issue is using for..in on an object but passing in an object that _happens_ to also be an array [09:41] `3rdEden: mraleph: Are there any performance hits when I dynamically generate the body of a function at runtime? Eg by doing `var parser = new Function('var bla = "stuff"')` [09:41] chjj: ah, premature optimization, it burns! [09:41] chjj: hehe [09:41] chjj: yeah, i know [09:41] seivan has joined the channel [09:41] raynos: `3rdEden: yes. and its also eval. it is evil unless your being very clever. [09:41] chjj: i still use for...in a lot when i dont see a reason not to [09:42] raynos: I use for in because it's shorter and nicer [09:42] chjj: yeah [09:42] chjj: definitely [09:42] raynos: It's a pain to check for an array and use a manual for loop. [09:42] `3rdEden: ACTION raynos: I just wonder V8 is optimized for it, I don't care how evil it is. [09:42] raynos: That's just annoying boilerplate code [09:42] `3rdEden: oh. irc fail [09:42] mraleph: `3rdEden: unless you allocate tons of those — no. there is basically no difference between normal functions and the ones created with Function constructor [09:43] raynos: mraleph: doesn't the fact it has to eval the code make it slower? [09:43] chjj: well, actually creating the function is slower [09:43] chjj: but after that [09:43] chjj: its fine [09:43] mraleph: raynos: Function constructor is not global eval. [09:43] raynos: mraleph: and only global eval creates overhead? [09:43] SubStack: but for...in isn't nicer at all [09:44] mraleph: raynos: yes. it's because it has this special scoping rules. [09:44] killfill has joined the channel [09:44] SubStack: it has obscure error cases [09:44] `3rdEden: mraleph: Thanks I only need to generate it once when I call the contructor of my function. So it's not called millions of times. I just want to make sure V8 doesn't ditch JIT optimisations [09:44] SubStack: and it doesn't create a new scope [09:44] mc_greeny has joined the channel [09:44] SubStack: which is really annoying if you're writing async node code [09:44] mraleph: of course you have to pay for allocation and creating function object but after that it's just like any other normal function [09:45] SubStack: so if you define a listener over a looped parameter the value will be bound to the last loop iteration instead of the present iteration value at the time of binding [09:45] chjj: if you wrap it in a function it wont [09:46] mraleph: closure creation is cheaper just because certain objects are preallocated during parse time of the whole script. [09:46] SubStack: chjj: but then why not just use forEach() from the start? [09:46] chjj: i would use forEach in that situation [09:46] chjj: absolutely [09:47] chjj: but in places where i can make assumptions about the object, or dont need an array to be iterated over in order, i might not use it [09:48] chjj: i actually dont really have strong convictions about this [09:48] chjj: just a minor preference of mine [09:48] raynos: SubStack: depends on personal preference. if you need a closure use forEach [09:48] hellp has joined the channel [09:48] SubStack: also check this, for...in peeps: [09:49] raynos: Besides most of the time I use _.each anyway. [09:49] jaket_ has joined the channel [09:49] SubStack: v8: var xs = 'abcdefg'.split(''); var t0 = Date.now(); var r = 0; for (var i = 0; i < 10000; i++) xs.forEach(function (x) { r = (r + 1) % 256 }); Date.now() - t0 [09:49] v8bot: SubStack: 31 [09:49] SubStack: v8: var xs = 'abcdefg'.split(''); var t0 = Date.now(); var r = 0; for (var i = 0; i < 10000; i++) { for (x in xs) { r = (r + 1) % 256 } }; Date.now() - t0 [09:49] v8bot: SubStack: 58 [09:49] SubStack: for...in: actually slower [09:49] SubStack: science proves it [09:49] chjj: let me pull out my old loop benchmark test [09:50] raynos: for...in is ok if your perfectly aware of the pitfalls. I wouldn't recommend it because the pitfalls are annoying [09:50] mraleph: well. iterating over Arrays with for in is actually beyond evil [09:50] chjj: i know >:D [09:50] Apeiron`: mraleph: Tried making it persistent but it doesn't appear to have helped. Same crash, same place and reason. 0x939588 and 0x939558 are the addresses of the globals map and callbacks multimap up until the call to script->Run() in ScriptInterface::load, however after that, according to the first call out of the script (Console.print()), the addresses are 0x7f7697ade9 and 0x7f7697adb9 [09:50] raynos: Using eval("for (xs in x) { ... }") is even better! [09:50] SubStack: not that I care especially about saving a few microseconds, just brought that up because somebody mentioned it earlier [09:51] SubStack: mraleph: yes that's what I'm trying to say [09:51] SubStack: so many problems [09:51] SubStack: hell I don't even use for(;;) if I can help it [09:51] chjj: one thing that actually messed me up once: if you loop over an array using its actual keys, the keys are strings, so if you do key + someString, it might concatenate or it might add [09:52] chjj: or [09:52] chjj: other way around [09:52] chjj: the key might get concatenated with a number =/ [09:53] SubStack: the index is the second parameter to the forEach callback [09:53] SubStack: if you need it [09:53] mraleph: Apeiron`: very strange. [09:53] Apeiron`: You can work around that with a clean parseInt(key)+n or a key - (-n) if you're feeling dirty [09:53] mraleph: Apeiron`: do you run it with debug version of V8? [09:53] Apeiron`: Sadly no [09:54] raynos: or +key + n [09:54] mraleph: running with debug version might help to find the cause :-) [09:54] raynos: the + operator converts to a number like that. [09:54] chjj: yeah, i go with + [09:55] Apeiron`: One quick apt-get install later.. [09:59] okuryu has joined the channel [10:00] steffkes has joined the channel [10:00] chjj: i found my loop benchmarks [10:00] chjj: https://gist.github.com/950386 [10:01] mpotra has joined the channel [10:01] markwubben has joined the channel [10:02] markwubben has joined the channel [10:03] thalll has joined the channel [10:03] mraleph: Apeiron`: frankly speaking your code looks overly complicated. for example why do you create so many Contexts? almost in every ScriptInterface's method you do Context::New [10:03] mpotra: hello. is there any chance that upon sending client.write( data ), I would receive more than one "data" event on the server (buffer truncating)? What I mean is, does every socket.write equal one "data" event ? [10:03] mraleph: that's just wasteful [10:05] nmtmason has joined the channel [10:06] Apeiron`: Because I'm obviously doing something wrong, mraleph. The idea was that the callbacks would store the handle to their context, but no other contexts were really needed. All of the main setup would be done in createContext() for the load() function to start it off and then just use Context::Callee() after when calls come in from the Javascript side [10:06] Nexxy: SubStack, where are those microseconds I asked you to save? [10:06] Ddorda has joined the channel [10:07] isaacs has joined the channel [10:08] SubStack: oh it's isaacs [10:08] isaacs: hi [10:08] Apeiron`: For instance, in the Console.bind() call, the ScriptInterface::setCallback function gets the context from Callee() and saves it with the function handle. When the function is called from C++, that handle is used [10:08] mraleph: Apeiron`: context does not have Callee method [10:09] SubStack: hey isaacs it's super annoying that when I list expresso as a devDependency and I `npm link` then npm tries to build the damn thing in ./node_modules [10:09] Apeiron`: GetCalling()*, sorry [10:09] SubStack: even though a perfectly good local copy already exists [10:09] Apeiron`: Long day >_> [10:09] SubStack: erm, *global copy [10:09] Apeiron`: Javascript mind, arguments.callee [10:10] liorkesos has joined the channel [10:10] mraleph: well GetCalling() and arguments.callee are different things [10:10] mraleph: GetCalling returns Context of the caller. [10:10] Apeiron`: I know [10:10] mraleph: Context is a whole JavaScript world. [10:10] mraleph: ok [10:10] isaacs: SubStack: that's a pretty good point. for the time being, do the cmd with --no-rebuild [10:11] liorkesos: HiYa, I'm trying to implement a basic proxy parsing some json and returning a limited set of json to the original requester. [10:11] SubStack: isaacs: npm link --no-rebuild? It still tries to build it [10:11] isaacs: really? hm. [10:11] mraleph: Apeiron`: your code looks self contained. let me try to build and run it [10:11] SubStack: oh I see why [10:11] SubStack: the npm upgrade must've nuked expresso [10:12] isaacs: oh, that could be [10:12] Apeiron`: I couldn't think of a way to store contexts in an easy way and still be able to just go scriptInterfaceInstance->call('callback name', ...) and it work fine, so I stored a persistent handle to it for every function handle and hoped for the best [10:12] SubStack: even though I was already running the v1 rc build [10:12] liorkesos: This is the basic code - http://pastebin.com/fB5taCKL [10:12] isaacs: SubStack: was express linked in the first place? [10:12] isaacs: or is it bundled locally? [10:12] Apeiron`: Yeah, output will be very, very ugly with all the pn %p %p everywhere while I was trying to find where the memory was going wrong [10:13] liorkesos: trying to do a get on that url and parse the contents. [10:13] SubStack: isaacs: the expresso binary still works but I can't require('expresso') after the upgrade [10:13] SubStack: could just be some silly unimportant graceful upgrade issue [10:13] isaacs: SubStack: yah. install locally for require(). (or link) [10:13] ditesh|cassini has joined the channel [10:14] nickbaugh: stagas: yo [10:14] isaacs: 'nite [10:14] nickbaugh: stagas: its niftylettuce [10:14] nickbaugh: isaacs: \o [10:14] Apeiron`: Moving the hookGlobal_Name() call before the addGlobal("Console.x", ...) call causes everything to work just fine, but the way it is now causes memory to go terribly wrong. I've no idea what is up with it [10:14] etaty has joined the channel [10:14] seivan has joined the channel [10:15] mraleph: so it crashed with assetion failure [10:15] Apeiron`: Because it's trying to use an incorrect memory address as an std:multimap instance [10:15] mraleph: no [10:16] Apeiron`: That's where it does for me [10:16] mraleph: because args.This() is something wrong [10:16] Apeiron`: It is? O_o [10:17] mraleph: hmm [10:17] mraleph: no it is correct [10:18] mraleph: just a sec I need to rebuild my libv8_g. it is out of sync with sources. [10:18] mraleph: so I can't debug properly :-) [10:18] mraleph: I don't really use this laptop for work [10:19] rummik has joined the channel [10:20] mraleph: ah. probably the internal field is not set [10:20] mraleph: it is undefined [10:21] Apeiron`: Er what? How is that even possible? O_o [10:22] mikl_ has joined the channel [10:22] Ned_ has joined the channel [10:23] mraleph: dunno [10:23] mraleph: well your setField might fail to find the global [10:23] Prism has joined the channel [10:25] Apeiron`: Seems to not be the case, though [10:25] mraleph: Apeiron`: btw. did you convert siGlobalType::o to Persistent as well? [10:26] Apeiron`: I had at first but it didn't solve it either [10:26] djcoin has joined the channel [10:26] Apeiron`: Not sure how I managed to undo that, but it appears I did [10:28] jbpros has joined the channel [10:28] Apeiron`: Just did that, no avail [10:30] Apeiron`: Updated tgz with the change [10:32] liorkesos has left the channel [10:40] m64253 has joined the channel [10:40] eb4890 has joined the channel [10:42] TomY has joined the channel [10:47] mraleph: Apeiron`: so the internal field is indeed undefined [10:47] Apeiron`: It is apparently getting the internal value from args.This() just fine, mraleph. [10:48] Apeiron`: On my end.. it's right O_o At least for the .print call [10:48] Bwen has joined the channel [10:49] Apeiron`: No I take that back, you're right [10:49] mraleph: Apeiron`: my guess would be you overwrite Console with new object somewhere. [10:50] saschagehlich: `3rdEden: ping [10:50] raynos has left the channel [10:51] Apeiron`: Worse than that. In Console::print, c = 0x7fc1a324e091, where it should be 0x1c0faf0 >_< [10:51] mraleph: Apeiron`: but I can't grok where… because according to some debug printf's you overwrite globals['Console'] in several places. [10:51] mraleph: Apeiron`: that's probably address of undefined value [10:52] mraleph: Apeiron`: if you were using debug v8 it would just catch that. [10:52] chjj: does npm publish ignore .git by default? [10:52] Apeiron`: That field is the last thing that's set, so no amount of overwriting from addGlobal should be a problem [10:52] mraleph: Apeiron`: so my guess would be that your globals mapping and reall globals attached to template come out of sync somewhere [10:53] mraleph: so you set field on object from globals but from JS you use some different object [10:55] ajnasz has joined the channel [10:55] `3rdEden: saschagehlich: pong [10:56] saschagehlich: `3rdEden: do you know somebody who could translate filsh.net from german to dutch? [10:56] TomY has joined the channel [10:56] `3rdEden: Google translate :D? [10:56] saschagehlich: lol. :P [10:56] mraleph: Apeiron`: that's all I can say. I recommend just rewriting the whole thing from scratch or using something like v8-juice [10:56] nmtmason has joined the channel [10:57] `3rdEden: Well, when we need translations we hire people from a translation company. But what you could also try to do is have it translated by `amazon turk` [11:01] V1 has joined the channel [11:01] V1: grrr internet :@ [11:01] boghog: what is it with github that makes my browser so slow I can't even use mouse gestures :s [11:01] saschagehlich: V1: yea, we have services like those here as well [11:02] boghog: ACTION tries with chrome [11:02] killfill has joined the channel [11:02] no-gooder has joined the channel [11:03] Country has joined the channel [11:05] m00p has joined the channel [11:09] Apeiron`: Yeah >_> Probably redo it tomorrow [11:10] Wizek has joined the channel [11:11] Wizek has joined the channel [11:12] Apeiron`: I suppose I successfully found one way NOT to do what I was trying to do. [11:14] Wizek has joined the channel [11:15] Wizek has joined the channel [11:16] DennisRasmussen has joined the channel [11:16] stagas has joined the channel [11:17] Wizek_ has joined the channel [11:18] Wizek has joined the channel [11:18] kawaz_air has joined the channel [11:19] Wizek has joined the channel [11:19] Wizek has joined the channel [11:19] jamescarr__ has joined the channel [11:20] pyrotechnick2 has joined the channel [11:22] k1ttty has joined the channel [11:22] m64253 has joined the channel [11:24] Wizek has joined the channel [11:25] Wizek has joined the channel [11:34] superjudge has joined the channel [11:35] FireFly has joined the channel [11:40] TomY has joined the channel [11:42] s1985 has joined the channel [11:43] s1985 has left the channel [11:46] jamescarr__ has joined the channel [11:48] fairwinds has joined the channel [11:52] V1: saschagehlich: I would just suggest just going with a professional service as there is nothing worse than grammer / spelling mistakes for Terms of Agreement :p [11:52] saschagehlich: my ToS will stay in german i think [11:52] neebz has joined the channel [11:53] V1: O so you want a half translated site? [11:53] saschagehlich: yes [11:53] saschagehlich: I know that sounds like a big mistake [11:53] V1: ._. fully translated == more google spam :D [11:53] V1: atleast run in through a google translation [11:54] V1: and add a notice that this has automagically been translated [11:54] saschagehlich: but that's the best solution for a website like this (in view of legal difficulties) [11:54] V1: with a reference to the origional content [11:55] saschagehlich: but I will to my lawyer about that issue again... [11:55] V1: yup [11:56] V1: brb got to make some balloon animals for my kiddo [11:57] V1: yes.. I'm a man of many tallents ;) [11:57] boghog: :o [12:00] saschagehlich: ACTION will definitely bring some balloons to nodecamp. [12:01] V1: lol [12:01] Casperin has joined the channel [12:02] Casperin: I just installed nodejs and npm on my arch linux. But npm doesn't seem to install programs. It just adds the programs to a folder… I can't find anything on google about it, so I'm not sure what to do =/ [12:02] a|i has joined the channel [12:03] V1: http://yfrog.com/h24wrehnj ^_^ [12:04] Casperin: it's… an option :P [12:07] Muon has joined the channel [12:07] Muon has joined the channel [12:08] Ned_ has joined the channel [12:09] Casperin: hmm "npm ls" -> "npm WARN node-uuid 1.1 Unmet dependency in /home/g/npm" [12:12] kuya has joined the channel [12:15] SubStack: Casperin: npm now installs locally by default [12:15] SubStack: and search is the new ls [12:15] SubStack: and you can do a global install with -g [12:17] a|i: any libs for mixing node and backbone, other than capsule (https://github.com/andyet/capsule) ? [12:17] Casperin: so "npm install express -g" ? [12:18] pyrotechnick2 has left the channel [12:19] V1: yes [12:20] Casperin: worked :) … except jade isn't [12:20] Casperin: doesn't* [12:20] V1: npm install jade -g [12:20] V1: :D? [12:21] Casperin: haha yeah, I did that [12:21] Casperin: well… sudo npm install jade -g [12:21] Casperin: it's installed I think.. but when I hit an express project with a browser, it tells me it can't find jade [12:23] V1: thats, odd [12:25] V1|AFK has joined the channel [12:25] Casperin: yeh… there's a folder in .npm/ called jade, and it "jade —help" returns what it's supposed to [12:25] V1|AFK: -_- awfull internet connection [12:25] temp02 has joined the channel [12:25] fangel has joined the channel [12:25] chapel: stagas: did you take down your demo of maga? [12:26] V1: i think you got to poke isaascs for that Casperin [12:26] maushu has joined the channel [12:26] Casperin: no, I think it's my installing and uninstalling that has messed with something [12:30] CarlosEDP has joined the channel [12:31] coreb: with express.js, I do app.set('key', 'value'), but how do I read it later? [12:33] V1: app.get('key') :D [12:35] coreb: that's what I tried [12:36] pdelgallego has joined the channel [12:36] coreb: but that has to do with get requests, I think [12:40] moshe has joined the channel [12:42] coreb: app.settings['key'] was the answer [12:42] stride: yeah, app.get is for the router [12:42] coreb: (after reading some source) [12:42] stride: I tried that too when I first started using express :) [12:43] coreb: it's confusing, set/get should be related [12:44] lmatos has joined the channel [12:46] kriszyp has joined the channel [12:47] neebz: can anyone tell me in layman terms, what's the concept of 'middleware' ? [12:48] neebz: they seem like a set of libraries ..aren't they? [12:48] Bwen: its a ware in the middle [12:48] lmatos: neebz: that's what I think :/ I'm a new node user though. [12:48] neebz: lmatos: it seems a little bit more complex than that [12:49] neebz: Bwen: seriously? :P [12:49] stride: in the context of connect? you have a request and a response, they pass through modules that provide a comḿon interface, a response is build and sent [12:49] perlmonkey2 has joined the channel [12:49] neebz: in the context of express ? [12:49] stride: express uses connect [12:50] neebz: how is the sequence of those modules decided? [12:50] neebz: and who calls these modules? [12:50] stride: they are executed in the order they are added to the app I believe [12:51] neebz: how are they added to the app :P ? [12:51] neebz: by using simple require() ? [12:51] stride: hm. did that npm 0.x -> 1.0 "cleanup" just delete all installed modules [12:52] openpercept has joined the channel [12:52] stride: neebz: app.use(express.foo) for the built-in middleware or app.use(require(...)); for your own stuff, yeah [12:59] markstory has joined the channel [13:00] boaz has joined the channel [13:08] Muon: v8bot: require.paths [13:08] v8bot: Muon: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [13:08] Muon: v8: require.paths [13:08] v8bot: Muon: ReferenceError: require is not defined [13:08] Muon: hrm [13:09] Muon: updated npm to 1.0 [13:09] Muon: but npm link doesn't link to a dir that node looks in [13:09] V1: require.paths is a node thing.. [13:09] V1: it's not part of v8 [13:09] Muon: I know [13:10] Muon: I was just hoping it was a node bot [13:10] Muon: I've got [13:10] Muon: > require.paths [13:10] Muon: [ '/home/electro/.node_modules', '/home/electro/.node_libraries', '/home/electro/opt/lib/node' ] [13:11] Muon: npm link puts stuff in ~/opt/lib/node_modules [13:19] ArtistConk3 has joined the channel [13:19] ArtistConk1 has joined the channel [13:22] erichynds has joined the channel [13:27] hellp has joined the channel [13:27] calvernaz has joined the channel [13:29] Charuru has joined the channel [13:30] calvernaz has left the channel [13:31] coreb: with express and jade, when I pass a locals param string with unicode characters, they're not rendered correctly - any hints? [13:31] marlun: If I had a rc of npm 1.0 and want to update to the latest release should I still run the shell script? [13:33] mike5w3c has joined the channel [13:33] coreb: solved, it had to do with the js file's encoding [13:35] EyePulp has joined the channel [13:35] Guest5875 has joined the channel [13:39] timmywil has joined the channel [13:39] perlmonkey2 has joined the channel [13:44] tmedema has joined the channel [13:44] tmedema: Do any of the HTML5 runtimes for both jPlayer (jplayer.org/latest/demo-01) and mediaElement (mediaelementjs.com) work for you folks on Chromium 10.0.648.205 Ubuntu 10.10? [13:48] seyz has joined the channel [13:49] tanepiper has joined the channel [13:50] erichynds has left the channel [13:53] pyrotechnick2 has joined the channel [13:53] pyrotechnick2 has joined the channel [13:54] killfill has joined the channel [13:55] pyrotechnick2 has left the channel [13:55] karboh has joined the channel [13:56] pyrotechnick2 has joined the channel [13:58] seyz: with expressjs, is there an other thing to do to serve static file like a CSS ? (I replaced the staticProvider by static) [14:00] pyrotechnick2: should be working seyz, want to http://gist.github.com your code for me? [14:01] seyz: pyrotechnick2, it works, I did an other error sorry [14:01] pyrotechnick2: sweet! [14:01] seyz: __dirname was "config" because my file is in the config directory :-) [14:01] seyz: thanks pyrotechnick2 ;) [14:02] pyrotechnick2: u might want process.cwd() [14:02] pandeiro has joined the channel [14:02] zentoooo has joined the channel [14:03] seyz: pyrotechnick2, yes ! thanks for the tips [14:05] temp01 has joined the channel [14:07] Ddorda: Hey guys, i am trying to filter json for a specific values, any ideas how i can do so? [14:07] unomi has joined the channel [14:08] coreb: with express, when there's an unhandled exception, it tears the whole process down - how can that be avoided? [14:10] max_dev has joined the channel [14:13] bradleymeck has joined the channel [14:14] marcello3d has joined the channel [14:15] alek_br has joined the channel [14:16] chjj: coreb [14:16] chjj: process.on('uncaughtException', ...) [14:19] davidcoallier has joined the channel [14:20] mynyml has joined the channel [14:20] mynyml_ has joined the channel [14:21] Prism has joined the channel [14:26] Mrfloyd has joined the channel [14:26] Ddorda: i am looking for JSON lib on nodejs documentation, any ideas where i can find it? [14:27] SubStack: Ddorda: it's part of v8 [14:27] SubStack: v8: JSON.stringify([1,2,3]) [14:27] v8bot: SubStack: "[1,2,3]" [14:27] SubStack: v8: JSON.parse('{"a":1,"b":2,"c":3}') [14:27] v8bot: SubStack: {a:1,b:2,c:3} [14:27] TomY has joined the channel [14:28] pyrotechnick2: it also takes options [14:28] Ddorda: SubStack: and if i want to filter something from the json? [14:28] SubStack: oh that stuff [14:28] SubStack: well you can either figure out how to do it with the JSON interface or you can use traverse [14:28] Ddorda: i saw only jquery options, and i really don't want to use jquery for that :) [14:29] coreb: chjj: thanks [14:29] SubStack: Ddorda: what are you filtering out? [14:29] jonaslund: anyone doing ludum dare ? [14:29] dguttman has joined the channel [14:30] pyrotechnick2: JSON.stringify(object, filter(key, value), formatter) [14:30] SubStack: there it is [14:30] sveimac has joined the channel [14:30] pyrotechnick2: formatter can be a string of number, if it's a number it's that number of spaces [14:30] pyrotechnick2: filter if returns a null omits the key [14:30] perlmonkey2 has joined the channel [14:31] SubStack: also this: > var traverse = require('traverse'); traverse({ a : 1, b : function () {}, c : 3 }).map(function (x) { if (typeof x === 'function') this.remove() }) [14:31] stonebranch has joined the channel [14:32] SubStack: useful in browsers where stringify might be a shim and not have all the options [14:32] industrial has joined the channel [14:34] pHcF has joined the channel [14:40] marcello3d: v8npm: search date format [14:42] Sephi-Chan has joined the channel [14:42] Sephi-Chan: Hello [14:42] marcello3d: how does this not exist already. [14:44] sub_pop has joined the channel [14:45] jtsnow has joined the channel [14:46] Sephi-Chan: I'm writing an API with NodeJS and i'm looking for a way to dispatch incoming requests by path [14:46] Sephi-Chan: What are know tools to achieve that ? [14:46] Sephi-Chan: (HTTP API*) [14:48] fson: Sephi-Chan: how about http://expressjs.com/ [14:48] justinTNT has joined the channel [14:49] SubStack: marcello3d: plenty of stuff on `npm search date` including dateformat [14:50] SubStack: or I usually just use strftime [14:50] blueadept has joined the channel [14:50] Sephi-Chan: fson: The router is cool ! Thanks ! [14:51] marcello3d: yea, dateformat looks alright, but not the implementation I would expect :) [14:51] marcello3d: wonder how fast it is [14:52] Opaque has joined the channel [14:52] pyrotechnick2: Sephi-Chan: FYI the fundamental node.js API express utilises to route the requests is request.url [14:52] MaSch: hi. I'm trying to write a reverse proxy in node. It works great but cloud9 doesn't run behind it. i think thats a issue with websockets. How would you forward/proxy a websocket connection? [14:52] pyrotechnick2: Sephi-Chan: http://nodejs.org/docs/v0.4.7/api/http.html#request.url [14:53] pyrotechnick2: but if you're trying to get things done instead of learn the ins and outs then you're better off with something like express, it will solve many other problems for you [14:54] Sephi-Chan: pyrotechnick2: Yep i used that but it quickly became a pain to maintain since i want "sexy" URLs [14:54] justinTNT: masch: what do you mean cloud9 doesnt run behind it? [14:54] temp01 has joined the channel [14:55] mendel_ has joined the channel [14:55] marcello3d: justinTNT: he probably means when trying to proxy cloud9, it doesn't work [14:55] MaSch: justinTNT: i use a node process to forward http request to a specific host:port depending on their hostname [14:56] justinTNT: that process sits on cloud9? what's the failure mode? [14:57] MaSch: i start a cloud9 instance, listening on port X and start that "proxy" listening on port 80. For "normal" http request everything works fine but cloud9 just answers me this:" Your browser is not supported by ajax.org. Please upgrade your browser to one of these modern browsers." [14:57] raeb has joined the channel [14:58] MaSch: in the log of cloud9 there is no "connection from blabla" so i think the problem is that i don't forward the websocket. [15:00] mynyml has joined the channel [15:00] MaSch: so the solution would be to include a socket.io server AND client in the proxy and pipe everything that appears at one of them to the other one [15:01] CIA-72: node: 03Ben Noordhuis 07v0.4 * r82bc25d 10/ wscript : [15:01] CIA-72: node: Remove oprofile flags in wscript. [15:01] CIA-72: node: V8 3.1.5 (commit 550f73a) dropped oprofile support so don't pass [15:01] CIA-72: node: prof=oprofile to scons. [15:01] CIA-72: node: See http://codereview.chromium.org/6474037/ [15:02] CIA-72: node: Fixes #998. - http://bit.ly/lmXnbz [15:03] seivan has joined the channel [15:05] Bj_o_rn has joined the channel [15:05] justinTNT: masch, do you rewrite the headers? [15:05] MaSch: no, i just forward them [15:05] loungin has joined the channel [15:06] MaSch: in fact i just do a http.request an set url = request.url and headers = req.headers [15:06] confoocious has joined the channel [15:07] vdemedes has joined the channel [15:07] vdemedes: Hello! [15:07] vdemedes: I dont understand the situation about MongoDB + Node.js [15:07] vdemedes: Are there any good and fast drivers? [15:07] stagas: chapel: it's up again [15:07] devdazed has joined the channel [15:08] devdazed has left the channel [15:08] vdemedes: I'm running with Mongoose(which is based on node-mongodb-native) and I get maximum 800 RPS WITH memcached [15:08] vdemedes: If I turn off memcached it gets very slow, like 100 RPS [15:08] vdemedes: without workers [15:08] vdemedes: 800 RPS = memcached + cluster [15:09] vdemedes: Who uses Mongodb + Node.js and can tell me about his performance? [15:11] chapel: cool stagas [15:11] chapel: pyrotechnick2: that is for you :) [15:12] pyrotechnick2: what is [15:12] chapel: stagas example is up [15:12] pyrotechnick2: ahh sick [15:12] pyrotechnick2: link me [15:12] stagas: http://stagas.com:8555/ [15:13] chapel: did it crash? [15:14] chjj: ahh, i just wrote a synchronous file read stream, so ugly [15:14] marcello3d: vdemedes: I'm working on a mongodb driver [15:14] marcello3d: vdemedes: but I haven't done any performance measurements, because I have nothing to really compare to [15:14] vdemedes: marcello3d: it is based on mongodb-native? [15:14] marcello3d: only small parts of it [15:14] marcello3d: most if it is rewritten from scratch [15:14] marcello3d: eventually probably all of it will be [15:14] marcello3d: github.com/marcello3d/node-mongolian [15:14] vdemedes: its too bad, I need to replace Mongoose [15:15] Sephi-Chan: Is there a maintened redis client for Node ? All i tried are not in the npm registry :( [15:15] vdemedes: and all my app is in Mongoose models... [15:15] marcello3d: ah, that won't help you then (unless someone ports mongoose to it ;)) [15:15] marcello3d: Sephi-Chan: look here? http://2.no.de/#tag_redis [15:16] Sephi-Chan: Nop only on http://search.npmjs.org/ [15:16] mynyml_ has joined the channel [15:16] marcello3d: Sephi-Chan: it was a suggestion :) [15:16] Ddorda has joined the channel [15:17] Sephi-Chan: Ok but for instance de Redis lib (#28 on the list you gave) cannot be install with NPM [15:17] Sephi-Chan: I issue 404 errors when i npm install redis_node [15:17] Sephi-Chan: node_redis* [15:17] marcello3d: that's gotta be a npm bug [15:18] stagas: chapel: line dropped and I didn't had a nohup [15:18] marcello3d: everything on npm is stored on the npm server [15:18] marcello3d: so it shouldn't matter who wrote the project [15:18] Sephi-Chan: with just npm install redis it worked but i asked to be sure that i'm not wrong [15:18] marcello3d: it looks like it's redis-node, not redis_node [15:18] marcello3d: (for the other one) [15:18] Sephi-Chan: How do you know ? :/ [15:19] marcello3d: well, the link I just gave you says redis-node is the package name [15:19] vdemedes: yeah, awesome [15:19] Sephi-Chan: (or, where did you read that, it's more exact :p) [15:19] vdemedes: Mongoose, without memcached, on Express = 228 RPS [15:19] marcello3d: here: http://2.no.de/#tag_redis [15:19] killfill has joined the channel [15:19] vdemedes: ab -n 1000 -c 10 [15:19] marcello3d: a few lines down [15:19] vdemedes: ejs templates [15:19] Sephi-Chan: Yep the #162 is redis-node [15:20] marcello3d: sephi: is that link not jumping you down the page to the redis section? [15:20] marcello3d: what web browser? [15:20] mikl_ has joined the channel [15:20] Sephi-Chan: Chrome 11/OS X [15:20] marcello3d: vdemedes: memcached + mongodb is pointless, no? the 10gen guys suggest using mongodb as an alternative to memcache [15:20] Sephi-Chan: Not any bump ^^ [15:20] Sephi-Chan: jump* [15:20] bojicas has joined the channel [15:20] marcello3d: Sephi-Chan: using the same and it works for me, in any event, do command F `redis` [15:20] vdemedes: marcello3d: alternative to memcached? You are missing something. Memcached = caching software, MongoDB = Database [15:21] zkirill has joined the channel [15:21] marcello3d: Sephi-Chan: or click 'redis' on the tag list [15:21] marcello3d: vdemedes: am I? :) [15:21] Sephi-Chan: Yep i got it, i believed you where talking about the redis package (in line 28) [15:21] vdemedes: marcello3d: yeah [15:21] Sephi-Chan: But there are other mentions to redis ;) [15:21] jacobolus has joined the channel [15:21] TomY has joined the channel [15:21] Sephi-Chan: Thanks for this tool (2.no.de), it's cool ! [15:22] marcello3d: Sephi-Chan: :) [15:22] marcello3d: vdemedes: you can use mongodb as a cache [15:22] vdemedes: marcello3d: I'm sure that no [15:22] marcello3d: http://milancermak.posterous.com/benchmarking-tornados-sessions-0 [15:22] vdemedes: ok, lets think that you are right [15:22] marcello3d: they compare mongodb and memcached there [15:22] __tosh has joined the channel [15:23] jetienne has joined the channel [15:23] vdemedes: marcello3d: but why memcached increased RPS by 600, when caching mongodb objects? [15:23] marcello3d: bad mongodb indexes? [15:23] vdemedes: how can I use mongodb database for replacing caching solution(memcached) [15:23] vdemedes: no no no [15:23] vdemedes: they dont compare memcached and mongodb [15:23] vdemedes: they compare them as Storage! [15:24] vdemedes: storage for sessions [15:24] marcello3d: yes? [15:24] somebody_ has joined the channel [15:24] vikstrous has joined the channel [15:24] pyrony has joined the channel [15:24] nzfish has joined the channel [15:24] marcello3d: it's fine to use memcached if you prefer it :) [15:24] vdemedes: yes [15:25] vdemedes: so no fast library for Mongodb [15:25] vdemedes: very bad [15:25] vdemedes: what about Redis? [15:25] vdemedes: redis-node? [15:25] marcello3d: http://www.quora.com/Is-MongoDB-a-good-replacement-for-Memcached [15:25] bojicas has joined the channel [15:26] chjj: people have been making redis clones for node [15:26] vikstrous: wouldn't one use both mongodb and memcached together? [15:26] chjj: i think TJ just made one [15:27] chjj: im not sure if they come with actual bindings [15:27] gonsfx has joined the channel [15:28] marcello3d: afk [15:29] kriszyp has joined the channel [15:29] vdemedes: 1133 RPS with memcached [15:31] coreb: and with alternatives? [15:32] Ddorda` has joined the channel [15:32] Ddorda_ has joined the channel [15:35] jakehow has joined the channel [15:35] perlmonkey2 has joined the channel [15:35] edude03 has joined the channel [15:37] matjas has joined the channel [15:37] vdemedes: coreb: ? [15:38] themiddleman_itv has joined the channel [15:50] fangel has joined the channel [15:51] newy_ has joined the channel [15:52] mendel__ has joined the channel [15:54] charlesjolley- has joined the channel [15:55] mdaisuke has joined the channel [15:57] max_dev has joined the channel [16:01] kami has joined the channel [16:06] bene1 has joined the channel [16:07] m00p has joined the channel [16:07] mike5w3c has joined the channel [16:08] mnbvasd: v8bot: var sp = /^([^\n]+)\n(.*)$/mg;var t = "a\nb\nc\nd\ne\n"; sp(t) [16:08] v8bot: mnbvasd: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [16:08] mnbvasd: v8: var sp = /^([^\n]+)\n(.*)$/mg;var t = "a\nb\nc\nd\ne\n"; sp(t) [16:08] v8bot: mnbvasd: ["a\nb","a","b"] [16:09] mnbvasd: anyone got any JS regex foo which will give me back "a","b\nc\n..... ? [16:10] webben: mnbvasd: I don't quite get what you're trying to do. [16:10] webben: extract the first character? [16:10] chjj: you want the first line and then every line beyond that in a separate capture? [16:10] webben: the first line? [16:10] mnbvasd: split a string on the first \n [16:11] mnbvasd: chjj: yes [16:11] chjj: str.split('\n', 2) [16:11] chjj: :) [16:11] mnbvasd: v8bot: var sp = /^([^\n]+)\n(.*)$/mg;var t = "a\nb\nc\nd\ne\n"; t.split('\n', 2) [16:11] v8bot: mnbvasd: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [16:11] mnbvasd: v8: var sp = /^([^\n]+)\n(.*)$/mg;var t = "a\nb\nc\nd\ne\n"; t.split('\n', 2) [16:11] v8bot: mnbvasd: ["a","b"] [16:11] chjj: ah [16:12] m0rganic has joined the channel [16:12] mnbvasd: chjj: doesn't quite work :-/ I've come across that problem before when I was trying to split key/value pairs with base64 encoded values [16:13] chjj: str.match(/^([^\n]+)\n([\s\S]+)/) [16:13] chjj: try something like that [16:13] mnbvasd: v8: var sp = /^([^\n]+)\n(.*)$/mg;var t = "a\nb\nc\nd\ne\n"; t.match(/^([^\n]+)\n([\s\S]+)/) [16:13] v8bot: mnbvasd: ["a\nb\nc\nd\ne\n","a","b\nc\nd\ne\n"] [16:14] mnbvasd: chjj: thanks :), that's what I'd have done in perl, dunno why I was being so silly.. [16:14] chjj: hehe [16:18] jbpros has joined the channel [16:19] dnolen has joined the channel [16:19] stonebranch has joined the channel [16:19] m0rganic has left the channel [16:22] Visualiza has joined the channel [16:23] Visualiza has left the channel [16:23] Visualiza has joined the channel [16:25] bingomanatee has joined the channel [16:25] loungin has joined the channel [16:26] Me1000 has joined the channel [16:26] Bonuspunkt: when i have ['a.txt','b.txt','c.txt'].forEach(function(file) { console.log(require('fs').readFileSync(file)); }); - whats the easiest way to do it in async? [16:27] coreb: what's the best memcached client for node.js? [16:28] Lorentz has joined the channel [16:29] Draggor: Bonuspunkt: http://nodejs.org/docs/v0.4.7/api/fs.html#fs.readFile [16:29] Bonuspunkt: Draggor yes i know but the question was about the easiest way to ensure the result of the sync will be the same as async [16:30] Draggor: Bonuspunkt: how do you mean? [16:31] Bonuspunkt: if i just replace the function with function(file) { require('fs').readFile(file, function(err,data) { console.log(data) }); } [16:31] Bonuspunkt: the order of console.log will not be a,b,c [16:32] Draggor: Ah, you want to call the next one in the callback of reading "a.txt" [16:32] Bonuspunkt: no i want to start them "parallel" and give back orderd [16:32] Draggor: I'm wondering why you need to log them in order if they're not finishing that way? [16:34] Bonuspunkt: in rl the console.log is ServerResponse.write(fileContext) [16:34] Draggor: Ahh [16:34] Draggor: So for this scenario I made a latch function [16:34] Draggor: right at the top here: https://github.com/draggor/node-ircbot/blob/master/util.js [16:34] pyrotechnick2 has joined the channel [16:35] Draggor: So your array would instead have to be functions that will do your async action but be able to take a callback which the latch supplies as each action finishes. If it's the last one done, your supplied callback will execute [16:36] Draggor: I guess you could tweak that, and say based on the order, if A is done first, write A, and be and c have to wait if they finish sooner [16:37] chjj: i just learned the hard way that .removeListener doesnt remove listeners set with .once [16:38] jbpros has joined the channel [16:38] tfe_ has joined the channel [16:38] pyrotechnick2: anyone got their lip pierced? [16:38] hasenj has joined the channel [16:38] m0rganic has joined the channel [16:39] Draggor: Bonuspunkt: that help at all? [16:39] Bonuspunkt: yeah [16:41] boogyman has joined the channel [16:42] vikstrous has left the channel [16:44] killfill has joined the channel [16:46] ako has joined the channel [16:48] jeromegn has joined the channel [16:50] context has joined the channel [16:51] vdemedes has left the channel [16:52] stagas has joined the channel [16:52] newy_ has joined the channel [16:52] gkmngrgn has joined the channel [16:54] V1 has joined the channel [16:55] eee_c has joined the channel [16:56] raynos has joined the channel [16:57] liar has joined the channel [16:57] V1|AFK has joined the channel [17:00] dmose has joined the channel [17:04] dmojoryder has joined the channel [17:05] sp3 has joined the channel [17:06] eldios has joined the channel [17:06] tyler-iphone: should i use Seq for Step? [17:06] tyler-iphone: anyone the prefered one? [17:06] tyler-iphone: s,for,or [17:06] herbySk has joined the channel [17:06] stagas: tyler-iphone: Seq [17:07] tyler-iphone: ok [17:07] hunterloftis has joined the channel [17:10] raynos: What's Seq ? [17:11] `3rdEden: async library [17:12] `3rdEden: because some people can manage their callback }) }) }) }) }) }) })'s [17:12] `3rdEden: or async control flow [17:13] raynos: I use Step for that [17:14] avalanche123 has joined the channel [17:16] brettgoulder has joined the channel [17:18] mikl has joined the channel [17:18] mikl has joined the channel [17:21] tyler-iphone: Seq is based on step [17:22] neorab has joined the channel [17:22] tyler-iphone: coffeescript plus flow control == seeexxxyyy [17:24] context has joined the channel [17:28] Schmallon has joined the channel [17:28] kersny has joined the channel [17:30] mikegerwitz: 0 [17:30] `3rdEden: 1 [17:30] mikegerwitz: Heh, oops. [17:31] jeromegn has joined the channel [17:34] pifantastic has joined the channel [17:37] tjholowaychuk has joined the channel [17:38] mjr_ has joined the channel [17:39] Sephi-Chan: How can i get post parameters with Expressjs ? [17:39] tjholowaychuk: Sephi-Chan: req.body [17:40] eb4890 has joined the channel [17:40] m64253_ has joined the channel [17:40] kmwallio has joined the channel [17:40] Sephi-Chan: It's undefined :/ [17:41] pikul has joined the channel [17:41] pyrotechnick2: do u need decoder or something for that tjholowaychuk? [17:41] tjholowaychuk: Sephi-Chan: bodyParser [17:41] tjholowaychuk: middleware [17:41] pyrotechnick2: like ur static one [17:41] tjholowaychuk: then you can POST application/json or application/x-www-form-urlencoded data [17:41] pyrotechnick2: then req.body should contain post params [17:41] brettgoulder has joined the channel [17:42] jonaslund: ACTION is making a game for ludumdare 48 #20 with html5/canvas [17:42] zkirill has joined the channel [17:42] jonaslund: damn it's fun :) [17:42] Sephi-Chan: Woot [17:43] pyrotechnick2: Sephi-Chan: work? [17:43] Sephi-Chan: Thanks tjholowaychuk and pyrotechnick2 :) [17:43] Sephi-Chan: It works with app.use(express.bodyParser()); [17:43] pyrotechnick2: tjholowaychuk's the man [17:44] pyrotechnick2: you should be so lucky to have your express questions answered by its maker himself [17:44] pyrotechnick2: now go make him proud [17:44] tjholowaychuk: ahaha [17:44] Sephi-Chan: I'm too used to Rails i tried with params first, then i dumped the request object but i can't find it ^^ [17:44] tjholowaychuk: pfft [17:44] Sephi-Chan: :) [17:44] Sephi-Chan: I use it to build a production queue server [17:44] Sephi-Chan: In order to build webgames [17:45] pyrotechnick2: sick [17:45] tjholowaychuk: Sephi-Chan: cool man. typically express tries not to assume anything (much at least), so you add to it with the middleware [17:45] pyrotechnick2: Sephi-Chan: just dont say the R word again [17:46] pyrotechnick2: or god forbid the CS words [17:47] Sephi-Chan: :p^ [17:47] `3rdEden: R is awesome [17:49] newy_ has joined the channel [17:49] markstory has joined the channel [17:49] Sephi-Chan: It can seem weird but we humans (hm… at least some of use) are able to like many things !! :p [17:50] shadow66142000 has joined the channel [17:53] tjholowaychuk: coffee-son [17:53] tjholowaychuk: wow [17:53] tjholowaychuk: lol [17:54] shadow66142000: I'm trying to install npm and needing a bit of help. When I run "curl http://npmjs.org/install.sh | sh" it returns: [17:54] shadow66142000: You need node to run this program. [17:54] shadow66142000: node --version reports: v0.1.95-6-gda93230 [17:54] shadow66142000: Please upgrade node before continuing. [17:54] shadow66142000: It failed [17:55] seyz: JSON.parse('my_json_string') returns a thing like {'foo': 'bar'} but the type is not a object but a string... is it normal ? [17:55] sstephenson: you are using a very old version of node [17:55] pyrotechnick2: tjholowaychuk: i already made coffee-son for courier lol [17:55] blkcat: shadow66142000: i'm thinking that maybe you need to install node :) [17:55] tjholowaychuk: pyrotechnick2: you guys are silly :p [17:55] vikstrous has joined the channel [17:55] chjj: seyz: no, thats not normal, are you sure its a string? [17:56] chjj: ive never seen JSON.parse spit out a string, im not sure it can even happen [17:56] shadow66142000: @blkcat when i run "node -v" it returns v0.1.95-6-gda93230 [17:56] seyz: chjj, yes I'm sure, I'm using console.log(typeof(...)); [17:56] ayo has joined the channel [17:56] sstephenson: shadow66142000: that is too old. you need node 0.4 or newer [17:57] nulled: it is easy to upgrade node [17:57] shadow66142000: @sstephenson thx not sure how I did that [17:57] nulled: downlooad the source and run like 3-4 commands [17:58] shadow66142000: @nulled cool I'l look into that now [17:58] marcello3d: if I have npm RC, can I update npm through npm? [17:58] pyrotechnick2: if you can [17:58] pyrotechnick2: tell jashkenas in #coffeescript [17:58] pyrotechnick2: he was trying to before [17:58] a2800276 has joined the channel [17:59] leandrosansilva has joined the channel [17:59] AntelopeSalad: hey tj, passing a route to next() seems to be throwing an error, was there more to it than just passing it the route name? [17:59] tjholowaychuk: AntelopeSalad: next('route') is the only string supported right now [18:00] tjholowaychuk: which literally means go to the next matching route (if any) [18:00] tjholowaychuk: but next('/user') or w/e wont work [18:00] tjholowaychuk: req.url = '/user'; next() [18:00] tjholowaychuk: will [18:00] tjholowaychuk: but [18:00] marcello3d: mmm [18:00] tjholowaychuk: yeah [18:00] marcello3d: 9th st espresso [18:00] marcello3d: ftw [18:00] AntelopeSalad: ah [18:01] AntelopeSalad: yeah i was trying to pass it the actual route [18:01] tjholowaychuk: AntelopeSalad: sorry about that lol its a bit confusing, and the api is not really ideal but we needed some way to differ route middleware from the routes themselves [18:01] tjholowaychuk: even though they are also middleware [18:01] raynos has left the channel [18:02] AntelopeSalad: using the second method throws a headers already sent error [18:03] tjh has joined the channel [18:03] timmywil has joined the channel [18:04] hellp has joined the channel [18:07] pyrotechnick2: why's node turning into python [18:07] pyrotechnick2: require is getting so fat :( [18:07] tjh: why is js turning into python :p [18:07] tjh: CS [18:08] pyrotechnick2: two very different things [18:09] marcello3d: pyrotechnick2: what do you mean? [18:09] TheLifelessOne has joined the channel [18:09] Guest50381 has joined the channel [18:10] Guest10648 has joined the channel [18:10] killfill has joined the channel [18:11] kersny has joined the channel [18:12] confoocious has joined the channel [18:12] alindeman has joined the channel [18:13] pikul has left the channel [18:13] bradleymeck has joined the channel [18:13] pyrotechnick2: i mean CS does nothing to turn node into an environment more alike pythons [18:13] pyrotechnick2: the syntax, sure [18:13] edude03 has joined the channel [18:13] pyrotechnick2: but it cant bring anything to node that JS can [18:14] pyrotechnick2: it isn't an extension to node or v8 on any native level [18:14] newy_ has joined the channel [18:14] tjh: which would be way cooler [18:14] tjh: if it was built with v8 [18:14] tjh: english is terrible to model a syntax after [18:15] pyrotechnick2: then we should go back to hex or machine code [18:15] blkcat: i honestly can't understand why people use coffeescript. but then i've always despised python, so. :) [18:15] pyrotechnick2: even hex is making machine code more english-like [18:15] tjh: pyrotechnick2: not really [18:15] pyrotechnick2: yes, really [18:15] tjh: asm doesnt really count either imo [18:16] pyrotechnick2: people hated writing 1/0 so they decided to bring some of the ENGLISH alphabet in instead [18:16] pyrotechnick2: then with ASM came words [18:16] tjh: I just dont enjoy ambiguous code [18:16] tjh: which is what CS strives for [18:16] pyrotechnick2: show me something ambiguous in coffeescript [18:17] chjj: technically hex could have used any symbols, letters of the latin alphabet were just readily available [18:18] pyrotechnick2: technically javascript could have used any tokens, english tokens were just more readily available [18:18] chjj: wouldnt call it more english-like, theres only so many words you can make with A-F ;) [18:18] chjj: thats a pretty nice strawman [18:18] pyrotechnick2: but with js they stopped halfway, only to please the java/c crowd [18:18] rommester has joined the channel [18:18] chjj: javascript != numbers [18:19] pyrotechnick2: you dont call hex more english-like than machine code? [18:19] pyrotechnick2: i beg to differ [18:19] chjj: i just dont think that concept is applicable to hex [18:19] tjh: CS might as well be applescript lol [18:19] pyrotechnick2: the human brain is wired for language whether it's english or some other human language [18:19] davidcoallier has joined the channel [18:19] pyrotechnick2: there's nothing wrong with applescript [18:19] pyrotechnick2: there's also nothing wrong with VB [18:20] pyrotechnick2: except the pile of shit it executes on [18:20] tjh: ew [18:20] indutny has joined the channel [18:20] onre_ has joined the channel [18:20] pyrotechnick2: it's time to let go of the braces, it's a natural evolution [18:20] TomY has joined the channel [18:21] pyrotechnick2: anyway have you guys seen the latest ecma proposals? [18:21] chjj: ive heard things here and there [18:21] tjh: with brendan involved i dont really want to know [18:21] pyrotechnick2: you're hating on what's going to become the language you write you may as well accept it now and save yourselves the pain later [18:21] pyrotechnick2: well you can bury your head in the sand if you want [18:21] chjj: ive actually considered that [18:21] pyrotechnick2: it's not going to make it go away [18:21] chjj: maybe ryan will just end up forking v8 ;) [18:22] nek has joined the channel [18:22] tjh: the day js looks like CS [18:22] tjh: is the day I stop writing js [18:22] tjh: or compile js to CS [18:22] tjh: haha [18:22] bradleymeck: pyrotechnick2 there are tons, which are you looking at? [18:22] pyrotechnick2: the one with significant whitespace and brackletless constructs [18:23] marcello3d: compiling javascript to counterstrike?? [18:23] pyrotechnick2: apparently [18:23] pyrotechnick2: CS:S is the new JSVM [18:23] pyrotechnick2: we should meet eachother halfway and use lua [18:23] chjj: i love lua [18:23] pyrotechnick2: then it could actually run in CS:S [18:23] marcello3d: tjh: your coffeescript/rails github rant was a little amusing [18:23] marcello3d: tjh: and slightly unprofessional, if I can be blunt :) [18:24] tjh: marcello3d: haha yeah totally [18:24] tjh: not professional at all [18:24] chjj: coffeescript, rails and github in a rant, does sound amusing [18:24] pyrotechnick2: https://github.com/rails/rails/tree/9f09aeb8273177fc2d09ebdafcc76ee8eb56fe33 [18:24] chjj: its like github, except in a rant [18:24] pyrotechnick2: enjoy -> https://github.com/rails/rails/tree/9f09aeb8273177fc2d09ebdafcc76ee8eb56fe33 [18:24] pyrotechnick2: let it be known that i posted the first meme [18:25] pyrotechnick2: i spawned githubchan [18:25] marcello3d: pyrotechnick2: what are we looking at there? [18:25] tjh: the pictures are so funny [18:25] `3rdEden: I couldn't care less [18:25] marcello3d: why does Rails have a \ in front? [18:25] marcello3d: pyrotechnick2: that link just takes me to a code list/readme [18:25] pyrotechnick2: click the commit [18:25] pyrotechnick2: look at the comments for the commit [18:25] pyrotechnick2: i dunno why but i cant link u straight there [18:26] pyrotechnick2: thats what it says in my browser as the address [18:26] marcello3d: https://github.com/rails/rails/commit/9f09aeb8273177fc2d09ebdafcc76ee8eb56fe33 [18:26] pyrotechnick2: it looks like theyve ajaxed up the commit threads for some reason [18:26] marcello3d: what browser are you using? [18:26] marcello3d: they're using pjax [18:26] pyrotechnick2: chromium [18:26] bradleymeck: pyrotechnick2 there was a talk about function expression syntax at AustinJS by one of the ecma guys and they determined it would be a syntax conflict so its not going into ecma, but ff is keeping it [18:26] marcello3d: if you have firefox/chrome it should actually change the URL even though they're using ajax [18:26] tjh: bradleymeck: which syntax is that? [18:27] pyrotechnick2: maybe bugged chromium nightly or something man, it happens, i apologise [18:27] tilgovi has joined the channel [18:27] marcello3d: dunno why it wouldn't work on chromium [18:27] marcello3d: ah [18:27] tmzt has joined the channel [18:27] pyrotechnick2: chrome/chromium is getting progressively more and more unstable [18:27] marcello3d: pjax is pretty sweet. would be nice to get express integration [18:27] BrianRice-mb has joined the channel [18:27] bradleymeck: tjh https://developer.mozilla.org/en/new_in_javascript_1.8 expression closure [18:28] chjj: wow tj, you get pretty harsh in your comments here :) [18:28] tjh: bradleymeck: oh that [18:28] bradleymeck: its changing to #(x,...y){ x * sum(y) } //notice the lack of return statement, last statement's return value is used instead [18:28] tjh: lol [18:29] tjh: just a lame attempt for js to look more like the others [18:29] bradleymeck: return value in js for a statement might surprise you though [18:29] pyrotechnick2: so tell me tjh [18:29] pyrotechnick2: tell me about these ambiguities CS strives for [18:29] pyrotechnick2: we'll gladly tackle these issues for you [18:30] jtsnow has joined the channel [18:31] chjj: i would actually be ok with js staying the way it is, ...or just with no overambitious changes [18:31] Bwen has joined the channel [18:31] MaSch: Lehrer zur Schülerin: Warum warst du denn gestern nicht in der Schule? [18:31] MaSch: Schülerin: Ich konnte nicht kommen. *schnief* Mein Pferd ist gestorben *wein* [18:31] MaSch: Lehrer: Und hast du keine Fahrrad? [18:31] saschagehlich has joined the channel [18:31] MaSch: ohh damn, sry wrong channel >.< [18:32] marcello3d: a likely story [18:32] ako has joined the channel [18:32] tjh: chjj: yeah, they should be fixing real problems like typeof null, not lame syntax stuff [18:32] marcello3d: bradleymeck: that link seems to say otherwise? [18:32] tjh: the syntax is great, very explicit and clear [18:32] marcello3d: bradleymeck: I'm seeing function(x) x*x [18:32] chjj: yeah, just polish it a little bit [18:33] chjj: and im ok with it being a curly brace language [18:33] tjh: yeah [18:33] chjj: but if they add anything that forces bloat into v8 [18:33] chjj: ill be mad [18:33] tjh: indentation is fine, i dont mind it but it gets ugly with nested stuff [18:33] marcello3d: ACTION loans chjj and tjh some vowels [18:34] Druide_ has joined the channel [18:35] cloudhead has joined the channel [18:35] onre_ has joined the channel [18:36] coreb has joined the channel [18:36] pyrotechnick2: so... [18:36] pyrotechnick2: nothing? [18:39] jeremyselier has joined the channel [18:39] sp3 has joined the channel [18:39] ChrisBuchholz: hey guys. i cannot get Forever installed on my ubuntu server. what other deployments tool is great? [18:39] bradleymeck: marcello3d he was asking about the firefox extension syntax not the function syntax shortcut i thought [18:40] bradleymeck: es-discuss has function syntax stuff if you wanna search it [18:40] mrcllo3d: ACTION takes his vowels back! [18:40] marcello3d: bradleymeck: gotcha [18:41] halfhalo: ACTION noms on some a's [18:41] cronopio has joined the channel [18:42] heavysixer has joined the channel [18:42] brownies has joined the channel [18:43] jbpros has joined the channel [18:43] zkirill has joined the channel [18:44] onre_ has joined the channel [18:46] onre_ has joined the channel [18:46] GasbaKid has joined the channel [18:46] ChrisBuchholz: hey guys. i cannot get Forever installed on my ubuntu server. what other node deployments tools are great? [18:47] insin has joined the channel [18:47] hlfhlo: ACTION advocates cloudfoundry for everything but websockets [18:47] `3rdEden: Why don't you just debug the error? [18:47] harth has joined the channel [18:47] karboh has joined the channel [18:47] pyrotechnick2: ChrisBuchholz: how new is your ubuntu? [18:48] xiagox has joined the channel [18:49] ChrisBuchholz: pyrotechnick2: 10.04.1. but with very new npm and node.js (almost newest) [18:49] pyrotechnick2: you might want to check out upstart [18:49] pyrotechnick2: we've used it in production before with success [18:50] fr0stbyte has joined the channel [18:50] pyrotechnick2: they are replacing it next year sometime for one reason or another but we didn't have any issues with it [18:50] tjh: pyrotechnick2: how's the mmo going? [18:50] tjh: you guys are using three.js right? [18:51] pyrotechnick2: yes we are [18:51] pyrotechnick2: we've toned it down a little, going for a more easily-acheived facebook-friendly game [18:51] wilken has joined the channel [18:51] pyrotechnick2: we still want to do everything we set out to but we have gotten a bit more realistic about it all [18:51] onre_ has joined the channel [18:52] pyrotechnick2: plus we are getting a better idea of what people will actually appreciate [18:52] tjh: the facebook game scene, blows my mind lol [18:52] tjh: haven't played a single one but sounds like they can be damn successful [18:52] ChrisBuchholz: pyrotechnick2: i see. thanks. [18:53] pyrotechnick2: i've always been a fan of ngmoco [18:53] sp3 has joined the channel [18:53] pyrotechnick2: and they were at the nodejs meetup in SF on friday and they said some really inspiring things about node and stuff [18:53] tjh: build webgl grim fandango [18:54] pyrotechnick2: he also clearly asserted that "social" games are alot more successful than multiplayer "fps" type games [18:54] tjh: ah [18:54] pyrotechnick2: now i'm not one for selling out [18:54] tjh: makes sense, gotta do something you are passionate about too though [18:54] pyrotechnick2: but i know that to make the more mmo/fps parts of the game we envision we're going to need some help [18:54] dyer has joined the channel [18:54] dyer has joined the channel [18:54] tjh: I've had a prototype game / concepts in mind for a few years now [18:54] tjh: wish I had the motivation / time to finish it [18:55] tjh: it's a bit like machinarium [18:55] __tosh has joined the channel [18:55] pyrotechnick2: how can you have a prototype in your mind? [18:55] tjh: well I have a playable prototype [18:55] zkirill has joined the channel [18:55] tjh: but a lot of concepts on paper and .. my mind haha [18:56] pyrotechnick2: i think what people need to understand is that you don't have to have a finished game…not even ever [18:56] ChrisBuchholz: anyone using node on ubuntu server? i have ubuntu server 10.04.1 with node 0.4.7 and npm 0.3.18. i wanna use Forever to deploy but it fails in install (actually, daemon, a dependency, fails). anyone using it? [18:56] pyrotechnick2: take something like minecraft for example, it sucks, it sucked, it still sucks and it always will [18:56] pyrotechnick2: does that mean it's not successful? god no [18:56] tjh: haha true [18:56] pyrotechnick2: it's a fantastic "game" [18:56] pyrotechnick2: but it's not a finished game [18:56] xiagox has joined the channel [18:56] pyrotechnick2: you cant play it from end to end and enjoy the story or goals or anything like that [18:57] tjh: pyrotechnick2: http://www.garagegames.com/community/blogs/view/16791 [18:57] pyrotechnick2: it's more of a tech demo / prototype than it is a game [18:57] tjh: pretty old [18:57] tjh: when the ipad came out I really wanted to build it [18:57] pyrotechnick2: wtf [18:57] tjh: haha [18:57] tjh: dont ask [18:57] pyrotechnick2: no srsly wtf [18:58] pyrotechnick2: tjh = tj [18:58] tjh: http://www.garagegames.com/community/blogs/view/16649 [18:58] tjh: http://www.garagegames.com/community/blogs/view/16709 [18:59] pyrotechnick2 has joined the channel [18:59] pyrotechnick2: didn't know you were into games bro [18:59] tjh: hhaha yeah [18:59] tjh: i love adventure games [18:59] tjh: and i love coming up with the artwork mostly [18:59] `3rdEden: tjh: .___. that kitten lol [18:59] tjh: ahahaha [19:00] `3rdEden: or.. is it a dog? [19:00] tjh: pyrotechnick2: did you see the other two posts? [19:00] tjh: `3rdEden: haha yeah it's a cat [19:00] pyrotechnick2: im lookin thru them now [19:01] tjh: I wrote one part for the iphone and realised it's wayyyyy to small [19:01] tjh: cocos2d is rad though [19:01] tjh: torque sucks [19:01] `3rdEden: looks much more do-able for a ipad [19:01] pyrotechnick2: you can do all this in js now [19:01] tjh: yeah totally [19:01] pyrotechnick2: there's plenty of people leading the way [19:02] tjh: the ipad would have been great for it [19:02] pyrotechnick2: dont wanna sound too much of a fanboy buy the ngmoco dudes were talking about the engine they wrote for android/iphone that runs pure js [19:02] pyrotechnick2: backed on the serverside by node and stuff [19:02] tjh: awesome [19:02] brownies: hm, so forever is bad to use? what should i use instead of forever? [19:02] joshontheweb has joined the channel [19:02] brownies: pyrotechnick2: this is their multiplayer server? they used node for it? that's... insane. [19:03] pyrotechnick2: he said the only bad thing about node is how many clients they can now get on one server, when it used to go down on ruby or something it was like a few hundred clients, not a big deal, now it's thousands upon thousands, which is quite a big deal [19:03] onre_ has joined the channel [19:04] pyrotechnick2: theyre also using erlang and shit though where it makes sense, it's not all pure node but the way he was talking about node and js in general makes me think they want to roll with js/node as much as possible [19:04] pyrotechnick2: he said the one thing he hates is JS, i was going to suggest CS :p [19:04] pyrotechnick2: but i have a feeling his quarrel is with the standard library more than anything [19:04] DennisRasmussen has joined the channel [19:04] TheLifelessOne has left the channel [19:05] xiagox has joined the channel [19:05] pyrotechnick2: anyway like i said it was pretty inspiring if i can dig up a recording i'll send it your way [19:05] narf_ has joined the channel [19:05] edude03 has joined the channel [19:06] brownies: pyrotechnick2: please do. i'm going to throw together a multiplayer server in the near future, and i was leaning towards erlang over node.js [19:06] brownies: (no offense to anyone here ;) [19:06] siong1987 has joined the channel [19:06] pyrotechnick2: anyway you totally wanted animation blending with the whole waving arms walking thing, but you've probably guessed that by now [19:06] tjh: brownies: not offensive at all, erlang is awesome [19:06] pyrotechnick2: it just landed in three.js [19:06] tjh: pyrotechnick2: awesome! [19:06] tjh: yeah torque (and cocos) lacked in that department [19:07] micro`_ has joined the channel [19:07] tjh: sprites were not going to cut it [19:07] pyrotechnick2: it's usually so heavily tied to the graphics pipeline they try to leave it out or dont bother including it [19:07] saschagehlich: damn, how cool is the redis pub / sub system?! [19:07] pyrotechnick2: even collada which has the most widespread support of any format almost never packs it in [19:08] zedas has joined the channel [19:08] pyrotechnick2: you can still use sprites you just have to bone them [19:08] pyrotechnick2: but once you get to that stage you may as well go full-on procedural/vector [19:08] pyrotechnick2: something more easily manipulated [19:08] zmack has joined the channel [19:09] pyrotechnick2: ever played minecraft tj? [19:09] tjh: pyrotechnick2: for a few minutes [19:09] tjh: just to see what it was [19:09] davidcoallier has joined the channel [19:09] pyrotechnick2: we've basically got the whole building thing happening in node/webgl [19:09] `3rdEden: ARG! Internet Y U NO WORK [19:09] tjh: haha sweet [19:09] pyrotechnick2: physics was a bit of a fuckaround, i ended up writing bindings for bullet and trying to run it serverside but its just not going to work unless you can get servers close enough to everyone [19:10] pyrotechnick2: so we're at the stage now that we're just trying to omit the parts of the game that require 3d physics and go for a more building game than fps/rpg [19:10] pyrotechnick2: we've kind of established that whilst people enjoy shooting zombies with arrows and riding wolves it's not actually why they keep on playing and paying for minecraft [19:11] saschagehlich: `3rdEden: haha. :P [19:11] saschagehlich: come to germany, we have good internetz! [19:11] pyrotechnick2: i sit on mumble/vent everynight listening to a few of my friends who are completely obsessed with minecraft and all they do is try and emulate cities and towns [19:11] tjh: i cant find any of my old 3d modeling stuff [19:11] tjh: gahhh [19:11] pyrotechnick2: i got a devart [19:11] pyrotechnick2: pyrotechnick.deviantart.com [19:12] `3rdEden: saschagehlich: don't laugh, I can't even develop locally anymore because `gravatar.com` is dead for me -_-' [19:12] pyrotechnick2: that featured one i did when i was like 12 [19:12] `3rdEden: google however works fine [19:12] pyrotechnick2: gave up shortly after that [19:12] neorab has joined the channel [19:12] pyrotechnick2: but i guess you could say i was decent [19:12] sendark has joined the channel [19:12] tjh: i used to do depthcore stuff [19:12] tjh: like 10 years ago [19:12] tjh: haha [19:12] pyrotechnick2: fuckoff [19:12] pyrotechnick2: u know audiocrunch? [19:12] nulled: so will the browser replace the OS? Now that 3d games are possible? [19:12] pyrotechnick2: he doing music for the game [19:12] tjh: http://tjholowaychuk.deviantart.com/gallery/ [19:12] `3rdEden: OOh deviantart I used to that stuff as well. ages ago [19:12] tjh: no 3d stuff [19:12] tjh: cant find it [19:13] xiagox has joined the channel [19:13] pyrotechnick2: tjh: http://bashsilent.deviantart.com/ [19:13] pyrotechnick2: when i was _really_ young that was my account [19:14] pyrotechnick2: i spent fuckign months and months on that rocket [19:14] tjh: ahaha i totally did that same cave tutorial [19:14] CarlosEDP has joined the channel [19:14] pyrotechnick2: ^w^ [19:14] tjh: 3ds? [19:14] pyrotechnick2: yeah man always [19:14] tjh: booyah [19:14] pyrotechnick2: the only reason i still run windows [19:14] tjh: never got into maya or lightwave [19:14] tjh: 3ds / zbrush ftw [19:14] pyrotechnick2: hated maya [19:14] tjh: mostly zbrush ftw [19:14] pyrotechnick2: never "got" it even though i tried [19:15] pyrotechnick2: yeah i do a bit of zbrush, my friend is a god at it [19:15] duko has joined the channel [19:15] pyrotechnick2: got a tablet a couple of months ago [19:15] tjh: zbrush is aaaaamazing [19:15] `3rdEden: zbrush is awesome [19:15] pyrotechnick2: ikr [19:15] marcello3d: mmm [19:15] pyrotechnick2: u might like this [19:15] `3rdEden: same as C4D [19:15] admc1 has joined the channel [19:15] marcello3d: I uploaded some of my maya stuff the other day :D [19:15] pyrotechnick2: show [19:15] marcello3d: http://www.youtube.com/user/marcello3d [19:15] pyrotechnick2: tjh: http://antimatter15.com/wp/2010/11/digital-sculpting-with-three-js/ [19:15] duko: is it practical to consider building a blog-style site with node.js? [19:16] tjh: pyrotechnick2: haha nice! [19:16] pyrotechnick2: the first person to start taking on blender with webgl [19:16] marcello3d: unfortunately I can't seem to upload the revised version of the pirate one (youtube keeps screwing it up), but you can get the divx here: http://www.cs.unm.edu/~cello/maya/readme.html [19:16] vikstrous has joined the channel [19:16] pyrotechnick2: = total dominance [19:16] marcello3d: duko: depends, what do you need that say, wordpress.com or blogger.com doesn't provide? [19:17] tjh: pyrotechnick2: used to do a lot of digital paintings too http://tjholowaychuk.deviantart.com/art/Paradise-109100359?q=gallery%3Atjholowaychuk%2F5942812&qo=19 [19:17] tjh: not sure where the rest are [19:17] marcello3d: oh man [19:18] jesusabdullah: pyrotechnick2: That's pretty cool! [19:18] marcello3d: didn't realize there were other digital artists in the node.js community :) [19:18] tjh: :D [19:18] tjh: been a while [19:18] jesusabdullah: I used to have a webcomic [19:18] tjh: few years [19:18] chjj: duko: i would say its practical [19:18] jesusabdullah: back in high school [19:18] duko: marcello3d i'm just looking for a project-idea that i could implement in order to learn nodejs [19:18] duko: is doesn't need to be a blog-style page [19:18] marcello3d: duko: then sure [19:18] duko: but those seem simple [19:18] chjj: a blog would be a good way to learn [19:18] marcello3d: duko: do it! :D [19:18] jesusabdullah: and SubStack draws all the art for his startup and blog and stuff [19:18] marcello3d: jesusabdullah: yea, that's true :) [19:18] Casperin has left the channel [19:19] onre_ has joined the channel [19:19] jesusabdullah: I actually kinda want to hack together a webcomics thing [19:19] chjj: duko: i would recommend using flat files so you get to the filesystem api [19:19] jesusabdullah: in node [19:19] marcello3d: ACTION runs an art site: http://2draw.net/ [19:19] chjj: get to know* [19:19] duko: chjj mecello3d thanks [19:19] jesusabdullah: Oh, word dude [19:19] duko: this art site is incredible [19:19] marcello3d: ACTION notes that the site is pretty old, php/mysql stack [19:20] `3rdEden: that looks totally like 1995 again [19:20] duko: it dynamically resizes [19:20] duko: really cool [19:20] hlfhlo: ACTION doesn't run any site really... it makes him sad [19:20] duko: marcello3d wow very awesome [19:20] nulled: so php/mysql is now concidered obsolete?? [19:20] nulled: hehe [19:20] jesusabdullah: Looks a little old but not so old that I'd complain. It looks more "mature" than anything else ;) [19:20] marcello3d: nulled: no, it's still running after 9 years :D [19:20] jesusabdullah: also, radtastic [19:20] duko: why did you post this link if its not using node.js [19:20] hlfhlo: ACTION hearts this type of theme: http://pilu.github.com/web-app-theme/ [19:20] marcello3d: duko: because we were talking about art stuff [19:20] jesusabdullah: Because it's AWESOME. [19:21] marcello3d: and I'm working on a spin off of the site in node.js, but it's secret right now ;D [19:21] jesusabdullah: "Can you imagine what it would be like to go through life without ever realizing that things are awesome? It's called being a girl." [19:21] fr0stbyte has joined the channel [19:21] duko: is it a secret how you serve dynamic html with node? [19:21] duko: i hope you're not using regex [19:22] xiagox has joined the channel [19:22] marcello3d: duko: not sure what you mean :) [19:22] ArtistConk has joined the channel [19:22] joshontheweb has joined the channel [19:22] marcello3d: for templating? [19:22] duko: yes [19:22] marcello3d: I'm using jade atm [19:22] hlfhlo: I use ejs personally [19:22] chjj: dynamic html? XBL2 FTW! [19:22] chjj: oh wait [19:22] jesusabdullah: Jquery! [19:22] duko: jade,ejs,xbl2 thanks\ [19:22] nulled: mootools [19:22] chjj: lol not xbl2 [19:22] chjj: just a joke [19:23] chjj: you cant use xbl2...yet [19:23] duko: ok thanks [19:23] marcello3d: xbox live? [19:23] marcello3d: how do you type html with an xbox controller? D: [19:23] duko: xbl2 is for xbox live? [19:23] dyer_ has joined the channel [19:23] dyer_ has joined the channel [19:23] marcello3d: duko: we're just humor'ing [19:23] marcello3d: jade: http://jade-lang.com/ [19:24] duko: 2draw has no inline styles... i think this is most impressively marked-up site i have ever seen [19:24] marcello3d: duko: I'm sure it does [19:24] marcello3d: it's pretty hacked up :) [19:24] dyer__ has joined the channel [19:25] duko: well some inline styles will be necessary for js... [19:25] duko: but its very clean [19:25] piscisaureus has joined the channel [19:25] marcello3d:
[19:25] marcello3d: there's some inline style on the frontpage [19:25] marcello3d: I also use tables for layout :D [19:25] `3rdEden: I only use inline css, single page apps ftw :$ [19:25] nulled: clearfix ill have to look that one up [19:26] marcello3d: nulled: I don't even think that's right [19:26] duko: marcello3d and you're making a node version of the same site? [19:26] marcello3d: duko: no [19:26] marcello3d: that would be way too much work [19:26] rworth has joined the channel [19:27] duko: marcello3d didn't you say that you were making a nodejs version of something? [19:27] marcello3d: sealed lips :) [19:27] duko: it seems strange to say 'didn't you "say" in an irc channel' [19:27] duko: i pause to hit enter [19:27] chjj: i want to make an app called "Duly Noded", i have no idea what it will be, i just want to sound clever by using that name [19:27] marcello3d: duko: you'll get over it [19:28] marcello3d: chjj: that's awesome. make a scrapbook/notebook/etherpad type app [19:28] chjj: yeah [19:28] marcello3d: or todo list? [19:28] marcello3d: bash.org clone? :D [19:28] chjj: dont know [19:29] chjj: still workin on it [19:29] jesusabdullah: bash clone would be sweet [19:29] piscisaureus has joined the channel [19:29] chjj: originally wanted to make it a small db, but i already did that [19:29] chjj: i thought of the awesome name after i already named it [19:29] rworth has joined the channel [19:30] nulled: make a porn site called Up the Node [19:30] xiagox has joined the channel [19:31] chjj: could make a module called "node dash", it would be the module to end all node- modules [19:32] xeodox has joined the channel [19:34] duko: marcello3d chjj thanks, i'm taking off now [19:34] duko has left the channel [19:34] marcello3d: hah. http://bash.org/?111338 [19:35] saikat has joined the channel [19:36] jmoyers has joined the channel [19:40] `3rdEden: Argh, I got stabed by javascript again because I'm not using comma first ;( [19:41] mjr_: running JSHint on save catches all of those and more for me. [19:41] edude03 has joined the channel [19:41] BrianRice-mb has joined the channel [19:42] `3rdEden: Id rather catch them before using JSHint :) [19:42] towski has joined the channel [19:45] Gruni has joined the channel [19:47] marcello3d: weird, never had that problem [19:47] marcello3d: I don't like comma first [19:48] `3rdEden: I never had issues with that before, because my IDE automatically detected them, but since i started using coda, I don't have these fancy features anymore :( [19:48] marcello3d: ah [19:48] marcello3d: I use intellij [19:49] boaz has joined the channel [19:49] `3rdEden: Looks good, I used Dreamweaver CS5.5 before, but it doesn't support soft tabs -______- [19:49] maushu has joined the channel [19:49] marcello3d: intellij is great, and they've added node.js debugging support [19:49] marcello3d: in 10.5 [19:49] `3rdEden: other than that, it's one of the best JavaScript IDE's i have worked with [19:49] marcello3d: well, they're still adding [19:50] `3rdEden: will try it out, but I have bad experiances with Java based IDE's [19:50] marcello3d: fair enough [19:50] `3rdEden: Aptana & Eclipse aren't my most favorite apps ;D [19:50] marcello3d: yea [19:50] marcello3d: eclipse is a bit rough [19:50] marcello3d: too many cooks :) [19:50] marcello3d: intellij is commercial software [19:51] Xano has joined the channel [19:51] jesusabdullah: YOU're commercial software! [19:52] marcello3d: D: [19:52] Lorentz has joined the channel [19:55] bene1 has joined the channel [19:56] marcello3d: what does it mean when npm ls says 'extraneous' on a module [19:58] marcello3d: seems like it refers to a module installed that's not referenced in package.json [19:58] marcello3d: but for some reason I'm getting that for a sub-dependency of a module I just installed [19:58] TomY has joined the channel [20:01] kmiyashiro has joined the channel [20:05] gazumps has joined the channel [20:07] Opaque has joined the channel [20:07] astropirate has joined the channel [20:08] devdazed has joined the channel [20:08] tilgovi has joined the channel [20:11] mdaisuke has joined the channel [20:12] varioust has joined the channel [20:13] rjack has joined the channel [20:14] zakabird has joined the channel [20:15] jonaslund: aptana is "okayish" so far in my experience [20:15] jonaslund: too bad JSDT is still unstable [20:15] jonaslund: and since the current version is buggy and no updates on the horizon until the entire WSDT release it's pretty much useless [20:15] mikey_p: hoping that jetbrains adds some awesome support to webstorm [20:16] mjr_: Time to fly to Portland [20:17] w3dot0 has joined the channel [20:19] a|i has joined the channel [20:19] a|i has joined the channel [20:20] Schmallon has joined the channel [20:22] gouch has joined the channel [20:22] AntelopeSalad: is anyone here using express and couchdb but isn't using cradle? [20:23] gouch has left the channel [20:23] patcito has joined the channel [20:24] DennisRas has joined the channel [20:31] pootietang has joined the channel [20:33] devdazed has joined the channel [20:33] devdazed has left the channel [20:34] chjj: v8bot: Array.prototype.sort.call({b:0,c:0,a:0,z:0,y:0,l:0,e:0}); [20:34] v8bot: chjj: Use v8: to evaluate code or "`v commands" for a list of v8bot commands. [20:34] chjj: apparently [20:34] chjj: v8 can sort objects [20:35] mikl has joined the channel [20:35] mikl has joined the channel [20:36] chjj: v8: Array.prototype.sort.call({b:0,c:0,a:0,z:0,y:0,l:0,e:0}); [20:36] v8bot: chjj: {b:0,c:0,a:0,z:0,y:0,l:0,e:0} [20:36] chjj: hmmm [20:37] Epeli: wtf, syntax is that? [20:37] chjj: what? [20:37] Bonuspunkt: why are you trying to sort a object with array.sort? [20:37] Epeli: b:0 etc? [20:37] chjj: it works [20:37] chjj: in the latest dev release of chrome [20:37] chjj: for some reason [20:37] chjj: its weird [20:37] Epeli: ah, i'm in wrong language :D [20:37] chjj: it sorts by key [20:37] Epeli: nvm :) [20:37] chjj: you cant pass it a function though [20:37] chjj: might be a bug [20:38] chjj: but its pretty cool :) [20:39] chjj: yeah, seems to only be the dev release of chrome [20:39] chjj: whatever version of v8 that is [20:39] mikl has joined the channel [20:39] mikl has joined the channel [20:39] chjj: it can sort objects [20:39] chjj: but i can only get it to sort by key =/ [20:40] pandeiro has joined the channel [20:40] zzak has joined the channel [20:40] zzak has joined the channel [20:44] BrianRice-mb: at the geo-js gathering [20:44] BrianRice-mb: oops, wrong channel :) [20:45] MikhX has joined the channel [20:46] mraleph: chjj: it's console who sorts keys when it displays objects [20:48] stonebranch has joined the channel [20:49] edude03_ has joined the channel [20:49] jacobolus has joined the channel [20:50] chjj: is it? [20:51] chjj: ah, i thought i stringified it [20:51] chjj: damn, that wouldve been nice =/ [20:53] chjj: and now that v8 seems to go by insertion order for objects, it couldve worked well [20:54] Aria has joined the channel [20:55] dyer has joined the channel [20:56] m00p has joined the channel [20:56] n1c has joined the channel [20:57] industrial has left the channel [20:57] industrial has joined the channel [20:57] industrial: On OS X I did a npm install zappa, have zappa in the path but when I do it says it can't require zappa; https://gist.github.com/9f8ba29edb48ac3ea487 [20:57] jacobolus has joined the channel [20:58] japj has joined the channel [20:58] n1c: Hi guys. [20:58] n1c: When trying to install node from source on an EC2 instance I get this: [20:58] n1c: "Project not configured (run 'waf configure' first)" [20:59] n1c: Tried googling around but couldn't really find anything helpful? [20:59] Bonuspunkt: n1c did u exec ./configure ? [20:59] mscdex: n1c: ./configure && make && make install [20:59] n1c: Yeah. [21:00] killfill has joined the channel [21:00] {aaron} has joined the channel [21:00] n1c: ./configure --prefix=$HOME/local/node && make && make install && export PATH=$HOME/local/node/bin:$PATH; [21:00] pcardune has joined the channel [21:00] n1c: As per the Github wiki install page. [21:01] kbni has joined the channel [21:01] mscdex: hmm, doesn't it already create it's own directory in the prefix? [21:01] mscdex: so you probably have some thing like $HOME/local/node/node now [21:02] n1c: If I install with apt, will it be rather out of date? [21:02] jesusabdullah: Yes [21:03] n1c: :x [21:03] n1c: ~/local is still empty. [21:03] mscdex: er wait, nvm [21:03] n1c: It hasn't created anything there. [21:03] a2800276 has joined the channel [21:03] hybsch has joined the channel [21:03] n1c: Weird. [21:04] n1c: It all installed np on my local box. [21:04] {aaron}: i just installed with nvm [21:04] n1c: Any one installed on Ubuntu 11.04? [21:04] atiti has joined the channel [21:04] industrial: Anyone know about zappa path issues? [21:04] jesusabdullah: Is that the new one n1c ? [21:04] jesusabdullah: I just upgraded last night [21:05] mscdex: n1c: works for me on 10.04 [21:05] mscdex: should be the same on 11.04 [21:05] jesusabdullah: My nodes still work fwiw [21:05] {aaron}: anybody use the qunit port to node.js? [21:07] n1c: Yeah I'm on 10.04 locally. [21:07] n1c: Wouldn't expect that to be a problem. [21:07] n1c: Yeah jesusabdullah it's the new one. [21:07] gonsfx: d'oh. my expressjs app redirects to 'localhost:3000' on res.redirect('/') when running live. wth? [21:07] n1c: What is waf anyway? [21:08] mscdex: n1c: it's the build system that node uses [21:08] n1c: Ah. [21:08] marlun: Which library do you recommend for using sqlite with node? [21:08] mscdex: n1c: did you check permissions on $HOME/local just to be sure? [21:09] n1c: Well [21:09] n1c: afaik, I didn't make the dir myself and it exists [21:09] mscdex: :S [21:10] n1c: So I guess the --prefix on configure made it? [21:10] mscdex: i'd check then [21:10] mscdex: i dunno if it would or not [21:10] n1c: What should I check? [21:10] n1c: The perms are drwxr-xr-x [21:11] mscdex: who's the owner? [21:11] kmwallio has joined the channel [21:11] Bonuspunkt: Draggor if u ever come across my problem --> https://gist.github.com/950843 should give u a kickstart :) [21:13] industrial: On OS X I did a npm install zappa, have zappa in the path but when I do it says it can't require zappa; https://gist.github.com/9f8ba29edb48ac3ea487 [21:13] n1c: mscdex - ubuntu:ubuntu [21:14] mscdex: n1c: is that your account? [21:14] n1c: yup [21:14] mscdex: ok [21:14] mscdex: should be fine then [21:14] n1c: yeah I figured. [21:14] n1c: Would it have anything to do with the version of Python installed? [21:15] n1c: I stumbled onto a stackoverflow post mentioning python version. [21:15] mscdex: i wouldn't think so, but what version do you have installed? [21:15] n1c: But it's like 7 months old (the post). [21:15] n1c: Ah, 2.7.1+ [21:15] mscdex: should be fine [21:15] vikstrous has joined the channel [21:15] n1c: The vm is brand spanking new out the box. [21:16] n1c: So everything's default 11.04 [21:16] {aaron}: is it possible to run non-CommonJS modules in node.js? [21:17] {aaron}: it looks like globals are not visible [21:17] Aria: If you wrap them up or edit them to work, yes. [21:17] {aaron}: :( [21:17] Aria: Or load them and evaluate them in your context. [21:17] {aaron}: ah, so require('../path/to/arbitrary.js') ? [21:17] Aria: That wraps in the node module context. [21:18] Aria: eval(file.readSync('path/to/arbitrary.js')) [21:18] Aria: require pastes a function around your code as it's loaded. [21:18] {aaron}: i see [21:18] Aria: So true globals work, but things you'd expect to be defined if you loaded with a